全国计算机等级考试二级C语言真题Word下载.docx
《全国计算机等级考试二级C语言真题Word下载.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言真题Word下载.docx(65页珍藏版)》请在冰豆网上搜索。
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<
sthio.h>
Main()
{
IntA=0,B=0,C=0;
C=(A-=A-5);
(A=B,B+=4);
Print(“%d,%d,%d\n”,A,B,C)
}
程序运行后输出的结果是
A0,4,5B4,4,5C4,4,4D0,0,0
18、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是
A、x++;
printf((“%d\n”,x);
B、n=++x;
printf((“%d\n”,n);
C、++x;
D、n=x++;
19、以下选项中,能表示逻辑值“假”的是
A1B0.000001C0D100.0
20、有以下程序
{inta;
Scanf(“%d”,&
a);
If(a++<
9)printf((“%d\n”,a);
Elseprintf((“%d\n”,a--);
程序运行时键盘输入9<
回车>
,则输出的结构是
A、10B11C9D8
21、有以下程序
{ints=0,n;
For(n=0;
n<
3;
++)
{switch(s)
{case0;
Case1;
s+=1;
Case2;
s+=2;
break;
Case3;
s+3;
Case4;
s+=4;
printf((“%d\n”,s);
程序运行后的结果是
A1,2,4B1,3,6C3,10,14D3,6,10
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);
A1B3D5FBABCDFECA2C4E6D123456
24、设有如下定义语句
Intm[]={2,4,6,8},*k=m;
以下选项中,表达式的值为6的是
A*(k+2)Bk+2C*k+2D*k+=2
25、fun函数的功能是:
通过键盘输入给x所指的整型数组所有元素赋值。
在下列划线处应该填写的是
#defineN5
Viodfun(intx[N])
{intm;
For(m=N-1;
m>
m--)scanf(“%d\n”,);
A&
x[++m]B&
x[m+1]Cx+(m++)Dx+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-mB、b=*p1+*p2+6
C、k=1,m=8;
D、p1=&
28、以下选项中有语法错误的是
Achar*str[]={“guest”};
B、charstr[10]={“guest”};
C、char*str[3]*str[1]={“guest”};
D、charstr[3][10];
str[1]={“guest”};
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>
main()
{printf(“%d\n”,strren”ATS\n012\1”));
程序运行后的输出结果是
A3B8C4D9
31、有以下函数
{chara[20],b[20],c[20];
scanf(”%s%s”,a,b);
get(c);
printf(”%s%s\n”,a,b,c);
程序运行时从第一行开始输入thisisacat!
<
,则输出结果是
Athisisacat!
Bthisisa
Cthisisacat!
Dthisisacat!
32、有以下函数
viodfun(charc)
{if(c>
’x’)fun(c-1);
printf(“%c”,c);
{fun”z”;
程序运行输出结果是
AxyzBwxyzCzyxwDzyx
33、有以下函数
viodfunc(intn)
{inti;
for(i=0;
i<
=n;
i++)printf(“*”);
printf(“#”);
{func(3);
printf(“?
?
”);
func(4);
printf(“\n”);
}
A****#?
***#B***#?
*****#
C**#?
*****#D****#?
34、有以下函数
viodfun(int*s)
{staicintj=0;
do{s[j]=s[j]+s[j+1];
}wihle(++j<
2);
{intk,a[10]={1,2,3,4,5};
for(K+1;
k++)fun(a);
5;
k++)printf(“%d”,a[k]);
printf(“\n”);
A12345B23445C34756D35745
35、有以下函数
#defineS(x)(x)*x*2
{intk=5,j=2;
printf(“%d,”,S[k+j]);
printf(“%d\n”,S(k-j)));
A98,18B39,11C39,18D98,11
36、有以下函数
Viodexch(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++;
i++)printf(“%d”,x[i]);
A246810B13579
C12345D678910
37、设有以下程序段
StructMP3
{charname[20];
Charcolor;
Floatprice;
}std,*ptr;
ptr=&
std;
若要引用结构体变量std中的color成员,写法错误的是
Astd.colorBptr->
color
Cstd->
colorD(*ptr).color
38、有以下函数
structstu
{intmun;
charname[10];
intage;
};
viodfun(structstu*p)
{printf(“%s\n”,p->
name);
mian()
{structstux[3]={{01,”zhang”,20},{02,”wang”,19},{03,”zhao”,18}};
fun(x+2);
AzhangBzhaoCwangD19
39、有以下函数
{inta=12,c;
c=(a<
2)<
1;
printf(“%d\n”,c):
A3B50C2D96
40、以下函数不能用于向文件写入数据的是
AftellBfwriteCfputcDfprintf
二、填空题
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;
printf(“%d\n”,a);
8、设a、b、c都是整型变量,如果a的值为1,b的值为2,则执行c=a++||b++;
语句后,变量b的值是().
9、有以下程序段
s=1.0;
for(k=1,k<
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;
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];
i++;
12、有以下程序
{intarr[]={1,3,5,7,2,4,6,8{,i,start;
Scanf(“%d”,&
start);
For(i=0,i<
3,i++)
printf(“%d”,arr[(start+i)%8]);
若在程序运行时输入整数10<
,则输出结果为()。
13、以下程序的功能是输出a数组中的所有字符串,请填空
{char*a[]={“ABC”,”DEFGH”,”IJ”,”KLMNOP”};
For(;
4;
i++)printf(“%s\n”,);
14、以下程序的输出结果是()。
{char*p,*q,*r;
p=q=r=(char*)malloc(sizeof(char)*20);
strcpy(p,”attaboy,welcome!
printf(“%c%c%c\n”,p[11],q[3],r[4]);
free(p);
15、设文件test.txt中原已写入字符串Begin,执行以下程序后,文件中的内容为()。
{file*fp;
fp=fopen(“test.txt”,”w+”);
fputs(“test”,fp);
fclose(fp);
标准答案
一、选择题
1-5、ADDAD6-10、CBCAD11-15、ABBCB16-20、DADCA
21-25、CACAD26-30、CADCB31-35、CADDC36-40、DCBDA
二、填空题
1、n-12、293、数据操纵语言4、关系
5、面向对象方法6、a=1,b=27、28、2
9、k《=n10、07411、rgb12、57213、a[i]14、cab15、test
2011年9月全国计算机等级考试二级笔试试卷
C语言程序设计
一、选择题(
(1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上答在试卷上不得分。
(1)下列叙述中正确的是()。
A)算法就是程序
B)设计算法时只需要考虑数据结构的设计
C)设计算法时只需要考虑结果的可靠性
D)以上三种说法都不对
(2)下列关于线性链表的叙述中,正确的是()。
A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C)进行插入与删除时,不需要移动表中的元素
(3)下列关于二叉树的叙述中,正确的是()。
A)叶子结点总是比度为2的结点少一个
B)叶子结点总是比度为2的结点多一个
C)叶子结点数是度为2的结点数的两倍
D)度为2的结点数是度为1的结点数的两倍
(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是()。
A)学生成绩管理系统
B)C语言编译程序
C)UNIX操作系统
D)数据库管理系统
(5)某系统总体结构图如下图所示:
该系统总体结构图的深度是()。
A)7B)6C)3D)2
(6)程序调试的任务是()。
A)设计测试用例B)验证程序的正确性
C)发现程序中的错误D)诊断和改正程序中的错误
(7)下列关于数据库设计的叙述中,正确的是()。
A)在需求分析阶段建立数据字典
B)在概念设计阶段建立数据字典
C)在逻辑设计阶段建立数据字典
D)在物理设计阶段建立数据字典
(8)数据库系统的三级模式不包括()。
A)概念模式B)内模式C)外模式D)数据模式
(9)有三个关系R、S利T如下:
则由关系R和s得到关系T的操作是()。
A)自然连接B)差C)交D)并
(10)下列选项中属于面向对象设计方法主要特征的是()。
A)继承B)自顶向下C)模块化D)逐步求精
(11)以下叙述中错误的是()。
A)C语言编写的函数源程序,其文件名后缀可以是.C
B)C语言编写的函数都可以作为一个独立的源程序文件
C)C语言编写的每个函数都可以进行独立的编译并执行
D)一个C语言程序只能有一个主函数
(12)以下选项中关于程序模块化的叙述错误的是()。
A)把程序分成若干相对独立的模块,可便于编码和调试
B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
D)可采用自项向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
(13)以下选项中关于c语言常量的叙述错误的是()。
A)所谓常量,是指在程序运行过程中,其值不能被改变的量
B)常量分为整型常量、实型常量、字符常量和字符串常量
C)常量可分为数值型常量和非数值型常量
D)经常被使用的变量可以定义成常量
(14)若有定义语句:
inta=10;
doubleb=3.14;
,则表达式'
A'
+a+b值的类型是()。
A)charB)intC)doubleD)float
(15)若有定义语句:
intx=12,3=8,z;
,在其后执行语句z=0.9+x/y;
,则Z的值为()。
A)1.9B)1C)2D)2.4
(16)若有定义:
inta,b;
,通过语句scanf("
%d;
%d"
&
a,&
b);
,能把整数3赋给变量a,5赋给变量b的输入数据是()。
A)35B)3,5C)3;
5D)35
(17)若有定义语句:
intk1=10,k2=20;
,执行表达式(k1=k1>
k2)&
&
(k2=k2>
k1)后,k1和k2的值分别为()。
A)0和1B)0和20C)10和1D)10和20
(18)有以下程序
#include<
stdio.h>
main()
{inta=1,b=0;
if(-a)b++;
elseif(a=0)b+=2:
elseb+=3:
printf("
%d\n"
,b);
)
程序运行后的输出结果是()。
A)0B)1C)2D)3
(19)下列条件语句中,输出结果与其他语句不同的是()。
A)if(a)printf("
%d\-n"
,x);
elseprintf("
%d\n"
,y);
B)if(a—0)printf("
C)if(a!
=0)p由tf("
D)if(a=0)printf("
(20)有以下程序
#include<
{inta=7;
while(a--);
printf("
,a);
)
程序运行后的输出结果是()。
A)-1B)0C)1D)7
(21)以下不能输出字符A的语句是(注:
字符A的ASCIl码值为65,字符a的ASCIl码值为97)
A)printf("
%c\n"
,'
a'
-32);
B)printf("
);
c)printf("
,65);
D)print-f("
B'
-1);
(22)有以下程序(注:
字符a的ASCIl码值为97)
{char*s={"
abe"
do
{printf(”%d”