- 0
- 0
- 约6.36千字
- 约 13页
- 2026-01-31 发布于河南
- 举报
2026年专升本C语言真题
第一部分单选题(50题)
1、若inta[5];则数组a的元素个数是?()
A.4
B.5
C.6
D.不确定
【答案】:答案解析:数组a[5]定义5个元素(下标0-4),故选B。
2、以下if语句中,条件表达式正确的是?()
A.if(x=5)printf(yes);
B.if(x==5)printf(yes);
C.if(x=5;)printf(yes);
D.if(x==5;)printf(yes);
【答案】:答案解析:if条件需是判断表达式(==),A是赋值,C、D多加分号,故选B。
3、以下定义指向字符串的指针正确的是?()
A.char*str=hello;
B.charstr[]=hello;
C.char(*str)[]=hello;
D.charstr[5]=hello;
【答案】:答案解析:A是指向字符串常量的指针,B是字符数组,C是数组指针(类型不匹配),D长度不足(含\0需6字节),故选A。
4、若intx=10,y=20;则表达式x!=y的结果是?()
A.0
B.1
C.10
D.20
【答案】:答案解析:!=是不等于判断,x!=y为真,C语言中真用1表示,故选B。
5、以下定义指向二维数组的指针正确的是?()
A.inta[2][3],(*p)[3]=a;
B.inta[2][3],*p=a;
C.inta[2][3],p=a[0];
D.inta[2][3],*p=a;
【答案】:答案解析:A是指向3列数组的指针(匹配二维数组a的行),B、C、D类型不匹配,故选A。
6、以下函数调用正确的是?()
A.fun();
B.fun(1,2);
C.fun(test);
D.取决于函数定义
【答案】:答案解析:函数调用是否正确取决于函数定义(参数类型、个数),A、B、C均可能正确,故选D。
7、若inta=10,*p=a,q=p;则q的值是?()
A.10
B.a
C.p
D.无定义
【答案】:答案解析:q=p使q指向a,*q=10,故选A。
8、若inti=0;执行for(i=0;i5;i++){if(i==3)break;printf(%d,i);}输出结果是?()
A.012
B.0123
C.01234
D.无输出
【答案】:答案解析:i=3时break,输出012,故选A。
9、以下循环中,用于计算1到10的乘积的是?()
A.s=0;for(i=1;i=10;i++)s+=i;
B.s=1;for(i=1;i=10;i++)s*=i;
C.s=0;while(i=10){s*=i;i++;}
D.s=1;do{s+=i;i++;}while(i=10);
【答案】:答案解析:乘积初始值为1,累加初始值为0,B的逻辑是12...*10,正确,故选B。
10、以下哪个if语句的条件是“x是偶数且x大于10”?()
A.if(x%2==0x10)
B.if(x%2=0x10)
C.if(x%2==0||x10)
D.if(x%2=0||x10)
【答案】:答案解析:偶数判断用x%2==0,逻辑与用,B是赋值,C、D是逻辑或,故选A。
11、以下数组初始化错误的是?()
A.inta[5]={0};
B.inta[]={1,2,3};
C.inta[5]={1,2,3};
D.inta[5]={1,2,3,4,5,6};
【答案】:答案解析:D初始化元素个数超数组长度(5),编译报错,A、B、C正确,故选D。
12、以下switch语句中,break语句的位置正确的是?()
A.case后任意位置
B.必须在case代码最后
C.必须在default后
D.不能在default后
【答案】:答案解析:break可在case代码任意位置(执行到break即跳出),不一定在最后,default后也可加break,故选A。
13、以下数组定义中,可省略数组长度的是?()
A.inta[5];
B.inta[]={1,2,3};
C.inta[5]={1,2,3};
D.inta[][3];
【答案】:答案解析:初始化时可省略长度(编译器自动计算),D二维数组第二维不能省略,故选B。
14、以下关于指针数组和数组指针的说法正确的是?()
A.指针数组是数组,元素为指针
B.数组指针是指针,指向数组
C.int*arr[5]是指针数组,int(*arr)[5]是数组指针
D.以上都正确
【答案】:答案解析:A、B、C均准确区分了指针数组和数组指针,故选D。
15、若inta[4]={1,2,3,4};则*(a+1)的值是?()
A.1
B.2
C.3
D.4
原创力文档

文档评论(0)