哈尔滨城市职业学院《单片机C语言程序设计》2023-2024学年第一学期期末试卷.doc
自觉遵守考场纪律如考试作弊此答卷无效密
自觉遵守考场纪律如考试作弊此答卷无效
密
封
线
第PAGE1页,共NUMPAGES3页
哈尔滨城市职业学院
《单片机C语言程序设计》2023-2024学年第一学期期末试卷
院(系)_______班级_______学号_______姓名_______
题号
一
二
三
四
总分
得分
一、单选题(本大题共35个小题,每小题1分,共35分.在每小题给出的四个选项中,只有一项是符合题目要求的.)
1、若有定义:charstr[]=hello;则sizeof(str)的值是()
A.5B.6C.10D.不确定
2、若有定义:chars[10]=China;要将字符串World连接到字符串s后面,正确的语句是()
A.strcat(s,World);
B.strcpy(s,World);
C.s=strcat(s,World);
D.s=strcpy(s,World);
3、在C语言中,位运算可以对二进制位进行操作。假设定义了一个整数?intnum=5;?(二进制表示为0101),以下关于位运算的描述,哪一项是不正确的?()
A.?num1?会将?num?的二进制位向左移动一位,结果为10(二进制1010)
B.?num3?(二进制0011)进行按位与运算,结果为1(二进制0001)
C.位运算的速度比普通的算术运算慢
D.可以使用位运算来设置或清除某些位
4、C语言中的预处理器指令在代码编译前发挥着重要的作用。假设有如下预处理器指令?#definePI3.14?和?#ifdefDEBUG?,以下对于预处理器指令的描述,哪一项是不准确的?()
A.?#define?指令用于定义常量或宏,在编译前会进行文本替换
B.?ifdef?和?ifndef?指令用于根据是否定义了某个宏来决定是否包含特定的代码段
C.预处理器指令可以嵌套使用,增加代码的灵活性和可配置性
D.预处理器指令的作用范围是从定义处到文件结束,不能在函数内部生效
5、在C语言中,关于预处理器指令,以下哪个指令用于包含头文件?()
A.?#define?
B.?#include?
C.?#if?
D.?#else?
6、C语言中的函数可以递归调用自身。假设有以下递归函数定义:?intfactorial(intn){if(n==0||n==1)return1;elsereturnn*factorial(n-1);}?,调用?factorial(5)?,以下关于函数返回值的描述,正确的是:()
A.5
B.15
C.120
D.程序会产生运行时错误,因为递归次数过多
7、在C语言中,关于函数指针的使用,假设有函数?intadd(inta,intb){returna+b;}?,定义一个函数指针?int(*funcPtr)(int,int)=add;?,通过这个函数指针调用函数,以下哪种方式是正确的?()
A.?funcPtr(2,3);?
B.?(*funcPtr)(2,3);?
C.以上两种都对
D.以上两种都不对
8、C语言中的结构体为我们提供了一种将不同类型数据组合在一起的方式。假设有如下结构体定义:?structStudent{intid;charname[20];floatscore;};?,以下关于结构体变量的使用,正确的是:()
A.可以直接将一个结构体变量赋值给另一个结构体变量,如?structStudents1,s2;s1=s2;?
B.要访问结构体成员?score?,可以使用?s1.score?的方式,其中?s1?是结构体变量名
C.结构体变量在内存中是连续存储其成员的,并且成员的存储顺序与定义顺序相反
D.结构体的大小就是其所有成员大小的总和,不包含任何额外的内存开销
9、C语言中的文件读写操作可以通过?fscanf?和?fprintf?函数实现。假设有以下代码:?FILE*fp;fp=fopen(data.txt,w);fprintf(fp,%d%f,5,3.14);fclose(fp);?,再次以读模式打开文件并读取数据,以下操作正确的是:()
A.使用?fscanf(fp,%d%f,num,fnum);?可以正确读取写入的数据
B.直接使用?fsc