- 0
- 0
- 约6.44千字
- 约 13页
- 2026-01-31 发布于河南
- 举报
2026年c语言编程练习题
第一部分单选题(50题)
1、以下关于指针数组和数组指针的说法正确的是?()
A.指针数组是数组,元素为指针
B.数组指针是指针,指向数组
C.int*arr[5]是指针数组,int(*arr)[5]是数组指针
D.以上都正确
【答案】:答案解析:A、B、C均准确区分了指针数组和数组指针,故选D。
2、指针与字符串的关系,以下说法正确的是?()
A.字符串常量是字符数组,数组名是指针
B.字符串可通过指针遍历
C.字符指针可指向字符串常量
D.以上都正确
【答案】:答案解析:A、B、C均是指针与字符串的基本关系,故选D。
3、以下转义字符表示换行的是?()
A.\t
B.\n
C.\
D.\r
【答案】:答案解析:\t是制表符,\n是换行符,\是反斜杠,\r是回车符,故选B。
4、若inti=0;执行while(1){printf(%d,i);i++;if(i==3)break;}输出结果是?()
A.012
B.0123
C.无限循环
D.无输出
【答案】:答案解析:while(1)无限循环,i=3时break,输出012,故选A。
5、break语句不能用于以下哪种结构?()
A.for循环
B.while循环
C.do-while循环
D.if语句
【答案】:答案解析:break可用于循环(for/while/do-while)和switch语句,不能用于if语句,故选D。
6、若inta[3][4]={{1,2},{3,4,5},{6}};则a[0][1]的值是?()
A.1
B.2
C.3
D.4
【答案】:答案解析:a[0][1]是第一行第二列,值为2,故选B。
7、若inti=1,s=0;执行while(i=5){s+=i;i++;}后s的值是?()
A.15
B.10
C.5
D.0
【答案】:答案解析:循环累加1+2+3+4+5=15,s=15,故选A。
8、函数返回值的类型与return语句中表达式类型不一致时,会?()
A.编译错误
B.自动强制转换为函数返回类型
C.程序崩溃
D.无影响
【答案】:答案解析:编译器会将return表达式类型强制转换为函数返回类型(可能丢失精度),不报错,故选B。
9、以下关于函数参数的说法正确的是?()
A.形参是局部变量
B.实参是局部变量
C.形参在函数调用后释放
D.实参在函数调用后释放
【答案】:答案解析:形参是函数内局部变量(调用时分配内存,调用结束释放),实参是主调函数中的变量(生命周期与主调函数一致),故选A。
10、数组名作为函数参数时,传递的是?()
A.数组第一个元素的值
B.数组所有元素的值
C.数组第一个元素的地址
D.数组长度
【答案】:答案解析:数组名传参本质是首元素地址(指针传递),函数中可通过指针访问数组,故选C。
11、以下if语句中,逻辑运算符使用正确的是?()
A.if(x3x7)
B.if(x3x7)
C.if(x3|||x7)
D.if(x3||x7)
【答案】:答案解析:逻辑与用,逻辑或用||,B是按位与,C多写||,D逻辑错误(x3或x7恒为真),故选A。
12、以下哪个函数用于读取字符?()
A.putchar()
B.gets()
C.getchar()
D.printf()
【答案】:答案解析:getchar()读取单个字符,puts()输出字符串,gets()读取字符串(已淘汰),故选C。
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、若intx=9;执行以下代码后输出结果是?()if(x10)printf(A);elseif(x8)printf(B);elseif(x6)printf(C);elseprintf(D);
A.A
B.B
C.C
D.
【答案】:答案解析:x=98,执行第二个分支,输出B,故选B。
15、以下函数声明中,返回类型为float的是?()
A.floatfun();
B.voidfun(floata);
C.intfun(floata);
D.charfun(floata);
【答案】:答案解析:A返回类型为float,B无返回值,C返回类型int,D返回类型char,故选A。
16、若inta=4;执行if(a--4)printf(A);elseprintf(B);输出结果是?()
A.A
B.B
C.AB
D.无输出
【答案】:答案解析:a--是后置自减,条件判断时a=4,4
原创力文档

文档评论(0)