C語言答案 解析,C語言問題,要答案和解析

2021-07-04 15:33:58 字數 6221 閱讀 9595

1樓:

d. 4 sizeof("key") 得到'k','e','y','\0' 四個字元佔用的記憶體位元組數

-> 優先順序高於++

p++->x 也就是 p->x 然後 p++

++p->y 也就是 ++(p->y) 所以被++的是 p指向的y,而不是p

(a+3)->x

(a+3) 就是a[3]

printf("%d,", p++->x); 先輸出a[0].x 然後p加1 指向a[1]

printf("%d,", ++p->y); 先得到a[1].y,然後 a[1].y 加1,變為41,最後輸出41

printf("%d\n", (a+3)->x); 輸出a[3].x 70

2樓:在路上再堅持

d,10,41,70

c語言問題,要答案和解析

3樓:182盤

顯然是b,a和c實際上是一個意思,p變數是一個指標變數,其中儲存的是地址,直接將整型字面值常量賦值給指標變數肯定不行,d中將地址與整型字面值常量相加本身就有問題

4樓:

b p=&a[5]; 正確,選b。

c語言 尋答案、解析

5樓:匿名使用者

#include

main()

if(a/10>0) //這是計算該數有幾位數//

t++;

if(a/100>0)

t++;

if(a/1000>0)

t++;

printf("它是一個%d位數\n",t);

printf("千位為%d\n",a/1000); //分別輸出每一位數字//

printf("百位為%d\n",(a-a/1000*1000)/100);

printf("十位為%d\n",(a-a/100*100)/10);

printf("個位為%d\n",(a-a/10*10));

b=a/1000; //這是逆序輸出//

c=a-a/1000*1000/100;

d=a-a/100*100/10;

e=a-a/10*10;

if(t==4) a=e*1000+d*100+c*10+b;

if(t==3) a=e*100+d*10+c;

if(t==2) a=e*10+d*;

printf("逆序輸出為%d",a);}

6樓:華師來的

#include

int main()

printf("%d\n",i);

for(int k=i-1;k>=0;k--)printf("%d ",b[k]);

printf("\n");

for(int j=0;j

printf("%d ",b[j]);}

7樓:超大個蘿唄

#include

main()

else

printf("%ld是三位數,逆序輸出為%d%d%d",a,f,e,d);

}else

printf("%ld是四位數,逆序輸出為%d%d%d%d",a,f,e,d,c);

}else

printf("%ld是五位數,逆序輸出為%d%d%d%d%d",a,f,e,d,c,b);

printf("\n");}}

c語言,求答案和解析

8樓:古神孤鴻

第一題答案1111222334!解析:當i=0表示式值與常量表示式值不相等,不輸出!

當i=1執行輸出case1和其後的語句得出1111!當i=2時,輸入case2和後面語句得出222!當i=3時 ,,,,依次如此!

第二題答案

1 6 10 13 15

2 7 11 14

3 8 12

4 95

解析:第一個迴圈當i=1,i<=5輸出5行。把a的值賦予給k,k=1。

當j=1時,帶入k=1+(n-j+1),得出k=6。當j=2時,依次迴圈6+(n-j+1),得出10,依次迴圈!每次換行時,a=a+1

求c語言答案解析 20

9樓:匿名使用者

#include

int main() ,i;

fp = fopen("d2.dat","wb");

fwrite(a,sizeof(int),5,fp);//將陣列a的前5個元素,即1 2 3 0 0寫入檔案

fwrite(a,sizeof(int),5,fp);//再一次將陣列a的前5個元素,即1 2 3 0 0寫入檔案

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);//一次性讀出檔案中的10個元素

fclose(fp);

for(i = 0;i < 10;i++) //輸出結構應該是1 2 3 0 0 1 2 3 0 0

printf("%d",a[i]);

printf("\n");

return 0;}

10樓:1223永遠不棄

你知道fwrite()和fread()這兩個操作函式功能,這題目就知道了

c語言讀程式的5道題,有答案,淚求詳細的解析啊 100

11樓:袁世平

因為"=="是判斷等號兩邊的值是否相等的語句。

c語言中的「=」是賦值,「==」才是判斷。

等號左邊是x,它的值為3,右邊是y+z,因為"+"的運算優先順序大於"=="所以先執行y+z,得到表示式的值為1+0=1.

所以if(x==y+z)等價於判斷 if(3==1),"3==1"的返回值自然是false

於是不執行if()語句下的語句,而是執行else中的printf("+++");

所以最後的輸出是 +++

啊,是五道題啊...不是第五題...

沒看清楚,不好意思。

等下補答

1. 字首"--"和字尾"--"的區別:字首返回的是值改變之後的值,字尾返回的是改變之前的值。

所以輸出的一個是字尾的10,一個是字首的9.

當然如果你再printf("%d,%d",x,y);就都輸出9了。

2. 因為x,y,z都是整型變數,所以x/y的返回值是整除的值,也就是商。

10/3=3餘1,而%相當於mod,也就是10對3取模。取模運算只能對整數進行。

在兩個數都是正整數的時候就等於除法的餘數,也就是1。

z=(x/y)是賦值語句返回的值就是改變後的z。

3. 可以看到,它printf的是兩個表示式的值。而且是兩個邏輯表示式。

第一個是(a+b>c && b==c) 「&&」表示且,也就是當兩個都為真的時候返回true,任意一個為假,返回false,可以看到a+b>c是true,而b==c是false,所以返回值是false,因為是以整數形式輸出,那麼就是true=1,false=0.

