- 0
- 0
- 约6.22千字
- 约 13页
- 2026-01-31 发布于河南
- 举报
2026年c语言期末考试题库
第一部分单选题(50题)
1、若inta=4;执行a-=2;后a的值是?()
A.2
B.4
C.6
D.0
【答案】:答案解析:a-=2等价于a=a-2,4-2=2,故选A。
2、若inta[3]={1,2,3},p=a;则(p+2)的值是?()
A.1
B.2
C.3
D.无定义
【答案】:答案解析:p+2指向a[2],解引用*(p+2)=a[2]=3,故选C。
3、以下函数定义中,参数为两个int类型的是?()
A.voidfun(inta,floatb){}
B.voidfun(inta,intb){}
C.voidfun(floata,intb){}
D.voidfun(inta,charb){}
【答案】:答案解析:B中两个参数均为int类型,其余选项参数类型不匹配,故选B。
4、数组作为函数参数时,函数中修改数组元素会影响主调函数中的数组吗?()
A.会(指针传递)
B.不会(值传递)
C.取决于数组长度
D.不确定
【答案】:答案解析:数组名传参是指针传递,函数中通过指针修改元素会同步到主调函数数组,故选A。
5、若inti=0;执行for(i=0;i5;i++){if(i==2)continue;printf(%d,i);}输出结果是?()
A.0134
B.01234
C.01
D.无限循环
【答案】:答案解析:i=2时执行continue,跳过printf,输出0134,故选A。
6、以下if语句中,赋值表达式作为条件的是?()
A.if(x==3)
B.if(x=3)
C.if(x3)
D.if(x!=3)
【答案】:答案解析:x=3是赋值表达式,结果为3(非0,真),其余是判断表达式,故选B。
7、以下switch语句语法错误的是?()
A.switch(x){case1:printf(1);break;}
B.switch(x){casea:printf(a);break;}
C.switch(x){case1.5:printf(1.5);break;}
D.switch(x){default:printf(0);}
【答案】:答案解析:case后必须是整型常量,1.5是浮点型,语法错误,故选C。
8、若inta[5];执行a[0]=1;a[1]=2;则a[2]的值是?()
A.0
B.3
C.随机值
D.无定义
【答案】:答案解析:全局数组默认0,局部数组未初始化是随机值?题目未说明存储类别,通常默认全局,a[2]=0,故选A。
9、以下函数定义中,参数为指针的是?()
A.voidfun(int*a){printf(%d,*a);}
B.voidfun(inta){printf(%d,a);}
C.voidfun(inta[]){printf(%d,a[0]);}
D.A和C
【答案】:答案解析:A是指针参数,C数组名参数本质是指针,B是值参数,故选D。
10、以下关于指针的说法错误的是?()
A.指针可指向变量、数组、函数
B.指针可进行算术运算(如++、--)
C.指针可指向自身
D.指针可用于动态内存分配
【答案】:答案解析:指针不能指向自身(类型不匹配),A、B、D说法正确,故选C。
11、函数定义在main函数之后时,必须先?()
A.调用函数
B.声明函数
C.定义函数
D.无要求
【答案】:答案解析:main函数调用其他函数时,若函数定义在main之后,需先声明(否则编译器找不到函数),故选B。
12、若intx=6;执行if(x5)printf(A);else{printf(B);printf(C);}输出结果是?()
A.A
B.BC
C.ABC
D.无输出
【答案】:答案解析:x=6不满足if,执行else代码块,输出BC,故选B。
13、若intx=1;执行switch(x){case1:printf(1);break;case1:printf(2);break;}会出现什么情况?()
A.输出1
B.输出2
C.编译错误
D.运行错误
【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。
14、若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。
15、若inti=1;执行while(i=4){printf(%d,i);i+=3;}输出结果是?()
A.14
B.1234
C.1
D.无输出
【答案】:答案解析:i初始1,加3后4,
原创力文档

文档评论(0)