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語言,求答案和解析
微笑載心 答案 8 解析 第一個s a a的值是5,此處a是區域性變數int a 5 的那個a,語句s a 你可以認為對s的影響只有s a 所以s的結果就是s s a 0 5 5 第二個s a 此處的a是 include後面定義的那個int a 3 這個全域性變數,所以a 3 注意上面的區域性變臉i...
求助C語言答案,求助C語言試題答案
題在這 問題不讓發那麼多字 1 main int sum 0,i,j for i 0 i 3 i for j 0 j 3 j printf sum d sum 2 main printf i d,s d n i,s 3 main 4 include main 5 main for i 0 i 9 i...