c語言入門問題第一張第五題D選項為什麼錯,第二張不明白,求詳解

時間 2021-10-14 23:01:41

1樓:_哆啦a夢

第五題的d

變數的有效域是以{}來分的,比如if();那麼在{}外用i就是非法的,所以不是在本函式範圍內有效。

第二張的程式意思是

從第三個s開始迴圈直到陣列結尾

k=2時c=s,執行putchar()輸出s,continue進入下次for迴圈

k=3時c=w,執行putchar()輸出w,continue進入下次for迴圈

k=4時c=l,執行continue進入下次for迴圈

k=5時c=i,執行++k,break停止switch,執行putchar('*')輸入*,k++進入下次迴圈

由於此次先後有++k,k++分別對k加1所以k=7;c=『\0』for終止程式結束

所以結果是b

2樓:匿名使用者

只在它那個複合語句裡有效

char str="ssswlia",c;//定義字元陣列和字元int k;//整形

for(k=2;(c=str[k])!='\0';k++)//迴圈從k=2 判斷 str[k] 是不是\0 \0代表字串結束

switch(c)//選擇

迴圈第一次 c=str[2];//c就是第三的個字元 s 字串下標從0開始

迴圈第一次 c=str[3];//c就是第三的個字元 w 字串下標從0開始

迴圈第三次 c是l就執行continue;後面不執行繼續迴圈四次 c=i break;退出迴圈

最後加了個*

所以sw*

3樓:

第一張,比如在一個函式中有個迴圈語句for(int i=0;i<10;i++),這個變數只在迴圈中有效, 不是函式內都有效。

第二章:定義了七個元素的字元陣列str,從下標0開始,也就是str[0]=s,str[1]=s....類推str[6]=a,

因為k=2,所以從str[2]是第三個數s,進入switch選擇結構,當這個字元為i時,結束本層迴圈,等於l的時候結束一次迴圈,即執行k+1後繼續判斷,其他情況在輸出那個字元後跳出本次迴圈,所以結果就是sw*

4樓:謎一樣的人

樓上說了第一題,我說第二題,第二題中char陣列是從0開始的,k=2表示第3個字元,所以最多隻有1個s,a選項排除,最後肯定執行putchar('*')所以結尾肯定是* 所以c d選項排除 選擇b

5樓:

d選項是因為宣告不對,第二張不是為你準備的,是為高材生準備的

c語言題,這道題怎麼寫啊,求詳解啊,謝謝

6樓:黃瑞

如果元素的下標不是偶數,並且是小寫字母,那麼變成大寫字母;結果為labced12df

c語言問題求詳解不要只有答案

7樓:匿名使用者

第1題 b

a選項,例:

void f()

int j;

int main()

很明顯 全域性變數j的作用域僅限於main函式區域性變數i作用域為f函式,但main函式中未使用j,實際上j的作用域為無。

c選項 函式的形參都是區域性變數

d選項 auto變數只有呼叫的時候才賦值,呼叫結束就釋放,所以無初值

static變數是靜態變數,程式啟動時就在全域性區分配了空間,而且被初始化為0或者空(null)

第2題 結果是 7

#define max(x,y) (x)>(y)?(x):(y)巨集定義,編譯的時候是直接替換,

t=max(5+2,3+3)*10等效於

t=(5+2)>(3+3)?(5+2):(3+3)*10=> t=7>6?7:60

結果為 7

第3題 結果是 4

int m=10; 定義全域性變數m;

int m=5; 定義了一個區域性變數m,作用域僅在f函式內部兩個m變數地址不同,互不干涉,所以f(6,7)的結果是47,47/10 的結果取整為4。

第4題 結果是 579

static int c=3;定義的是一個靜態變數,它僅在宣告時被首次初始化,即以後的函式

呼叫不再進行初始化,

第一次迴圈f(0)中c的值為4,a+b+c等效於0+1+4=5;

第二次迴圈f(1) 中c的值為5,a+b+c等效於1+1+5=7;

第三次迴圈f(2) 中c的值為6,a+b+c等效於2+1+6=9;

第5題 結果是 2

#define select(a,b) a

printf(「%d\n」,select(2,4))等效於printf(「%d\n」,2<4?2:4);其結果為 2.

8樓:愛豬豬的灰灰

先發前兩題,剩下的等會寫

c語言選擇題一個,求詳解

9樓:半世迷離的沉浮

a 是對的,換行會看的更加清晰。

#define size 10 //把size的巨集定義為10

char str1[size]的意思

就是char str1[10]

char str2[size+2]的意思就是char str2[12]

