全国计算机等级考试二级c历年真题及答案
计算机二级考试真题及答案C

计算机二级考试真题及答案C一、选择题(每题2分,共20分)1. 在计算机系统中,存储器的容量通常是指()。
A. 内存的容量B. 外存的容量C. 内存和外存的总容量D. 内存和外存的容量之差答案:C2. 下列关于计算机病毒的描述,不正确的是()。
A. 计算机病毒是一种程序B. 计算机病毒具有自我复制的能力C. 计算机病毒不能破坏硬件D. 计算机病毒可以自我进化答案:D3. 在计算机中,一个字节由()个二进制位组成。
A. 4B. 8C. 16D. 32答案:B4. 以下哪个选项不是操作系统的功能?()A. 进程管理B. 文件管理C. 设备管理D. 网络通信答案:D5. 在关系数据库中,能够唯一标识一个记录的属性集是()。
A. 主键B. 外键C. 索引D. 视图答案:A6. 计算机硬件系统由()组成。
A. 输入设备和输出设备B. 中央处理器和存储器C. 输入设备、输出设备和中央处理器D. 中央处理器、存储器和输入输出设备答案:D7. 在计算机中,二进制数1011转换为十进制数是()。
A. 11B. 12C. 13D. 14答案:B8. 下列关于计算机软件的描述中,不正确的是()。
A. 软件分为系统软件和应用软件B. 操作系统是系统软件的一种C. 应用软件是为特定应用而设计的软件D. 所有软件都可以免费使用答案:D9. 在计算机中,ASCII码用()位二进制数表示一个字符。
A. 4B. 7C. 8D. 16答案:C10. 计算机的存储设备中,随机存储器(RAM)是()。
A. 只读存储器B. 可读写存储器C. 非易失性存储器D. 易失性存储器答案:D二、填空题(每题2分,共20分)1. 在计算机中,二进制数1100转换为十进制数是____12____。
2. 计算机病毒的主要传播途径包括____电子邮件____、____网络下载____和____移动存储设备____。
3. 计算机的硬件系统由____输入设备____、____输出设备____、____存储器____、____中央处理器____和____接口电路____组成。
计算机二级c考试真题及答案解析

计算机二级c考试真题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的字符常量?A. 'a'B. "a"C. 3D. 'ab'答案:A解析:在C语言中,字符常量需要用单引号括起来,因此'a'是合法的字符常量。
选项B是字符串常量,选项C是整数常量,选项D是两个字符的序列,不是单个字符常量。
2. 若有以下定义:```cint a = 3, b = 4;```则表达式`a + b`的值是:A. 7B. 3C. 4D. 0答案:A解析:根据题目中给出的变量定义,a的值为3,b的值为4。
因此,表达式`a + b`的值是3 + 4,即7。
3. 在C语言中,以下哪个选项是正确的整型变量声明?A. int a;B. float b;C. double c;D. All of the above答案:D解析:在C语言中,int、float和double都是合法的整型和浮点型变量声明。
因此,选项A、B和C都是正确的整型变量声明。
4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D解析:在C语言中,&&代表逻辑与,||代表逻辑或,!代表逻辑非,它们都是C语言中的逻辑运算符。
5. 若有以下定义:```cint x = 10;```则表达式`x % 3`的值是:A. 1B. 2C. 3D. 0答案:A解析:表达式`x % 3`表示x除以3的余数。
10除以3的商是3,余数是1,因此`x % 3`的值是1。
6. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[10] = "Hello";B. char str[] = "Hello";C. Both A and BD. None of the above答案:C解析:在C语言中,选项A和B都是正确的字符串声明方式。
全国计算机等级考试二级C笔试试卷(含参考答案)

