2022年C语言复习题参考答案 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年C语言复习题参考答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言复习题参考答案 .pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、单项选择题:(每小题2 分,共 10 分。在每小题备选答案中选出一个正确答案,并将正确答案的代码填在题中括号内。选对得分,不选、选错均不得分。)1利用下列(D )关键字可以改变工作寄存器组A、interruptB、sfr C、whileD、using 2C51 中一般指针变量占用(C )字节存储。A、一个B、两个C、三个D、四个3使用宏来访问绝对地址时,一般需包含的库文件是(B)A、reg51.h B、absacc.h C、intrins.h D、startup.h 4执行#define PA8255 XBYTE0 x3FFC;PA8255=0 x7e;后存储单元0 x3FFC 的值是(A
2、)A、Ox7eB、8255HC、未定D、7e 5设有 int i;则表达式i=1,+i,+i|+i,i的值为(C)A、1 B、2 C、3 D、4 6设有 int a=10,11,12,*p=&a0;则执行完*p+;*p+=1;后 a0,a1,a2的值依次是(C)A、10,11,12 B、11,12,12 C、10,12,12 D、11,11,12 7设有 int i;则表达式i=1,+i,i|+i,i的值为(B)A、1 B、2 C、3 D、4 二、判断题:(每小题1 分,共 10 分。正确的在括号内打“”,错误的打“”。判对得分,不判、判错均不得分。)1若一个函数的返回类型为void,则表示其
3、没有返回值。()2特殊功能寄存器的名字,在C51 程序中,全部大写。()3“sfr”后面的地址可以用带有运算的表达式来表示。()4#include 与#include “reg51.h”是等价的。()5sbit 不可以用于定义内部RAM 的可位寻址区,只能用在可位寻址的SFR上。()6Continue 和 break 都可用来实现循环体的中止。()7若一个函数的返回类型为void,则表示其没有返回值。()8所有定义在主函数之前的函数无需进行声明。()9int i,*p=&i;是正确的C说明。()10 7&3+12的值是 15。()11一个函数利用return 不可能同时返回多个值。()三、填空
4、(每空 1 分,共 20 分。在空白处填上正确的内容)1KeiL C51 软件中,工程文件的扩展名是_UV2_,编译连接后生成可烧写的文件扩展名是 _HEX_。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 16 页 -2C51 支持的指针有一般指针和存储器指针。3C51 中,没有专门的循环语句,我们可以用函数_crol_ 完成一个字节的循环左移,用 _irol_ 完成二个字节的循环左移。4函数是 C 语言的基本单位。5C 语言中输入和输出操作是由库函数scanf 和printf 等函数来完成。6若有说明int i,j,k;则表达式 i=10,j=20,k=30,k*=i+j的值
5、为 _ 900_。7数组是一组有固定数目和相同类型成分分量的有序集合。8变量的指针就是变量的地址;指针变量的值是指针。9在 C 语言中,把多个不同类型的变量结合在一起形成的一个组合型变量,称为结构变量,简称结构。10 C51 的数据类型有基本类型、构造类型、指针类型、空类型。11C51 的基本数据类型有位型、字符型、整形、长整形、浮点型、双精度浮点型。12 C51 的构造数据类型有数组类型、结构类型、共用体型、梅举型。13 C51 的存储类型有data、bdata、idata、pdata、xdata、code。14 C51 的存储模式有SMALL、COMPACT 和LARGE。15C51 程序
6、与其他语言程序一样,程序结构也分为顺序结构、选择结构(或分支结构)、循环结构三种。16数组的一个很重要的用途就是查表。17四、问答题(共20 分)1简述 C51 语言和汇编语言的比较(5 分)使用 C51 语言进行嵌入式系统的开发,有着汇编语言所不可比拟的优势:编程调试灵活方便;生成的代码编译效率高;模块化开发;可移植性好;便于项目的维护;2简述单片机的C 语言的特点(7 分)单片机的 C 语言的特点主要体现在以下几个方面:无需了解机器硬件及其指令系统,只需初步了解MCS-51 的存储器结构;C51能方便的管理内部寄存器的分配、不同存储器的寻址和数据类型等细节问题,但对硬件控制有限;而汇编语言
7、可以完全控制硬件资源;C51在小应用程序中,产生的代码量大,执行速度慢;但在较大的程序中代码效率高;C51程序由若干函数组成,具有良好的模块化结构,便于改进和扩充;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 16 页 -C51程序具有良好的可读性和可维护性;而汇编语言在大应用程序开发中,开发难度增加,可读性差;C51有丰富的库函数,可大大减少用户的编程量,显著缩短编程与调试时间,大大提高软件开发效率;使用汇编语言编制的程序,当机型改变时,无法直接移植使用,而C 语言程序是面向用户的程序设计语言,能在不同机型的机器上运行,可移植性好。3哪些变量类型是51 单片机直接支持的?(5
8、分)答:C51编译器支持的数据类型有:位型(bit)、无符号字符型(unsigned char)、有符号字符型(signed char)、无符号整型(unsigned int)、有符号整型(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点型(float)和指针型等。C51编译器支持的数据类型、长度和值域如表1-1 所示。表1-1 C51的数据类型数据类型长度/bit长度/byte值域bit1 0,1unsigned char8 1 0255signed char8 1-128 127unsigned int16 2 065 535
9、signed int16 2-32 76832 767unsigned long32 4 04 294 967 295signed long32 4-2 147 483 6482 147483 647float32 4 1176E-383 40E+38(6 位数字)double64 8 1176E-383 40E+38(10 位数字)一般指针24 3 存储空间 0 65 5354简述 C51 的数据存储类型(10 分)答:我们都知道,8051 单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。8051 单片机内部的数据存储区是可读写的,8051 派生系列最多可有256 字节的内部
10、数据存储区,其中低128 字节可直接寻址,高128 字节(从 0 x80 到0 xFF)只能间接寻名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 16 页 -址,从 20H 开始的 16 字节可位寻址。内部数据区可分为3个不同的存储类型:data、idata和bdata。外部数据区也是可读写的,访问外部数据区比访问内部数据区慢,因为外部数据区是通过数据指针加载地址来间接访问的。C51 提供两种不同的存储类型xdata和 pdata访问外部数据。程序存储区是只能读不能写。程序存储区可能在8051 单片机内部或者在外部或者内外都有,这由8051 单片机的硬件决定。C51 提供了 co
11、de存储类型来访问程序存储区。每个变量可以明确地分配到指定的存储空间,对内部数据存储器的访问比对外部数据存储器的访问快许多,因此应当将频繁使用的变量放在内部存储器中,而把较少使用的变量放在外部存储器中。各存储区的简单描述如表1-2所示。表 1-2 C51存储类型与8051 存储空间的对应关系存储区描述DATA 片内 RAM的低 128 字节,可在一个周期内直接寻址BDATA 片内 RAM的位寻址区,16 字节IDATA 片内 RAM的 256 字节,必须采用间接寻址XDATA 外部数据存储区,使用DPTR 间接寻址PDATA 外部存储区的256 个字节,通过P0 口的地址对其寻址。使用MOVX
12、 Ri,需要两个指令周期CODE 程序存储区,使用DPTR 寻址。以上介绍的是C51 的数据存储类型,C51 存储类型及其大小和值域如表1-3所示。表1-3 C51存储类型及其大小和值域存储类型长度/bit 长度/byte 值域data 8 1 0255 idata 8 1 0255 pdata 8 1 0255 code 16 2 065 535 xdata 16 2 065 535 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 16 页 -5简述 C51 对51单片机特殊功能寄存器的定义方法(5分)答:MCS-51 通过其特殊功能寄存器(SFR)实现对其内部主要资源的控制。
13、MCS-51单片机有 21 个SFR,有的单片机还有更多的SFR,它们分布在片内RAM的高 128 字节中,其地址能够被 8整除的 SFR一般可以进行位寻址。关于 MCS-51 单片机的特殊功能寄存器参看附录A。对 SFR只能用直接寻址方式访问。C51允许通过使用关键字sfr、sbit或直接引用编译器提供的头文件来实现对SFR的访问。(1)使用关键字定义sfr 为了能直接访问特殊功能寄存器SFR,C51提供了一种自主形式的定义方法。这种定义方法与标准的 C语言不兼容,只适用于对8051 系列单片机进行C编程。这种定义的方法是引入关键字“sfr”,语法如下:sfr 特殊功能寄存器名字=特殊功能寄
14、存器地址;如:sfr SCON=0 x98;/*串口控制寄存器地址98H*/sfr TMOD=0X89;/*定时器/计数器方式控制寄存器地址89H*/(2)通过头文件访问SFR 8051系列单片机的寄存器数量与类型是极不相同的,因此对单片机特殊功能寄存器的访问可以通过对头文件的访问来进行。为了用户处理方便,C51编译器把 MCS-51 单片机的常用的特殊功能寄存器和特殊位进行了定义,放在一个“reg51.h”或“reg52.h”的头文件中。当用户要使用时,只需要在使用之前用一条预处理命令“#include ”把这个头文件包含到程序中,然后就可以使用特殊功能寄存器名和特殊位名称了。用户可以通过文
15、本编辑器对头文件进行增减。(3)SFR中位定义在8051 单片机的应用问题中,经常需要单独访问SFR中的位,C51的扩充功能使之成为可能,使用关键字“sbit”可以访问位寻址对象。特殊位(sbit)的定义,像 SFR一样不与标准 C兼容。与SFR定义一样,用关键字“sbit”定义某些特殊位,并接受任何符号名,“=”号后将绝对地址赋给变量名。这种地址分配有三种方法:第一种方法:sbit 位名=特殊功能寄存器名位置;当特殊功能寄存器的地址为字节(8位)时,可使用这种方法。特殊功能寄存器名必须名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 16 页 -是已定义的 SFR的名字。“”后的
16、“位置”语句定义了基地址上的特殊位的位置。该位置必须是07的数。如:第二种方法:sbit 位名=字节地址 位置;这种方法是以一个整常数为基地址,该值必须在0 x80 0 xFF 之间,并能被 8整除,确定位置的方法同上。第三种方法:sbit 位名=位地址;这种方法将位的绝对地址赋给变量,地址必须在0 x80 0 xFF 之间。6C51 的 data、bdata、idata 有什么区别?(6分)答:data、bdata、idata是表明数据的存储类型,data 是指片内 RAM 的低 128 字节,可在一个周期内直接寻址;bdata是指片内 RAM的位寻址区,16 字节;idata是指片内 RA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言复习题参考答案 2022 语言 复习题 参考答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内