九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

第四章習題

上傳人:2127513****773577... 文檔編號:61137235 上傳時間:2022-03-10 格式:DOC 頁數(shù):9 大?。?0KB
收藏 版權申訴 舉報 下載
第四章習題_第1頁
第1頁 / 共9頁
第四章習題_第2頁
第2頁 / 共9頁
第四章習題_第3頁
第3頁 / 共9頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《第四章習題》由會員分享,可在線閱讀,更多相關《第四章習題(9頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、精選優(yōu)質文檔-----傾情為你奉上 習 題 1. C語言有哪些特點? 答:C語言具有以下特點: 1) 語言簡潔、緊湊,使用方便、靈活 2) 運算符豐富 3) 數(shù)據(jù)結構豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結構 4) 可進行結構化程序設計 5) 可以直接對計算機硬件進行操作 6) 生成的目標代碼質量高,程序執(zhí)行效率高 7) 可移植性好 2. 有哪些數(shù)據(jù)類型是MCS-51單片機直接支持的? 答:MCS-51單片機直接支持的數(shù)據(jù)類型標準分為基本數(shù)據(jù)類型和組合數(shù)據(jù)類型,基本數(shù)據(jù)類型有字符型char、短整型short、整型int、長整型long、浮點型float、雙精度型doubl

2、e、特殊功能寄存器型和位類型,其中char型與short型相同,float型與double型相同。組合數(shù)據(jù)類型有數(shù)組類型、結構體類型、共同體類型和枚舉類型,另外還有指針類型和空類型。 3. C51特有的數(shù)據(jù)類型有哪些? 答:C51特有的數(shù)據(jù)類型有特殊功能寄存器型和位類型。 4. C51中的存儲器類型有幾種,它們分別表示的存儲器區(qū)域是什么? 答:C51中的存儲器類型有6種,分別如下: data:直接尋址的片內RAM低128B,訪問速度快 bdata:片內RAM的可位尋址區(qū)(20H~2FH),允許字節(jié)和位混合訪問 idata:間接尋址訪問的片內RAM,允許訪問全部片內RAM pda

3、ta:用Ri間接訪問的片外RAM低256B xdata:用DPTR間接訪問的片外RAM,允許訪問全部64KB片外RAM code:程序存儲器ROM?64KB空間 5. 在C51中,bit位與sbit位有什么區(qū)別? 答:bit位類型符用于定義一般的位變量。存儲器類型只能是bdata、data、idata,只能是片內RAM的可位尋址區(qū),嚴格來說只能是bdata。 sbit位類型符用于定義在可位尋址字節(jié)或特殊功能寄存器中的位,定義時需指明其位地址,可以是位直接地址,可以是可位尋址變量帶位號,也可以是特殊功能寄存器名帶位號。 6. 在C51中,通過絕對地址來訪問的存儲器有幾種? 答:通過

4、絕對地址來訪問存儲器有三種方法:1. 使用C51運行庫中預定義宏。2. 通過指針訪問。3. 使用C51擴展關鍵字_at_ 7. 在C51中,中斷函數(shù)與一般函數(shù)有什么不同? 答:中斷函數(shù)在定義時后面帶interrupt m修飾符,m的取值為0~31,對應的中斷情況如下:0——外部中斷0,1——定時/計數(shù)器T0,2——外部中斷1,3——定時/計數(shù)器T1,4——串行口中斷,5——定時/計數(shù)器T2,其他值預留。 編寫MCS-51中斷函數(shù)需要注意如下幾點。 (1) 中斷函數(shù)不能進行參數(shù)傳遞,如果中斷函數(shù)中包含任何參數(shù)聲明都將導致編譯出錯。 (2) 中斷函數(shù)沒有返回值。 (3) 在任何情況

5、下都不能直接調用中斷函數(shù) (4) 如果在中斷函數(shù)中調用了其他函數(shù),則被調用函數(shù)所使用的寄存器必須與中斷函數(shù)相同,否則會產生不正確的結果。 (5) C51編譯器對中斷函數(shù)編譯時會自動在程序開始和結束處加上相應的內容。 (6) C51編譯器從絕對地址8m+3處產生一個中斷向量,其中m為中斷號,也即interrupt后面的數(shù)字。該向量包含一個到中斷函數(shù)入口地址的絕對跳轉。 (7) 中斷函數(shù)最好寫在文件的尾部,并且禁止使用extern存儲類型說明。防止其他程序調用。 8. 按給定的存儲類型和數(shù)據(jù)類型,寫出下列變量的說明形式。 (1) 在data區(qū)定義字符變量val1。 char dat

