全国计算机等级考试二级C语言笔试真题与答案Word文档格式.docx
《全国计算机等级考试二级C语言笔试真题与答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言笔试真题与答案Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
10、在软件设计中不使用的工具是( )。
A.系统结构图
B.程序流程图
C.PAD图
D.数据流图(DFD图)
11、针对简单程序设计,以下叙述的实施步骤正确的是( )。
A.确定算法和数据结构、编码、调试、整理文档
B.编码、确定算法和数据结构、调试、整理文档
C.整理文档、确定算法和数据结构、编码、调试
D.确定算法和数据结构、调试、编码、整理文档
12、关于C语言中数的表示,以下叙述正确的是( )。
A.只有整型数在允许范围内能精确无误的表示,实型数会有误差
B.只要在允许范围内整型和实型都能精确表示
C.只有实型数在允许范围内能精确无误的表示,整型数会有误差
D.只有八进制表示的数不会有误差
13、以下关于算法叙述错误的是( )。
A.算法可以用伪代码、流程图等多种形式来描述
B.一个正确的算法必须有输入
C.一个正确的算法必须有输出
D.用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码
14、以下叙述错误的是( )。
A.一个C程序可以包含多个不同名的函数
B.一个C程序只能有一个主函数
C.C程序在书写时,有严格的缩进要求,否则不能编译通过
D.C程序的主函数必须用main作为函数名
15、设有以下语句
charch1,ch2,scanf(”%c%c”,&
ch1,&
ch2);
若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是( )。
A.A和B之间用逗号间隔
B.A和B之间不能有任何间隔符
C.A和B之间可以用回车间隔
D.A和B之间用空格间隔
16、以下选项中非法的字符常量是( )。
A.’\102’
B.’\65’
C.’\xff’
D.’\019’
17、有以下程序
#include“stdio.h”
main()
{
intA=0,B=0,C=0;
C=(A-=A-5);
(A=B,B+=4);
printf(“%d,%d,%d\n”,A,B,C);
}
程序运行后输出的结果是( )。
A.0,4,5
B.4,4,5
C.4,4,4
D.0,0,0
18、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是( )。
A.x++;
printf(“%d\n”,x);
B.n=++x;
printf(“%d\n”,n);
C.++x;
D.n=x++;
19、以下选项中,能表示逻辑值“假”的是( )。
A.1
B.0.000001
C.0
D.100.0
20、有以下程序
#include"
stdio.h"
main()
{inta;
scanf("
%d"
&
a);
if(a++<
9)printf("
%d\n"
a);
elseprintf("
a--);
程序运行时键盘输入9<
回车>
,则输出的结构是( )。
A.10
B.11
C.9
D.8
21、有以下程序
{ints=0,n;
for(n=0;
n<
3;
n++)
{switch(s)
{case0:
case1:
s+=1;
case2:
s+=2;
break;
case3:
s+=3;
case4:
s+=4;
default:
}
printf("
%d"
s);
}
程序运行后的结果是( )。
A.124
B.136
C.31014
D.3610
22、若k是int类型变量,且有以下for语句
for(k=-1;
k<
0;
k++)printf(****\n”);
下面关于语句执行情况的叙述中正确的是( )。
A.循环体执行一次
B.循环体执行两次
C.循环体一次也不执行
D.构成无限循环
23、有以下程序
{charA,B,C;
B='
1'
;
C='
A'
for(A=0;
A<
6;
A++)
{if(A%2)putchar(B+A);
elseputchar(C+A);
A.1B3D5F
B.ABCDFE
C.A2C4E6
D.123456
24、设有如下定义语句
intm[]={2,4,6,8},*k=m;
以下选项中,表达式的值为6的是( )。
A.*(k+2)
B.k+2
C.*k+2
D.*k+=2
25、fun函数的功能是:
通过键盘输入给x所指的整型数组所有元素赋值。
在下列划线处应该填写的是( )。
#defineN5
viodfun(intx[N])
{intm;
for(m=N-1;
m>
=0;
m--)scanf(“%d\n”,____________);
A.&
x[++m]
B.&
x[m+1]
C.x+(m++)
D.x+m
26、若有函数
viodfun(doublea[],int*n)
{………}
以下叙述中正确的是( )。
A、调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
B、形参a和n都是指针变量
C、形参a是一个数组名,n是指针变量
D、调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组
27、有以下程序
{inta,b,k,m,*p1,*p2;
k=1,m=8;
p1=&
k,p2=&
m;
a=/*p1-m;
b=*p1+*p2+6;
printf(“%d”,a);
printf(“%d\n”,b);
编译时编译器提示错误信息,你认为出错的语句是( )。
A.a=/*p1-m
B.b=*p1+*p2+6
C.k=1,m=8;
D.p1=&
28、以下选项中有语法错误的是( )。
A.char*str[]={“guest”};
B.charstr[10]={“guest”};
C.char*str[3];
str[1]=“guest”;
D.charstr[3][10];
29、avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是( )。
A.intavg(int*a,intn);
B.intavg(inta[10],intn);
C.intavg(inta,intn);
D.intavg(inta[],intn);
30、有以下函数
#include“string.h”
{printf(“%d\n”,strlen(”ATS\n012\1”));
程序运行后的输出结果是( )。
A.3
B.8
C.4
D.9
31、有以下函数
{chara[20],b[20],c[20];
scanf("
%s%s"
a,b);
gets(c);
printf("
%s%s%s\n"
a,b,c);
程序运行时从第一行开始输入thisisacat!
<
,则输出结果是( )。
A.thisisacat!
B.thisisa
C.thisisacat!
D.thisisacat!
32、有以下函数
voidfun(charc)
{if(c>
'
x'
)fun(c-1);
printf("
%c"
c);
{fun('
z'
);
}程序运行输出结果是( )。
A.xyz
B.wxyz
C.zyxw
D.zyx
33、有以下函数
voidfunc(intn)
{inti;
for(i=0;
i<
=n;
i++)printf("
*"
#"
{func(3);
?
"
func(4);
\n"
程序运行输出结果是( )。
A.****#?
***#
B.***#?
*****#
C.**#?
*****#
D.****#?
34、有以下函数
voidfun(int*s)
{staticintj=0;
do{s[j]=s[j]+s[j+1];
}while(++j<
2);
{intk,a[10]={1,2,3,4,5};
for(k=1;
k<
k++)fun(a);
for(k=0;
5;
k++)printf("
a[k]);
A.12345
B.23445
C.34756
D.35745
35、有以下函数
#defineS(x)(x)*x*2
{intk=5,j=2;
%d,"
S(k+j));
S(k-j));
A.98,18
B.39,11
C.39,18
D.98,11
36、有以下函数
voidexch(intt[])
{t[0]=t[5];
{intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;
while(i<
=4){exch(&
x[i]);
i++;
x[i]);
A.246810
B.13579
C.12345
D.678910
37、设有以下程序段
structMP3
{charname[20];
charcolor;
floatprice;
}std,*ptr;
ptr=&
std;
若要引用结构体变量std中的color成员,写法错误的是( )。
A.std.color
B.ptr->
color
C.std->
color
D.(*ptr).color
38、有以下函数
structstu
{intmun;
charname[10];
intage;
};
voidfun(structstu*p)
{printf("
%s\n"
p->
name);
{structstux[3]={{01,"
zhang"
20},{02,"
wang"
19},{03,"
zhao"
18}};
fun(x+2);
}程序运行输出结果是( )。
A.zhang
B.zhao
C.wang
D.19
39、有以下函数
{inta=12,c;
c=(a<
2)<
1;
程序运行输出结果是( )。
B.50
C.2
D.96
40、以下函数不能用于向文件写入数据的是( )。
A.ftell
B.fwrite
C.fputc
D.fprintf
二、填空题
1、在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数是( )。
2、设循环队列的存储空间为Q(1:
3),初始状态为front=rear=30。
现经过一系列入队与退队运算后,front=16,rear=15,则循环队列中有( )个元素。
3、数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是( )。
4、在将E-R图转换到关系模式时,实体和联系都可以表示成( )。
5、常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于( )。
6、设变量a和b已定义为int类型,若要通过scanf(”a=%d,b=%d”,&
a,&
b);
语句分别给a和b输入1和2,则正确的数据输入内容是( )。
7、以下程序的输出结果是( )。
{inta=37;
a+=a%=9;
8、设a,b,c都是整型变量,如果a的值为1,b的值为2,则执行c=a++||b++;
语句后,变量b的值是( )。
9、有以下程序段
s=1.0;
for(k=1;
k++)s=s+1.0*(k*(k+1));
printf(“%f\n”,s);
请填空,使以下程序段的功能与上面的程序段完全相同。
k=1;
while(__________)
{s=s+1.0*(k*(k+1));
k=k+1;
printf(“%f\n”,s);
10、以下程序段的输出结果是( )。
{chara,b;
for(a=0;
a<
20;
a+=7){b=a%10;
putchar(b+'
0'
11、以下程序段的输出结果是( )。
{char*ch[4]={"
red"
"
green"
blue"
};
inti=0;
while(ch[i])
{putchar(ch[i][0]);
12、有以下程序
{intarr[]={1,3,5,7,2,4,6,8},i,start;
start);
i++)
arr[(start+i)%8]);
若在程序运行时输入整数10<
,则输出结果为( )。
13、以下程序的功能是输出a数组中的所有字符串,请填空
{char*a[]={"
ABC"
DEFGH"
IJ"
KLMNOP"
for(;
i<
4;
i++)printf("
___________);
14、以下程序的输出结果是( )。
malloc.h"
string.h"
{char*p,*q,*r;
p=q=r=(char*)malloc(sizeof(char)*20);
strcpy(p,"
attaboy,welcome!
%c%c%c\n"
p[11],q[3],r[4]);
free(p);
15、设文件test.txt中原已写入字符串Begin,执行以下程序后,文件中的内容为( )。
{FILE*fp;
fp=fopen("
c:
\\test.txt"
w+"
fputs("
test"
fp);
fclose(fp);
参考答案
1-5、ADDAD6-10、CBCAD11-15、AABCB16-20、DADCA
21-25、CACAD26-30、BADCB31-35、CADDB36-40、DCBDA
1、n-12、293、数据操纵语言4、关系
5、面向对象方法6、a=1,b=27、28、29、k<
=n
10、07411、rgb12、57213、a[i]14、cab15、test