本文目錄一覽:
- 1、C語言程序如下輸出為什麼是39???
- 2、C語言中輸入39要輸出12,就是3加9怎麼弄
- 3、C語言程序設計裡面的39個關鍵字,哪些一般不使用,也就是一般考試不會考呢?
- 4、C語言 39. 填空題 以下程序的運行結果是________。
- 5、C語言,運行為什麼是39?
C語言程序如下輸出為什麼是39???
short類型是2個字節,但存0x39時,高字節是0,低字節存0x39,而c[0]大小是一個字節,剛好對應0x39所以輸出就是39了
同理c[1] 輸出是0, c[2]輸出是38……
數組的第0個元素在低位,我覺得再加上“int數組元素高位在前”會好理解點,其實就是告訴你c[0]對應的是39,而不是0
C語言中輸入39要輸出12,就是3加9怎麼弄
參考代碼:
#includestdio.h
int fun(int n){
int sum=0;
while(n){
sum+=n%10;
n/=10;
}
return sum;
}
int main(){
int n;
scanf(“%d”,n);
printf(“%d\n”,fun(n));
return 0;
}
C語言程序設計裡面的39個關鍵字,哪些一般不使用,也就是一般考試不會考呢?
volatile:說明變量在程序執行中可被隱含地改變。就這一個基本不會出現。其他的就難說了,給你理出來1 數據類型關鍵字(12個): (1) char :聲明字符型變量或函數
(2) double :聲明雙精度變量或函數
(3) enum :聲明枚舉類型
(4) float:聲明浮點型變量或函數
(5) int: 聲明整型變量或函數
(6) long :聲明長整型變量或函數
(7) short :聲明短整型變量或函數
(8) signed:聲明有符號類型變量或函數
(9) struct:聲明結構體變量或函數
(10) union:聲明共用體(聯合)數據類型
(11) unsigned:聲明無符號類型變量或函數
(12) void :聲明函數無返回值或無參數,聲明無類型指針(基本上就這三個作用)
2控制語句關鍵字(12個): A循環語句
(1) for:一種循環語句(可意會不可言傳)
(2) do :循環語句的循環體
(3) while :循環語句的循環條件
(4) break:跳出當前循環
(5) continue:結束當前循環,開始下一輪循環
B條件語句
(1)if: 條件語句
(2)else :條件語句否定分支(與 if 連用)
(3)goto:無條件跳轉語句
C開關語句
(1)switch :用於開關語句
(2)case:開關語句分支
(3)default:開關語句中的“其他”分支
D返回語句
return :子程序返回語句(可以帶參數,也看不帶參數)
3 存儲類型關鍵字(4個) (1)auto :聲明自動變量 一般不使用
(2)extern:聲明變量是在其他文件正聲明(也可以看做是引用變量)
(3)register:聲明積存器變量
(4)static :聲明靜態變量
4 其它關鍵字(4個): (1)const :聲明只讀變量
(2)sizeof:計算數據類型長度
(3)typedef:用以給數據類型取別名(當然還有其他作用
(4)volatile:說明變量在程序執行中可被隱含地改變
二、C語言中的9中控制語句 goto語句:無條件轉向;
if語句:判斷語句;
while循環語句;
do-while語句:先執行循環體,然後判斷循環條件是否成立. 之後繼續循環;
for語句:循環,可替代while語句; 只是用法不同;
break語句跳出本層的循環;(只跳出包含此語句的循環)
continue語句:繼續(一般放到循環語句里,不在執行它下面的語句,直接跳到判斷語句例:for語句,就直接跳到第二個分號處,while語句,就直接跳到while()的括號里;
switch語句:多相選擇;
return語句:返回;
C語言 39. 填空題 以下程序的運行結果是________。
MAIN: x= 5 y= 1 n= 1
FUNC: x= 6 y=21 n=11
MAIN: x= 5 y= 1 n=11
FUNC: x= 8 y=31 n=21
C語言,運行為什麼是39?
在主函數中聲明了一個共用體,r,並且定義了一個共用體指針s,共用體的大小為結構體中最大元素的大小,這裡short i[2]的大小為,4,long 的大小為4,char c[4]的大小為4,故共用體大小為4,s-i[0] = 0x39 即將16進制的39放在i[0]的位置上。s-i[1] = 0x38即將16進制的38放在i[1]的位置上。這時內存的存儲為 00 00 00 00 | 00 11 10 00 | 00 00 00 00 | 00 11 10 01 用 | 分開字節。根據內存中存儲的規律,故s-i[0],先存儲,故寫在右邊。這時若利用s-c[0]輸出,這時s-c[0]對應內存00 11 10 01,s-c[1]對應內存00 00 00 00,s-c[2]對應內存00 11 10 00,s-c[4]對應內存00 00 00 00。printf(“%x\n”,s-c[0]);表示以16進制整數輸出,s-c[0]對應的內存為00 11 10 01,故輸出39.
希望能有幫助~~
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/160784.html