浙江师范大学行知学院《C语言程序设计》2023-2024学年第一学期期末试卷.doc
自觉遵守考场纪律如考试作弊此答卷无效密
自觉遵守考场纪律如考试作弊此答卷无效
密
封
线
第PAGE2页,共NUMPAGES2页
浙江师范大学行知学院《C语言程序设计》
2023-2024学年第一学期期末试卷
院(系)_______班级_______学号_______姓名_______
题号
一
二
三
四
总分
得分
一、单选题(本大题共30个小题,每小题1分,共30分.在每小题给出的四个选项中,只有一项是符合题目要求的.)
1、在C语言中,关于函数指针的定义和使用,假设有以下代码:?int(*funcPtr)(int,int);?,以下关于函数指针的描述,正确的是:()
A.这是一个指向返回值为?int?,有两个?int?类型参数的函数的指针
B.这是一个返回值为指针,参数为两个?int?的函数声明
C.这是一个错误的函数指针定义,C语言中不允许这样定义
D.这是一个指向?int?类型数组的指针
2、在C语言中,设有以下数组定义?intarr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};?,那么?arr[1][2]?的值是多少?()
A.5
B.6
C.7
D.8
3、若有定义:inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};,则((a+1)+2)的值是()
A.5B.6C.8D.9
4、C语言中的字符数组和字符串常量有一定的区别。假设我们有?charstr1[]=Hello;?和?char*str2=World;?,以下关于它们的存储方式和修改权限的描述,哪一个是正确的?()
A.?str1?存储在栈上,可以修改其内容;?str2?存储在常量区,不能修改其内容
B.?str1?存储在常量区,不能修改其内容;?str2?存储在栈上,可以修改其内容
C.两者都存储在栈上,可以修改其内容
D.两者都存储在常量区,不能修改其内容
5、以下能正确计算1+2+3+...+100的程序段是()
A.inti,sum=0;for(i=1;i=100;i++)sum+=i;
B.inti=0,sum=0;while(i=100){sum+=i;i++;}
C.inti=1,sum=0;do{sum+=i;i++;}while(i=100);
D.以上都正确
6、在C语言中,关于静态变量的使用,假设有以下函数:?voidfunc(){staticintcount=0;count++;printf(%d,count);}?,多次调用?func?函数,以下输出结果正确的是:()
A.每次输出都是1
B.输出依次为1,2,3,...
C.输出结果不确定,取决于调用的顺序
D.程序会产生运行时错误,因为静态变量使用不正确
7、对于C语言中的结构体,假设有如下定义?structstudent{intid;charname[20];floatscore;};?,创建一个该结构体类型的变量?structstudents;?,以下哪种方式可以正确地为结构体成员赋值?()
A.?s.id=1;strcpy(s.name,Alice);s.score=90.5;?
B.?s={1,Alice,90.5};?
C.?s-id=1;s-name=Alice;s-score=90.5;?
D.?structstudents={1,Alice,90.5};?
8、C语言中,对于以下代码:?voidfunc(char*str){str[0]=A;}?,如果在主函数中调用?func?函数并传递一个字符串常量,会发生什么?()
A.成功修改字符串常量的第一个字符
B.程序会出错
C.不确定,取决于编译器
D.没有任何变化
9、若有以下函数调用语句:func((a1,a2),(a3,a4,a5));在此函数调用语句中,含有的实参个数是()
A.2B.3C.4D.5
10、在C语言的函数参数传递中,对于数组作为参数的情况,实际上传递的是什么?()
A.数组的全部元素
B.数组的第一个元素的地址
C.数组的大小
D.以上都不对
11、假设在C语言中有