08年4月全国计算机等级考试二级C++笔试试题及答案
- 格式:doc
- 大小:50.00 KB
- 文档页数:8
全国计算机等级考试二级C语言机试真题2008年4月(总分100,考试时间90分钟)1、程序填空题1. 下列给定的程序中,函数fun()的功能是:求出以下分数序列的前n项和。
2/1,3/2,5/3,8/5,13/8,21/13,…其值通过函数值返回main()函数。
例如,若输入n=5,则应输出8.391667。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
[试题源程序]#include<stdio.h>#include<conio.h>double fun(int n)int a=2, b=1, c, k;double[ (1) ];for(k=1; k<=n; k++)s=s+1.0 *a/b;c=a; a+=[ (2) ]; b=c;return(d);main()int n=5;printf("\nThe value of function is: %1f\n", [ (3) ]);2、程序修改1. 下列给定程序中,函数fun()的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
请改正程序中的错误,使它能得到正确结果。
[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。
[试题源程序]#include<stdio.h>#define N 20void fun(int a[], int n)int i, j, t, p;for(j=0; j<n-1; j++)/***********found***********/p=jfor(i=j; i<n; i++)if(a[i]<a[p])/***********found***********/p=j;t=a[P];a[p]=a[j];a[j]=t;msin()int a [N]=(9, 6, 8, 3, -1), i, m=5;printf("排序前的数据:”);for(i=0; i<m; i++)printf("%d", a[i]);printf("\n");fun(a, m);printf("排序后的数据:");for(i=0; i<m; i++)printf("%d", a[i]);printf("\n");3、程序设计1. 请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p~n-1(p<n-1)的数组元素平移到数组的前面。
江苏省二级C 语言程序设计2008 年(秋)第一部分计算机基础知识1)信息技术指的是用来扩展人们信息器官功能、协助人们更有效地进行信息处理的一类技术。
在下列有关信息技术的叙述中,错误的是 ______ 。
A)现代信息技术的主要特征之一是以数字技术和电子技术为基础B)遥感遥测技术、自动控制技术等均属于现代信息技术C)微电子技术是信息技术领域的关键技术,它以集成电路为核心D)利用磁带、光盘、电话、传真等进行信息传递均属于现代通信2)二进制数10111000 和11001010 进行逻辑“与”运算,结果再与10100110 进行逻辑“或” 运算,最终结果的十六进制形式为_______ 。
A)A2 B )DE C)AE D)953)计算机的性能在很大程度上是由CPU 决定的。
在下列有关CPU 结构和原理的一些叙述中,错误的是A)目前PC 机所使用的CPU 均是Intel 公司的产品B)从逻辑组成上看,C PU 主要由寄存器组、运算器和控制器等部分组成C)目前CPU 中的运算部件ALU 有多个,每个ALU 均可独立完成运算D)不同CPU 能执行的指令有所不同,但同一系列CPU 产品通常是“向下兼容的4)在下列有关目前PC 机主板及其组件的叙述中,正确的是。
A)主板的物理尺寸没有标准,通常不同品牌的主板采用不同的尺寸B)主板上的BIOS 芯片是一种RAM 芯片,因而其存储的信息是可以随时刷新的C)主板上的存储器控制和I/O 控制功能大多集成在芯片组内D)主板上的CMOS 芯片是一种非易失性存储器,其存储的信息永远不会丢失5)在下列有关PC 机硬盘存储器的叙述中,错误的是。
A)硬盘上的数据块要用柱面号、扇区号和磁头号这三个参数来定位B)目前硬盘一般都含有DRAM 芯片构成的高速缓存(C ache)C)目前硬盘与主机的接口大多为串行ATA 接口D)硬盘容量的增加主要是靠碟片数增加,目前硬盘一般均有数十个碟片组成6)在下列有关PC 机I/O 总线和接口的叙述中,错误的是。
全国计算机等级考试二级C语言 2008年4月真题卷答案及解析一、选择题(1)C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。
其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。
带箭头的线段在数据流程图中表示数据流,而在程序流程图中表示控制流。
在所给出的选项中,在图元之间用带有箭头的线段表示图元关系。
在模块之间用带有箭头的线段表示调用关系。
构成程序流程图的基本图符及其含义是:→或↓表示控制流,□表示加工步骤,◇表示逻辑条件。
(2)A解析:结构化程序设计的原则包括:"自顶而下,逐步求精"的设计思想,"独立功能,单出口、单入口"的模块化设计等。
多态性是面向对象程序语言的特征。
(3)B解析:模块划分应遵循的准则包括模块之间的耦合和内聚。
一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即高内聚、低耦合的原则。
(4)B解析:需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等四方面。
产生的主要文档为软件需求规格说明书,它可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。
(5)A解析:算法具有6个特性。
①有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的。
②确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义。
③可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。
④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。
⑤输出:一个算法有一个或多个输出。
(6)D解析:在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是n(n-1)/2,堆排序需要比较的次数为nlog2n。
全国计算机等级考试二级笔试试卷Visual FoxPro数据库程序设计(陈远跃-/- 整理)2008年4月笔试试卷参考答案一、选择题(1)C)(2)A)(3)B)(4)B)(5)A)(6)D)(7)B)(8)C)(9)D)(10)C)(11)D)(12)D)(13)B)(14)C)(15)D)(16)B)(17)B)(18)A)(19)B)(20)A)(21)C)(22)B)(23)A)(24)C)(25)B)(26)C)(27)D)(28)B)(29)A)(30)C)(31)C)(32)D)(33)C)(34)D)(35)A)二、填空题(1)输出(2)16(3)24 (4)关系(5)数据定义语言(6)不能(7)DISTINCT (8)LIKE(9)数据库管理系统(10)PRIMARY KEY(11)AGE IS NULL (12).T.(13)DO mymenu.mpr (14)LOCAL(15)PACK全国计算机等级考试二级Visual FoxPro数据库设计2008年4月笔试试卷(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)(1)程序流程图中带有箭头的线段表示的是()。
A)图元关系B)数据流C)控制流D)调用关系(2)结构化程序设计的基本原则不包括()。
A)多元性B)自顶向下C)模块化D)逐步求精(3)软件设计中模块划分应遵循的准则是()。
A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是()。
A)可行性分析报告B)软件需求规格说明书C)概要设计说明书D)集成测试计划(5)算法的有穷性是指()。
A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。
A)快速排序B)冒泡排序C)简单插入排序D)堆排序(7)下列关于栈的叙述正确的是()。
2007年9月全国计算机等级考试二级C语言(答案附在后面)(考试时间120分钟,满分100分)一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分)) 下列各题A)、B)、C)、D)四个选项中,只有一个是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。
(1)软件是指A)程序 B)程序和文档C)算法加数据结构 D)程序、数据和相关文档的集合(2)软件调试的目的是A)发现错误 B)改正错误C)改善软件的性能 D)验证软件的正确性(3)在面向对象方法中,实现信息隐蔽是依靠A)对象的继承 B)对象的多态C)对象的封装 D)对象的分类(4)下列叙述中,不符合良好程序设计风格的是A)程序的效率第一,清晰第二 B)程序的可读性好C)程序中有必要的注释 D)输入数据前要有提示信息(5)下列叙述中正确的是A)程序执行的效率与数据的存储结构密切相关B)程序执行的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对(6)下列叙述中正确的是A)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构D)以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2 (8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式A).exe B).C C).obj D).cp(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1; (18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0 (19)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式算上述公式的程序段是A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);If(x<0)y=sqrt(-x);(21)设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)(22)有以下程序#include<stdio.h>main(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c(24)有以下程序#include<stdio.h>main(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。
江苏省二级C 语言程序设计2008 年(秋)第一部分计算机基础知识(1)信息技术指的是用来扩展人们信息器官功能、协助人们更有效地进行信息处理的一类技术。
在下列有关信息技术的叙述中,错误的是__________。
A)现代信息技术的主要特征之一是以数字技术和电子技术为基础B)遥感遥测技术、自动控制技术等均属于现代信息技术C)微电子技术是信息技术领域的关键技术,它以集成电路为核心D)利用磁带、光盘、电话、传真等进行信息传递均属于现代通信(2)二进制数10111000 和11001010 进行逻辑“与”运算,结果再与10100110 进行逻辑“或”运算,最终结果的十六进制形式为__________。
A)A2 B)DE C)AE D)95(3)计算机的性能在很大程度上是由CPU 决定的。
在下列有关CPU 结构和原理的一些叙述中,错误的是__________。
A)目前PC 机所使用的CPU 均是Intel 公司的产品B)从逻辑组成上看,CPU 主要由寄存器组、运算器和控制器等部分组成C)目前CPU 中的运算部件ALU 有多个,每个ALU 均可独立完成运算D)不同CPU 能执行的指令有所不同,但同一系列CPU 产品通常是“向下兼容的”(4)在下列有关目前PC 机主板及其组件的叙述中,正确的是__________。
A)主板的物理尺寸没有标准,通常不同品牌的主板采用不同的尺寸B)主板上的BIOS 芯片是一种RAM 芯片,因而其存储的信息是可以随时刷新的C)主板上的存储器控制和I/O 控制功能大多集成在芯片组内D)主板上的CMOS 芯片是一种非易失性存储器,其存储的信息永远不会丢失(5)在下列有关PC 机硬盘存储器的叙述中,错误的是__________。
A)硬盘上的数据块要用柱面号、扇区号和磁头号这三个参数来定位B)目前硬盘一般都含有DRAM 芯片构成的高速缓存(Cache)C)目前硬盘与主机的接口大多为串行ATA 接口D)硬盘容量的增加主要是靠碟片数增加,目前硬盘一般均有数十个碟片组成(6)在下列有关PC 机I/O 总线和接口的叙述中,错误的是__________。
2008年4月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题1分。
共70分)下列各题A)、B)、C)、D)4个选项中,只有一个选项是正确的,请将正确的选择涂写在答题卡相应位置上,答在试卷上不得分。
(1)程序流程图中的带有箭头的线段表示的是()A)图元关系B)数据流C)控制流D)调用关系(2)结构化程序设计的基本原则不包括()A)多态性B)自顶向下C)模块化D)逐步求精(3)软件设计中模块划分应遵循的准则是()A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是()A)可行性分析报告B)软件需求规格说明书C)概要设计说明书D)集成设计计划(5)算法的有穷性是指()A)算法程序的运行时间是有限的B)算法程序处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()A )快速排序B )冒泡排序C )直接插入排序D )堆排序(7)下列关于栈的叙述正确的是( )A )栈按“先进先出”组织数据B )栈按“先进后出”组织数据C )只能在栈底插入数据D )不能删除数据 (8)在数据库设计中,将E-R 图转换成关系数据模型的过程属于( )A )需求分析阶段B )概念设计阶段C )逻辑设计阶段D )物理设计阶段(9)有3个关系R 、S 和T 如下:B C D a 0K1 b1n1R S B C D F 3 h2A 0 k1N2x1B C D ak1T由关系R 和S 通过运算得到关系T ,则所使用的运算为( )A )并B )自然连接C )笛卡尔积D )交(10)设有表示学生选课的3张表,学生S (学号、姓名、性别、年龄、身份证号),课程C (课号、课名),选课SC (学号、课号、成绩),则表SC 的关键字(键或码)为( )A )课号,成绩B )学号,成绩C )学号,课号D )学号,姓名,成绩(11)以下叙述中正确的是( )A )C 程序中的注释只能出现在程序的开始位置和语句的后面。
2011年计算机二级C考试大纲公共基础知识基本要求1、掌握算法的基本概念。
2、掌握基本数据结构及其操作。
3、掌握基本排序和查找算法。
4、掌握逐步求精的结构化程序设计方法。
5、掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。
6、掌握数据的基本知识,了解关系数据的设计。
考试内容一、基本数据结构与算法1、算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。
2、数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。
3、线性表的定义;线性表的数序存储结构及其插入与删除运算。
4、栈和列队的定义;栈和队列的数序存储结构及其基本运算。
5、线性单列表、双向链表与循环链表的结构及其基本运算。
6、树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。
7、顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。
二、程序设计基础1、程序设计方法与风格。
2、结构化程序设计。
3、面向对象的程序设计方法,对象,方法,属性及继承与多态性。
三、软件工程基础。
1、软件工程的基本概念,软件生命周戎概念,软件工具与软件开发环境。
2、结构化分析方法,数据流图,数据字典,软件需求规格说明书。
3、结构化设计方法,总体设计与详细设计。
4、软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。
5、程序的调试,静态调试与动态调试。
四、数据库设计基础1、数据库的基本概念:数据库、数据库管理系统、数据库系统。
2、数据模型,试题联系模型及E-R图,从E-R图导出关系数据模型。
3、关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。
4、数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。
考试方式1、公共基础的考试方式为笔试,与C语言的笔试部分合为一张试卷。
公共基础部分占全卷的30分。
参考答案一、选择题(1)C【解析】算法的时间复杂度是用算法程序执行过程中所需要的基本运算次数来衡量的。
(2)D【解析】对分查找只能适用于顺序存储的有序线性表。
(3)C【解析】栈是按“先进后出”原则组织数据的结构;队列是按“先进先出”原则组织数据的结构;而有序表与---X树均不是。
因此,本题的正确答案为C。
(4)B【解析】按照二叉树前序遍历的方法:在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且.在遍历左、右子树时,仍然先访问根结点。
然后遍历左子树,最后遍历右子树。
对本题中的二叉树进行前序遍历的结果应是ATBZXCYP。
(5)D【解析】软件应包括程序和文档。
(6)D【解析】在面向对象方法中,一个对象请求另一对象为其服务是通过发送消息来实现的。
(7)A【解析】在模块化程序设计中.按功能划分模块的原则是:要求各模块的功能尽量单一,且各模块之间的联系尽量的少。
(8)A【解析】数据库系统只是减少了数据冗余,但避免一切冗余;数据库系统中数据的一致性并不是指数据类型一致,而是指采用了统一的数据结构方式;数据库系统与文件系统比较,数据库系统解决了数据共享问题。
(9)D【解析】在关系数据库中.用来表示实体之间联系的是二维表。
(10)B【解析】数据库管理最本质的特点是实现数据的共享。
为了实现数据的共享,保证数据的独立性、完整性和安全性,需要有一组软件来管理数据库中的数据,处理用户对数据库的访问,这组软件就是数据库管理系统(DBMS)。
数据库管理系统与计算机系统内的其他软件一样,也在操作系统((OS)的支持下工作·它与操作系统的关系极为密切。
操作系统、数据库管理系统与应用程序在一定的硬件支持下就构成了数据库系统。
(11)D【解析】本题考查二进制操作的几种形式,需要考生熟练掌握整数向二进制的转换和求反、异或等操作。
(12)C【解析】本题考查C++语言中文件的概念,包括二进制文件和文本文件.对不同的文件类型采用不同的读写方式。
2008年4月全国计算机等级考试二级C++笔试试题及答案(考试时间90 分钟,满分100 分)一、选择题(每小题2分,共70分)(1)程序流程图中带有箭头的线段表示的是()。
A)图元关系B)数据流C)控制流D)调用关系(2)结构化程序设计的基本原则不包括()。
A)多元性B)自顶向下C)模块化D)逐步求精(3)软件设计中模块划分应遵循的准则是()。
A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是()。
A)可行性分析报告B)软件需求规格说明书C)概要设计说明书D)集成测试计划(5)算法的有穷性是指()。
A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n 的线性表排序,在最坏情况下,比较次数不是n(n-1)/2 的排序方法是()。
A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)下列关于栈的叙述正确的是()。
A)栈按“先进先出”组织数据B)栈按“先进后出”组织数据C)只能在栈底插入数据D)不能删除数据(8)在数据库设计中,将E-R 图转换成关系数据模型的过程属于()。
A)需求分析阶段B)概念设计阶段C)逻辑设计阶段D)物理设计阶段(9)有三个关系R、S 和T 如下:R S TB C Da 0 k1b 1 n1由关系R 和S 通过运算得到关系T,则所使用的运算为()。
A)并B)自然连接C)笛卡尔积D)交(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC 的关键字(键或码)为()。
A)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩(11)下列有关函数重载的叙述中,错误的是A)函数重载就是用相同的函数名定义多个函数B)重载函数的参数列表必须不同C)重载函数的返回值类型必须不同D)重载函数的参数可以带有默认值(12)下列有关类成员的叙述中,正确的是A)友元函数是类的成员函数B)类成员的默认访问权限是私有的D)类的静态数据成员不能是常成员(13)下列有关类继承的叙述中,错误的是A)继承可以实现软件复用B)虚基类可以解决由多继承产生的二义性问题C)派生类构造函数要负责调用基类的构造函数D)派生类没有继承基类的私有成员(14)下列有关运算符重载的叙述中,正确的是A)运算符重载是多态性的一种表现B)C++中可以通过运算符重载创造新的运算符C)C++中所有运算符都可以作为非成员函数重载D)重载运算符时可以改变基结合性(15)下列有关模板的叙述中,正确的是A)函数模板不能含有常规形参B)函数模板的一个实例就是一个函数定义C)类模板的成员函数不能是模板函数D)用类模板定义对象时,绝对不能省略模板实参(16)下列有关C++流的叙述中,错误的是A)C++操作符setw 设置的输出宽度永久有效B)C++操作符endl 可以实现输出的回车换行C)处理文件I/O 时,要包含头文件fstreamB C Da 0 k1B C Df 3 h2a 0 k1n 2 x1D)进行输入操作时,eof()函数用于检测是否到达文件尾(17)下列符号中能够作为C++标识符的是A)const B)2a C)_shape D)-count(18)已知枚举类型声明语句为:enum COLOR{ WHITE,YELLOW,GREEN=5,RED,BLACK=10 };则下列说法中错误的是A)枚举常量YELLOW 的值为1 B)枚举常量RED 的值为6C)枚举常量BLACK 的值为10 D)枚举常量WHITE 的值为1(19)执行下列语句段后,输出字符“*”的个数是for (int i=50; i>1; I-=2)cout<<'*';A)24 B)25C)26 D)50(20)有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值5 的是A)a[2] B)a[3]C)*(p+2) D)*p+4(21)已知函数f 的原型是void f(int *a, long & b);,变量v1、v2 的定义是:int v1; loong v2;下列调用语句中正确的是A)f(v1, &v2); B)f(v1, v2);C)f(&v1, &v2); D)f(&v1, v2);(22)有如下类定义:class Point{private;static int how_many;};要初始化Point 类的静态成员how_many,下划线处应填入的内容是A)ing B)static intC)int Point:: D)static int Point::(23)在下列关键字中,不能用来表示继承方式的是A)private B)staticC)public D)protected(24)已知V alue 是一个类,V alue 是V alue 的一个对象。
下列以非成员函数形式重载的运算符函数原形中,正确的是A)V alue operator+(V alue v, int i); B)V alue operator+(V alue v=value, int i);C)V alue operator+(V alue vint i=0); D)V alue operator+(V alue v=value, int i=0);(25)下面是一个模板声明的开始部分:templute<typename T> double __由此可知A)这可能是一个函数模板的声明B)这可能是一个类模板的声明C)这既可能是一个函数模板的声明,也可能是一个类模板的声明D)这肯定是一个错误的模板声明(26)有如下4 个语句:①cout<<'A'<<setfill('*')<<left<<setw(7)<<'B'<<endl;②cout<<setfill('*')<<left<<setw(7)<<'A'<<'B'<<endl;③cout<<'A'<<serfill('*')<<right<<setw(7)<<'B'<<endl;④cout<<setfill('*')<<right<<setw(7)<<'A'<<'B'<<endl;其中能显示A******B 的是A)①和③B)①和④C)②和③D)②和④(27)有如下类定义:class MyClass{Int value;public;MyClass(int n): value (n) {}int gerV alue()const{ return value;}};则类MyClass 的构造函数的个数是A)1 个B)2 个C)3 个D)4 个(28)有如下类和对象的定义:class Constants{public;static double getPI(){return 3.1416;}};Constants constants;3.1416 的是A)cout<<constants->getPI();和cout<<Constants::gerPI();B)cout<<constants.getPI();和cout<<Constants.getPI();C)cout<<constants->getPI();和cout<<Constants->getPI();D)cout<<constants.getPI();和cout<<Constants::getPI();(29)有如下程序:#include<iostream>using namespace std;class V AC{public;int f() const { return 3; }int f() {return 5;}};const V AC v2;cout<<v1.f()<<v2.f();feturn 0;}运行时的输出结果是A)53 B)35C)55 D)33(30)有如下类声明:class Base{protected;int amount;public;Base(int n=0): amount(n){}int getAmount()const { retum amount; }};class Derived: public Base {protected;int value;public;Derived(int m, int n): value(m). Base(n){}Int getData()const{ return value+amount; }};已知x 是一个Derived 对象,则下列表达式中正确的是A)x.value+ x.getAmount() B)x.getData()-x.gctAmount() C)x.getData()-x.amount D)x.value+x.amount(31)有如下程序:#include<iostream>using namespace std;class Base {int x;public;Base{int n=0}; x(n){cout<<n;}Int getX()const{return x;}};class Derived public Base{int y;public;Derived(int m, int n): y(m), Base(n){cout<<m;}Derived(int m): y(m){cout<<m;}};int main(){Derived dl(3), d2(5,7);Return 0;}运行时的输出结果是A)375 B)357 C)0375 D)0357(32)下列有关抽象类和纯虚函数的叙述中,错误的是A)拥有纯虚函数的类是抽象类,不能用来定义对象B)抽象类的派生类若不实现纯虚函数,它也是抽象类C)纯虚函数的声明以“=0;”结束D)纯虚函数都不能有函数体(33)有如下程序:#include<iostream>Using namespace std;Class Amount{Amount(int n=0): amount(n){}Int getAmount()const{return amount;}Amount &operator +=(Amount a){amount+=a.amount;return ;}};int main(){Amount x(3),y(7);x+=y;cout<<x.getAmount()<<endl;return 0;}已知程序的运行结果是10,则下划线处缺失的表达式是A)*this B)thisC)&amount D)amount(34)下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是A)cout<<left<<setfill('*')<<357;B)cout<<left<<setw(5)<<357;C)cout<<left<<setw(5)<<"ABCDE";D)cout<<left<<"ABCDE";(35)有如下程序:#include<iostream>using namespace std;class GA{public;virtual int f(){retum l;}};class GB: public GA{public;virtual int f(){return 2;}};void show(GA g){cout<<g.f();}void display(GA &g){cout<<g.f();}int main(){GA a: show(a); display(a);GB b: show(b); display(b);retum 0;}运行时的输出结果是A)1111 B)1211C)1112 D)1212二、填空题(每空2分,共30分)(1)测试用例包括输入值集和值集。