- 0
- 0
- 约6.43千字
- 约 13页
- 2026-01-31 发布于山东
- 举报
2026年C语言程序设计基础单项选择题库
第一部分单选题(50题)
1、若intx=3,y=5;执行if(xy)printf(x大);elseif(x==y)printf(相等);elseprintf(y大);输出结果是?()
A.x大
B.相等
C.y大
D.无输出
【答案】:答案解析:x=3y=5,执行else,输出y大,故选C。
2、以下关于main函数的说法错误的是?()
A.程序从main开始执行
B.main函数可带参数
C.main函数必须有返回值
D.main函数可调用其他函数
【答案】:答案解析:main函数可声明为void(无返回值),C说法错误,A、B、D正确,故选C。
3、以下哪个操作会导致野指针?()
A.指针未初始化
B.指针指向的内存被释放后未置空
C.指针越界访问
D.以上都是
【答案】:答案解析:野指针是指向无效地址的指针,A、B、C均会导致野指针,故选D。
4、putchar()函数的功能是?()
A.读取一个字符
B.输出一个字符
C.读取字符串
D.输出字符串
【答案】:答案解析:putchar()用于输出单个字符,getchar()读取单个字符,puts()输出字符串,故选B。
5、以下函数声明错误的是?()
A.voidfun(int);
B.voidfun(inta);
C.voidfun(inta,intb);
D.voidfun(inta;intb);
【答案】:答案解析:函数声明中参数用逗号分隔,不能用分号,D语法错误,故选D。
6、若inta[5]={10,20,30,40,50};则a[2]的值是?()
A.10
B.20
C.30
D.40
【答案】:答案解析:数组下标从0开始,a[2]是第三个元素30,故选C。
7、以下关于指针的说法正确的是?()
A.野指针是指向无效地址的指针
B.空指针是野指针的一种
C.避免野指针需初始化并及时置空
D.以上都正确
【答案】:答案解析:A、B、C均是野指针的核心知识点,故选D。
8、函数嵌套调用是指?()
A.函数调用自身
B.函数调用另一个函数
C.函数定义中包含另一个函数
D.多个函数互相调用
【答案】:答案解析:嵌套调用是函数A调用函数B,函数B调用函数C,递归是调用自身,故选B。
9、以下哪个表达式可访问数组a的第i个元素(i从1开始)?()
A.a[i]
B.a[i-1]
C.*(a+i)
D.*(a+i-1)
【答案】:答案解析:数组下标从0开始,第i个元素对应下标i-1,a[i-1]正确,C、D是指针访问(对应下标i),故选B。
10、若inta=5,b=3;执行if(ab){a--;b++;}后a和b的值分别是?()
A.4,4
B.5,3
C.4,3
D.5,4
【答案】:答案解析:ab为真,执行代码块,a=5-1=4,b=3+1=4,故选A。
11、数组名的本质是?()
A.数组第一个元素的地址
B.数组最后一个元素的地址
C.数组元素的个数
D.数组的大小
【答案】:答案解析:数组名是首元素地址(常量,不可修改),故选A。
12、若inta[3][2]={{1,2},{3,4},{5,6}};则a[2][1]的值是?()
A.5
B.6
C.3
D.4
【答案】:答案解析:a[2][1]是第三行第二列,值为6,故选B。
13、以下关于循环语句的说法错误的是?()
A.for循环三个表达式均可省略
B.while循环先判断后执行
C.do-while循环至少执行一次
D.continue可用于switch语句
【答案】:答案解析:continue仅用于循环语句,不能用于switch,A、B、C说法正确,故选D。
14、以下关于指针的说法错误的是?()
A.指针可指向变量、数组、函数
B.指针可进行算术运算(如++、--)
C.指针可指向自身
D.指针可用于动态内存分配
【答案】:答案解析:指针不能指向自身(类型不匹配),A、B、D说法正确,故选C。
15、若inta=3;执行if(++a3)printf(A);elseprintf(B);输出结果是?()
A.A
B.B
C.AB
D.无输出
【答案】:答案解析:++a是前置自增,a变为43,条件为真,输出A,故选A。
16、若inta[5]={1,2,3,4,5};则*(a+4)的值是?()
A.4
B.5
C.1
D.2
【答案】:答案解析:a+4是第五个元素地址,*(a+4)=a[4]=5,故选B。
17、以下switch语句中,case穿透的情况是?()
A.case后加break
B.case后不加break
C.
原创力文档

文档评论(0)