① c語言第7題,為什麼結果是23
你的第一個小程序有一點小問題,你多打了個'}'.第一題a=4,b=5,這道題的目的就是統計1~9之間能被2整除的數的個數(2.4.6.8),和不能被2整除的數的個缺悄數(1.3.5.7.9),第二道題的值為橋擾91,第二道題的目地是統計1~49中既能被3整除,又能被5整除的數(15.30.45)又伏消渣因為s初值為1.所以最後值為91
② c語言 int i=23; printf("%d\n",printf("%d",printf("%d",i))):的運行結果為什麼是2321
printf的返回值是已輸出的字脊洞鉛符量,是int型。
比如說。
a=printf("abcdefg");
則一共輸出了七個字元,所以a的值為7
你這句中,最開始運行的是最內層的printf("%d"顫宴,i) 就會將23輸出,一共輸出了2個字元。
所以運行整句話,先輸出了23,然後將2(這個2是由printf("%d",i)返回值產生的)送櫻好給下一級:
printf("%d",printf("%d",i)); 所以接著會輸出2。即232了,最後因為printf("%d",printf("%d",i));
這一級只輸出了個2這個字元。所以其返回值為1,再由下一級printf("%d\n",printf("%d",printf("%d",i)));將1輸出。因此是2321
希望我的回答對你有幫助。
③ C語言輸出結果
輸出的結果應該是2 3 因為printf("\n"野指);在for循環頃備外面雀脊毀所以這兩個數之間沒有換行
根據int aa[3][3]={{2},{4},{6}};可以知道a[0][0]=2,a[1][0]=4,a[2][0]=6;
for循環中,一開始i=0,所以if成立,a[0][1]=*p+1=2+1=3,接下來printf("%d",*p);這個時候指針p還是指向a[0][0]的地址,所以*p=a[0][0]=2;
然後i=1;if不成立,++p;所以指針p+1,這個時候指向a[0][0]的下一個地址,是a[0][1]=3接下來printf("%d",*p),這個時候*p=3,所以輸出23
④ C語言運行結果的時候為什麼會出現負數
你的值超過int表示的最大正數了,
int類型換成unsigned
int
或者double
類型試試,輸出結果的時候,不輸出小數點
⑤ 一道C語言題,從鍵盤輸入23,為什麼輸出結果是32
程序實現的是按位數從低到高依次輸出各位數,如輸入23,輸出32,輸入1857,輸出7581;
舉例輸入1857,do循環第一次先執行循環體c=num%10,對10取余,c=7,輸出7;
然後執行num/=10,即num=num/10,即num=185>0,繼續取余,得到c=5輸出5;
再次執行num/=10,即num=18>0,繼續得到c=8;
繼續num/=10後num=1,取余得到c=1;
然後此時num=1再進行num/10後得到num=0,不符合>0則退出循環,最終輸出7581。
⑥ 想問一下這道c語言題23是怎麼算出來的
宏不是函數,它就是簡單的字元替換而已
SQR(3+k)/SQR(2+m); 被替換為 3+2*3+2/2+1*2+1==13 ,於是a+=13得a==23
要使SQR(3+k)/SQR(2+m)的結果是25/9, 可以給宏定義多加些括弧:
#define SQR(X) ((X)*(X))
⑦ C語言19&23的值是什麼
19二進製表示10011
23二進製表示10111
按位與操作,同為1時才是1
所以結果表示10011
也就是19或者0x13