- 0
- 0
- 约6.05千字
- 约 13页
- 2026-01-27 发布于山东
- 举报
清华c语言期末测试题
第一部分单选题(50题)
1、以下关于动态内存分配的说法正确的是?()
A.malloc函数用于动态分配内存,返回void*
B.free函数用于释放动态分配的内存
C.动态分配的内存需手动释放,避免内存泄漏
D.以上都正确
【答案】:答案解析:A、B、C均是动态内存分配的核心规则,故选D。
2、以下关于函数参数的说法正确的是?()
A.形参是局部变量
B.实参是局部变量
C.形参在函数调用后释放
D.实参在函数调用后释放
【答案】:答案解析:形参是函数内局部变量(调用时分配内存,调用结束释放),实参是主调函数中的变量(生命周期与主调函数一致),故选A。
3、若intx=10;则表达式x%3的结果是?()
A.1
B.2
C.3
D.0
【答案】:答案解析:%是取余运算符,10除以3商3余1,故选A。
4、以下指针与函数的关系正确的是?()
A.函数名是函数的地址
B.函数指针可指向函数
C.可通过函数指针调用函数
D.以上都正确
【答案】:答案解析:A、B、C均是函数与指针的基本关系,故选D。
5、指针与结构体的关系,以下说法正确的是?()
A.结构体指针通过-访问成员
B.结构体变量通过。访问成员
C.结构体指针可指向结构体变量
D.以上都正确
【答案】:答案解析:A、B、C均是结构体与指针的基本规则,故选D。
6、若inta=3,b=4;则表达式ab++的值是?()
A.12
B.15
C.16
D.7
【答案】:答案解析:b++是后置自增,先参与运算(ab=3*4=12),再自增(b变为5),故选A。
7、以下switch语句中,default的执行时机是?()
A.所有case都不匹配时
B.第一个case不匹配时
C.最后一个case不匹配时
D.任何时候
【答案】:答案解析:default仅在所有case都不匹配时执行,故选A。
8、指针变量的大小取决于?()
A.指向变量的类型
B.编译器和系统(32位4字节,64位8字节)
C.指针变量的名称
D.变量的值
【答案】:答案解析:指针大小与指向类型无关,取决于系统位数(32位4B,64位8B),故选B。
9、以下哪个是C语言的循环语句?()
A.if
B.for
C.else
D.switch
【答案】:答案解析:C语言循环语句包括for、while、do-while,if/else是选择语句,switch是多分支选择语句,故选B。
10、以下switch语句中,case穿透的情况是?()
A.case后加break
B.case后不加break
C.有default
D.无default
【答案】:答案解析:case后不加break会继续执行下一个case的代码(穿透),加break则跳出,故选B。
11、若inta=5,p=a;则p的值是?()
A.5
B.a
C.p
D.无定义
【答案】:答案解析:*p等价于p,即指针p自身的值(a的地址),故选C。
12、以下指针的算术运算中,单位是?()
A.1字节
B.指针指向类型的大小
C.4字节
D.8字节
【答案】:答案解析:指针算术运算(如p++)偏移量是指向类型的大小(如int指针+1偏移4字节),故选B。
13、指针的自增运算(p++)的含义是?()
A.指针值加1
B.指针指向的变量值加1
C.指针指向地址偏移一个类型大小
D.指针指向地址偏移1字节
【答案】:答案解析:p++使指针指向地址偏移“指向类型大小”(如int指针+4字节),故选C。
14、以下函数参数传递方式中,能修改实参值的是?()
A.值传递
B.地址传递
C.都能
D.都不能
【答案】:答案解析:值传递修改的是形参(副本),不影响实参;地址传递通过指针修改实参值,故选B。
15、若intx=3,y=5;则表达式xy?x:y的结果是?()
A.3
B.5
C.true
D.false
【答案】:答案解析:三元运算符格式“条件?值1:值2”,xy为假,取y=5,故选B。
16、若charstr=Clanguage;则(str+2)的值是?()
A.C
B.
C.l
D.a
【答案】:答案解析:str+2指向第三个字符,值为l,故选C。
17、以下数组定义中,长度为5的是?()
A.inta[5];
B.inta[]={1,2,3,4,5};
C.charstr[]=abcd;
D.以上都是
【答案】:答案解析:A长度5,B长度5,C字符串abcd含\0共5个字符,故选D。
18、若intx=4;执行switch(x){case2:printf(2);break;default:p
原创力文档

文档评论(0)