好文档 - 专业文书写作范文服务资料分享网站

2016年03月全国计算机等级考试二级《C语言》真题及详解

天下 分享 时间: 加入收藏 我要投稿 点赞

2016年03月全国计算机等级考试二级《C语言》真题

(总分100, 考试时间90分钟)

一、选择题

1. 有以下定义: struct data

{ int i;char c;double d;}x; 以下叙述中错误的是______。

A x的内存地址与x. i的内存地址相同 B struct data是一个类型名

C 初始化时,可以对x的所有成员同时赋初值 D 成员i、c和d占用的是同一个存储空间 答案:D

[解析] 变量i、c、d是结构体变量x中三个不同的成员,占用不同的存储空间。 2. 以下函数的功能是:计算a的n次方作为函数值返回。 double fun(double a,int n) { int i;double s=1.0;

for(i=1;i<=n;i++)s=______; return s; }

为实现上述功能,函数中下划线处应填入的是______。 A s*i B s*a C s+i*i D s+a*a 答案:B

[解析] s为a的(i-1)次方的结果,所以令s=s*a即可得到a的i次方。 3. 有以下程序: #include<stdio.h> #include<string.h> main( )

{ char str[ ]={\

printf(\}

程序的运行结果是______。 A 13,13 B 13,14 C 13,15 D 14,15 答案:B [解析] strlen返回字符串的长度,不包含字符串末尾的结束字符\,结果为13;sizeof返回字符串所占存储空间的大小,由于字符串最后要加上一个\,所以结果为13+1=14。

4. 若有说明:typedef struct{int a;char c;}w;,则以下叙述正确的是______。 A 编译后系统为w分配5个字节 B 编译后系统为w分配6个字节 C 编译后系统为w分配8个字节 D 编译后系统不为w分配存储空间

答案:D [解析] w是一个自定义类型,不是变量,故编译后系统不为w分配存储空间。当w定义为结构体变量时才会为其分配存储空间。

5. 以下叙述中错误的是______。 A 同一个数组中所有元素的类型相同

B 不可以跳过前面的数组元素,给后面的元素赋初值0

C 定义语句:int a[10]={0},给a数组中所有元素赋初值0 D 若有定义语句:int a[4]={1,2,3,4,5};,编译时将忽略多余的初值 答案:D

[解析] 数组初始化时,若赋初值的个数多于所定义数组的元素个数时,编译器会报错。 6. 若有以下定义:

struct tt{char name[10];char sex;}aa={\则错误的语句是______。 A scanf(\B aa.sex=getchar( );

C printf(\D printf(\>sex); 答案:A

[解析] sex是一个char类型变量,不是地址,A项应为scanf(\。 7. C语言编译程序的功能是______。 A 执行一个C语言编写的源程序 B 把C源程序翻译成ASCII码 C 把C源程序翻译成机器代码

D 把C源程序与系统提供的库函数组合成一个二进制执行文件 答案:C

[解析] 编译程序的功能是将\高级语言\翻译为\机器语言\,将C语言语句转换成二进制的机器指令。

8. 有以下程序: #include<stdio.h> int fun(int n)

{ if(n)return fun(n-1)+n; else return 0; }

main( )

{printf(\程序的运行结果是______。 A 4 B 5 C 6 D 7 答案:C

[解析] fun函数是一个递归函数,调用f(3),参数n=3,返回f(3-1)+3=f(2)+3=f(1)+2+3=f(0)+1+2+3=0+6=6。

9. 有以下程序: #include<stdio.h> main( )

{ int sum=0,x=5;

do{sum+=x;}while(!--x);

printf(\}

程序的运行结果是______。 A 0 B 5 C 14 D 15 答案:B [解析] do-while循环,先执行循环体sum+=x,则sum=sum+x=0+5=5,再执行while中的表达式,结果为0,退出循环,所以运行结果是5。

10. 下面不属于软件设计阶段任务的是______。 A 软件的功能确定 B 软件的总体结构设计 C 软件的数据设计 D 软件的过程设计 答案:A

[解析] 软件设计阶段的任务包括:①结构设计;②数据设计;③接口设计;④过程设计。软件的功能确定是在需求分析阶段完成的。

11. 有以下程序: #include<stdio.h> #include<string.h>

typedef struct{char name[9];char sex;float score[2];}STU; void f(STU*a)

{ strcpy(a->name,\

a->sex=\>score[1]=90.0; }

main( )

{ STU c={\

f(d);printf(\>name,c.sex,c.score[0],c.score[1]); }

程序的运行结果是______。 A Qian,f,95,92 B Zhao,f,95,90 C Zhao,m,95,90 D Zhao,f,95,92 答案:C [解析] f函数调用时,结构体数组名作为实参传给形参指针,结构体指针a指向数组c的首地址。因此,f可以对数组c中的元素赋值,故返回主函数之后,数组c中的成员值已被更新。main函数中有赋值语句\,指针d指向结构体数组c的首地址,故d->name=c.name,输出结果为Zhao,m,95,90。

12. 在C语言程序中,下列说法正确的是______。 A 函数的定义可以嵌套,但函数的调用不可以嵌套 B 函数的定义不可以嵌套,但函数的调用可以嵌套 C 函数的定义和调用均不可以嵌套 D 函数的定义和调用均可以嵌套 答案:B

[解析] 函数定义都是在函数外部进行的,函数调用是在函数内部进行的,所以函数的定义不可以嵌套,但函数的调用可以嵌套。

2016年03月全国计算机等级考试二级《C语言》真题及详解

2016年03月全国计算机等级考试二级《C语言》真题(总分100,考试时间90分钟)一、选择题1.有以下定义:structdata{inti;charc;doubled;}x;以下叙述中错误的是______。Ax的内存地址与x.i的内存地址相同Bstructdata是一
推荐度:
点击下载文档文档为doc格式
5m79t8r4si0wacw0f2p46m3qp9xkpa00yl8
领取福利

微信扫码领取福利

微信扫码分享