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

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

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

  • 62 次阅读
  • 3 次下载
  • 2026/4/26 18:11:33

3.简述数组有多少种初始化方法。

答:。初始化数组元素可以采用两种方法:在声明数组时初始化和动态初始化。其中,声明数组时初始化又可以有完整声明初始化、部分初始化和省略数组大小三种。

四、编程题

编写一个二维字符串数组读写的程序。

#include #include

void main() {

//头文件

//主函数

//声明并初始化字符串数组

char str[3][11]={\ //char str2[][]={\int i,j;

char str2[2][4]={{'a','b','c','\\0'},{'A','B','C','\\0'}}; //声明并初始化字符串数组

//错误的声明方式,没有指定数组大小 //定义整型变量

//循环逐个输出str2中的元素值

for(i=0;i<2;i++) for(j=0;j<4;j++) printf(\

printf(\

printf(\

//输出换行符

//逐行输出字符串str的第一行 //逐行输出字符串str的每一行

printf(\}

7.9 习题

一、填空题

1. 内存单元 是单片机存储器中的最小存储单位,通常 一个字节 称为一个内存单元。单片机内存单元的编号也就是 地址 。 2.在定义指针变量时,指针名前的 “*” 不能省略,同一个指针变量只能指向 同一类型的变量 。

3.指针变量的专用运算符包括 & 和 * 。 4.指针变量可以参与 关系 和 算术 运算。

5.通过 字符指针 可以访问字符串常量中的内容,但 不可以 对其进行修改。

6.在指针变量说明中,“*”是 类型说明符 ,表示其后是 指针类型的变量 。

7.表达式中出现的“*”则是 取值运算符 ,用来表示指针变量所指向的地址中的数据值。

二、选择题

1.如果p是指向数组ch的指针变量,设n为一个正整数,则下述运算那个不符合C51语言的规则( D )。

A.p+n B.p++ C.p-- D.p*n

2.假设pstr指向字符串常量,则如下那个表达式不符合C51语言的规则( C )。

A.pstr++ C.*pstr-1

B.pstr+3 D.pstr+5

3.在下面程序可能的运行结果为( A )。

01 #include 02 void main() 03 { 04 05 06 07 }

int ch[3][4]={{1,1,3,3},{5,6,7,8},{9,10,1,2}}; //定义并初始化二维数组ch printf(\

//输出ch的值 //输出*ch的值

//头文件 //主程序

printf(\

A.a=1000,*a=1000 C.a=2000,*a=1000 三、简答题

B.a=1000,*a=2000 D.a=1010,*a=2000

1.简述数组指针和指针数组的区别。 答:数组指针是指向数组的指针变量。指针数组是同一数据类型的多个指针变量构成的一个数组。其中,指针数组中的每个元素都是一个独立的指针变量。 2.简述指针变量能够参与的运算和注意事项。

答:指针变量是特殊的一种变量,其同样也可以参与一些运算,但是有很大的局限性。

? 指针变量可以进行有限的某些运算,例如赋值运算、部分算术运算及关系运算。 ? 只有指向同一数组的两个指针变量之间才能进行运算,否则运算无意义。

四、编程题

编写一个使用指针数组来存放不同长度字符串的程序。

#include

void main() {

int k;

//头文件 //主函数

char *pweek[7]={\//定义并初始化指针数组 \for(k=0;k<7;k++) printf(\}

//循环输出指针数组指向的字符串

8.10 习题

一、填空题

1.结构就是用户定义的, 不同数据类型 的一个集合体。

2.定义结构用的关键字为 struct ,声明结构变量用的关键字为 struct 。 3.在C51语言中,表示结构变量成员的一般形式为 结构变量名.成员名 。 4.结构数组常来表示具有相同数据结构的一个群体,是指数组中的每一个元素都是具有相同结构类型的 结构变量 。 5.嵌套结构的成员名的引用,是 从最外层 直到 最内层 逐个被列出的,典型的嵌套式结构成员表示方式为 结构变量名.嵌套结构变量名.结构成员名 。

6.通过位结构,可以访问 一个字节或字的多个位 ,这样可以有效的介绍代码体积,提高程序的效率。

二、选择题

1.位结构中的数据类型可以为( A )。

A.unsigned B.float C.void D.struct

2.声明结构变量可以采用哪种方法(多选)( ABCD )。

A.先定义结构,再声明结构变量 B.义结构时声明结构变量 C.直接声明结构变量 D.以上三种都可以

3.结构指针变量成员的引用方法可以为(多选)( ABCD )。

A.(*结构指针变量). 成员名 B.*结构指针变量. 成员名 C.结构指针变量->成员名 D.以上三种都可以

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

01 #include 02 struct student 03 { 04 05 06 07 08

int num;

//学号 //姓名 //性别 //年龄 //分数

//声明结构数组并初始化

//头文件 //声明结构

char name[20]; char sex[2]; int age;

float score;

09 } class1[5]={ 10 11 12 13 14 15

{100\{101,\{102,\{103,\{104,\};

//主函数

16 void main() 17 { 18 19 20 21 22 23 24 25 } 26 }

int i;

for(i=0;i<5;i++) {

//循环

if(boy[i].score>=95.0) //判断分数是否大于90,如果大于则输出

printf(\ class1[i].num,class1[i].name,

class1[i].sex,class1[i].age, class1[i].score);

A.100 Alice F 24 90.500000 C.101 Bob M 24 88.000000 三、简答题

1.简述结构变量的三种声明方式。

B.102 Jack M 25 95.500000 D.103 Twis M 23 69.500000

答:C51语言中提供了灵活的结构变量的声明方法,可以采用如下3种:先定义结构再声明结构变量、定义结构时声明结构变量和直接声明结构变量。

2.简述结构指针和普通指针的区别。

答:结构指针是指该指针变量用来指向一个结构变量。其中,结构指针变量中的值是所指向的结构变量的首地址。而普通指针指向一个基本数据类型变量。

四、编程题

编写一个程序来统计成绩在80~90之间的学生,并输出学生信息。

#include

struct student {

char *name; int num; int age; char *sex;

//头文件 //定义结构 //姓名 //学号 //年龄 //性别 //分数

//声明并初始化结构数组

float score;

}boy[5]={ {\{\{\{\{\

void main() {

int i;

//主函数

for(i=0;i<5;i++) {

//循环

if(boy[i].score>=80.0 & boy[i].score<90.0) //判断分数输出 printf(\boy[i].score);

} }

9.7 习题

一、填空题

1.在定义了联合类型后,还需要使用该联合类型来声明 联合变量 。联合变量

的声明有3种方法 先定义联合,再声明联合变量 、 直接声明联合变量 和 定义联合时声明联合变量 。 2.从 数据存储 角度来说,结构和联合变量的区别主要在于 联合变量的成员 占用同一个内存空间,而 结构变量中的成员 分别独占自己的内存空间,互相不干扰, 3. 类型说明 是指由用户自己定义类型说明符,其一般形式为 typedef 原类型名 新类型名; 。

4.位域也常称为 位段 ,位域采用关键字 struct 来实现。 5.在C51语言中,位域变量的位段名引用的一般形式为 。

6.在C51语言中,只能把 枚举元素 赋予枚举变量,不能把 枚举元素的数

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

共分享92篇相关文档

文档简介:

3.简述数组有多少种初始化方法。 答:。初始化数组元素可以采用两种方法:在声明数组时初始化和动态初始化。其中,声明数组时初始化又可以有完整声明初始化、部分初始化和省略数组大小三种。 四、编程题 编写一个二维字符串数组读写的程序。 #include #include void main() { //头文件 //主函数 //声明并初始化字符串数组 char str[3][11]={\ //char str2[][]={\int i,j;

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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