中国矿业大学(徐州)《C语言程序设计》2022-2023学年第一学期期末试卷.doc
自觉遵守考场纪律如考试作弊此答卷无效密
自觉遵守考场纪律如考试作弊此答卷无效
密
封
线
第PAGE1页,共NUMPAGES3页
中国矿业大学(徐州)
《C语言程序设计》2022-2023学年第一学期期末试卷
院(系)_______班级_______学号_______姓名_______
题号
一
二
三
四
总分
得分
一、单选题(本大题共30个小题,每小题1分,共30分.在每小题给出的四个选项中,只有一项是符合题目要求的.)
1、若有定义:inta=10,b=20;则以下表达式的值为20的是()
A.ab?a:b
B.ab?a:b
C.a==b?a:b
D.a!=b?a:b
2、在C语言中,关于指针和数组的关系,设有定义?intarr[5]={1,2,3,4,5};int*ptr=arr;?,那么?ptr+2?指向的元素值是多少?()
A.3
B.4
C.不确定
D.运行时错误
3、若有定义:inta,b,c;,以下选项中能正确将a和b中的值进行交换的是()
A.a=b;b=a;
B.c=a;a=b;b=c;
C.a=a+b;b=a-b;a=a-b;
D.以上都不对
4、假设我们有一个C语言程序,其中包含多个函数。在函数内部定义的局部变量和在函数外部定义的全局变量,它们的存储区域分别是什么?()
A.局部变量在栈上,全局变量在堆上
B.局部变量在堆上,全局变量在静态存储区
C.局部变量在栈上,全局变量在静态存储区
D.以上都不对
5、C语言中的数组在编程中经常被使用。假设有以下定义:?intarr[5]={1,2,3,4,5};?,以下关于数组的描述,正确的是:()
A.可以通过?arr[5]?来访问数组的第六个元素,不会导致错误
B.数组名?arr?代表数组的首地址,同时也是一个常量
C.可以将一个数组直接赋值给另一个数组,如?intarr2[5]=arr;?
D.数组的长度在定义后不能改变,但其元素的值可以通过指针随意修改
6、在C语言中,关于动态内存分配,使用?malloc?函数分配了一块内存,使用完毕后,应该使用以下哪个函数释放?()
A.?free?
B.?delete?
C.?release?
D.不需要释放
7、在C语言中,若要按照特定格式读取文件中的数据,以下哪个函数是适用的?()
A.fscanf()
B.fread()
C.fgets()
D.getc()
8、若有定义:inta[10];,则以下对数组元素的正确引用是()
A.a[10]B.a(5)C.a[3+5]D.a[10-10]
9、对于C语言中的文件操作,若要判断文件是否成功关闭,以下哪个函数是可用的?()
A.feof()
B.ferror()
C.fclose()
D.以上都不是
10、在C语言的函数指针使用中,假设我们定义了一个函数指针?int(*func_ptr)(int,int);?,并且有两个函数?intadd(inta,intb){returna+b;}?和?intsubtract(inta,intb){returna-b;}?,如何通过函数指针调用这两个函数?()
A.直接使用函数名调用
B.将函数名赋值给函数指针,然后通过函数指针调用
C.无法通过函数指针调用
D.以上都不对
11、C语言中的动态内存分配后,需要及时释放以避免内存泄漏。假设我们使用?malloc?分配了一块内存,并且在后续的代码中不再使用它,以下哪种方式是正确的释放内存的方法?()
A.不需要释放,操作系统会自动处理
B.使用?free?函数释放
C.使用?delete?函数释放(C语言中无?delete?)
D.以上都不对
12、以下关于C语言中数组的描述,当定义一个整型数组?intarr[10];?并进行初始化后,若要访问数组中第5个元素,以下哪种方式是正确的?()
A.?arr[4]?
B.?arr[5]?
C.?arr[6]?
D.?arr[7]?
13、对于C语言中的宏定义,假设有?#defineSQUARE(x)x*x?,然后在代码中使用?intresult=SQUARE(2+3);?,?result?的值会是多少?()
A.25
B.11
C.10
D