大学c语言考试题库及答案(夺冠).docxVIP

  • 0
  • 0
  • 约6.46千字
  • 约 13页
  • 2026-01-27 发布于河南
  • 举报

大学c语言考试题库

第一部分单选题(50题)

1、以下哪个函数用于读取字符?()

A.putchar()

B.gets()

C.getchar()

D.printf()

【答案】:答案解析:getchar()读取单个字符,puts()输出字符串,gets()读取字符串(已淘汰),故选C。

2、以下数组定义中,正确的是?()

A.inta[5];

B.inta[5]={1,2,3,4,5};

C.inta[]={1,2,3,4,5};

D.以上都是

【答案】:答案解析:A、B、C均符合数组定义规则,故选D。

3、以下函数定义正确的是?()

A.voidfun(){printf(hello);}

B.voidfun(inta){printf(%d,a);}

C.intfun(){return5;}

D.以上都正确

【答案】:答案解析:A无参无返回值,B有参无返回值,C无参有返回值,均符合语法,故选D。

4、若inta=10,p=a;则p的值是?()

A.10

B.a

C.p

D.无定义

【答案】:答案解析:*p是解引用,-用于结构体指针访问成员,.用于结构体变量访问成员,故选B。

5、以下函数定义中,参数为两个int类型的是?()

A.voidfun(inta,floatb){}

B.voidfun(inta,intb){}

C.voidfun(floata,intb){}

D.voidfun(inta,charb){}

【答案】:答案解析:B中两个参数均为int类型,其余选项参数类型不匹配,故选B。

6、若charc=A;执行c=c+32后,c的值是?()

A.a

B.B

C.65

D.97

【答案】:答案解析:大写字母ASCII码比对应小写字母小32,A(65)+32=a(97),故选A。

7、以下循环中,用于计算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。

8、若inta=7,*p=a;执行++*p;后a的值是?()

A.7

B.8

C.a

D.无定义

【答案】:答案解析:++*p等价于++(*p),先解引用取a的值,再加1(a=8),故选B。

9、若inta=10,*p=a,q=p;则q的值是?()

A.10

B.a

C.p

D.无定义

【答案】:答案解析:q=p使q指向a,*q=10,故选A。

10、若inta[5]={1,2,3,4,5},p=a;执行p+=2;后p的值是?()

A.2

B.3

C.4

D.5

【答案】:答案解析:p+=2使p指向a[2],*p=3,故选B。

11、指针与字符串的关系,以下说法正确的是?()

A.字符串常量是字符数组,数组名是指针

B.字符串可通过指针遍历

C.字符指针可指向字符串常量

D.以上都正确

【答案】:答案解析:A、B、C均是指针与字符串的基本关系,故选D。

12、函数调用时,实参的顺序必须与形参的顺序?()

A.一致

B.相反

C.无关

D.部分一致

【答案】:答案解析:实参和形参需按顺序一一对应(类型、个数、顺序匹配),否则可能导致逻辑错误,故选A。

13、以下指针运算正确的是?()

A.inta=10,*p=a;p++;

B.inta=10,*p=a;p=a;

C.inta=10,*p=a;p=5;

D.inta=10,*p=a;*p=a;

【答案】:答案解析:A指针p自增(指向a的下一个地址),B不能将int值赋给指针,C不能取常量地址,D不能将地址赋给int变量,故选A。

14、以下switch语句中,case后的常量可以是?()

A.整数

B.字符

C.枚举常量

D.以上都可以

【答案】:答案解析:switch的case后必须是整型常量(整数、字符、枚举常量,字符本质是ASCII码整数),故选D。

15、逻辑表达式!0的结果是?()

A.0

B.1

C.真

D.假

【答案】:答案解析:C语言中非0为真,!是逻辑非,!0(假)结果为1(真),故选B。

16、以下for循环的循环变量初始化表达式为“i=5”的是?()

A.for(i=0;i5;i++)

B.for(i=5;i0;i--)

C.for(i=2;i=5;i++)

D.for(i=5;i10;i+=2)

【答案】:答案解析:初始化表达式是for循环第一个部分,B中i=5符合

文档评论(0)

1亿VIP精品文档

相关文档