C語言選擇題及其詳細解釋(最好能對每結果進行分析)

2022-02-11 21:15:19 字數 4253 閱讀 9350

1樓:匿名使用者

1.d 2.d

分析1:if語句後面的括號中表示式只要為真即執行後面的語句,否則執行else後面的語句,所以a與a!=0是等價的,即a為真

分析2:由於a與b都未定義,則編譯器在編譯時會報錯,說明a與b必須定義後才能使用。

c語言 選擇題及其詳細解釋(最好能對每乙個結果進行分析)謝謝!!!

2樓:匿名使用者

4.void是空的意思 本來這樣定義的函式就不會帶返回值得 a就是正確的阿!

5.就是b 這是系統的預設 記下就是了阿!

6.角度要是雙金度的!!!譚浩強的書上有可以去看看一些基本的東西!!!

3樓:匿名使用者

a b d這個就是需要記憶的,沒什麼好分析的

這個基礎知識要靠自己記住

c語言程式求分析,最好每行都詳細說明下,尤其是中間2行for迴圈讀著很亂

4樓:匿名使用者

首先我猜你想列印"gninrom doog"。

這個程式出現了不止一處錯誤,下面逐個指出:

1.雙重迴圈對for語句在表示式括號後面不要加;(分號,能看見吧?),你加了分號意味著for不做任何動作,這是合法但是毫無意義的。

所以你的程式只是執行了*q=*p;*q=『\0';printf三句,而str2根本未初始化!那麼列印出來的東西是未知的或者是空。

2.解決了上述問題之後,編譯執行你發現輸出視窗黑色的,游標在左上角閃,沒有乙個輸出,而且程式無法自己結束。

呵呵,很明顯,你的程式陷入死迴圈中。

原因很簡單,就是你在外層迴圈的迴圈體(就是第二個迴圈裡)改變了迴圈變數p。

你自己模擬一下就ok了。

反正最終的結果是p始終被賦值str1。

這裡反映出程式設計的乙個壞習慣,那就是在迴圈體中改變迴圈變數的值。這個錯誤常常是致命的。

正確的**如下:

#include

void main()

*q='\0';

printf("%s",str2);

}輸出結果:

gninrom doog

5樓:因為愛卿

char str1="good morning!", str2[20];定義乙個字元陣列,並賦值;

char *p, *q;定義兩個取位址符; for(p=str1;*p !='\0';p++);求解表示式一,在判斷表示式二,若為真,則p++,第二個for同理。再把*p複製給*q.

c語言兩道題,求執行結果。 請寫出詳細分析過程!!謝謝!滿意答案與解釋者給分

6樓:匿名使用者

main()

由 str="helloeverybody"來看,j->第乙個y時(j=9),不再有比它更大的字元。

str[j]=str[i];//此時j=9, i = 14 str[14]='\0' ,即str[9] = '\0',結束符

puts(str); // = "helloever"}2、#include

int order(int a,int i)void main()

;for(n=0;n<7;n++)

if(order(a,n))

printf("%d,%d\n",a[n],a[n+1]);

}n=0 29<5為假,返回值為0,不輸出n=1 5<18為真,返回值為1, 輸出5,18n=2 18<8為假,返回值為0, 不輸出n=4 8<5為假,返回值為0,不輸出

n=5 5<3為假,返回值為0,不輸出

n=6 3<8為真,返回值1,輸出3,8

7樓:匿名使用者

3,8函式1;結果為helloever;

因為str[i]!='\0』,所以退出迴圈時,str[i]='\0『;

由於句子中y最大根據ascii表;所以句子第乙個y被換成'\0'(因為y不大於y);所以printf函式遇到『、0』結束輸出,都答案如此!!!!

函式2:結果為5,18

3,8由於比較的返回值為徒true或者false;

所以當a[i]

高分求助一道c語言設計題 不難!! 120

【求助】這道c語言的選擇題是什麼意思呀?怎麼分析?

8樓:舒爾建房子

for是迴圈語句,意思就是如果你輸入乙個值給c,如果你沒按回車鍵,便是一直給c賦值,也就是說若你輸入abcd然後回車,那麼c的值就是abcd;如果你輸入a然後回車,c的值就是a!

這是賦值字串的乙個方法!謝謝,希望你能明白!

9樓:彈指間幸福

這是for迴圈語句,意思直到輸入乙個換行符(\n)結束。答案是a

10樓:夢覺殺

d , 那是代表語句混亂,重新輸入。

