文档详情

吉林艺术学院《面向对象C程序设计2》2023-2024学年第一学期期末试卷.doc

发布:2025-06-04约6.89千字共8页下载文档
文本预览下载声明

自觉遵守考场纪律如考试作弊此答卷无效密

自觉遵守考场纪律如考试作弊此答卷无效

线

第PAGE1页,共NUMPAGES3页

吉林艺术学院《面向对象C程序设计2》

2023-2024学年第一学期期末试卷

院(系)_______班级_______学号_______姓名_______

题号

总分

得分

一、单选题(本大题共35个小题,每小题1分,共35分.在每小题给出的四个选项中,只有一项是符合题目要求的.)

1、在C语言中,对于指针和数组的关系,假设有一个数组?intarr[10]?,同时有一个指针?int*ptr=arr;?,那么?ptr+2?指向的是什么?()

A.?arr[2]?

B.?arr[3]?

C.?arr[1]?

D.不确定

2、C语言中,关于动态内存分配,若使用?int*p=(int*)malloc(sizeof(int)*10);?,以下描述正确的是:()

A.分配的内存空间会自动初始化为0

B.如果内存分配失败,?malloc?函数返回?NULL?

C.可以使用?free(p)?释放部分已分配的内存

D.不需要释放通过?malloc?分配的内存,程序结束时会自动释放

3、在C语言中,设有以下宏定义?#defineMAX(a,b)((a)(b)?(a):(b))?,那么?MAX(3+2,5)?的值是多少?()

A.5

B.6

C.8

D.不确定

4、在C语言的内存管理中,?malloc?和?free?函数用于动态分配和释放内存。假设需要为一个整数数组动态分配内存,以下关于内存管理的描述,哪一项是不准确的?()

A.使用?int*arr=(int*)malloc(sizeof(int)*5);?可以分配5个整数大小的内存空间

B.分配的内存使用完后,必须使用?free(arr);?释放,否则会导致内存泄漏

C.多次使用?malloc?分配的内存空间是连续的

D.?malloc?函数可能会分配失败,此时返回?NULL?

5、假设在C语言中有如下代码段?inta=5;int*p=a;?,以下关于指针运算的描述,正确的是:()

A.?p+1?指向的是下一个整数的地址

B.对指针进行乘法运算(如?p*2?)是合法的

C.可以直接将两个指针相加(如?p+p?)

D.指针的减法运算(如?p1-p2?)结果的单位是字节

6、若有定义:inta[5]={1,2,3,4,5},*p=a;则以下不能表示数组a中元素a[3]的是()

A.*(p+3)B.p[3]C.*(a+3)D.p+3

7、假设在C语言中有以下结构体定义?structstudent{intid;charname[20];floatscore;};?,以下关于结构体的描述,正确的是:()

A.可以直接将一个结构体变量赋值给另一个结构体变量

B.结构体成员的访问可以使用?struct.student.id?的形式

C.结构体数组中的元素不能通过指针进行访问

D.结构体变量所占的内存空间是其各成员所占空间之和

8、若有定义:charstr1[]=hello,str2[]=world;则执行strcat(str1,str2);后,str1的内容是()

A.hello

B.world

C.helloworld

D.worldhello

9、在C语言中,若有函数定义?voidfun(inta[],intn)?,以下调用正确的是()

A.?fun(10);?

B.?fun({1,2,3},3);?

C.?fun(1,2,3);?

D.?fun(a,3);?(假设?inta[]={1,2,3};?)

10、C语言中的字符串比较函数?strcmp?用于比较两个字符串。假设我们有两个字符串?charstr1[]=Hello;?和?charstr2[]=HelloWorld;?,当使用?strcmp(str1,str2)?进行比较时,结果是什么?()

A.0(表示相等)

B.负数(表示?str1?小于?str2?)

C.正数(表示?str1?大于?str2?)

D.不确定

11、在C语言中,关于字符串的操作,设有两个

显示全部
相似文档