计算机二级c语言真题(历年真题).docxVIP

  • 0
  • 0
  • 约6.49千字
  • 约 13页
  • 2026-01-27 发布于山东
  • 举报

计算机二级c语言真题

第一部分单选题(50题)

1、以下哪个表达式可访问数组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。

2、函数返回值的类型由______决定?()

A.return语句中的表达式类型

B.函数定义时的返回类型

C.函数调用时的参数类型

D.编译器默认类型

【答案】:答案解析:函数返回类型在定义时指定,return表达式类型需与返回类型匹配(不匹配则强制转换),故选B。

3、若inti=0;执行for(i=0;i5;i++){if(i==2)continue;printf(%d,i);}输出结果是?()

A.0134

B.01234

C.01

D.无限循环

【答案】:答案解析:i=2时执行continue,跳过printf,输出0134,故选A。

4、若inta[5]={10,20,30,40,50},p=a+3;则p的值是?()

A.30

B.40

C.50

D.无定义

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

5、函数参数传递中,地址传递的特点是?()

A.形参是实参的副本

B.形参修改不影响实参

C.传递的是变量地址

D.用于简单变量传参

【答案】:答案解析:地址传递(指针)传递变量地址,形参通过地址修改实参值,值传递是副本,故选C。

6、指针作为函数返回值时,不能返回?()

A.静态局部变量的地址

B.全局变量的地址

C.动态分配内存的地址

D.局部变量的地址

【答案】:答案解析:局部变量在函数调用结束后释放,返回其地址会导致野指针,故选D。

7、若inti=0;执行do{i++;printf(%d,i);}while(i3);输出结果是?()

A.123

B.012

C.12

D.无输出

【答案】:答案解析:do-while先执行,i从1到3,输出123,故选A。

8、函数声明的作用是?()

A.告诉编译器函数的存在

B.实现函数功能

C.分配函数内存

D.调用函数

【答案】:答案解析:函数声明用于向编译器说明函数名、参数、返回类型(确保调用正确),定义才是实现功能,故选A。

9、以下函数参数为指针的是?()

A.voidfun(int*a){}

B.voidfun(inta){}

C.voidfun(inta[]){}

D.A和C

【答案】:答案解析:A是指针参数,C数组名参数本质是指针,B是值参数,故选D。

10、以下哪个数据类型用于存储单个字符?()

A.int

B.char

C.float

D.double

【答案】:答案解析:char用于存储单个字符(ASCII码),int存储整数,float/double存储浮点数,故选B。

11、若intx=5;则表达式++x的结果是?()

A.5

B.6

C.4

D.7

【答案】:答案解析:++x是前置自增,先自增(x变为6)再参与运算,结果为6,故选B。

12、若charstr=Clanguage;则(str+2)的值是?()

A.C

B.

C.l

D.a

【答案】:答案解析:str+2指向第三个字符,值为l,故选C。

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

A.10

B.a

C.p

D.无定义

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

14、以下函数调用时,实参为常量的是?()

A.fun(5);

B.fun(a);

C.fun(a);

D.fun(abc);

【答案】:答案解析:A中5是常量,B是变量,C是变量地址,D是字符串常量,题目问“常量”,A正确,故选A。

15、以下循环中,无限循环的是?()

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

B.while(i=5)

C.do{i++;}while(i5);

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

【答案】:答案解析:while(i=5)是赋值(i=5,非0,条件恒真),无限循环;A执行5次,C(i初始0)执行5次,D执行5次,故选B。

16、以下函数参数传递方式中,能修改实参值的是?()

A.值传递

B.地址传递

C.都能

D.都不能

【答案】:答案解析:值传递修改的是形参(副本),不影响实参;地址传递通过指针修改实参值,故选B。

17、若inti=1;执行while(i=3){printf(%d,i);i++;}输出结果是?()

A.123

B.1234

C.012

D.无输出

【答案】:答案解析:

文档评论(0)

1亿VIP精品文档

相关文档