《嵌入式C程序设计》期末复习资料.docx
- 文档编号:7043197
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:27
- 大小:34.33KB
《嵌入式C程序设计》期末复习资料.docx
《《嵌入式C程序设计》期末复习资料.docx》由会员分享,可在线阅读,更多相关《《嵌入式C程序设计》期末复习资料.docx(27页珍藏版)》请在冰豆网上搜索。
《嵌入式C程序设计》期末复习资料
《嵌入式C程序设计》复习资料
参考答案
适用班级:
计应用ZK1101、计应用ZB1101、游戏软件ZK1101、软件外包ZK1101-02
第一部分基础知识
1、用语句实现以下功能:
(1)变量iNum1与iNum2的和,赋值给iResult
iResult=iNum1+iNum2;
(2)z是x除以2所得的余数
z=x%2;
(3)z是a、b、b三个整数的平均值
z=(a+b+b)/3.0;
(4)v是长宽高分别为x、y、z的长方体的表面积
v=(x*y+y*z+x*z)*2;
(5)Num的值减1
Num--;
(6)y不大于a
y<=a;
(7)a、b、c三个数相等
a==b==c;
(8)i小于j或小于k
i (9)i和j都小于k i (10)i和j中只有一个小于k (i (11)i是非负数 i>=0; (12)i是奇数 (i%2)! =0 (13)i不能被j整除 (i%j)! =0 (14)把变量x的值增加10 i+=10; (15)把变量x的值减少1 i=i--; (16)将a与b之和的两倍赋值给c C=2*(a+b); (17)将a与两倍的b之和赋值给c C=a+2*b; (18)把n除以k所得的余数赋值给m m=n%k; (19)用b减去a的差去除q,结果赋给p p=(b-a)/q; (20)用a与b的和除以c与d的乘积,结果赋给x x=(a+b)/(c+d); 2、指出下列程序语句的错误,写出正确的程序 (1) (2) (3) intmain(void) { x=0; y=20; z=x+y; return0; } intmain(void) { intiNum1=20; intiNum2=70; iNum3=iNum1+iNum2; return0; } intmain(void) { inta=20; intb=70; unsignedintc=a-b; return0; } (1) (2) (3) intmain(void) { intx,y,z; x=0; y=20; z=x+y; return0; } intmain(void) { intiNum1=20,iNum3; intiNum2=70; iNum3=iNum1+iNum2; return0; } intmain(void) { inta=20; intb=70; unsignedintc=a-b; return0; } 3、选择 (1)已有语句“intix=5,iy;”,不能给iy赋值为2的语句是(B) A)iy=ix/2;B)iy=iy+2; C)iy=7%ix;D)iy=5,iy=2; (2)已有语句“intix=13,iy=6,iz”,执行语句“iz=ix/iy+0.4;”后,iz的值是(A) A)2.4B)2C)2.0D)2.9 (3)表达式“(int)1.6*2+7/3–4%3”的值是(B) A)2B)3C)4D)5 (4)已有语句“intiTemp=11;”,则表达式(iTemp++*1/3)的值是(A) A)3B)4C)11D)12 (5)参与运算的必须是整数的运算符是(A) A)%B)/C)-D)* (6)以下选项中,与nResult=nCount++完全等价的表达式是(A) A)nResult=nCount,nCount=nCount+1 B)nCount=nCount+1,nResult=nCount C)nResult=++nCount D)nResult=nResult+(nCount+1) 第二部分顺序结构程序设计 (1)编程,输入一个小写字母,输出其对应的大写字母 #include“stdio.h” main() { charc; c=getchar() c=c-32; printf(“%c”,c); } (2)编程,输入一个三位数,把三个数字逆序组成一个新数,再输出。 例如输入369,则输出963。 #include"stdio.h" main() { inta,x,y,z,m; scanf("%d",&a); x=a/100; y=a/10; z=a%10; m=z*100+y*10+x; printf("theendis%d\n",m); } (3)某大学内,学生的学号(8位)由学生的公寓号(1位)、楼层号(2位)、寝室号(3位)和床铺号(2位)组合而成。 例如: 某学生住9栋5层104寝室01号床铺,则该生学号为90510401。 再如: 某学生住6栋13层211寝室11号床铺,则该生学号为61321111。 编程,输入学生的公寓号、楼层号、寝室号和床铺号,借助pow函数计算出学号并输出结果。 #include"stdio.h" #include"math.h" main() { intgynum,lounum,qsnum,chuangnum; longintxh; printf("输入公寓号: "); scanf("%d",&gynum); printf("输入楼幢号: "); scanf("%d",&lounum); printf("输入寝室号: "); scanf("%d",&qsnum); printf("输入床位号: "); scanf("%d",&chuangnum); xh=gynum*pow(10,7)+lounum*pow(10,5)+qsnum*pow(10,2)+chuangnum*pow(10,0); printf("%ld\n",xh); } 第三部分分支结构程序设计 (1)任意输入一个大写字母,若输入的A,则显示Z,若输入B,则显示A,若输入C,则显示B,……,若输入Z,则显示Y。 若输入的不是大写字母,则提示“无效输入” #include"stdio.h" intmain() { charc; printf("请输入一个大写字母: \n"); c=getchar(); if(c>='A'&&c<='z') if(c=='A') printf("c=z\n"); else { c=c-1; printf("c=%c\n",c); } else { printf("无效输入! \n"); return0; } } (2)从键盘上输入字符,若输入M,则显示“GoodMorning! ”;输入H,显示“Hello! ”;输入N,显示“GoodNight! ”;其他输入无效并提示重新输入。 #include"stdio.h" intmain() { charc; while (1) { scanf("%c",&c); if(c=='M') { printf("GoodMorning! \n"); break; }elseif(c=='H') { printf("Hello! \n"); break; }elseif(c=='N') { printf("GoodNight! \n"); break; } else { printf("输入无效,请重新输入! : \n"); scanf("%c",&c); } } } (3)用switch语句编程,输入五分制成绩,输出对应的成绩等级A、B、C、D。 5分为A,4分为B,3分为C,3分以下为D。 #include"stdio.h" intmain() { intscore; scanf("%d",&score); switch(score) { case5: printf("A\n");break; case4: printf("B\n");break; case3: printf("C\n");break; default: printf("D\n");break; } } (4)有4个边长2米的方塔,地面的中心分别在(3,3)、(-3,3)、(3,-3)、(-3,-3)。 4个塔的高度分别为10米、11米、12米、13米,塔外无建筑物。 用if–elseif语句编程,输入地面上任意点坐标x和y,显示该点的建筑物高度。 #include"stdio.h" intmain() { intxpoint,ypoint,high; printf("请输入塔的坐标x: \n"); scanf("%d",&xpoint); printf("请输入塔的坐标y: \n"); scanf("%d",&ypoint); //(3,3)、(-3,3)、(3,-3)、(-3,-3) if(xpoint==3&&ypoint==3) high=10; elseif(xpoint==-3&&ypoint==3) high=11; elseif(xpoint==3&&ypoint==-3) high=12; elseif(xpoint==-3&&ypoint==-3) high=13; else { printf("输入坐标出错: \n"); return0; } printf("塔高为: %d\n",high); } 第四部分循环结构程序设计 1、编程,任意输入两个不相等的整数,从较小的数累加到较大的数,输出累加和。 #include"stdio.h" intmain() { intx,y,sum=0; printf("输入两个数,一个是较小的数,一个是较大的数: \n"); scanf("%d%d",&x,&y); while(x<=y) { sum=sum+x; x=x+1; } printf("从小较的数累加到较大的数的结果是: %d\n",sum); } 2、编程实现30秒倒计时,倒计时结束显示“TimeOut! ”。 #include"stdio.h" #include"stdlib.h" #include"windows.h" main() { inti; for(i=30;i>=0;i--) { printf("到计时开始: %d",i); Sleep(1000); system("cls"); } if(i<0) { printf("\ntimeerror! "); } } 3、编程,输出显示下面图案,每次只能输出单个星号或单个空格,即输出语句只能用printf("*")、printf("")或printf("\n")。 (1) (2) (3) (4) (5) (6) (7) (8) (1) #include"stdio.h" intmain() { inti,j; for(i=0;i<5;i++) {for(j=0;j<5;j++) printf("*"); printf("\n"); } } (2) #include"stdio.h" intmain() { inti,j; for(i=0;i<5;i++) {for(j=0;j<=i;j++) printf("*"); printf("\n"); } } (3) #include"stdio.h" intmain() { inti,j; for(i=0;i<5;i++) {for(j=5;j>i;j--) printf("*"); printf("\n"); } } (4) #include"stdio.h" intmain() { inti,j; for(i=1;i<=7;i++) { if(i<5) { for(j=0;j printf("*"); printf("\n"); } else { for(j=0;j<=7-i;j++) printf("*"); printf("\n"); } } } (5) #include"stdio.h" intmain() { inti,j; for(i=0;i<5;i++) { for(j=0;j printf(""); printf("*\n"); } } (6) #include"stdio.h" intmain() { inti,j; for(i=0;i<5;i++) { for(j=5;j>i;j--) printf(""); printf("*\n"); } } (7) #include"stdio.h" intmain() { inti,j; for(i=0;i<5;i++) { for(j=0;j printf(""); for(j=9;j>=2*i+1;j--)//输出*号 printf("*"); printf("\n"); } } (8) #include"stdio.h" intmain() { inti,j,k; for(i=0;i<7;i++) { if(i<4) { for(j=0;j printf(""); printf("*"); for(k=0;k<3-i;k++) printf(""); printf("*"); for(k=0;k<3-i;k++) printf(""); printf("*"); printf("\n"); } else { for(j=0;j<6-i;j++) printf(""); printf("*"); for(k=3;k>6-i;k--) printf(""); printf("*"); for(k=3;k>6-i;k--) printf(""); printf("*"); printf("\n"); } } } 第五部分数组 1、编程,分别输出显示以下数列的前30个数。 (非必须采用数组) (1)99、98、97、96、95、94、…… #include"stdio.h" main() { intk=1,i; for(i=99;i>69;i--) { printf("%3d",i); if(k++%10==0)printf("\n"); } printf("\n"); } (2)0、2、4、6、8、10、12、…… #include"stdio.h" main() { intk=1,i,x=0; for(i=0;i<30;i++) { printf("%3d",x); x+=2; if(k++%10==0)printf("\n"); } printf("\n"); } (3)1、4、7、10、13、16、19、…… #include"stdio.h" main() { intk=1,i,x=1; for(i=0;i<30;i++) { printf("%3d",x); x+=3; if(k++%10==0)printf("\n"); } printf("\n"); } (4)1、1、2、2、3、3、4、4、…… #include"stdio.h" main() { intk=1,i,x=1; for(i=0;i<15;i++) { printf("%3d%3d",x,x); x+=1; if(k++%5==0)printf("\n"); } printf("\n"); } (5)5、3、2、1、1、0、1、-1、2、…… #include"stdio.h" main() { inta[30]={5,3},i,k=1; for(i=2;i<30;i++) a[i]=a[i-2]-a[i-1]; for(i=0;i<30;i++) { printf("%6d",a[i]); if(k++%10==0) printf("\n"); } printf("\n"); } 2、输入10个数(范围: 0-100),逆序输出这10个数。 #include"stdio.h" main() { inta[10],i; printf("输入10个数: \n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("逆序输出这10个数: \n"); for(i=9;i>=0;i--) printf("%4d",a[i]); printf("\n"); } 3、输入10个整数(范围: 0-100),输出其中最大值。 #include"stdio.h" main() { inta[10],i,j,max; printf("输入10个数: \n"); for(i=0;i<10;i++) scanf("%d",&a[i]); max=a[0]; for(j=1;j<10;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式C程序设计 嵌入式 程序设计 期末 复习资料