云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单片机C51编程 - 习题答案 - - - Copy

单片机C51编程 - 习题答案 - - - Copy

  • 62 次阅读
  • 3 次下载
  • 2026/4/26 20:23:56

01 #include

02 void main() 03 { 04 05 06 07 08 09 10 11 12 13 14 }

int a,b,c,d,e; float f1,f2; a=7; b=9; c=!a; d=a||b; f1=2.3; f2=5.7; e=(f1!=f2);

//头文件

//主函数

//声明变量

//变量赋值

//计算逻辑表达式

printf(\//输出结果

A.c=0,d=1,e=1 C.c=0,d=1,e=0 三、简答题

B.c=1,d=1,e=1 D.c=1,d=0,e=0

1.简述a++和++a的区别。

答:当自增运算符在操作数之前时,C51编译器在引用操作数之前就先执行加1操作,例如z=++x,表示x先自增1然后赋值给变量z;当自增运算符在操作数之后时,C51编译器就先引用操作数的值,而后再进行加1操作,例如z=x++,表示x先赋值给z然后自增1。 2.简述&&和&运算符的区别。

答:“&”运算符既按位与运算符,用于对操作数逐位进行逻辑与(AND)运算。“&”运算符在执行时,首先将两个操作数按照二进制展开,然后将对应位进行逻辑与运算。如果两个操作数对应的二进制位均为1,则逻辑与的结果为1;否则,则逻辑与的结果为0。而&&运算符是逻辑与运算符。

四、编程题

编写一个成绩等级的程序。要求输入学生的成绩范围为0~100,当为90~100时,输出字符A;当为80~90时,输出字符B;当为60~80时,输出字符C。当小于60时,输出字符D。

答:

#include

//头文件 //主函数

void main( ) {

float score=92; if(score>=90) { printf(“A”); } else if(score<90 && score>=80) { printf(“B”); } else if(score<80 && score>60) { printf(“C”); }

else { printf(“D”);

} }

5.13 习题

一、填空题

1.在C51语言的程序中,循环语句一般采用 for 、 do-while 和 while 来实现。

2.字符在C51语言的程序中,跳转语句一般采用 goto 、 break 和 continue 来实现。

3.do-while语句在执行时,先执行 循环体语句 ,然后执行 计算表达式的值 。

4.返回语句由关键字 return 来表示,常用于 函数的末尾 。

二、选择题

1.以下哪个声明语句是错误的( C )。

A.ch ch1; B.ch str[]=”hello” C.void fun; D.void func();

2.break语句不能应用于那个语句内部( A )。

A.if B.for C.while D.do-while

3.下面这段程序的运行结果为( A )。

01 #include 02 void main() 03 { 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 }

char ch; ch=’a’; switch(ch) {

case 'a':

//如果为'a',则输出'A'

//赋值 //开关语句

//头文件 //主程序

printf(\的大写字符为A\break;

//如果为'b',则输出'B'

case 'b':

printf(\的大写字符为B\break;

//否则输出这里

default: }

printf(\break;

A.ch的大写字符为A C.Not a and b 三、简答题

B.ch的大写字符为B D.都不是

1.简述本章采用了哪些方法来实现1~100之间所有整数的累加和。

答:本章共采用了6种方法,分别为for循环语句、while循环语句、do-while循环语句、goto语句、break语句和continue语句来实现

2.简述break语句和continue语句在应用到循环语句内部的区别。

答:break语句用于无条件跳出循环结构或者开关分支结构。continue语句用于强制结束当前循环体内部的后续语句,转而执行下一次循环。

四、编程题

编写一个子函数来实现如下函数的计算,其中,x为整数,并计算x=5时的函数值。

?(x?1)!?1(x?0)y??2

3x?2x11(x?0)?

01 #include 02 int Fun(int x) 03 { 04 05 06 07 08 09 10 11 11 12 13 14 15 16 17 18 }

19 void main() 20 { 21 22 23 24 }

int x=5,y; y=Fun(x);

//函数调用 //打印输出结果

//主函数

int i,y; if(x>0) { } else { }

return y;

//返回语句

y=3*x*x+2*x+1;

//计算数学表达式

y=1;

for(i=1;i<=x;i++) { } y=y-1;

y=y*(i+1);

//阶乘运算

//判断x的值

//头文件

printf(\

6.8 习题

一、填空题

1.数组在声明的时候, 类型说明符 表示了数组元素的数据类型,可以为 任何基本数据类型 ,也可以为 聚合数据类型 。

2.在一维数组声明初始化时,可以省略 数组的大小 ,而此时需要给出全部的数组元素的初始值。

3.在程序中声明 字符串数组 时,其长度必须比要存的字符串多一个元素,最后一位元素用来存储 空字符“\\0” 。

4.多维数组的声明一般形式为 类型说明符 数组名[常量表达式1] [常量表达式2]… [常量表达式n] 。

5.在C51语言中,虽然不能动态分配 数组的大小 ,但是可以动态分配 数组元素的值 。

二、选择题

1.对于用语句int num[3]声明的数组,下列哪个不是其中的元素( D )。

A.num[0] B.num[1] C.num[2] D.num[3]

2.下列哪个不可以用于声明数组( D )。

A.char B.int C.float D.void

3.访问多维数组元素的时间要( A )访问一维数组元素的时间。

A.大于 B.等于 C.小于 D.不确定

4.在下面程序运行结果为( C )。

01 #include

//头文件

//提供字符串操作的头文件 //主函数

02 #include 03 void main() 04 { 05 06 07 08 09 10 11 }

char a[10]={'a','b'}; char b[]=\char s[30]; strcat(a,b); strcpy(s,a);

//声明字符串数组,并赋值

//将字符串b追加到a的末尾 //将字符串a复制到字符串s //输出字符串s

printf(\

A.s=ab C.s=abgood 三、简答题

B.s=good D.s=abgood\\n

1.简述字符串数组的特点。

答:在C51语言中,用char标识的是字符数组。而字符串数组则是一类特殊的字符数组,其区别在于字符串数组的最后一个元素为“\\0”,对应的ASCII码为0x00。

2.简述为何多维数组不提倡使用。

答:多维数组的存储量随着维数的增加呈指数增长,占用大量内存。另外,单片机的CPU要花大量时间计算数组下标,也就是说,在存放和读取多维数组中的元素时需要比一维数组花更多的时间。因此,应该尽量少使用多维数组。

搜索更多关于: 单片机C51编程 - 习题答案 - - - Copy 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

01 #include 02 void main() 03 { 04 05 06 07 08 09 10 11 12 13 14 } int a,b,c,d,e; float f1,f2; a=7; b=9; c=!a; d=a||b; f1=2.3; f2=5.7; e=(f1!=f2); //头文件 //主函数 //声明变量 //变量赋值 //计算逻辑表达式 printf(\//输出结果 A.c=0,d=1,e=1 C.c=0,d=1,e=0 三、简答题 B.c=1,d=1,e

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com