b,char str;裡面應該要放入具體的容量,比如 char str[10];

c,int num['10']是錯誤的,int num[10]是對的。

d是錯誤的,c語言不允許這種寫法,不允許定義的變數出現在陣列裡,因為變數值的改變,就會導致陣列的破壞,這樣會破壞程式的健壯性。

請教幾道c語言題 求詳解 主要解答我的問題就行,不好意思,題比較多辛苦了,回答得好的話,還有追加獎勵。

10樓:mis_丫

22、答案是1,vs2010下編譯結果是128、fun(&a[2],2)),傳進去的陣列是3,4,5,0,0,0,0,0

30、剛查了下,\x標示16進位制,即\x10 就是 10進位制的16,\xa 就是10進位制的10

32、這只是定義了一個指標,沒有指出指向**,不能賦值35、你題目沒打完吧

38、去看下變數定義規則,首字母不能使數字等,特殊字元不能當變數名等15、輸入abcde,ch=getchar() = 『a』 ,=='e'不成立,故跳出迴圈,應該是0次,vs下測試沒有*輸出

19、vs下執行結果-5

24、如果是2那他只有6個數

11樓:匿名使用者

主要解答我的問題就行,不好意思,題比較多辛苦了,回答得好的話,還有追加獎勵。

12樓:楊志回憶

第一題:是a。

0++x是1

||的運算方式是隻要前面為1,則後面不進行運算,結果肯定唯一++y && ++z這些實質上是沒有執行的語句

13樓:匿名使用者

22 '||'的優先順序比'&&'高,算出++x為真,後面就不計算了

28 fun(&a[2],2) -> 傳經去的陣列為 a[2]開始的兩個值,即為 3,4,求和當然是7

30 『\x』是轉義符號,表示16進位制,跟好面的數字組成一個值,算是一個8bit的字元。

32 陣列只能在變數初始化的時候整體賦值,c是在變數初始化後賦值,要通過字串操作函式如strcpy或者memcpy等來操作。

35 題目沒寫全,f(b, s後面是什麼?

38 只看到3個選項,d在那裡?double 1_d=1.5e2 錯在變數不能以數字開頭

15 看清楚題目「while迴圈體」,注意迴圈體指的是「printf("*")」這一句,只有輸入為e的時候才會執行一次。

19 無解,我執行的結果是 -5

20 c語言語法如此,請看c語言教程。多維陣列的陣列長度是一樣的,a[3]的數字3已經決定了,a[0],a[1]]的長度都是3.

一道c語言陣列的問題,求詳解。

14樓:匿名使用者

d其他定義的問題:

t.c:9:

13: warning: incompatible pointer to integer conversion initializing 'int' with an expression of type 'char [8]' [-wint-conversion]

int a = ;

^~~~~~~~~

t.c:10:22: warning: excess elements in array initializer

int b[4] = ;

^t.c:11:

12: warning: incompatible pointer to integer conversion initializing 'char' with an expression of type 'char [8]' [-wint-conversion]

char c = ;

^~~~~~~~~

三方協議丟了一張,第一張是學校留存,第二張是用人單位留存,第

念憶 已落實就業單位遺失三方協議 1 因單位原因造成就業協議書丟失的,由原單位出具就業協議書丟失證明2 登報宣告,即在當地省級以上報刊刊登三方協議遺失宣告4 提交相關材料 遺失登報報紙 補辦就業協議申請書等 進行補辦。 都市尋幽 如果是去國企或者國家機關的話,需要按流程申報,補發。私企什麼的就不用管...

拍立得拍照,第一張拍出來有影象,再拍五張都是全黑,是新的相紙

23毫升 你是不是把相紙殼開啟了,把相紙盒開啟的話,相機就 了,大部門相紙都會報廢,下次要把整盒放進一起相機的相紙盒的。那樣就不會黑了,滿意採納哦 無敵的澍 我也是這樣,一模一樣啊,我又換了電池,還是不行,都是黑得,你解決了嗎 別說我不懂 新買的?我剛想買的,考慮什麼畫素 像頭好不好的?你那像頭怎麼...

世界第一張紙幣是誰發明的

宋代初期,把後蜀政權所轄地域分為兩川 峽西兩路,亦稱兩川。宋真宗鹹平四年 1001年 把兩路分為四路,即益州 梓州 利州 夔州,合稱川峽四路,簡稱四川路,四川的地域名稱就基本形成了 四川 路本是四個行政單位,為什麼要把它們連起來稱呼呢?這是因為它們同屬於一個完整的經濟區域,因此,在貨幣的使用上它也享...