6、a val1; (2) 在idata區(qū)定義整型變量val2。 int idata val2; (3) 在xdata區(qū)定義無符號字符型數(shù)組val3[4]。 unsigned char xdata val3[4]; (4) 在xdata區(qū)定義一個指向char類型的指針px。 char xdata *px; (5) 定義可尋址位變量flag。 bit flag; (6) 定義特殊功能寄存器變量P3。 sfr P3=0xa0; (7) 定義特殊功能寄存器變量SCON。 sfr SCON=0x98; (8) 定義16位的特殊功能寄存器T0。 sfr16 T0=

7、0x8a; 9. 寫出下列關系表達式或邏輯表達式的結果,設a=3,b=4,c=5。 (1) a+b>c&&b= =c 結果:假 (2) a||b+c&&b-c 結果:真 (3) !(a>b)&&!c||1 結果:真 (4) !(a+b)+c-1&&b+c/2 結果:假 10. 寫出下列C51程序的執(zhí)行結果。 (1) #include extern serial_initial(); main() { int x,y,z; serial_initial(); x=y=8;z=++x

8、; printf("\n %d %d %d",y,z,x); x=y=8;z=x++; printf("\n %d %d %d",y,z,x); x=y=8;z=--x; printf("\n %d %d %d",y,z,x); x=y=8;z=x--; printf("\n %d %d %d",y,z,x); printf("\n"); while(1); } 結果: 8 9 9 8 8 9 8 7 7 8 8 7 (2) #include extern serial_initial();main()

9、 { int x,y,z; serial_initial(); printf("input data x,y?\n"); scanf("%d %d",&x,&y); printf("\n x y xy x>=y x!=y x==y"); printf("\n"); printf("\n%3d%3d",x,y); z=xy; printf("%5d",z); z=x>=y; printf("%5d",z);

10、z=x!=y; printf("%5d",z); z=x==y; printf("%5d",z); while(1); } 執(zhí)行結果: input data x,y? 1 2 x y xy x>=y x!=y x==y 1 2 1 1 0 0 1 0 (3) #include extern serial_initial(); main() { int x,y,z; serial_initial(); printf("input data x, y ?\n"); s

11、canf("%d %d",&x,&y); printf("\n x y !x x||y x&&y"); printf("\n%3d%3d",x,y); z=!y; printf("%5d",z); z=x||y; printf("%5d",z); z=x&&y; printf("%5d",z); printf("\n");printf("\n"); printf("That is all\n"); while(1); } 執(zhí)行結果: input data x, y ? x y !x x||y x&&y 1

12、 2 0 1 1 That is all (4) #include extern serial_initial(); main() { int a,b; unsigned int x,y; serial_initial(); a=b=0xaa55;x=y=0xaa55; printf("\n a=%4x b=%4x x=%4x y=%4x",a,b,x,y); a=a<<1;b=b>>1; x=x<<1;y=y>>1; printf("\n a=%4x b=%4x x=%4x y=%4x",a,b,x,y); pri

13、ntf("\n"); printf("\n"); printf("That is all.\n"); while(1); } 執(zhí)行結果: a=aa55 b=aa55 x=aa55 y=aa55 a=54aa b=d52a x=54aa y=552a That is all. 11. break和continue語句的區(qū)別是什么? 答:break語句可以跳出switch結構,使程序繼續(xù)執(zhí)行switch結構后面的一個語句。break語句還可以從循環(huán)體中跳出循環(huán),提前結束循環(huán)而接著執(zhí)行循環(huán)結構下面的語句。 continue語句用在循環(huán)結構中,用于結束本次循環(huán),跳過循環(huán)體

14、中continue下面尚未執(zhí)行的語句,直接進行下一次是否執(zhí)行循環(huán)的判定。 continue語句和break語句的區(qū)別在于:continue語句只是結束本次循環(huán)而不是終止整個循環(huán);break語句則是結束循環(huán),不再進行條件判斷。 12. 用分支結構編程實現(xiàn):輸入“1”顯示“A”,輸入“2”顯示“B”,輸入“3”顯示“C”,輸入“4”顯示“D”,輸入“5”結束。 參考程序: #include #include void main(void) { unsigned char x; SCON=0x52