第二個式子是c>b>a,c語言中沒有連比,這個式子會從左算到右。即(c>b)>a。

其中c>b是true,因為要和a這個整型變數比,所以會強制轉int變成1,然後1>a返回值就是false了。

4. 也是前置和後置的問題。m=++i 返回的是i=i+1之後的值。也就是6,n=j--返回的是變化之前的值就是12.

12樓:匿名使用者

第一題:--x的意思是先計算x=x-1,再用x的值,x--的意思是先用x的值,在計算x=x-1;

第二題:x/y因為x和y有時int型別,所以結果也是int型別,10/3剩3餘1,把1去掉,就是3了,10%3餘了1;

第五題:x=y+z等效於3==(1+0),就是判斷3核0相等碼,不相等執行else

第四題:這題和第一題是一樣的思路

第三題:相當於(3+4)>5&&4==5和(5>4)>3

其中4==5是假的,所以第一個為0 5>4是真的,所以值為1,等效於1>3,很明 顯是家的,為0望採納

13樓:匿名使用者

// 程式一:

#include

int main()

// 程式二:

#include

int main()

// 程式三:

#include

int main()

// 程式四:

#include

int main()

// 程式五:

#include

int main()

else

}// 程式六:

#include

int main()

printf("%d,%d",x,y);// x等於0,所以都不符合switch語句裡的條件,所以結果為0,0。}

南方醫科大學c語言題庫答案和解析

c語言,答案解釋

14樓:

正確答案是b。%2d雖然限制2位,但實際資料多於2位時按實際位數輸出,所以輸入201。b的值被初始化為012,c/c++規定以0開頭的數是八進位制,而八進位制12就是十進位制10,第二個%2d要求是按十進位制輸出,所以輸出的b值是10。

故b正確。

15樓:手在鍵盤敲很輕

解析:本題中,pfintf(「%2d,%2d\n」,a,b)表示輸出形式是十進位制整數,域寬是2,而在c語言中規定:當域寬小於實際寬度時域寬不起作用,按實際寬度輸出,此外本題關鍵在於b是八進位制表示,轉化成十進位制,即10,因此最後的輸出值為201和10。

望採納!

16樓:匿名使用者

012是八進位制,轉換成10進製為2×8^0+2×8^1=10

17樓:匿名使用者

我想問d答案是什麼?

c語言 簡單試題解析

18樓:匿名使用者

很好理解啊。首先是一個三橫三列的陣列啊。不知道你這個陣列有沒有寫錯啊。

我感覺少了幾個數似的{1,0,2},,{0,2}。少了的數我以0代替了。如果沒有少數,那也是個零。

1 0 2

2 2 0

0 2 0

i,j這個迴圈我就不說了啊。

在迴圈裡的意思就是:

i=a[i][j]

j=a[j][i]

這裡的ij是針對那個括號裡而言的。

c=a[i][j]

然後再求c[i][j]

最後就是 輸出c[i][j];

19樓:遊遊娛樂

首先定義了一個二維陣列,後面的是對這個陣列賦值可以得到a[0][0]=1,a[0][1]=0,a[0][2]=2a[1][0]=2,a[1][1]=2,a[1][2]=0a[2][0]=0,a[2][1]=2,a[2][2]=0接下來是兩個迴圈,一般二維陣列需要兩個迴圈才可以把所有值列印出來。

c[i][j]=a[a[i][j]][a[j][i]],這條語句要想把等號右邊a[i][j],a[j][i]用上面的賦值的替換出來。比方說第一次i=0,j=0,可知c[i][j]=a[a[0][0]][a[0][0]]=a[1][1]=2 下面的都是一樣的,然後班a輸出到螢幕。這個迴圈迴圈了9次。

最後printf,有一個格式化輸出%5d,就是輸出一個整數,佔5個位置,右對齊。

20樓:匿名使用者

0 1 2

0 1 0 2

1 2 2 0

2 0 2 0

陣列a,只指定兩個的,第三個為0

i = 0, j = 0, a[i][j]即a[0][0]即1, a[j][i]也是1, c[i][j] = a[1][1]=2

i = 0, j = 1

i = 0, j = 2

i = 1, j = 0

i = 1, j = 1

i = 1, j = 2

i = 2, j = 0

i = 2, j = 1

i = 2, j = 2

按這樣的方法,自己算

c語言尋答案 解析

include main if a 10 0 這是計算該數有幾位數 t if a 100 0 t if a 1000 0 t printf 它是一個 d位數 n t printf 千位為 d n a 1000 分別輸出每一位數字 printf 百位為 d n a a 1000 1000 100 pr...

求C語言答案,求C語言答案

17 設變數a是整型,f是實型,i是雙精度型,則表示式 10 a i f 的值的資料型別為 c a int b float c double d 不確定 18 邏輯運算子兩側運算物件的資料型別。d a 只能是0或1 b 只能是0或非0正數 c 只能是整型或字元型資料 d 可以是任何型別的資料 19 ...

C語言程式解析,c語言程式詳解

一看就是個數列問題 從n 1,p t 1 p 2009,s s t 2009 n 2 p i 1 t 1 p 2009 s s t 2009 t 2009 i 2 t 1 p 2009 p 2009 j 1 s s t 2009 t 2009 t 2009 j 2 s s t 2009 t 2009...