全国计算机等级考试二级C笔试试卷(含参考答案)以下各题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)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图(7)以下表达中正确的选项是A)软件交付使用后还需要进展维护B)软件一旦交付使用就不需要再进展维护C)软件交付使用后其生命周期就完毕D)软件维护是指修复程序中被破坏的指令(8)数据库设计的根本目标是要解决A)数据共享问题 B)数据平安问题C)大量数据存储问题 D)简化数据维护(9)设有如下关系表:R S TA B C A B C A B C1 123 1 3 1 1 22 23 2 2 33 1 3那么以下操作中正确的选项是A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S(10)数据库系统的核心是A)数据模型 B)数据库管理系统 C)数据库 D)数据库管理员(11)以下表达中错误的选项是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(12)以下表达中错误的选项是A)C语句必须以分号完毕B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(13)以下表达中正确的选项是A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码(14)以下关于函数的表达中正确的选项是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(15)假设有语句:char *line[5];,以下表达中正确的选项是A)定义line是一个数组,每个数组元素是一个基类型为char 的指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针(16)有以下程序段typedef struct NODE{ int num; struct NODE *next;} OLD;以下表达中正确的选项是A)以上的说明形式非法 B)NODE是一个构造体类型C)OLD是一个构造体类型 D)OLD是一个构造体变量(17)以下表达中错误的选项是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句 FILE fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1(19)以下不能正确计算代数式值的C语言表达式是A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2)(20)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(21)以下程序的功能是:给r输入数据后计算半径为r的圆面积s。
全国计算机等级考试《二级C++语言程序设计》历年真题精选及详解

运行这个程序的输出结果是( A. 22 B. 23 C. 24 D. 25
【答案】 D 【解析】 需求分析阶段的工作主要包括 4 个方面:①需求获取,其目的是确定对目标系统 的各方面需求;②需求分析,对获取的需求进行分析和综合,最终给出系统的解 决方案和目标系统的逻辑模型;③编写文档,编写需求规格说明书,编写初步用 户使用手册;④确认测试计划,修改完善软件开发计划,需求评审。制定软件集 成测试计划属于概要设计阶段的任务。答案选择 D 选项。 9. 在黑盒测试方法中,设计测试用例的主要根据是( )。 A. 程序内部逻辑 B. 程序外部功能 C. 程序数据结构 D. 程序流程图
运行这个程序的输出结果是( A. 3 B. 5 C. 7 D. 9
)。
【答案】 C 【解析】 for 语句基本格式:for(表达式 1;表达式 2;表达式 3)。执行过程如下:①先 求解表达式 1;②求解表达式 2,若其值为真(值为非 0),则执行 for 语句中
指定的内嵌语句,然后执行下面第(3)步。若为假(值为 0),则结束循环, 转到第(5)步;③求解表达式 3;④转回上面第(2)步骤继续执行;⑤循环结 束,执行 for 语句下面的一个语句。 20. 若 字符 指 针 p 所 指 向 的 字 符串 为 "abcdefg" , 在执 行 语 句 char*ap=new char[strlen(p)+1];之后,ap 指向的字符数组的元素个数为( )。 A. 9 B. 8 C. 7 D. 6
计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:关键字`struct`用于定义一个结构体,它允许将多个不同类型的数据项组合成一个单一的数据结构。
2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C解析:`%`是取模运算符,`&&`是逻辑与运算符,`||`是逻辑或运算符,而`::`不是C语言中的运算符。
二、填空题1. 在C语言中,`________`关键字用于声明一个函数。
答案:int解析:在C语言中,`int`是用于声明一个函数的返回类型,表示该函数返回一个整数值。
2. 以下代码片段中,`________`用于定义一个名为`data`的数组,包含10个整数。
```cint data[10];```答案:int data[10];解析:`int data[10];`定义了一个名为`data`的数组,它包含10个整数。
三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。
```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整数参数`a`和`b`,计算它们的和,并返回结果。
2. 编写一个C语言程序,实现将一个字符串反转。
```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str); return 0;}```答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str);return 0;}```解析:该程序定义了一个`reverse`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。
计算机等级考试二级C真题参考答案及解析

