求助c語言問題,求助一個c語言問題?

時間 2021-10-15 00:01:04

1樓:小菜鳥2無聊寫**

解題argc是命令列引數的數目

( filel china beijing shanghai

執行輸出

chinabeijingshanghai)

ar**是引數字串的陣列

故*ar**是一個字串,也是ar**[0]

++ar**會使它指向下一個字串

ar**=;//題目中ar**的初始值可以看成是

e.g.

所以排除單個字元的選項c d

然後看選項a b

問題焦點在"china" 就是 ar**[1],或者說第一次++ar**後的*ar**是否會被輸出(顯然這是會的),故選a

源**(不使用其它編譯選項的)是

#include

int main(int argc, char *ar**)

return 0;

}說一下心得

首先面對這種問題不要慌張,哪怕程式完整地輸入進電腦也編譯不出來;為什麼,編譯選項(以下省略一堆文字說明),出題老師極有可能編譯的方式和你不一樣(而使用編譯選項也是開源專案裡常見的狀況);看一下gcc --help,它有多少行,就有多少種編譯方法,其中有一個選項可以用於指定被include進編譯過程的庫(故可以不在源**裡include)

其次是**的印刷質量問題,這在並非知名的出版物上十分明顯,字間距的變化不一很可能會誤導你對空格的判斷,所以在**的空格有歧義的地方,一定不要放棄除錯,或者就當它在空格的問題上沒有錯誤)

**質量就不要問了,**這個東西,應該出現在紙上,還是在電腦上,哪個更有質量,應該就不用問了(搞**的也是要有點能除錯出錯誤的感覺)

2樓:匿名使用者

這題目有問題吧,你有編譯執行一下嗎?只有4個命令列引數,但是最終輸出前ar**指向了不存在的位置,會有輸出嗎?反正我寫了,也試了,不會輸出什麼結果,你們有要求用什麼編譯器嗎?

我用的是gcc,windows環境

求助一個c語言問題?

3樓:考驕

你在看看,還是不對,全1表示的是-1,

1000...才表示-128

反碼概念,符號位不變,其他位取反(+1),全1反過來就全0,表示0的話就2個0了,所以負數在加個1

只有反碼才這樣

4樓:金半田

二進位制11111111代表-127,是按原碼規則來算。若按補碼規則,二進位制11111111算出來是-1。

文中說的是10000000代表-128。

詳細描述如下:

[+1] = [00000001]原 = [00000001]反 = [00000001]補

[-1] = [10000001]原 = [11111110]反 = [11111111]補

計算機將第1位作為符號位,0表示正數,1表示負數。

原碼:原碼很好理解,第1位是符號位,其餘位表示數值。

反碼:(1)正數:正數反碼是其本身。

(2)負數:去掉原碼符號位,其餘位按位取反。

補碼:(1)正數:正數補碼是其本身。

(2)負數:在反碼基礎上加1。

由上述定義可知:

[+0] = [00000000]原 = [00000000]反 = [00000000]補

[-0] = [10000000]原 = [11111111]反 = [00000000]補

既然+0和-0的補碼一致,所以只需保留一個(+0和-0原碼不同,注意看符號位)。

這樣一來,「[-0] = [10000000]原」相當於沒有使用,於是規定:「[10000000]」為-128。

既然是「規定」,就不能按原碼、反碼、補碼的規則計算了。設計計算機時就在硬體中設定為:10000000代表-128。

之所以引入補碼,是為了消除減法,用加負數來替代減法運算,這樣讓cpu設計更簡單。

5樓:自我程式設計

這裡說的是補碼,不是二進位制負數。

二進位制負數10000001到11111111表示-1到-127,而10000000表示的就是最小負數-128。

而負數在計算機中是以補碼儲存的。

負數->(原碼按位取反)反碼->補碼(反碼+1)。所以-1到-127的補碼就變成11111111到10000001。而0的原碼補碼還是0,-128的補碼是10000000。

所以如上題說的,-128~-1計時10000000~11111111。

6樓:

負數的補碼等於反碼+1

7樓:沙裡波特

二進位制11111111不是代表-127嗎?

--是的。 11111111 是-127的原碼。

為什麼是-128 呢?

--誰說的? 騙你的。

求助一個c語言問題?

8樓:聽不清啊

舉例說,char s[100];

才可以使用

scanf("%s",s);

進行輸入,如果是int a[100];

就不可以用

scanf("%d",a);

進行輸入。

求助一個c語言問題?

9樓:考驕

結構體變數一般包含多個變數型別,這個題目只定義一個整形的結構體變數,int表示一個整形變數,int是一個整形的結構體變數,現在結構體中只有一個變數,所以不是一個,但作用相同

求助一個c語言的問題。 10

10樓:匿名使用者

**50

瀉藥。人在茅房,剛剛夾斷。圈內人多,匿了。

你一個函式一個函式慢慢寫。都是比較初級的函式,有什麼不懂的可以問我

11樓:三天打魚

不復雜 不過用手機不方便寫**

你可以學一下陣列 定義函式 迴圈語句 流程控制 控制檯輸入輸出然後自己寫一寫看 如果在寫的過程中遇到問題再來提問 否則就算別人做了 你也不會

多寫**提高自己解決問題的能力

求助c語言的一個問題?

12樓:匿名使用者

在呼叫的前一行復制貼上函式頭,然後加個分號。

13樓:匿名使用者

比如函式體為

int pow(int a,int b)

那麼在主函式體中新增為

int pow(int a,int b);

14樓:小菜鳥2無聊寫**

分兩種情況

1 在同一個檔案中

你只需要在main函式定義之前宣告你的函式原型(prototype)就行,例如

int myfun(void);

/*declaration of a local function's prototype*/

int main()

int myfun(void){

/*suite of function myfun*/

return 0;

第二種情況是不在同一個檔案之中

這時int myfun(void);

就應該被換成

extern int myfun(void);

/*例如 gcc main.c myfun.c -omain.exe*/

就是這麼簡單,當然還有通過指定編譯器選項的辦法,這個可以在一些大型專案裡見到,不具體列出

求助c語言的問題,求助c語言的一個問題?

在呼叫的前一行復制貼上函式頭,然後加個分號。 比如函式體為 int pow int a,int b 那麼在主函式體中新增為 int pow int a,int b 小菜鳥2無聊寫 分兩種情況 1 在同一個檔案中 你只需要在main函式定義之前宣告你的函式原型 prototype 就行,例如 int ...

C語言求助,C語言問題,求助

孫毅超 二進位制數在計算機記憶體儲的是其補碼 對於有符號數,正數的補碼和本身一樣,負數的補碼是本身的數字位取反後加1 比如 1 0001 補 0001 1 1001 補 1111 計算機儲存 1就是儲存的1111 而int是兩個位元組的,也就是16位的二進位制,因此65535也就是111111111...

c語言問題 求助,C語言問題 求助

聽不清啊 這樣試試?include include int main scanf d d c,d for i 1 i a i printf d n e return 0 1 int 型別輸入的時候是 d,int 和float不要混合計算用。改過以後就是下面的 四則運算就是從左到右順序的,小括號優先。...