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 ...