《2012计算机二级C真题(共9页).docx》由会员分享,可在线阅读,更多相关《2012计算机二级C真题(共9页).docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上机密口启用前2012年3月全国计算机等级考试二级笔试试卷C语言程序设计考试时间90分钟,共100分选择题(1)一(10), (21一(40)每题2分,(11)一(20)每题I分,共70分下列各题A).B)、C)、D )四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上.答在试卷上不得分。1下列叙述中正确的是 A循环队列是队列的一种顺序存储结构B循环队列是队列的一种链式存储结构C循环队列是非线性结构 D循环队列是一种逻辑结构2下列叙述中正确的是 A栈是一种先进先出的钱性表 B队列是一种后进先出的线性表C栈与队列都是非线性结构 D以上三种说法都不对3一棵
2、二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为A 4 B 6 C 10 D 164在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A内模式 B外模式 C概念模式 D)逻辑模式5在满足实体完整性约束的条件下 A一个关系中可以没有候选关键字 B一个关系中只能有一个候选关键字 C一个关系中必须有多个候选关键字 D一个关系中应该有一个或多个候选关键字6有三个关系R、 S和T如下: 则由关系R和S得到关系T的操作是 A自然连接 B并 C差 D交7软件生命周期中的活动不包括 A软件维护 B市场调研 C软件测试 D需求分析8下面不恩于熏求分折阶段任务的是 A确定软件系统的功能需求 B
3、确定软件系统的性能需求C制定软件集成测试计划D需求规格说明书评审9在黑盒测试方法中,设计测试用例的主要根据是 A程序外部功能 B程序内部逻辑 C程序数据结构 D程序流程图10 在软件设计中不使用的工具是 A系统结构他 B程序流程图 C PAD图 D数据流图(DFD图)11 针对简单程序设计,以下叙述的实施步骤顺序正确的是 A确定算法和数据结构,编码,测试,整理文档 B编码,确定算法和数据结构,测试,整理文档 C整理文档,确定算法和数据结构,编码,测试 D确定算法和数据结构,调试,编码,整理文档12 关于C语言中数的表示,以下叙述中正确的是 A只有整型数在允许范围内能精确无误的表示,实型数会有误
4、差 B只要在允许范围内整型数和实型数都能准确的表示 C只有实型数在允许范围内能精确无误的表示,整型数会有误差 D只有用八进制表示的数才不会有误差13 一下关于算法的叙述中错误的是 A算法可以用伪代码,流程图等多种形式来描述 B一个正确的算法必须有输入 C一个正确的算法必须有输出 D用流程图描述的算法可以用任何一种计算机高级语言编写成程序代码14 一下叙述中错误的是 A 一个C程序中可以包含多个不同名的函数 B 一个C程序只能有一个主函数 C C程序在书写时,有严格的缩进要求,否则不能编译通过 D C程序的主函数必须用main作为函数名15 设有一下语句char ch1,ch2; scanf(“
5、%c%c”,&che,&ch2); 若要为变量ch1和ch2分别输入字符A和B,正确的输入形式是 A )A和B之间用逗号隔开 B) A和B之间不能有任何间隔符 C) A和B之间可以用回车间隔 D) A和B之间用空格间隔16 一下选秀中非法的字符常量是 A 101 B 65 C xff D 10917 有一下程序#include”stdio.h”main() int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+=4); printf(“%d,%d,%n”,a,b,c);程序运行后的输出结果是 A) 0,4,5 B )4,4,5 C) 4,4,4 D) 0,0,018设变量均已正
6、确的定义并赋值,一下与其他三组输出结果不同的是 A) x+;printf(“%dn”,x); B)n=+x; printf(“%dn”,x); C)+x; printf(“%dn”,x); D) n=x+; printf(“%dn”,x);19 一下选项中,能表示逻辑值“假”的是 A)1 B)0. C)0 D)100.020 有一下程序#include”stdio.h”main int a; scanf(“%d”,&a); if(a+9)printf(“%dn”,a); else printf(“%dn”,a);程序运行时从键盘输入9,则输出的结果是 A)10 B)11 C)9 D)821 有
7、一下程序#include”stdio.h”main() int s=0,n; for(n=0;n3;n+) switch(s) case 0: case 1: s+=1; case 2: s+=2; break; case 3: s+=3; default: s+=4; Printf(“%d”,s); 程序运行后的输出结果是 A)1,2,4 B)1,3,6 C)3,10,14 D)3,6,1022 若K是int类型变量,且有以下for语句 for(k=-1;k0;k+) printf(“*n”); 下面关于语句执行情况的叙述中正确的是 A循环体执行一次 B循环体执行两次 C循环体一次也不执行
8、D构成无限循环23 有以下程序#include”stdio.h”main() char a,b,c;b=1; c=A;for(a=0;a=0;m-) scanf(“%d”,_); A)&x+m B)&xm+1 C)x+(m+) D)x+m26 若有函数 Void fun(double a,int *n) 以下叙述中正确的是 A通用fun函数时只有数组执行按值传送,其他实参和形参之间执行接地址传送 B形参a和n都是指针变量 C形参a是一个数组名,n是指针变量 D调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组27 有以下程序#include”stdio.h”main()
9、int a,b,k,m,*p1,*p2; k=1,m=8; p1=&k,p2=&m; a=/*p1-m; b=*p1+*p2+6; printf(“%d”,a); printf(“%dn”,b);编译时编译器提示错误信息,你认为出错的语句是 A) a=/*p1-m; B) b=*p1+*p2+6; C) k=1,m=8; D) p1=&k,p2=&m; 28 以下选项中有语法错误的是 A)char *srt=“guest”; B)char str10=“guest”; C)char *str3;str1=”guest” D)char str310;str1=”guest”29 avg函数的功能
10、是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是 A) int avg(int *a,int n); B) int avg(int a10,int n); C) int avg(int a,int n); D) int avg(int a,int n);30 有以下程序#include”stdio.h”#include”string,h”main() printf(“%dn”,strlen(“ATSNQ12n”);程序运行后的输出结果是 A 3 B 8 C 4 D 931 有以下程序#include”stdio.h”main() char a20,
11、b20,c20; scanf(“%s%s”,a,b); gets(c); printf(“%s%s%sn”,a,b,c);程序运行时从第一列开始输入:This is a cat!则输出结果是A)Thisisacat! B)Thisis a C)Thisis a cat! D)Thisisa cat!32 有以下程序#include”stdio.h”void fun(char c) if(cx) fun(c-1); printf(“%c”,c);main() fun(z);程序运行后的输出结果是 A) xyz B) wxyz C) zyw D) zyx33 有以下程序#include”stdio
12、.h”void func(int n) int I; For(i=0;i=n;i+) printf(“*”); Printf(“#”);main() func(c); printf(“?”); func(4); printf(“n”); 程序运行后的输出结果是 A)*#?*# B)*#?*# C)*#?*# D)*#?*#34 有以下程序#include”stdio.h”void fun(int *s) static int j=0; do sj=sj*sj+1; while(+j2);main() int k,a10=1,2,3,4,5; for(k=1;k3;k+=) fun(a); fo
13、r(k=0;k3;k+) printf(“%d”,ak); printf(“n”);程序运行后的输出结果是 A)12345 B)23445 C)34756 D)35 有以下程序#include”stdio.h”#define S(x) (x)*x*2main() int k=5,j=2; printf(“%d”,S(k+j); printf(“%dn”,S(k-j) );程序运行后的输出结果是 A)98.18 B)39.11 C)39.18 D)98.1136 有以下程序#include”stdio.h”void exch(int t) t0=t5;main() int x10=1,2,3,4
14、,5,6,7,8,9,10,i=0; while(i=4) exch(&xi); i+; for(i=0;icolor C)std-color D)(*ptr).color38 有以下程序#include”stdio.h”struct stu int num; char name10; int age;void fun(struct stu *p)printf(“%sn,p-name”);main() struct stu x3=01,”zhang”,20,02,”wang”,19,03,”zhao”,18; Fun(x+2);程序运行后的输出结果是 A)zhang B)zhao C)wang
15、 D)1939 有以下程序#include”stdio.h”main() int a=12,c;c=(a2)1;Printf(“%dn”,c);程序运行后的结果是 A)3 B)50 C)2 D)9640 以下函数不能用于向文件中写入数据的是 A)ftell B)fwrite C)fputc D)fprintf二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。1 在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为_【1】_。2 设循环队列的存储空间为Q(1:30),初始状态为front=rear=30,现经过一
16、系列入队与退队运算后,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”stdio.h”main() int a=37; a*=a%=9; pri
17、ntf(“%dn”,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(“%fn”,s); 请填空,使以下程序段的功能与上面的程序段完全相同。 s=1.0; k=1 while( 【9】 ) s=s+1.0/(k*(k+1); k=k+1; printf(“%fn”,s);10 以下程序的输出结果是 【10】 #include”stdio.h”main() char a,b;for(a=0;a20;a+=7) b=a
18、%10; putchar(b+0);11 以下程序的输出结果是 【11】 #include”stdio.h”main() char *ch=4=“red”,”green”,”blue”; int i=0; while(chi) putchar(chi0); i+; 12 有以下程序#include”stdio.h”main() int arr=1,3,5,7,2,4,6,8,i,start;scanf(“%d”,&start);for(i=0;i3;i+) printf(“%d”,arr(start+i)%8);若在程序运行时输入10,则输出结果为 【12】 13 以下程序的功能是输出a数组中
19、所有字符串,请填空#include”stdio.h”main() char *a=“abc”,”defgh”,”ij”,”klmnop”;int i=0;for(;i4;i+) printf(“%sn”, 【13】 );14 以下程序的输出结果是 【14】 #include”stdio.h”#include”stdib.h”#include”string.h”main() char *p,*q,*r; p=q=r=(char *)mallce(sizeof(char)*20); strepy(p,”affabyu,welcome”); printf(“%c%c%cn”,p1,q3,r4); free(p);15 设文件test.txt中原已写入字符串Begin,执行以下程序后,文件中的内容为 【15】 #include”stdio.h”main() FILE *fp; fp=fopen(“test.txt”,”w+”); fputs(“test”,fp); fclose(fp);专心-专注-专业
限制150内