C語言的一道選擇題,c語言的一道選擇題

時間 2023-05-18 09:00:11

1樓:匿名使用者

給你這樣寫,你可能就明白了。

int x=0, s=0;while( (x) !0) s =s + x);printf(「%d」, s);x的初值為0,第一個!x表示1 ,1 !=0成立,執行迴圈體,s+ =x

首先++x是先執行這個運算,然後再使用x的值,所以s = s + x) 即s = 0 + 1)=1,此時。

x = 1;s = 1;然後再回到(!x) !0,!x = 0, 0 !=0 不成立,然後迴圈結束,直接輸出,s等於1

這樣寫應該明白了吧,不明白繼續追問,純手打,望。

2樓:網友

while(x為0的時候執行迴圈)

s+=+x;//翻譯過來就是先x++,再s = s+x;完成後s= 1;這條語句完成後x=1,不符合迴圈條件 ,迴圈結束。

大概就是這樣了,主要是把兩條語句和成一條了 不太好理解,++x和x++的區別就是++x是在執行運算前面把x+1,x++是執行運算後把x+1,要是這裡換成x++那麼s就為0了,但是x最後還是為1

3樓:匿名使用者

x=0 ,所以x! =0 為假 !x!=0就為真,也就是表示式能執行一次,又因為++x是先自加,後s+=運算。

也就是s+=1,結果s=0+1;

4樓:亓官磬

!x!=0 這個的意思是x=0,s+=+x這個的意思是s=s+x,而x=x+1,從右往左算。明白了嗎?

c語言的一道選擇題

5樓:

cx 等於 5 > 1 + 2 &&2 ||2 * 4 < 4 - 0 化簡。

1 &&2 ||0 這步 5 > 3 化簡成 11 ||0 這步 1 &&2 化簡成 11

6樓:網友

首先在fun函式中引數:int x[ ]表示一個陣列,由x指向一個地址空間,裡邊存放int型別的資料)。故呼叫fun函式是變數也應該是陣列的引用變數,或者是指向一個地址的變數。

a fun(b)。b表示int型別陣列b的地址;

b fun(&c)。&符號就是表示是地址;

c fun(&a[3])。同c選項,&a[3]就是指向陣列a第三個元素的地址;

綜上所述,選d。

7樓:匿名使用者

這裡其實是函式對陣列的呼叫,之所以fun( int x);中的沒有數字,是為了不限制可呼叫的函式,如果裡面是10,則只可以調a[10],b[10]等只含有10個元素的陣列,如果裡面是空的,你可以呼叫任意元素的陣列,答案是a。 因為呼叫的是陣列,所以b錯,c不是陣列,是陣列中的一個元素,錯誤理由和b的理由相同,如果fun函式是: fun(int *p) 則bc都是對的, d的錯誤是在於b[1]是陣列中的一個元素, 陣列的首地址代表了這個陣列,想輸入或者輸出或者呼叫一個陣列,只需要他的首地址即可,題中的2個陣列a b,的首地址是&a[0], b[0],c語言的設計為了方便,則規定簡寫為a,b, 所以答案a是對的,

8樓:尼瑪真響亮

b[1]是陣列的一個元素。而函式需要的引數是一個地址。

直接用應該不行。

9樓:匿名使用者

int x,表示的陣列x的首地址。因為a,b,c相當於呼叫的地址,而d是呼叫的一個int整形資料,所以選d,

10樓:

答案是a,因為b是陣列,它卻當成變數了。

11樓:天彬司馬夏嵐

x,y定義的是double型的,也就是雙精度的,所以你輸入的時候格式也要是雙精度的,就是%lf了,%f對應單精度的float型,用scanf輸入時,裡面變數取地址。

c語言的幾道選擇題,求答案,謝謝

12樓:匿名使用者

1.for(n=0,n<20;n++)控制迴圈執行( d )次。

解釋:你看迴圈只要看n=0到n=19有多少次迴圈。