计算机等级考试二级C真题参考答案及解析1、以下选项中可作为C语言合法常量的是______。
A) -80. B) -080 C) -8e1.0 D) -80.0e 【答案】A【解析】本题考点为数值常量的表示。
在C语言中,以0开头的整型常量为八进制数,其有效数字符号为0~7,故选项B错误。
在以指数形式表示实型常量时,e后面的指数只能是整数,且必须含有指数,故选项C、D错误。
2、以下不能定义为用户标识符的是______。
A) Main B) _0 C) _int D) sizeof 【答案】D解析】本题考点是C语言中标识符的命名规则。
C语言中的标识符包括变量名、符号常量名、函数名、数组名、结构名、类型名、文件名等,C语言中规定标识符只能由字母、数字和下划线三种符号组成,并且标识符的首字符必须是字母或下划线,C语言中的关键字如语句、数据类型名等不允许作为用户定义的标识符。
3、以下选项中,不能作为合法常量的是______。
参见第1题解析。
A) 1.234e04 B) 1.234e0.4 C) 1.234e+4 D) 1.234e0 【答案】B【解析】4、数字字符0的ASCII值为48,若有以下程序:main(){ char a='1',b='2'; printf("%c,",b++);printf("%d\n",b-a); }程序运行后的输出结果是______。
A) 3,2 B) 50,2 C) 2,2 D) 2,50 【答案】C【解析】本题考点为字符型数据的运算。
字符型数据的实质是字符的ASCII编码,因此字符型数据可以作为一个整数进行运算,参加运算的数据为字符对应的ASCII码。
因为b='2',故执行b++后b='3',但因在语句printf("%c,",b++);中b++为后增量,输出字符仍为'2',而b-a='3'-'1'=2,本题正确答案为C。
全国计算机等级考试二级C历年真题及答案

全国计算机等级考试二级C历年真题及答案一、选择题((1)~(35)每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下面叙述正确的是A)算法的执行效率与数据的存储结构无关B)算法的空间复杂度是指算法程序中指令(或语句)的条数C)算法的有穷性是指算法必须能在执行有限个步骤之后终止D)以上三种描述都不对(2)以下数据结构中不属于线性数据结构的是A)队列B)线性表C)二叉树D)栈(3)在一棵二叉树上第5层的结点数最多是A)8B)16C)32D)15(4)下面描述中,符合结构化程序设计风格的是A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B)模块只有一个入口,可以有多个出口C)注重提高程序的执行效率D)不使用goto语句(5)下面概念中,不属于面向对象方法的是A)对象B)继承C)类D)过程调用(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是A)可行性分析B)需求分析C)详细设计D)程序编码(7)在软件开发中,下面任务不属于设计阶段的是A)数据结构设计B)给出系统模块结构C)定义模块算法D)定义需求并建立系统模型(8)数据库系统的核心是A)数据模型C)软件工具B)数据库管理系统D)数据库(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库设计是指设计数据库管理系统C)数据库技术的根本目标是要解决数据共享的问题D)数据库系统中,数据的物理结构必须与逻辑结构一致(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是A)内模式B)外模式C)概念模式D)逻辑模式(11)关于面向对象的程序设计方法,下列说法正确的是A)―封装性‖指的是将不同类型的相关数据组合在一起,作为一个整体进行处理B)―多态性‖指的是对象的状态会根据运行时要求自动变化C)基类的私有成员在派生类的对象中不可访问,也不占内存空间D)在面向对象的程序设计中,结构化程序设计方法仍有着重要作用(12)判断字符型变量ch是否为大写英文字母,应使用表达式A)ch>='A'&ch<='Z'B)ch<='A'||ch>='Z'C)'A'<=ch<='Z'D)ch>='A'&& ch<='Z'(13)已知下列语句中的某和y都是int型变量,其中错误的语句A)某=y++;B)某=++y;C)(某+y)++;D)++某=y;(14)执行语句序列intn;cin>>n;witch(n){cae1:cae2:cout<<'1';cae3:cae4:cout<<'2';break;default:cout<<'3';}时,若键盘输入1,则屏幕显示A)1B)2C)3D)12(15)下列程序的输出结果是#includeuingnamepacetd;intmain(){chara[]=\char某ptr=a;while(某ptr){if(某ptr>='a'&&某ptr<='z')cout<<char(某ptr+'A'-'a');elecout<<某ptr;ptr++;}return0;}A)HELLO,WORLDB)Hello,WorldC)hELLO,wORLDD)hello,world(16)已知:intm=10;在下列定义引用的语句中,正确的是A)int&某=m;B)inty=&m;C)int&z;D)int&t=&m;(17)下列函数原型声明中错误的是A)voidFun(int某=0,inty=0);B)voidFun(int某,inty);C)voidFun(int某,inty=0);D)voidFun(int某=0,inty);(18)已知程序中已经定义了函数tet,其原型是inttet(int,int,int);,则下列重载形式中正确的是A)chartet(int,int,int);B)doubletet(int,int,double);C)inttet( int,int,int=0);D)floattet(int,int,float=3.5F);(19)有以下程序#includeinti=0;voidfun(){{taticinti=1;td::cout<td::cout<2intmain(){fun();fun();return0;}程序执行后的输出结果是A)1,2,1,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0,(20)已知函数f的原型是:voidf(int某a,long&b);变量v1、v2的定义是:intv1;longv2;,正确的调用语句是A)f(v1,&v2);B)f(v1,v2);C)f(&v1,v2);D)f(&v1,&v2);(21)有以下类定义claMyCla{public:MyCla(){cout<<1;}};则执行语句MyClaa,b[2],某p[2];后,程序的输出结果是A)11B)111C)1111D)11111(22)关于友元,下列说法错误的是A)如果类A是类B的友元,那么类B也是类A的友元B)如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C)友元关系不能被继承D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元(23)关于动态存储分配,下列说法正确的是A)new和delete是C++语言中专门用于动态内存分配和释放的函数B)动态分配的内存空间也可以被初始化C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new(24)有以下程序#includeuingnamepacetd;claMyCla{public:MyCla(intn){number=n;}//拷贝构造函数MyCla(MyCla&other){number=other.number;}~MyCla(){}private: intnumber;};MyClafun(MyClap){3MyClatemp(p);returntemp;}intmain(){MyClaobj1(10),obj2(0);MyClaobj3(obj1);obj2=fun(obj3);return0 ;}程序执行时,MyCla类的拷贝构造函数被调用的次数是A)5B)4C)3D)2(25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的A)公有成员和私有成员B)私有成员和保护成员C)公有成员和保护成员D)私有成员、保护成员和公有成员(26)在C++中用来实现运行时多态性的是A)重载函数B)析构函数C)构造函数D)虚函数(27)一个类可以同时继承多个类,称为多继承。
全国计算机等级考试二级C语言笔试试题及答案解析

