- 0
- 0
- 约6.4千字
- 约 13页
- 2026-01-31 发布于山东
- 举报
2026年c语言算法考试题库
第一部分单选题(50题)
1、指针作为函数参数时,传递的是?()
A.指针的值
B.指针的地址
C.变量的值
D.变量的地址
【答案】:答案解析:指针传参本质是传递变量地址,函数中通过指针可修改实参值,故选D。
2、以下循环中,循环次数为3次的是?()
A.for(i=1;i=3;i++)
B.while(i=3)
C.do{i++;}while(i3);
D.for(i=5;i0;i--)
【答案】:答案解析:A执行3次(1-3),B是无限循环,C(i初始0)执行3次,D执行5次,题目问“3次”,A明确正确,故选A。
3、以下哪个操作会导致野指针?()
A.指针未初始化
B.指针指向的内存被释放后未置空
C.指针越界访问
D.以上都是
【答案】:答案解析:野指针是指向无效地址的指针,A、B、C均会导致野指针,故选D。
4、以下循环语句中,执行次数为5次的是?()
A.for(i=0;i5;i++)
B.while(i5){i++;}
C.do{i++;}while(i5);
D.for(i=1;i=5;i--)
【答案】:答案解析:A执行5次(0-4),B、C未初始化i(若i初始0则5次,否则不确定),D初始i=10,执行0次,故选A。
5、若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。
6、以下哪个函数用于读取字符?()
A.putchar()
B.gets()
C.getchar()
D.printf()
【答案】:答案解析:getchar()读取单个字符,puts()输出字符串,gets()读取字符串(已淘汰),故选C。
7、指针变量的大小取决于?()
A.指向变量的类型
B.编译器和系统(32位4字节,64位8字节)
C.指针变量的名称
D.变量的值
【答案】:答案解析:指针大小与指向类型无关,取决于系统位数(32位4B,64位8B),故选B。
8、以下关于指针的说法正确的是?()
A.野指针是指向无效地址的指针
B.空指针是野指针的一种
C.避免野指针需初始化并及时置空
D.以上都正确
【答案】:答案解析:A、B、C均是野指针的核心知识点,故选D。
9、递归函数的终止条件是?()
A.函数调用自身
B.函数返回值为0
C.不再调用自身的条件
D.无终止条件
【答案】:答案解析:递归函数必须有终止条件(否则无限递归栈溢出),终止条件是不再调用自身的判断,故选C。
10、数组名作为函数参数时,函数形参的正确写法是?()
A.inta[]
B.int*a
C.inta[5]
D.以上都是
【答案】:答案解析:数组形参可写为inta[]、int*a(指针)、inta[5](长度可忽略),本质均为指针,故选D。
11、以下switch语句中,break语句的位置正确的是?()
A.case后任意位置
B.必须在case代码最后
C.必须在default后
D.不能在default后
【答案】:答案解析:break可在case代码任意位置(执行到break即跳出),不一定在最后,default后也可加break,故选A。
12、若inta[4]={1,2,3,4},p=a;执行p++后,*p的值是?()
A.1
B.2
C.3
D.4
【答案】:答案解析:*p++先解引用(值为1),再p自增(指向a[1]),*p=2,故选B。
13、若inta[4]={1,2,3,4};则*(a+1)的值是?()
A.1
B.2
C.3
D.4
【答案】:答案解析:a是首地址,a+1是第二个元素地址,*(a+1)=a[1]=2,故选B。
14、以下关于main函数的说法正确的是?()
A.main函数可无返回值
B.main函数可带参数
C.main函数是程序入口
D.以上都正确
【答案】:答案解析:main函数可声明为void(无返回值),可带argc/argv参数,是程序唯一入口,故选D。
15、以下switch语句中,case后的常量可以是?()
A.整数
B.字符
C.枚举常量
D.以上都可以
【答案】:答案解析:switch的case后必须是整型常量(整数、字符、枚举常量,字符本质是ASCII码整数),故选D。
16、若intx=2;执行switch(x){case1:printf(a);case2:printf(b);case3:printf(c);}输出结果是?()
A.b
B.bc
C.abc
D.无输
原创力文档

文档评论(0)