2.一個c語言源程式至少應包含一個( a )。

函式 b.使用者自定義函式 c.語句 函式。

解釋:一個c語言函式必須有一個主函式(main函式)

3.設a=12,則a/=a+a;執行後,a值為(c )

解釋:a+a=12+12=24;a/=a+a=24;

a/=24;a=a/24;

a=0;4設有學生成績的陣列定義:float score[10];用迴圈for(i=0;i<10;i++)scanf( d);正確輸入數值的寫法為( d )

解釋:這是固定的寫法。

5.設定義了指標變數pp:int *pp,將變數a的地址賦給指標變數的正確寫法為 ( c)

a.*pp=a d.&pp=*a

解釋:這也是固定的寫法。

6.若有定義int i=1,則執行完迴圈while(i++<5)以後i的值為(a)

解釋:當i等於5時,不執行迴圈語句。但是i還要執行i++,i=6;

13樓:匿名使用者

1.for(n=0,n<20;n++)控制迴圈執行(b )次。

2.一個c語言源程式至少應包含一個( a )。

函式 b.使用者自定義函式 c.語句 函式。

3.設a=12,則a/=a+a;執行後,a值為(c )

4設有學生成績的陣列定義:float score[10];用迴圈for(i=0;i<10;i++)scanf( )正確輸入數值的寫法為( d )

5.設定義了指標變數pp:int *pp,將變數a的地址賦給指標變數的正確寫法為( c )

a.*pp=a d.&pp=*a

6.若有定義int i=1,則執行完迴圈while(i++<5)以後i的值為( a )

14樓:匿名使用者

d,a,c,d,c,a

最後一個是a,額,是後置++。

15樓:不愛小可

d acdca 上上那哥們講的還是蠻好的,我就不具體的解釋了。

16樓:匿名使用者

1.for(n=0,n<20;n++)控制迴圈執行(d)次。

解釋:從n=0執行到n=19,你數數,應該是20次吧!

2.一個c語言源程式至少應包含一個( a )。

函式 b.使用者自定義函式 c.語句 函式。

解釋:main函式是機器的識別函式,程式在main函式開始執行,如果沒有main函式將不會編譯成功,不能執行。

3.設a=12,則a/=a+a;執行後,a值為( )

解釋:賦值運算子的優先順序比+低,所以語句等效為a=a/(a+a),所以a=12/24,由於/運算子的特性,12是int型,故結果也應是int型。所以為0。

4設有學生成績的陣列定義:float score[10];用迴圈for(i=0;i<10;i++)scanf( )正確輸入數值的寫法為( d )

因為要迴圈所以要有i,故選d。

5.設定義了指標變數pp:int *pp,將變數a的地址賦給指標變數的正確寫法為(c )

a.*pp=a d.&pp=*a

6.若有定義int i=1,則執行完迴圈while(i++<5)以後i的值為( a )

解釋:++在變數後面說明是表示式執行玩再自加一,所以執行在5++<5後結束,i=6

一個c語言的選擇題

17樓:網友

來,雖然很傷眼,但是本著哥一向助人為樂的作風,還是替你解答一下:

題一:你選的是a,正確答案是d,那麼要弄明白的是float *p的含義,記住,在宣告指標的時候,前面的那個* 表示的是我這裡宣告瞭一個變數p,這個變數是一個指標,並不是取指標指向值的意思。所以,對於a答案,float *p = 1024,既然p是一個指標,那麼給它初始化1024是不對的,它需要的是一個地址值。

如果是 float *p; *p = 1024的就靠譜了,因為後一個p的前面的*表示的是取指標指向的值。現在能理解為什麼d是對的了吧?

題二:scanf的第二個引數需要的是你要輸入的數的地址,如果寫成scanf("%lf",&a)應該知道吧,p = a替換了一下就行了,所以d是正確的。

18樓:匿名使用者

