吉林财经大学《单片机C语言程序设计》2023-2024学年第一学期期末试卷.doc
学校________________班级____________姓名____________考场____________准考证号
学校________________班级____________姓名____________考场____________准考证号
…………密…………封…………线…………内…………不…………要…………答…………题…………
第PAGE1页,共NUMPAGES3页
吉林财经大学《单片机C语言程序设计》
2023-2024学年第一学期期末试卷
题号
一
二
三
四
总分
得分
一、单选题(本大题共15个小题,每小题1分,共15分.在每小题给出的四个选项中,只有一项是符合题目要求的.)
1、在C语言中,若有函数声明?intfun(inta,floatb);?,以下调用正确的是()
A.?fun(1.5,2);?
B.?fun(1,2.5);?
C.?fun(1,2);?
D.?fun(1.5,2.5);?
2、在C语言中,关于静态变量的使用,假设有以下函数:?voidfunc(){staticintcount=0;count++;printf(%d,count);}?,多次调用?func?函数,以下输出结果正确的是:()
A.每次输出都是1
B.输出依次为1,2,3,...
C.输出结果不确定,取决于调用的顺序
D.程序会产生运行时错误,因为静态变量使用不正确
3、C语言中的数组是一种重要的数据结构。假设定义了一个整数数组?intarr[5]={1,2,3,4,5};?,以下关于数组操作的描述,哪一项是不准确的?()
A.可以通过?arr[0]?到?arr[4]?的方式访问数组的每个元素
B.数组的大小在定义后就不能改变
C.可以将一个数组直接赋值给另一个同类型且大小相同的数组
D.可以通过指针来操作数组,例如?int*p=arr;?
4、在C语言中,若有定义?inta[10]={1,2,3,4,5,6,7,8,9,10};?,以下关于数组的描述,正确的是:()
A.可以通过?a[10]?访问数组的最后一个元素
B.数组?a?的长度是可以动态改变的
C.使用?for?循环遍历数组时,循环条件可以是?i10?
D.数组元素的存储顺序是从大到小
5、假设在C语言中有以下代码?typedefintINT;?,以下描述正确的是:()
A.?INT?和?int?是完全不同的类型
B.可以使用?INTa,b;?来定义变量
C.?typedef?定义的新类型不能用于函数参数和返回值类型
D.?typedef?只是给已有类型起了一个别名,不会创建新的类型
6、在C语言中,指针是一个强大但也容易出错的概念。假设我们有以下代码段:?inta=5;int*p=a;?,然后执行?*p=10;?。那么此时变量?a?的值会发生什么变化?()
A.保持不变,仍为5
B.变为10
C.变为随机值
D.程序会出错
7、在C语言中,关于函数指针的定义和使用,假设有以下代码:?int(*funcPtr)(int,int);?,以下关于函数指针的描述,正确的是:()
A.这是一个指向返回值为?int?,有两个?int?类型参数的函数的指针
B.这是一个返回值为指针,参数为两个?int?的函数声明
C.这是一个错误的函数指针定义,C语言中不允许这样定义
D.这是一个指向?int?类型数组的指针
8、C语言中的选择结构(如?if-else?)使用广泛。假设有?inta=10,b=20;?,执行?if(ab)printf(A);elseprintf(B);?,会输出什么?()
A.A
B.B
C.先输出A,再输出B
D.程序出错
9、若有定义:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};,则((a+1)+1)的值是()
A.6B.7C.8D.9
10、在C语言的函数调用中,参数传递的方式有值传递和地址传递。假设有以下函数定义:?voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}?,以及主函数中的调用?intx=3,y=5;swap(x,y);