C语言考试3.docx
- 文档编号:12811535
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:19
- 大小:20.92KB
C语言考试3.docx
《C语言考试3.docx》由会员分享,可在线阅读,更多相关《C语言考试3.docx(19页珍藏版)》请在冰豆网上搜索。
C语言考试3
2012年3月全国计算机等级考试二级笔试试卷
C语言程序设计
(考试时间120分钟,满分100分)
一、选择题(
(1)~(10)、(21)~(40)每小题2分,(11)~(20)每小题1分,共70分)
1.下列叙述中正确的是______。
A.循环队列是队列的一种顺序存储结构
B.循环队列是一种存储链式结构
C.循环队列是非线性结构
D.循环队列是逻辑结构
2.下列叙述中正确的是______。
A.栈是一种先进先出的线性表
B.队列是一种后进先出的线性表
C.栈与队列都是非线性结构
D.以上说法都不对
3.一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为______。
A.4
B.6
C.10
D.16
4.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。
A.内模式
B.外模式
C.概念模式
D.逻辑模式
5.在满足实体完整性约束的条件是______。
A.一个关系中可以没有候选关键字
B.一个关系中只能有一个候选关键字
C.一个关系中必须有多个候选关键字
D.一个关系中应该有一个或多个候选关键字
6.有三个关系R、S和T如下
R
S
T
A
B
C
a
1
2
b
2
1
c
3
1
A
B
C
a
1
2
d
2
1
A
B
C
b
2
1
c
3
1
则有关系R和S得到T的操作是______。
A.并
B.差
C.交
D.自然连接
7.软件生命周期中的活动不包括______。
A.软件维护
B.需求分析
C.市场调研
D.软件测试
8.下面不属于需求分析阶段任务的是______。
A.确定软件系统的性能需求
B.确定软件系统的功能需求
C.制定软件集成测试计划
D.需求规格说明书评审
9.在黑盒测试方法中,设计测试用例的主要根据是______。
A.程序外部功能
B.程序数据结构
C.程序流程图
D.程序内部逻辑
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
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;printf("%d\n",x);
D.n=x++;printf("%d\n",n);
19.以下选项中,能表示逻辑值“假的”是______。
A.1
B.0.000001
C.0
D.100.0
20.有以下程序
#include
main()
{inta;
scanf("%d",&a);
if(a++<9)printf("%d\n",a);
elseprintf("%d\n",a--);
}
程序运行时,从键盘输入9<回车>,则输出结果是______。
A.10
B.11
C.9
D.8
21.有以下程序:
#include
main()
{ints=0,n;
for(n=0;n<3;n++)
{switch(s)
{case0:
case1:
s+=1;
case2:
s+=2;break;
case3:
s+=3;
default:
s+=4;
}
printf("%d,",s);
}
}
程序运行后,输出结果是______。
A.1,2,4
B.1,3,6
C.3,10,14
D.3,6,10
22.若k是int类型变量,且有以下for语句
for(k=-1;k<0;k++)printf("++++\n");
下面关于语句执行情况的叙述中正确的是______。
A.循环体执行一次
B.循环体执行两次
C.循环体一次也不执行
D.构成无限循环
23.有以下程序
#include
main()
{chara,b,c;
b='1';c='A';
for(a=0;a<6;a++)
{if(a%2)putchar(b+a);
elseputchar(c+a);
}
}
程序运行后,输出结果是______。
A.BB3D5F
B.ABCDEF
C.A2C4E6
D.123456
24.设有如下定义语句
intm[]={2,4,6,8,10},*k=m;
以下选项中,表达式的值为6的是______。
A.*(k+2)
B.k+2
C.*k+2
D.*k+-2
25.fun函数的功能是:
通过键盘输入给x所指的整型数组所有元素赋值,在下划线处应填写的是______。
#include
#defineN5
voidfun(intx[N])
{intm;
for(m=N-1;m>=0;m--)scanf("%d",_____);
}
A.&x[++m]
B.&x[m+1]
C.x+(m++)
D.x+m
26.若有函数
voidfun(doublea[],int*n)
{……}
以下叙述,正确的是______。
A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
B.形参a和n都是指针变量
C.形参a是一个数组名,n是指针变量
D.调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组
27.有以下程序
#include
main()
{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=&k,p2=&m;
28.以下选项中有语法错误的是______。
A.char*str[]={"guest"};
B.charstr[][10]={"guset"};
C.char*str[3];str[t]="guest";
D.charstr[3][10];str[t]="guest";
29.avg函数的功能是求整型数组中的前若干个元素的平局遏制,该数组元素个数最多不超过10,则下列函数说明语句错误的是______。
A.intavg(int*a,intn);
B.intavg(inta[10],intn);
C.intavg(inta,intn);
D.intavg(inta[],intn);
30.有以下程序
#include
#include
main()
{printf("%d\n",strlen("ATS\n012\|"));}
程序运行后的输出结果是______。
A.3
B.8
C.4
D.9
31.有以下程序:
#include
main()
{chara[20],b[20],c[20];
scanf("%s%s",a,b);
gets(c);
printf("%s%s%s\n",a,b,c);
}
程序运行时从第一列开始输入:
Thisisacar!
<回车>
则输出结果是______。
A.Thisisacar!
B.Thisisa
C.Thisisacar!
D.Thisisacar!
32.有以下程序:
#include
voidfun(charc)
{if(c>'x')fun(c-1);
printf("%c",c);
}
main()
{fun('z');}
程序运行后,输出结果是______。
A.xyz
B.wxyz
C.zyxw
D.zyx
33.有以下程序:
#include
voidfunc(intn)
{inti;
for(i=0;i<=n;i++)printf("*");
print("#");
}
main()
{func(3);printf("?
?
?
?
");func(4);printf("\n");}
程序运行后的输出结果是______。
A.****#?
?
?
?
***#
B.***#?
?
?
?
****#
C.**#?
?
?
?
*****#
D.****#?
?
?
?
*****#
34.有以下程序:
#include
voidfun(int*s)
{staticintj=0;
do{s[j]=s[j]+s[j+1];}while(++j<2);
}
main()
{intk,a[10]=(1,2,3,4,5);
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)printf("%d",a[k]);
printf("\n");
}
程序运行后的输出结果是______。
A.12345
B.23445
C.34756
D.35745
35.有以下程序
#include
#defineS(x)(x)*x*2
main()
{intk=5,j=2;
printf("%d,",S(k+j));printf("%d\n",S((k-j)));
}
程序运行后的输出结果是______。
A.98,18
B.39,11
C.39,18
D.98,11
36.有以下程序
#include
voidexch(intt[])
{t[0]=t[5];}
main()
{intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;
while(i<=4){exch(&x[i]);i++;}
for(i=0;i<5;i++)printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是______。
A.246810
B.13579
C.12345
D.678910
37.有以下程序:
structMP3
{charname[20];
charcolor;
charprice;
}std,*ptr;
ptr=&std;
若要引用结构体变量std中的color成员,写法错误的是______。
A.std.color
B.ptr->color
C.std->color
D.(*ptr).color
38.有以下程序:
#include
structstu
{intnum;charname[10];intage;};
voidfun(structstu*p)
{printf("%s\n",p->name);}
main()
{structstux[3]={{01,"Zhang",20},{02,"Wang",19},{03,"Zhao",18}};
fun(x+2);
}
程序运行后的输出结果的是______。
A.Zhang
B.Zhao
C.Wang
D.19
39.有以下程序:
#include
main()
{inta=12,c;
c=(a<<2)<<1;
printf("%d\n",c);
}
程序运行后的输出结果是______。
A.3
B.50
C.2
D.96
40.以下函数不能用于向文件中写入数据的是______。
A.ftell
B.fwrite
C.fputc
D.fprintf
二、填空题(每空2分,共30分)
1.在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为【1】。
2.设循环队列的存储控件为Q(1:
30),初始状态为front=rear=30。
现经过一系列入队与退队运算后,front=16,rear=15,则循环队列中有【2】个元素
3.数据库管理系统提供的数据库语言中,负责数据的增、删、改和查询的是【3】。
4.在将E-R图转换到关系模式时,实体和练习都可以表示成【4】。
5.常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于【5】。
6.设变量a和b以定义为int类型,若要通过scanf("a=%d,b=%d",&a,&b);语句分别给a和b输入1和2,则正确的数据输入内容是【6】。
7.以下程序的输出结果是【7】。
#include
main()
{inta=37;
a+=a%=9;printf("%d\n",a);
}
8.设a,b,c都是整型变量,如果a的值为1,b的值为2,则执行c=a++||b++语句后,变量b的值是【8】。
9.有以下程序段:
s=1.0;
for(k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("%f\n",s);
请填空,使以下程序段的功能与上面的程序段完全相同。
s=1.0;k=1;
while(__【9】__)
{s=s+1.0/(k*(k+1));k=k+1;}
10.以下程序的输出结果是【10】。
#include
main()
{chara,b;
for(a=0;a<20;a+=7){b=a%10;putchar(b+'0');}
}
11.以下程序的输出结果是【11】。
#include
main()
{char*ch[4]={"red","green","blue"};
inti=0;
while(ch[i])
{putchar(ch[i][0]);i++;}
}
12.有以下程序:
#include
main()
{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<回车>,则输出结果为__【12】__。
13.以下程序的功能是输出a数组中所有字符串,请填空
#include
main()
{char*a[]={"ABC","DEFGH","[]","KLMNOP"};
inti=0;
for(;i<4;i++)printf("%s\n",__【13】__);
}
14.以下程序的输出结果是__【14】__
#include
#include
#include
main()
{char*p,*q,*r;
p=q=r=(char*)malloc(sizeof(char)*20);
strcpy(p,"attaboy,welcome!
");
printf("%c%c%c\n",p[1],q[3],r[4]);
free(p);
}
15.设文件test.txt中原已写入字符串Begin,执行以下程序后,文件中的内容为__【15】__
#include
main()
{FILE*fp;
fp=fopen("test.txt","w+");
fputs("test",fp);
fclose(fp);
}
【参考答案】
一、选择题答案
1.A2.D3.D4.A5.D
6.C7.B8.C9.A10.D
11.A12.A13.B14.C15.B
16.D17.A18.D19.C20.A
21.C22.A23.C24.A25.D
26.B27.A28.D29.C30.B
31.C32.A33.D34.D35.C
36.D37.C38.B39.D40.A
二、填空题答案
1.n-1
2.29
3.数据库操纵语言
4.关系
5.面向对象方法
6.a=1,b=2
7.2
8.2
9.k<=n
10.074
11.rgb
12.572
13.a[i]或*(a+i)
14.tab
15.test
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 考试