《嵌入式C程序设计》期末复习资料.docx

上传人:b****4 文档编号:5877618 上传时间:2023-05-09 格式:DOCX 页数:31 大小:34.30KB
下载 相关 举报
《嵌入式C程序设计》期末复习资料.docx_第1页
第1页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第2页
第2页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第3页
第3页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第4页
第4页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第5页
第5页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第6页
第6页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第7页
第7页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第8页
第8页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第9页
第9页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第10页
第10页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第11页
第11页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第12页
第12页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第13页
第13页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第14页
第14页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第15页
第15页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第16页
第16页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第17页
第17页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第18页
第18页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第19页
第19页 / 共31页
《嵌入式C程序设计》期末复习资料.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《嵌入式C程序设计》期末复习资料.docx

《《嵌入式C程序设计》期末复习资料.docx》由会员分享,可在线阅读,更多相关《《嵌入式C程序设计》期末复习资料.docx(31页珍藏版)》请在冰点文库上搜索。

《嵌入式C程序设计》期末复习资料.docx

《嵌入式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=k)||(i>=k&&j

(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++)

if(max

max=a[j];

printf("这十个数中最大数为:

%d\n",max);

}

4、输入10个整数(数字可重复),统计显示其中有多少个正数,多少个负数,多少个零。

#include"stdio.h"

main()

{

inta[10],i,znum=0,fnum=0,zero=0;

printf("输入10个数:

\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<10;i++)

{

if(a[i]>0)

znum++;

elseif(a[i]<0)

fnum++;

else

zero++;

}

printf("正整数个数为:

%d,负整数个数为:

%d,0的个数为:

%d\n",znum,fnum,zero);

}

5、输出如下数阵或字符阵。

(1)

(2)

0

0

0

0

0

1

1

1

1

1

2

2

2

2

2

3

3

3

3

3

4

4

4

4

4

5

5

5

5

5

6

6

6

6

6

7

7

7

7

7

0

1

2

3

4

10

11

12

13

14

20

21

22

23

24

30

31

32

33

34

40

41

42

43

44

50

51

52

53

54

60

61

62

63

64

70

71

72

73

74

(3)

(4)

0

0

0

0

0

0

0

1

2

3

4

5

0

2

4

6

8

10

0

3

6

9

12

15

0

4

8

12

16

20

0

5

10

15

20

25

(1)

#include"stdio.h"

voidmain()

{

inta[8][5]={0},i,j;

for(i=0;i<8;i++)//输入

for(j=0;j<5;j++)

a[i][j]=i;

for(i=0;i<8;i++)//输出

{

for(j=0;j<5;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

(2)

#include"stdio.h"

voidmain()

{

inta[8][5]={0},i,j;

for(i=0;i<8;i++)//输入

for(j=0;j<5;j++)

a[i][j]=10*i+j;

for(i=0;i<8;i++)//输出

{

for(j=0;j<5;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

(3)

#include"stdio.h"

voidmain()

{

inta[6][6]={0},i,j;

for(i=0;i<6;i++)//输入

for(j=0;j<6;j++)

a[i][j]=i*j;

for(i=0;i<6;i++)//输出

{

for(j=0;j<6;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

(4)

#include"stdio.h"

voidmain()

{

chara[20][20],i,j;

for(i=0;i<20;i++)//输入

{for(j=0;j<20;j++)

{

a[i][0]='*';

a[0][j]='*';

if(i==j)

a[i][j]='*';

elseif(i+j==19)

a[i][j]='*';

else

a[i][j]='';

a[19][j]='*';

}

a[i][19]='*';

}

for(i=0;i<20;i++)//输出

{

for(j=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2