c語言選擇題一選項 這個為什麼是正確的 求解釋下

11樓:匿名使用者

解釋,分析如下:

在c語言中,語句以分號結束。

語句分很多種,其中,最常見的,就是在賦值表示式的末尾加上分號,構成賦值語句。

j++;是乙個自增語句,相當於j=j+1;因此,從這個角度,可以理解它是一條賦值語句。

12樓:匿名使用者

自增的確是賦值語句,相當於是j = j + 1;

如果想知道為什麼會有自增這種寫法,請追問,不想追問也沒關係

13樓:扯淡書生

j++自增,和j+=1比較下你就明白了

14樓:匿名使用者

j++表示:j=j+1;它是一條賦值語句,因為有;語句結束標識

15樓:c呀可可

j++表示:j=j+1;是賦值語句

20分求大神幫忙分析乙個c語言選擇題

16樓:無淚瓦擦

a:表達

抄式值為5,然後襲p = &a[1];

b:先執行p->n,值為5,++ 是

字尾式,所以表示式的值依然是5;

c:和b答案一樣,表示式的值是5;

d:->的優先順序高,所以先執行p->n,值為5,但是自增操作++ 為字首式,所以先執行加1操作,表示式值為6;

故答案選d

17樓:匿名使用者

p指向a[0],p->n=5

p++本身

bai還是p,所以dua.p++->n=5p->n++ 本身還是p->n,所以b.p->n++=5(*p).

n++ 本身還是 (*p).n,所以c.(*p).

n++ =5

++p->n本身表

zhi示(p->n)+1,所以d為6

需要了解a++與++a的不dao同,及運算子的優先順序

18樓:匿名使用者

首先定義了乙個bai

結構型別dust,包括2個成員,第zhi乙個成員就是daon,第二個成員就回是指標變數,指向答下乙個st的位址。

然後定義了乙個結構陣列st a[3],然後*p指標,指向陣列的第乙個a[0],這裡的a[0]=,p->n=5的,就是第乙個陣列中第乙個成員n=5。然後p->n是指標運算子是優先於++的,所以d的答案實際就是++(p->n)=++5=6,而b是5++=5,這個++前後順序值得變化相信你應該是懂得的。a還是=5,因為p++>n,p是要先運算指標的,然後p的值增加1,指向下乙個位址&a[1],c的話還是=5,那個一點.

是結構成員運算子也是優於++的。那麼p開始就是指向a,它的成員n=5,然後運算結束後,n=6,因為是後++

19樓:清明大雪

考的是運算子bai

的優先順序和指du針的加減。

p原來指向zhia[0],p+1就指

dao向a[1]。

選項內a的值等於p->n,因為這容

裡是後加。

b同樣道理。比較簡單。

c。*在這裡是取內容,即去p所指的內容,你可以把取內容理解成是所指物件的另乙個物件名,這裡相當於a[0].n++,值當然是5。

d。 指標運算子優先順序極高,高於左++,這裡先得到變數值5,再加1,得6。

20樓:匿名使用者

開啟c語言書,看關於指標的章節

c語言選擇題

c 選擇題集 1.下列的各類函式中,不是類的成員函式。c a 建構函式b 解構函式c 友元函式d 拷貝初始化建構函式 2.作用域運算子 的功能是 b a 標識作用域的級別的b 指出作用域的範圍的 c 給定作用域的大小的d 標識成員是屬於哪個類的 3.下列說明中const char ptr 其中ptr...

c語言選擇題求答案求幫助,10個C語言選擇題 求答案 求幫助!!

11 a 在計算 前,乘除結果 過程帶小數 按原來型別算 12 a 條件語句三目符號分別為 13 a o 讀入八進位制整數 x,x 讀入十六進位制整數 14 b x 使用x計算,並自加一 x,x先自加一,再用於計算 15 b 2d,寬度為2的int型,2ld,寬度為2的long int型 16 a ...

這道C語言選擇題怎麼做?求解釋,求解一道C語言選擇題解釋一下怎麼做出來的

沒有看到有語法錯誤,因為do while語句中間如果只有一句話時,可以省略那個 求解一道c語言選擇題 解釋一下怎麼做出來的 從題目可以看出第二個引數是乙個指標陣列 因為d選項不是乙個陣列 而a,b均為陣列 且可以作為指標陣列使用 c是指標 可以是陣列也可以是變數 唯獨d既不是指標也不是陣列 fun第...