指標宣告並賦值: float *p=&x ; 此處 * 是宣告,並不是訪問它指向的值)

因此, a選項,由於*用在了宣告中,所以意味著它與地址是等價的 b存在型別錯誤 c缺。

少*號2. 首先c語言中。

f 對應 float

lf 對應 double,所以b排除;

由於看不清題目問的什麼所以這麼說吧: scanf是等待輸入功能與printf相對應, 而scanf第二個引數需要的是地址 型別的資料, 如果int a; 則 scanf(%d,&a); 少了&會報錯; 如果int *p; 並且 p=&a; 則 可以:scanf(%d,&a) 也可以scanf(%d,p) ;因為p和&a都是地址;

ps:如果是printf 的話,那麼想輸出數值就是printf(%d,*p) 或者printf(%d,a);

一道c語言選擇題

19樓:頻姝泰吉星

什麼叫從左到右呢。

您看看。(a=3*5,a*4,a+5)

這是逗號表示式。從左到右計算,取最後一個逗號後面的東西為結果。

執行的過程是這樣的:

a=3*5=15,這時候a是15了。a*4,這句只是a*4,得到60,而a的值依然是15,然後a+5,結果是20

就輸出20咯。第二個表示式a*4是有計算的。但是沒有賦值給a呀。所以沒什麼影響。

20樓:瞿芙吾涵蕾

不是地址,錯。

b.++y,y是陣列名,是常量,不能++

x);相當於s=y+5,strcpy(s,x);x長度為9,加上結束符,總長為10位元組,但s指向的是y[5],之後只有y[6]到y[9]這4個位元組可用,因此會造成陣列訪問越界。

x+1);x+1即指向x[1]的指標,之後有8個字元和1個結束符,長度為9位元組,y+1之後正好也有9個可用位元組。正確。

s=y+1;y+1就是y[1]的地址。y+5就是y[5]的地址。

c語言 選擇題 .

21樓:潮運虹

)的返回值為( a )。

strlen不返回null

2. 若有以下語句,則正確的描述是( c)。

3. 設有陣列定義:char array=」china」;,則陣列array所佔的空間為( c )。

在開拓儲存空間是時候有一個null,這要算進去4. 下列程式執行後的輸出結果是( a)。

printf函式有錯誤,冒號多了個。

5. 當執行下面的程式時,如果輸入abc,則輸出結果是(a )。

函式作用估計你都會的啦。

6、程式執行後的輸出結果是( d )。

7. 以下程式的輸出結果是( a )。

8. 有下面的程式段(d)。

9. 下面程式的執行結果是(a )。

10. 以下程式的輸出結果是 (b)

原來一個學期不碰c語言會生疏這麼多的,有錯誤的就原諒。

一道c語言選擇題,一道C語言選擇題

a.這道題不論選擇題應該是 array i 還得加上i 1.看了選項之後發現,需要合併在一起,那應該是 array i 但是選項沒有,那就找選項相同的.只有a了.說說b.沒有i的自增,while無法跳出 c.i自增了.但是array 0 沒有賦值,雖然編譯成功,但是不符合題目 d,重複給array ...

問一道C語言選擇題

k 4x k結果為x x k 5 k 4結果為k k 4 1 k x k k 4 4 執行之後 k 4 操作符的結合性是從右到左,所以先計算 x k k 4 操作符的結合性是從左到右,所以先計算x k,之後x 5,k 9,再計算k 4,之後k 1 所以 x k k 4 的值就是5 1 4因此最終k ...

求助關於c語言一道選擇題,求助關於C語言一道選擇題 !

解析有問題。正確的解析應該是 do while 條件表示式2 條件表示式2成立次數為n2,則迴圈體b執行次數為n2 1.因為條件表示式2成立就要執行一次,還要加上進入迴圈時執行的那一次。而對於while 條件表示式1 迴圈體a 條件表示式1成立次數為n1,則迴圈體a執行次數為n1。基於上述分析 1 ...