全国计算机等级考试二级C语言笔试试题及答案解析试题一:选择题1. 下列关于C语言的说法,错误的是()A. C语言是一种高级语言B. C语言具有跨平台性C. C语言编译器可以直接生成机器码D. C语言是一种解释型语言答案:D解析:C语言是一种高级语言,具有跨平台性。
编译器将C语言源程序编译成目标代码,然后通过链接器生成可执行文件,这个过程生成的机器码可以被计算机直接执行,因此C语言不是解释型语言。
2. 以下哪个选项不是C语言的基本数据类型?()A. intB. charC. floatD. string答案:D解析:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。
string不是C语言的基本数据类型,而是由字符数组构成的一种自定义类型。
试题二:填空题1. 在C语言中,每个语句的结尾必须使用()符号。
答案:分号(;)解析:在C语言中,每个语句的结尾必须使用分号(;)作为结束符,表示一个语句的结束。
2. 以下程序的输出结果是()。
```c#include <stdio.h>int main() {int a = 5;int b = 3;printf("%d\n", a % b);return 0;}```答案:2解析:在C语言中,取模运算符(%)用于计算两个整数相除的余数。
在本题中,5除以3的余数为2,因此输出结果为2。
试题三:编程题1. 编写一个C程序,实现以下功能:从键盘输入10个整数,计算并输出这些整数的平均值。
```c#include <stdio.h>int main() {int i, num;float sum = 0.0, average;for (i = 0; i < 10; i++) {printf("请输入第%d个整数:", i + 1);scanf("%d", &num);sum += num;}average = sum / 10;printf("这10个整数的平均值为:%.2f\n", average);return 0;}```解析:本题考查了循环语句、输入输出函数等基本知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国计算机等级考试二级笔试试卷 公共基础知识及C++语言程序设计 (考试时间90分钟,满分100)分) 一、选择题((1)~(35)每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 下面叙述正确的是A)算法的执行效率与数据的存储结构无关B)算法的空间复杂度是指算法程序中指令(或语句)的条数C)算法的有穷性是指算法必须能在执行有限个步骤之后终止 D)以上三种描述都不对(2)以下数据结构中不属于线性数据结构的是A)队列 B)线性表 C)二叉树 D)栈(3)在一棵二叉树上第5层的结点数最多是A)8 B)16 C)32 D)15(4)下面描述中,符合结构化程序设计风格的是A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B)模块只有一个入口,可以有多个出口 C)注重提高程序的执行效率 D)不使用goto 语句(5)下面概念中,不属于面向对象方法的是A)对象 B)继承 C)类 D)过程调用(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是 A)可行性分析 B)需求分析 C)详细设计 D)程序编码(7)在软件开发中,下面任务不属于设计阶段的是A)数据结构设计 B)给出系统模块结构C)定义模块算法 D)定义需求并建立系统模型(8)数据库系统的核心是A)数据模型 C)软件工具B)数据库管理系统 D)数据库(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库设计是指设计数据库管理系统C)数据库技术的根本目标是要解决数据共享的问题D)数据库系统中,数据的物理结构必须与逻辑结构一致(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是A)内模式 B)外模式 C)概念模式D)逻辑模式(11)关于面向对象的程序设计方法,下列说法正确的是A)“封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理B)“多态性”指的是对象的状态会根据运行时要求自动变化C)基类的私有成员在派生类的对象中不可访问,也不占内存空间D)在面向对象的程序设计中,结构化程序设计方法仍有着重要作用(12)判断字符型变量ch是否为大写英文字母,应使用表达式A ) ch>='A' & ch<='Z'B ) ch<='A' ||ch>='Z'C ) 'A'<=ch<='Z'D ) ch>='A' && ch<='Z'(13)已知下列语句中的x和y都是int型变量,其中错误的语句A ) x=y++;B ) x=++y;C ) (x+y)++;D ) ++x=y;(14)执行语句序列int n;cin >> n;switch(n){ case 1:case 2: cout << '1';case 3:case 4: cout << '2'; break; default: cout << '3';}时,若键盘输入1,则屏幕显示A)1 B)2 C)3 D)12(15)下列程序的输出结果是#include <iostream>using namespace std;int main(){char a[] = "Hello, World";char *ptr = a;while (*ptr){if (*ptr >= 'a' && *ptr <= 'z')cout << char(*ptr + 'A' -'a');else cout << *ptr;ptr++;}return 0;}A ) HELLO, WORLDB ) Hello, WorldC ) hELLO, wORLD D ) hello, world(16)已知:int m=10;在下列定义引用的语句中,正确的是A ) int &x=m;B )int y=&m;C )int &z;D ) int &t=&m;(17)下列函数原型声明中错误的是A ) void Fun(int x=0, int y=0);B ) void Fun(int x, int y);C ) void Fun(int x, int y=0);D ) void Fun(int x=0, int y);(18)已知程序中已经定义了函数test,其原型是int test(int, int, int);,则下列重载形式中正确的是A ) char test(int,int,int);B ) double test(int,int,double);C ) int test(int,int,int=0);D ) float test(int,int,float=3.5F);(19)有以下程序#include<iostream>int i = 0;void fun(){ {static int i = 1;std::cout<<i++<<',';}std::cout<<i<<',';}int main() {fun(); fun(); return 0; }程序执行后的输出结果是A)1,2,1,2, B)1,2,2,3, C)2,0,3,0, D)1,0,2,0,(20)已知函数f 的原型是:void f(int *a, long &b); 变量v1、v2的定义是:int v1;long v2;,正确的调用语句是 A) f(v1, &v2); B) f(v1,v2);C) f(&v1, v2); D) f(&v1, &v2);(21)有以下类定义 class MyClass { public:MyClass(){cout<<1;} };则执行语句MyClass a, b[2], *p[2];后,程序的输出结果是A)11 B)111 C)1111 D)11111(22)关于友元,下列说法错误的是 A)如果类A 是类B 的友元,那么类B 也是类A 的友元B)如果函数fun()被说明为类A 的友元,那么在fun()中可以访问类A 的私有成员C)友元关系不能被继承 D)如果类A 是类B 的友元,那么类A 的所有成员函数都是类B 的友元(23)关于动态存储分配,下列说法正确的是A)new 和delete 是C++语言中专门用于动态内存分配和释放的函数B)动态分配的内存空间也可以被初始化 C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete 释放内存空间D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new (24)有以下程序 #include<iostream> using namespace std; class MyClass{public:MyClass(int n){number = n;}//拷贝构造函数MyClass(MyClass&other){ number=other.number;}~MyClass(){}private:int number;};MyClass fun(MyClass p){MyClass temp(p);return temp;}int main(){MyClass obj1(10), obj2(0);MyClass obj3(obj1);obj2=fun(obj3);return 0;}程序执行时,MyClass类的拷贝构造函数被调用的次数是A)5 B)4 C)3 D)2 (25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的A)公有成员和私有成员 B)私有成员和保护成员C)公有成员和保护成员 D)私有成员、保护成员和公有成员(26)在C++中用来实现运行时多态性的是A)重载函数 B)析构函数C)构造函数 D)虚函数(27)一个类可以同时继承多个类,称为多继承。
下列关于多继承和虚基类的表述中,错误的是A)每个派生类的构造函数都要为虚基类构造函数提供实参B)多继承时有可能出现对基类成员访问的二义性问题C)使用虚基类可以解决二义性问题并实现运行时的多态性D)建立最派生类对象时,虚基类的构造函数会首先被调用(28)在一个类体的下列声明中,正确的纯虚函数声明是A) virtual void vf()=0; B) void vf(int)=0;C) virtual int vf(int); D) virtual void vf(int) { }(29)在下面的运算符重载函数的原型中,错误的是A) Volume operator - (double, double);B) double Volume::operator- (double);C) Volume Volume: :operator - (Volume);D) Volume operator - (Volume, Volume);(30)下列是模板声明的开始部分,其中正确的是A) template<T>B) template<class T1,T2>C) template<class T1, class T2>D) template<class T1;class T2>(31)执行语句序列ofstream outfile("DATA.DAT");if(...) cout << "OK"; else cout << "FAIL";后,如果文件打开成功显示“OK”,否则就显示“F厶n。
”。
由此可知,上面if 语句的...处的表达式应是A )outfile.fail() 或outfileB )outfile.good() 或 !outfileC )outfile.good() 或outfileD )outfile.fail() 或 !outfile(32)C++流中重载的运算符>>是一个()A)用于输出操作的非成员函数 B)用于输入操作的非成员函数C)用于输出操作的成员函数 D)用于输入操作的成员函数(33)有以下类定义class Point {public:Point(int x = 0, int y = 0) { _.x= x; _.y = y; }void Move(int xOff, int yOff){ _x += xOff; _.y += yOff; }void Print() const{ cout << '(' << _x << ',' << _y<< ')' << endl; }private:int _x, _y;};下列语句中会发生编译错误的是A) Point pt; pt.Print();B) const Point pt; pt.Print();C) Point pt; pt.Move(l, 2);D) const Point pt; pt.Move(l, 2);(34)有以下类定义class MyClass{private:int id;char gender,char *phone;public:MyClass():id(0),gender('#'),phone(N ULL) { }MyClass(int no, char ge='#', char *ph= NULl.){ id=no;gende=ge;phone=ph; } };下列类对象定义语句中错误的是A) MyClass myObj;C) MyClass myObj(12, 'm');D) MyClass myObj(12);(35)有以下程序#include <iostream>using namespace std;class Complex{public:Complex(double r =0, double i =0):re(r), im(i) { }double real() const { return re; }double imag() const { return im;} Complex operator +(Complex c) const{ return Complex(re+c.re, im+c.im); }private:double re, im;};int main(){Complex a = Complex(l, 1) + Complex(5);cout << a.real() << '+' << a.imag() <<'i' << endl;return 0;}程序执行后的输出结果是A) 6+6i B) 6+1i C) 1+6i D) 1+1i二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡[1]-[15]序号的横线上,答在试卷上不得分。