15、; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; while(1) { printf("input x:\n"); //輸出提示信息 scanf("%c",&x); switch(x) { case '1':printf(" A\n");break; case '2':printf(" B\n");break; case '3':printf(" C\n");break; case '4':printf(" D\n");break; case '5':printf(" QUIT\n");

16、break; default: printf(" RETRY\n");; } if (x=='5') break; } while(1); } 13. 輸入3個無符號的字符數(shù)據(jù),要求按由大到小的順序輸出。 參考程序: #include #include void main(void) { unsigned char x,y,z,m; SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; printf("inpu

17、t x,y,z:"); //輸出提示信息 scanf("%c,%c,%c",&x,&y,&z); printf("\n"); if (x //包含特殊功能寄存器庫

18、#include //包含I/O函數(shù)庫 void main(void) //主函數(shù) { int i,s=0; //定義整型變量 i=1; SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; while (i<=10) //累加1到10的平方之和在s中 { s=s+i*i; i++; } printf("1到10的平方之和=%d\n",s); while(1); } (2)do while循環(huán) #include //包含特

19、殊功能寄存器庫 #include //包含I/O函數(shù)庫 void main(void) //主函數(shù) { int i,s=0; //定義整型變量 i=1; SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; do //累加1到10的平方之和在s中 { s=s+i*i; i++; } while (i<=10); printf("1到10的平方之和=%d\n",s); while(1); } (3)for循環(huán) #include <

20、reg52.h> //包含特殊功能寄存器庫 #include //包含I/O函數(shù)庫 void main(void) //主函數(shù) { int i,s=0; //定義整型變量 SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; for (i=1;i<=10;i++) s=s+i*i; //累加1到10的平方之和在s中 printf("1到10的平方之和=%d\n",s); while(1); } 15. 對一個由5個元素組成的無符號字符數(shù)組按由

21、小到大的順序進行排序。 參考程序: #include //包含特殊功能寄存器庫 #include //包含I/O函數(shù)庫 main() { unsigned char f[5],m,i,j; SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; printf("輸入任意5個字符:"); scanf("%c,%c,%c,%c,%c",&f[0],&f[1],&f[2],&f[3],&f[4]); printf("\n"); for (i=0;i<5;i+

22、+) for (j=0;j<5-i;j++) if (f[j]>f[j+1]) {m=f[j];f[j]=f[j+1];f[j+1]=m;} printf("由小到大的順序為:%c,%c,%c,%c,%c ",f[0],f[1],f[2],f[3],f[4]); printf("\n"); while(1); } 16. 用指針實現(xiàn),輸入3個無符號字符數(shù)據(jù),按由大到小的順序輸出。 參考程序: #include //包含特殊功能寄存器庫 #include //包含I/O函數(shù)庫 main() { unsig

23、ned char x,y,z; unsigned char *p,*p1,*p2,*p3; SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; printf("input x,y and z:\n"); scanf("%c,%c,%c",&x,&y,&z); printf("\n"); p1=&x;p2=&y; p3=&z; if (*p1<*p2) {p=p1;p1=p2;p2=p;} if (*p2<*p3) {p=p2;p2=p3;p3=p;} if (*p1<*p2) {p=p1;p1=p2;p2=

24、p;} printf("max to min is:%c,%c,%c\n",*p1,*p2,*p3); while(1); } 17. 有3個學生,每個學生都包括學號、姓名和成績,要求找出成績最高的學生的姓名和成績。 參考程序: #include //包含特殊功能寄存器庫 #include //包含I/O函數(shù)庫 struct student { unsigned char number[10]; unsigned char name[10]; unsigned int grade; }p1[3];

25、 main() { unsigned char i,j=0; SCON=0x52; //串口初始化 TMOD=0x20; TH1=0XF3; TR1=1; printf("input 3 studend number,name and grade:\n"); for (i=0;i<3;i++) { printf("input number:\n"); scanf("%s",p1[i]. number); printf("input name:\n"); scanf("%s",p1[i].name); printf("input grade:\n"); scanf("%d",&p1[i].grade); } for (i=1;i<3;i++) { if (p1[i].grade>p1[j].grade) j=i; } printf("成績最高的學生是:%s,成績是:%d",p1[j].name,p1[j].grade); printf("\n"); } while(1); } 專心---專注---專業(yè)

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔

相關搜索

關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!