2011年3月全国计算机等级考试二级C++真题
- 格式:doc
- 大小:99.00 KB
- 文档页数:9
2011年3月全国计算机等级考试二级ACCESS考试真题一、选择题1、下列关于栈叙述正确的是______。
A、栈顶元素最先能被删除B、栈顶元素最后才能被删除C、栈底元素永远不能被删除D、以上三种说法都不对2、下列叙述中正确的是______。
A、有一个以上根结点的数据结构不一定是非线性结构B、只有一个根结点的数据结构不一定是线性结构C、循环链表是非线性结构D、双向链表是非线性结构3、某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)______。
A、3B、4C、6D、74、在软件开发中,需求分析阶段产生的主要文档是______。
A、软件集成测试计划B、软件详细设计说明书C、用户手册D、软件需求规格说明书5、定义无符号整数类为UInt,下面可以作为类UInt实例化值的是______。
A、-369B、369C、0.369D、整数集合{1,2,3,4,5}6、负责数据库中查询操作的数据库语言是______。
A、数据定义语言B、数据管理语言C、数据操纵语言D、数据控制语言7、结构化程序所要求的基本结构不包括______。
A、顺序结构B、GOTO跳转C、选择(分支)结构D、重复(循环)结构8、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是______。
A、自然连接B、交C、除D、并9、下面描述中错误的是______。
A、系统总体结构图支持软件系统的详细设计B、软件设计是将软件需求转换为软件表示的过程C、数据结构与数据库设计是软件设计的任务之一D、PAD图是软件详细设计的表示工具10、一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是______。
A、1:1联系B、1:m联系C、m:1联系D、m:n联系11、在学生表中要查找所有年龄大于30岁姓王的男同学,应该采用的关系运算是______。
A、选择B、投影C、联接D、自然联接12、运行下列程序段,结果是______。
2011年3月全国计算机等级考试二级Visual Basic语言程序设计笔试真题一、选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
1. 下列关于栈叙述正确的是A. 栈顶元素最先能被删除B. 栈顶元素最后才能被删除C. 栈底元素永远不能被删除D. 上述三种说法都不对答案:A解析:在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。
栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
故本题选A。
2. 下列叙述中正确的是A. 有一个以上根结点的数据结构不一定是非线性结构B. 只有一个根结点的数据结构不一定是线性结构C. 循环链表是非线性结构D. 双向链表是非线性结构答案:B解析:如果一个非空的数据结构满足以下两个条件:(1)有且只有一个根结点;(2)每个结点最多有一个前件,也最多有一个后件。
则称该数据结构为线性结构。
如果一个数据结构不是线性结构,则称之为非线性结构,故A项错误。
有一个根结点的数据结构不一定是线性结构,如二叉树,B项说法正确。
循环链表和双向链表都属于线性链表,故C、D项错误。
3. 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A. 3B. 4C. 6D. 7答案:D解析:根据二叉树的性质:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
所以n2=0,由n=n0+n1+n2可得n1=6,即该二叉树有6个度为1的结点,可推出该二叉树的深度为7。
4. 在软件开发中,需求分析阶段产生的主要文档是A. 软件集成测试计划B. 软件详细设计说明书C. 用户手册D. 软件需求规格说明书答案:D解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。
2011年3月计算机等级考试二级C语言笔试一、选择题(1)下列关于栈叙述正确的是(栈)(11.3)AA)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是(树)( 11.3)BA)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层) (树)( 11.3)DA)3 B)4 C)6 D)7(4)在软件开发中,需求分析阶段产生的主要文档是(需求分析阶段)( 11.3)DA)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括(程序设计基础)( 11.3)BA)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构(6)下面描述中错误的是(综合)( 11.3)AA)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是(数据库)( 11.3)CA)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是(数据库)( 11.3)DA)1:1联系B)1:m联系C)m:1联系D)m:n联系(9)有三个关系R、S和T如下:(数据库)( 11.3)C则由关系R和S得到关系T的操作是A)自然连接B)交C)除D)并(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是(程序设计基础)( 11.3)BA)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A(C基础)(11.3)A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对(12)以下叙述中错误的是D(C基础)(11.3)A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件(13)以下选项中不能用作C程序合法常量的是A(合法常量)(11.3)A)1,234 B)'\123'C)123 D)"\x7G"(14)以下选项中可用作C程序合法实数的是A(合法实数)(11.3)A).1e0 B)3.0e0.2C)E9 D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A(赋值语句)(11.3)A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程序段A(scanf函数)(11.3)char name[20];int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A)LiliB)name=LiliC)Lili num=D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是D(if语句)(11.3)A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是C(自增运算和八进制)(11.3)A)12 B)11 C)10 D)9(19)有以下程序B(while和switch、break语句)(11.3)#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A)6566456 B)66656C)66666 D)6666656(20)有以下程序段D(switch、for、break、continue语句)(11.3) int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行(21)有以下程序B(字符数组)(11.3)#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)3 C)7 D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是D(for语句)(11.3)A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);}printf("\n");}程序运行后的输出结果是B(for语句)(11.3)A)ABCDEF B)AbCdEfC)aBcDeF D)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是C(指针与一维数组)(11.3)A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程序(说明:字母A的ASCII码值是65) D(函数、指针、字符数组)(11.3)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a); printf("\n");}程序运行后的输出结果是A)BY B)BT C)YT D) YE(26)有以下程序段C(循环的条件)(11.3)#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有不按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序D(if和else的配对原则)(11.3)#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3 B)2 C)1 D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是C(二维数组和指针)(11.3)A)p=s; B)p=k; C)p=s[0]; D)k=s;(29)有以下程序C(字符数组和指针、函数)(11.3)#includevoid fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s); fun(s); puts(s):}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello BeijingC)HELLO BEIJING D) ELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
2010年3月计算机等级考试二级C语言笔试真题一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时问复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#includemain(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%cn”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应本资.料来源于贵-州-学-习-网使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (aif(aelse k=c;elseif(belse k=c;以下选项中与上述if语句等价的语句是A)k=(aB)k=(aC)k=(aD)k=(a(20)有以下程序#includemain(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%dn",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%dn",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#includemain(){int k=011;printf("%dn",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有本文来源于贵州学习网WWW.GZU521.COM一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#includevoid fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%en",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++) s=s+a[b[i]]);printf("%dn", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#includemain(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++) t+=b[i][b[j][i]];printf("%dn",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="n123\";printf("%d %dn", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i{printf("%d",a[i]);}printf("n");}程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#includeint f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%dn",s);}int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程此资料转贴于贵州学习网序#includeint fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++) s=fun();printf("%dn",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%dn",d);}程序运行后的输出结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include#includestruct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1fn",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是(38)有以下定义和语句struct workers{ int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#includemain(){ int a=2,b=2,c=2;printf("%dn",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#includemain(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB) 28cC) abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。
2009年3月全国计算机等级考试二级C语言笔试卷选择题(1)下列叙述中正确的是A)栈是“先进先出”的线性表B)队列是“先进先出”的线性表C)循环队列是非线性结构D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构(2)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A)10 B)8 C)6 D)4(4)下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是A)编译软件B)操作系统C)教务管理系统D)汇编程序(6)下面叙述中错误的是A)软件测试的目的是发现错误并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为DebugD)软件测试应严格执行测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。
下列叙述中正确的是A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度(8)数据库应用系统中的核心问题是A)数据库设计B)数据库系统设计C)数据库维护D)数据库管理员培训(9)有两个关系R,S如下:R SA B C A Ba 3 2 a 3b 0 1 b 0c 2 1 c 2由关系R通过运算得到关系S,则所使用的运算为A)选择B)投影C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)以下选项中合法的标识符是A)1-1 B)1—1 C)-11 D)1-- (12)若函数中有定义语句:int k;,则A)系统将自动给k赋初值0 B)这时k中值无定义C)系统将自动给k赋初值-1 D)这时k中无任何值(13)以下选项中,能用作数据常量的是A)o115 B)0118 C)1.5e1.5 D)115L(14)设有定义:int x=2; ,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)D)2*x,x+=2 (15)程序段:int x=12; double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是A)123.141593 B)12 3.141593 C)12,3.141593 D)123.141593 (16)若有定义语句:double x,y,*px,*py,执行了px=&x, py=&y;之后,正确的输入语句是A)scanf(“%f%f”,x,y); B)scanf(“%f%f”,&x,&y);C)scanf(“%lf%le”,px,py); D)scanf (“%lf%lf”,x,y);(17)以下是if语句的基本形式:if (表达式)语句其中“表达式”A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式(18)有以下程序#include <stdio.h>main(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果A)不等于10的整数B)大于3且不等于10的整数C)大于3或等于10的整数D)小于3的整数(19)有以下程序#include<stdio.h>Main(){ int a=1,b=2,c=3,d=0;if(a= =1 &&b++= =2)if(b!=2 || c--!=3)printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);else printf(“%d,%d,%d\n”,a,b,c);}程序运行后的输出结果是A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1(20)以下程序中的变量已正确定义for(i=0;i<4;i++,i++for(k=1;k<3;k++);printf(*”);程序段的输出结果是A)******** B)**** C)** D)*(21)有以下程序#include<stdio.h>main(){char *s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。
2011年3月笔试真卷及答案详解 第1页(共12页)2011年3月全国计算机等级考试二级笔试试卷Access 数据库程序设计(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A )、B )、C )、D )四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列关于栈叙正确的是( )。
A )栈顶元素最先能被删除B )栈顶元素最后才能被删除C )栈底元素永远不能被删除D )以上三种说法都不对 (2)下列叙述中正确的是( )。
A )有一个以上根结点的数据结构不一定是非线性结构B )只有一个根结点的数据结构不一定是线性结构C )循环链表是非线性结构D )双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。
A )3B )4C )6D )7 (4)在软件开发中,需求分析阶段产生的主要文档是( )。
A )软件集成测试计划B )软件详细设计说明书C )用户手册D )软件需求规格说明书 (5)结构化程序所要求的基本结构不包括( )。
A )顺序结构B )GOTO 跳转C )选择(分支)结构D )重复(循环)结构 (6)下面描述中错误的是( )。
A )系统总体结构图支持软件系统的详细设计B )软件设计是将软件需求转换为软件表示的过程C )数据结构与数据库设计是软件设计的任务之一D )PAD 图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是( )。
A )数据定义语言B )数据管理语言C )数据操纵语言D )数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是( )。
A )1:1联系 B )1:m 联系 C )m:1联系 D )m:n 联系 (9)有三个关系R 、S 和T 如下( )。
R S T A B C A B C a 1 2 c 3 1 b 2 1 c 3 1 则由关系R 和S 得到关系T 的操作是 A )自然连接 B )交 C )除 D )并考二级,就上w ww .k ao er j i.c om2011年3月笔试真卷及答案详解 第2页(共12页)(10)定义无符号整数类为UInt ,下面可以作为类UInt 实例化值的是( )。
2011 年3 月全国计算机等级考试笔试试卷二级公共基础知识和C 语言程序设计(考试时间 90 分钟,满分 100 分)一、选择题(1)~(10)、(21)~(40)每题 2 分,(11)~(20)每题 1 分,70 分)下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列关于栈叙正确的是()。
A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是()。
A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7 个结点,其中叶子结点只有1 个,则该二叉树的深度为(假设根结点在第1 层)()。
A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产生的主要文档是()。
A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括()。
A)顺序结构B)GOTO 跳转C)选择(分支)结构D)重复(循环)结构(6)下面描述中错误的是()。
A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD 图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是()。
A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是()。
A)1:1 联系B)1:m 联系C)m:1 联系D)m:n 联系(9)有三个关系R、S 和T 如下()。
则由关系R 和S 得到关系T 的操作是A)自然连接B)交C)除D)并(10)定义无符号整数类为UInt,下面可以作为类UInt 实例化值的是()。
全国计算机等级考试二级C++真题2011年3月(总分:100.00,做题时间:90分钟)一、选择题(总题数:35,分数:70.00)1.下列关于栈叙正确的是( )。
(分数:2.00)A.栈顶元素最先能被删除√B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对解析:[解析] 栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。
2.下列叙述中正确的是( )。
(分数:2.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构√C.循环链表是非线性结构D.双向链表是非线性结构解析:[解析] 在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。
(分数:2.00)A.3B.4C.6D.7 √解析:[解析] 根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。
题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,因而这个二叉树的深度为7。
4.在软件开发中,需求分析阶段产生的主要文档是( )。
(分数:2.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书√解析:[解析] 在软件开发过程中,需求分析阶段产生的要文档是软件需求规格说明书。
5.结构化程序所要求的基本结构不包括( )。
(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:[解析] 结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。
6.下面描述中错误的是( )。
(分数:2.00)A.系统总体结构图支持软件系统的详细设计√B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具解析:[解析] 软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一;PAD图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。
2011年3月電腦等級考試二級C語言筆試一、選擇題(1)下列關於棧敘述正確的是A)棧頂元素最先能被刪除B)棧頂元素最後才能被刪除C)棧底元素永遠不能被刪除D)以上三種說法都不對(2)下列敘述中正確的是A)有一個以上根結點的數據結構不一定是非線性結構B)只有一個根結點的數據結構不一定是線性結構C)迴圈鏈表是非線性結構D)雙向鏈表是非線性結構(3)某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)A)3 B)4 C)6 D)7(4)在軟體開發中,需求分析階段產生的主要文檔是A)軟體集成測試計畫B)軟體詳細設計說明書C)用戶手冊D)軟體需求規格說明書(5)結構化程式所要求的基本結構不包括A)順序結構B)GOTO跳轉C)選擇(分支)結構D)重複(迴圈)結構(6)下麵描述中錯誤的是A)系統總體結構圖支持軟體系統的詳細設計B)軟體設計是將軟體需求轉換為軟體表示的過程C)數據結構與資料庫設計是軟體設計的任務之一D)PAD圖是軟體詳細設計的表示工具(7)負責資料庫中查詢操作的資料庫語言是A)數據定義語言B)數據管理語言C)數據操縱語言D)數據控制語言(8)一個教師可講授多門課程,一門課程可由多個教師講授。
則實體教師和課程間的聯繫是A)1:1聯繫B)1:m聯繫C)m:1聯繫D)m:n聯繫(9)有三個關係R、S和T如下:RA B C a 1 2B 2 1C 3 1SA BC 3TC1則由關係R和S得到關係T的操作是A)自然連接B)交C)除D)並(10)定義無符號整數類為UInt,下麵可以作為類UInt實例化值的是A)-369 B)369 C)0.369 D)整數集合{1,2,3,4,5}(11)電腦高級語言程式的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是A)C語言程式僅可以編譯執行B)C語言程式僅可以解釋執行C)C語言程式既可以編譯執行又可以解釋執行D)以上說法都不對(12)以下敘述中錯誤的是A)C語言的可執行程式是由一系列機器指令構成的B)用C語言編寫的根源程式不能直接在電腦上運行C)通過編譯得到的二進位目標程式需要連接才可以運行D)在沒有安裝C語言集成開發環境的機器上不能運行C根源程式生成的.exe檔(13)以下選項中不能用作C程式合法常量的是A)1,234 B)'123'C)123 D)"\x7G"(14)以下選項中可用作C程式合法實數的是A).1e0 B)3.0e0.2C)E9 D)9.12E(15)若有定義語句:int a=3,b=2,c=1;,以下選項中錯誤的賦值運算式是A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程式段char name[20];int num;scanf("name=%s num=%d",name;&num);當執行上述程式段,並從鍵盤輸入:name=Lili num=1001<回車>後,name的值為A)LiliB)name=LiliC)Lili num=D)name=Lili num=1001(17)if語句的基本形式是:if(運算式)語句,以下關於“運算式”值的敘述中正確的是A)必須是邏輯值B)必須是整數值C)必須是正數D)可以是任意合法的數值(18)有以下程式#includemain(){ int x=011;printf("%d\n",++x);}程式運行後的輸出結果是A)12 B)11 C)10 D)9(19)有以下程式#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}運行時,若輸入1 2 3 4 5 0<回車>,則輸出結果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程式段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下關於程式段執行情況的敘述,正確的是A)for迴圈語句固定執行8次B)當產生的亂數n為4時結束迴圈操作C)當產生的亂數n為1和2時不做任何操作D)當產生的亂數n為0時結束程式運行(21)有以下程式#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程式運行後的輸出結果是A)0 B)3 C)7 D)8(22)若i和k都是int類型變數,有以下for語句for(i=0,k=-1;k=1;k++) printf("*****\n");下麵關於語句執行情況的敘述中正確的是A)循環體執行兩次B)循環體執行一次C)循環體一次也不執行D)構成無限迴圈(23)有以下程式#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);} printf("\n");}程式運行後的輸出結果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(24)設有定義:double x[10],*p=x;,以下能給數組x下標為6的元素讀入數據的正確語句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程式(說明:字母A的ASCII碼值是65)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}。
2011年3月全国计算机等级考试二级C++语言程序设计笔试真题一、选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
11. 为了提高函数调用的实际运行速度,可以将较简单的函数定义为A. 内联函数B. 重载函数C. 递归函数D. 函数模板答案:A12. 若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为A. aB. AA.aC. a()D. AA::a()答案:A13. 当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是A. 任何B. 公有或保护C. 保护或私有D. 私有答案:B解析:派生类从基类保护继承时,基类的公有成员在派生类中改变为保护成员,基类的保护成员在派生类中仍为保护成员,基类中的私有成员在派生类中是隐藏的,不可访问。
14. 若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是A. Data +(Data);B. Data operator+(Data);C. Data +operator(Data);D. operator+(Data,Data);答案:B解析:运算符函数的函数名由运算符前加关键字operator构成,且“+”是一个二元运算符,作为成员函数重载时形参表中只有一个参数。
故可排除A、B、D项,本题答案为B。
15. 下列关于函数模板的描述中,正确的是A. 函数模板是一个实例函数B. 使用函数模板定义的函数没有返回类型C. 函数模板的类型参数与函数的参数相同D. 通过使用不同的类型参数,可以从函数模板得到不同的实例函数答案:D解析:函数模板是一系列相关函数的模型或样板;使用函数模板定义的函数可以带有返回类型;函数模板的类型参数为虚拟类型参数,与函数的参数不同。
故A、B、C项错误。
定义好函数模板后,编译系统将依据每一次对函数模板调用时实际所使用的的数据类型生成适当的调用代码,并生成相应的函数版本,故D项正确。
16. C++系统预定义了4个用于标准数据流的对象,下列选项中不属于此类对象的是A. coutB. cinC. cerrD. cset答案:D解析:C++流的4个预定义的流对象为:cin标准输入,cout标准输出,cerr标准出错信息输出,clog带缓冲的标准出错信息输出。
17. Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是A. cppB. exeC. objD. lik答案:C解析:在VC6集成开发环境中,编译命令将一个以cpp为扩展名的C++源程序文件转换成一个以obj为扩展名的目标文件。
18. 字符串"a+b=12\n\t"的长度为A. 12B. 10C. 8D. 6答案:C19. 有如下程序:#include <iostream>using namespace std;int main() {int f,f1=0,f2=1;for(int i=3;i<=6;i++) {f=f1+f2;f1=f2; f2=f;}cout<<f<<endl;return 0;}运行时的输出结果是A. 2B. 3C. 5D. 8答案:C20. 有如下程序:#include <iostream>using namespace std;int main() {int a[6]={23,15,64,33,40,58};int s1,s2;s1=s2=a[0];for(int* p=a+1;p<a+6;p++) {if(s1>*p)s1=*p;if(s2<*p)s2=*p;}cout<<s1+s2<<endl;return 0;}运行时的输出结果是A. 23B. 58C. 64D. 79答案:D解析:程序实现的功能为输出数组a中最小值和最大值的和。
for循环结束后,变量s1中存放最小值15,变量s2中存放最大值64,输出s1+s2的值为79。
21. 有如下程序:#include <iostream>using namespace std;void f1(int& x, int& y){int z=x; x=y; y=z;}void f2(int x, int y){int z=x; x=y; y=z;}int main() {int x=10,y=26;f1(x,y);f2(x,y);cout<<y<<endl;return 0;}运行时的输出结果是A. 10B. 16C. 26D. 36答案:A解析:函数f1的参数传递方式采用传引用方式,调用函数f1后,实参变量x、y的值被交换。
此时,x=26,y=10。
函数f2的参数传递方式采用传值方式,调用函数f2后,不会改变实参变量x、y的值。
故程序输出y的值为10。
22. 有如下程序:#include <iostream>using namespace std;class XA {int a;public:static int b;XA(int aa):a(aa){b++;}~XA() {}int get(){return a;}};int XA::b=0;int main() {XA d1(2),d2(3);cout<<d1.get()+d2.get()+XA::b<<endl;return 0;}运行时的输出结果是A. 5B. 6C. 7D. 8答案:C解析:主程序中创建了两个XA类的对象d1、d2,并将它们的数据成员a分别初始化为2和3。
在创建了两个对象后静态数据成员b=2。
程序输出三个变量的和2+3+2=7。
23. 有如下程序:#include <iostream>using namespace std;class Point {int x,y;public:Point(int x1=0, int y1=0):x(x1),y(y1) {}int get(){return x+y;}};class Circle {Point center;int radius;public:Circle(int cx, int cy, int r):center(cx,cy),radius(r) {}int get() {return center.get()+radius;}};int main() {Circle c(3,4,5);cout<<c.get()<<endl;return 0;}运行时的输出结果是A. 5B. 7C. 9D. 12答案:D解析:主函数中语句“cout<<c.get()<<endl;”调用Circle类成员函数get(),返回x+y+radius 的值,即3+4+5=12。
24. 若要对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是A. operator long() const;B. operator long(BigNumber);C. long operator long() const;D. long operator long(BigNumber);答案:A25. 有如下函数模板定义:template<typename T1,typename T2>T1 FUN(T2 n) { return n*5.0;}若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为A. FUN(9)B. FUN<9>C. FUN<double>(9)D. FUN<9>(double)答案:C26. 下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是A. cout<<internal<<12345;B. cout<<left<<12345;C. cout<<right<<12345;D. cout<<setw(6)<<12345;答案:D解析:D选项中setw(6)设置输出宽度为6,而A、B、C项均按实际宽度输出,效果相同,故本题选D。
27. 下列关于析构函数的描述中,错误的是A. 析构函数可以重载B. 析构函数由系统自动调用C. 每个对象的析构函数只被调用一次D. 每个类都有析构函数答案:A解析:析构函数没有参数,所以不能重载,A项说法错误。
B、C、D项说法正确。
28. 下列关于构造函数的描述中,错误的是A. 构造函数名与类名相同B. 构造函数可以有返回值C. 构造函数可以重载D. 每个类都有构造函数答案:B解析:构造函数不指定返回类型,它隐含有返回值,由系统内部使用。
本题答案为B。
29. 若PAT是一个类,则程序运行时,语句"PAT (*ad.[3];"调用PAT的构造函数的次数是A. 0B. 1C. 2D. 3答案:A解析:语句“PAT (*ad) [3];”定义了一个指向对象数组的指针,并未创建对象,故不调用构造函数。
30. 下列描述中,错误的是A. 公有继承时基类中的公有成员在派生类中仍是公有成员B. 公有继承时基类中的保护成员在派生类中仍是保护成员C. 保护继承时基类中的公有成员在派生类中仍是公有成员D. 保护继承时基类中的保护成员在派生类中仍是保护成员答案:C解析:保护继承时基类中的公有成员在派生类中改变为保护成员。
31. 生成派生类对象时,派生类构造函数调用基类构造函数的条件是A. 无需任何条件B. 基类中显式定义了构造函数C. 派生类中显式定义了构造函数D. 派生类构造函数明确调用了基类构造函数答案:A32. 下列关于派生类和基类的描述中,正确的是A. 派生类成员函数只能访问基类的公有成员B. 派生类成员函数只能访问基类的公有和保护成员C. 派生类成员函数可以访问基类的所有成员D. 派生类对基类的默认继承方式是公有继承答案:B解析:基类中的私有成员在派生类中是隐藏的,只能在基类内部访问,A、C项错误,B项正确。
派生类对基类的默认继承方式是私有继承,D项错误。
33. 有如下类模板定义:template <typename T>class BigNumber {long n;public:BigNumber(T i):n(i) {}BigNumber operator +(BigNumber b ){return BigNumber(n+B.n);}};已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是A. b1+b2B. b1+3C. 3+b1D. 3+3答案:C解析:BigNumber类中重载的“+”运算符的左边只能是BigNumber类型,C项错误。