- 0
- 0
- 约6.47千字
- 约 13页
- 2026-01-31 发布于山东
- 举报
2026年c语言期末试题
第一部分单选题(50题)
1、以下函数声明正确的是?()
A.intfun(intx,inty);
B.intfun(int,int);
C.intfun(intx;inty);
D.A和B
【答案】:答案解析:函数声明可写参数名或只写类型,A、B正确,C用分号错误,故选D。
2、若charstr=hello;则str[1]的值是?()
A.h
B.e
C.l
D.\0
【答案】:答案解析:str是字符串首地址,str[1]等价于(str+1),值为e,故选B。
3、指针与字符串的关系,以下说法正确的是?()
A.字符串常量是字符数组,数组名是指针
B.字符串可通过指针遍历
C.字符指针可指向字符串常量
D.以上都正确
【答案】:答案解析:A、B、C均是指针与字符串的基本关系,故选D。
4、以下关于void类型函数的说法正确的是?()
A.不能有return语句
B.可以有return语句(无表达式)
C.必须有return语句
D.可返回任意类型
【答案】:答案解析:void函数可写return;(无表达式),用于提前结束函数,不能返回表达式,故选B。
5、以下函数调用错误的是?()
A.fun();
B.fun(5);
C.fun(3,4);
D.无错误(需看函数定义)
【答案】:答案解析:调用需匹配函数定义,A对应无参函数,B对应单参函数,C对应双参函数,均可能正确,故选D。
6、以下switch语句中,case后的常量可以是?()
A.整数
B.字符
C.枚举常量
D.以上都可以
【答案】:答案解析:switch的case后必须是整型常量(整数、字符、枚举常量,字符本质是ASCII码整数),故选D。
7、若inta=3;执行if(++a==4)printf(A);elseprintf(B);输出结果是?()
A.A
B.B
C.AB
D.无输出
【答案】:答案解析:++a使a=4,条件为真,输出A,故选A。
8、若charstr[]=helloworld;则字符串长度是?()
A.10
B.11
C.12
D.13
【答案】:答案解析:helloworld含11个字符(不含\0),长度为11,故选B。
9、以下字符串数组定义正确的是?()
A.charstr[5][10]={hello,world};
B.charstr[5][]={hello,world};
C.charstr[][10]={hello,world,!};
D.charstr[5][10]={hello,world,!};
【答案】:答案解析:B第二维不能省略,A、C、D均正确?D最完整(5行10列,初始化3个字符串),故选D。
10、若inta[4]={10,20,30,40};则*(a+2)的值是?()
A.20
B.30
C.40
D.10
【答案】:答案解析:a+2是第三个元素地址,*(a+2)=a[2]=30,故选B。
11、若intx=10;则表达式x%3的结果是?()
A.1
B.2
C.3
D.0
【答案】:答案解析:%是取余运算符,10除以3商3余1,故选A。
12、函数中局部变量的作用域是?()
A.整个程序
B.函数内部
C.函数外部
D.所有函数
【答案】:答案解析:局部变量定义在函数内,仅在函数内部有效,故选B。
13、函数指针的作用是?()
A.存储函数的地址
B.调用函数
C.实现回调函数
D.以上都正确
【答案】:答案解析:函数指针存储函数地址,可通过指针调用函数,常用于回调函数,故选D。
14、函数定义和函数声明的区别是?()
A.定义包含函数体,声明不包含
B.声明包含函数体,定义不包含
C.定义和声明无区别
D.定义在程序开头,声明在结尾
【答案】:答案解析:函数定义是完整实现(含函数体),声明是告诉编译器函数名、参数、返回类型(不含函数体),故选A。
15、若inta=10,*p=a;则sizeof(p)的值是?()
A.4
B.8
C.取决于系统
D.10
【答案】:答案解析:sizeof(p)是指针大小,32位系统4字节,64位8字节,故选C。
16、以下哪个数据类型的占用字节数最大?()
A.char
B.short
C.int
D.double
【答案】:答案解析:char(1字节)、short(2字节)、int(4字节)、double(8字节),故选D。
17、以下定义指向二维数组的指针正确的是?()
A.inta[2][3],(*p)[3]=a;
B.inta[2][3],*p=a;
C.inta[2][3],p=a[0];
D.inta
原创力文档

文档评论(0)