- 0
- 0
- 约6.3千字
- 约 13页
- 2026-01-28 发布于山东
- 举报
大学c语言的期末试题
第一部分单选题(50题)
1、函数参数传递中,值传递适用于?()
A.简单变量,无需修改实参
B.数组,需修改元素
C.指针,需修改实参
D.结构体,需修改成员
【答案】:答案解析:值传递用于简单变量(不修改实参),地址传递用于需修改实参的场景,故选A。
2、以下函数调用错误的是?()
A.fun();
B.fun(5);
C.fun(3,4);
D.无错误(需看函数定义)
【答案】:答案解析:调用需匹配函数定义,A对应无参函数,B对应单参函数,C对应双参函数,均可能正确,故选D。
3、以下关于指针的说法正确的是?()
A.指针可用于实现多返回值函数
B.指针可提高程序效率
C.指针可用于动态内存分配
D.以上都正确
【答案】:答案解析:指针的核心用途包括多返回值、高效访问、动态内存分配,故选D。
4、若intx=1;执行switch(x){case1:printf(1);break;case1:printf(2);break;}会出现什么情况?()
A.输出1
B.输出2
C.编译错误
D.运行错误
【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。
5、以下定义指向字符串的指针正确的是?()
A.char*str=hello;
B.charstr[]=hello;
C.char(*str)[]=hello;
D.charstr[5]=hello;
【答案】:答案解析:A是指向字符串常量的指针,B是字符数组,C是数组指针(类型不匹配),D长度不足(含\0需6字节),故选A。
6、以下哪个运算符的优先级最高?()
A.+
B.*
C.=
D.==
【答案】:答案解析:算术运算符中*(乘)优先级高于+(加),赋值(=)和关系(==)优先级更低,故选B。
7、以下哪个关键字用于定义整型变量?()
A.char
B.int
C.float
D.double
【答案】:答案解析:int定义整型,char字符型,float单精度浮点型,double双精度浮点型,故选B。
8、若inta=7,*p=a;执行++*p;后a的值是?()
A.7
B.8
C.a
D.无定义
【答案】:答案解析:++*p等价于++(*p),先解引用取a的值,再加1(a=8),故选B。
9、以下数组定义错误的是?()
A.inta[5];
B.inta[5]={1,2,3,4,5};
C.inta[5]={1,2,3,4,5,6};
D.inta[]={1,2,3,4,5};
【答案】:答案解析:C初始化元素超5个,编译报错,其余正确,故选C。
10、以下函数参数传递方式中,能修改实参值的是?()
A.值传递
B.地址传递
C.都能
D.都不能
【答案】:答案解析:值传递修改的是形参(副本),不影响实参;地址传递通过指针修改实参值,故选B。
11、若inti=0,s=0;执行while(i=3){s+=i2;i++;}后s的值是?()
A.12
B.6
C.8
D.10
【答案】:答案解析:累加02+12+22+3*2=0+2+4+6=12,s=12,故选A。
12、下列变量定义语法正确的是?()
A.inta=5;
B.inta=b=5;
C.int5a;
D.inta;b;
【答案】:答案解析:B不能连续赋值定义,C标识符开头错误,D分号分隔需分别定义(inta;intb;),故选A。
13、以下定义指向数组的指针正确的是?()
A.inta[5],*p=a;
B.inta[5],*p=a;
C.inta[5],p=a;
D.inta[5],*p=a[0];
【答案】:答案解析:a是数组名(首元素地址),p=a等价于p=a[0],Ba是数组地址(类型不匹配),Cp是普通变量,Dp不能赋a[0]的值,故选A。
14、若inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};则a[1][2]的值是?()
A.5
B.6
C.8
D.9
【答案】:答案解析:a[1][2]是第二行第三列,值为6,故选B。
15、若intx=3;执行以下代码后a的值是?()inta;if(x5)a=10;elseif(x2)a=20;elsea=30;
A.10
B.20
C.30
D.无定义
【答案】:答案解析:x=32,执行第二个分支,a=20,故选B。
16、函数参数的默认值在______指定?()
A.函数定义时
B.函数声明时
C.函数调用时
D.C语言不支持默认参数
【答案】:答案解析:标准C语言不支持函数参数默认值(C++支持),故选D。
17、若inti=5,s=0;执行while(i
原创力文档

文档评论(0)