c语言二级考试题库(计算机等级考试 笔试题型)

2024-04-17 22:22:19

选择35 填空15 每题2分

2010年3月计算机等级考试二级C++笔试试题

一、选择题(每小题2分,共70分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是

A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)

C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)

D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n log2n)

(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如下:

则由关系R得到关系T的操作是

A)选择

B)投影

C)交

D)并

(11)下列关于函数的描述中,错误的是

A)函数可以没有返回值

B)函数可以没有参数

C)函数可以是一个类的成员

D)函数不能被定义为模板

(12)若MyClass是一个类名,且有如下语句序列

MyClass c1,*c2;

MyClass *c3=new MyClass;

MyClass &c4=c1;

上面的语句序列所定义的类对象的个数是

A)1

B)2

C)3

D)4

(13)下列关于继承方式的描述中,错误的是

A)如果不显式地指定继承方式,缺省的继承方式是私有(private)

B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员

C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员

D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员

(14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是

A)Decr& operator --(int);

B)Decr operator --( Decr&,int);

C)friend Decr& operator --(Decr&);

D)frlend Decr operator --(Decr&,int);

(15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列

MyTempp2;

MyTempp3[2];

编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是

A)1

B)2

C)3

D)0

(16)在C++中,cin是个

A)类

B)对象

C)模板

D)函数

(17)在下列字符中,不允许作为C++标识符的是

A)b

B)B

C)_

D)2

(18)下列叙述中,错误的是

A)false是一个逻辑型常量

B)"b"是一个字符型常量

C)365是一个int常量

D)3.1415926是一个double常量

(19)若x和y是程序中的两个整型变量,则下列if语句中正确的是

A)if(x==0) y=1; else y=2;

B)if(x==0) then y=1 else y=2;

C)if(x==0) y=1 else y=2;

D)if x==0 y=1; else y=2;

(20)要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的是

A)int x[3]={0,0,0};

B)int x[]={0};

C)static int x[3]={0};

D)int x[]={0,0,0};

(21)关于函数中的<返回类型>,下列表述中错误的是

A)<返回类型>中有可能包含关键字int

B)<返回类型>中有可能包含自定义标识符

C)<返回类型>中有可能包含字符*

D)<返回类型>中可能包含[]

(22)要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是

A)MyClass p=MyClass;

B)MyClass p=new MyClass;

C)MyClass &p=new MyClass;

D) MyClass a,&p=a;

(23)有如下两个类定义

class XX{

private:

double x1;

protected:

double x2;

public:

double x3;

};

class YY:protected XX{

private:

double y1;

protected:

double y2;

public:

double y3;

};

在类YY中保护成员变量的个数是

A)1

B)2

C)3

D)4

(24)下列关于运算符重载的描述中,错误的是

A)可以通过运算符重载在C++中创建新的运算符

B)赋值运算符只能重载为成员函数

C)运算符函数重载为类的成员函数时,第一操作数是该类对象

D)重载类型转换运算符时不需要声明返回类型

(25)下列关于类模板的描述中,错误的是

A)类模板的成员函数都是模板函数

B)可以为类模板参数设置默认值

C)类模板描述了一组类

D)类模板中只允许有一个类型参数

(26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是

A)setprecision

B)setw

C)setfill

D)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是

int fun1();

class Test{

public:

int fun2();

friend int fun3();

static int fun4();

};

A)fun1

B)fun2

C)fun3

D)fun4

(28)有如下程序

#include

using namespace std;

class Test{

public:

Test(){ }

Test(const Test &t) {cout<<1;}

};

Test fun(Test &u) {Test t=u; return t;}

int main(){Test x,y; x=fun(y); return 0;}

运行这个程序的输出结果是

A)无输出

B)1

C)11

D)111

(29)有如下程序

#include

using namespace std;

class A{

public:

A(int i=0):r1(i) { }

void print() {cout<<'E’<<R1<<'-';}< p>

void print() const {cout<<'C'<<R1*R1<<'-';}< p>

void print(int x) {cout <<'P'<<R1*R1*R1<<'-';}< p>

private:

int r1;

};

int main() {

A a1;

const A a2(4);

a1.print(2);

a1.print();

return 0;

}

运行时的输出结果是

A)P8-E4

B)P8-C16-

C)P0-E4-

D)P0-C16-

(30)下列代码声明了3个类

class Person{};

class Student:public Person{};

class Undergraduate:Student{};

下列关于这些类之间关系的描述中,错误的是

A)类Person是类Undergraduate的基类

B)类Undergraduate从类Student公有继承

C)类Student是类Person的派生类

D)类Undergraduate是类Person的派生类

(31)有如下程序

#include

using namespace std;

Class Base{

public:

Base(int x=0):valB(x) {cout<<VALB;}< p>

~Base() {cout<<VALB;}< p>

private:

int valB;

};

class Derived:public Base{

public:

Derived(int x=0,int y=0):Base(x),valD(y){cout<<VALD;}< p>

~Derived() {cout<<VALD;}< p>

private:

int valD;

};

int main(){

Derived obj12(2,3);

retuen 0;

}

运行时的输出结果是

A)2332

B)2323

C)3232

D)3223

(32)下面是类Shape的定义:

class Shape{

public:

virtual void Draw()=0;

};

下列关于Shape类的描述中,正确的是

A)类Shape是虚基类

B)类Shape是抽象类

C)类Shape中的Draw函数声明有误

D)语句“Shape s;”能够建立Shape的一个对象s

(33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是

A)MyClock operator + (MyClock,long);

B)MyClock operator + (MyClock,MyClock);

C)MyClock operator + (long,long);

D)MyClock operator + (long,MyClock);

(34)打开文件时可单独或组合使用下列文件打开模式

①ios_base::app ②ios_base::binary

③ios_base::in ④ios_base::out

若要以二进制读方式打开一个文件,需使用的文件打开模式为

A)①③

B)①④

C)②③

D)②④

(35)有如下程序:

#include

using namespace std;

Class B{

public:

B(int xx):x(xx) {++cout; x+=10;}

virtual void show() const

{cout<<COUNT<<'_'<<X<<ENDL;}< p>

protected:

static int count;

private:

int x;

};

class D:public B{

public:

D(int xx,int yy):B(xx),y(yy) {++count; y+=100;}

virtual void show() const

{cout<<COUNT<<'_'<<Y<<ENDL;}< p>

private:

int y;

};

int B::count=0;

int main(){

B *ptr=new D(10,20);

ptr->show();

delete ptr;

return 0;

}

运行时的输出结果是

A)1_120

B)2_120

C)1_20

D)2_20

二、填空题(每空2分,共30分)

请将每一个空的正确答案写在答题卡l~15序号的横线上,答在试卷上不得分。

(1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为 1 。

(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有 2 个元素。

(3)设二叉树如下:

对该二叉树进行后序遍历的结果为 3 。

(4)软件是 4 、数据和文档的集合。

(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 5 ,成绩)。

(6)若x和y是两个整形变量,在执行了语句序列

x=5; y=6; y+=x--;

后,x+y的值为 6 。

(7)在执行语句序列

int i=0; do i++; while(i*i<10);

时,do后面的循环体语句i++被执行的次数为 7 。

(8)有如下的函数定义:

int Xfun(int *a, int n){

int x=*a;

for(int *pa=a+1; pa<>

if(*pa>x) x=*pa;

return x;

}

若执行了语句

int x[5]={23,46,78,55,16};

后,通过表达式Xfun(x,5)调用该函数,则得到的返回值为 8 。

(9)有如下的函数定义:

int Xfun(int x){

int y=x;

{int x=10; y+=x;}

return x+y;

}

通过表达式Xfun(5)调用该函数,则得到的返回值为 9 。

(10)假定Xcs是一个类,该类中一个成员函数的原型为“Xcs *abc();”,则在类外定义时对应的函数头为 10 。

(11)请将下面的类Date的定义补充完整,使得由语句

Date FirstDay;

定义的对象FirstDay的值为2010年1月1日。

class Date{

public:

Date( 11 ):year(y),month(m),day(d){ }

private:

int year,month,day; //依次表示年、月、日

};

(12)请将下面的程序补充完整,使得程序输出“飘是张娜的书”。

#include

using namespace std;

class Book{

public:

Book(char *str) {strcpy(title,str);}

12 void PrintInfo() {cout<<TITLE<<ENDL;}< p>

protected:

char title[50];

};

class MyBook:public Book{

public:

MyBook(char *s1,char *s2="张娜"):

13 {strcpy(owner,s2);}

virtual void PrintInfo() {cout<<TITLE<<"是"OWNER<<"的书"<<ENDL;}< p>

private:

char owner[10];

};

int main(){

Book *prt=new MyBook("飘");

prt->PrintInfo();

return 0;

}

(13)在有理数类Rational中重载插入运算符<<,以便按a/q形式输出。请将<<运算符函数的定义补充完整。

class Rational{

public:

Rational(int aa, int qq):a(aa),q(qq){ }

friend 14 operator<<(ostream &out, Rational &x)

{

return (out<<X.A<<' p ?<<x.q);<>

}

private:

int a,q;

};

(14)下面的函数定义是某函数模板能够生成的函数实例

int square(int n) {return n*n;}

double square(double n) {return n*n;}

由此可知,该函数模板的定义是 15 。

 计算机二级是高校的热门考试之一,那么计算机二级C语言考试内容有哪些呢?下面是由我为大家整理的“计算机二级C语言考试内容有哪些”,仅供参考,欢迎大家阅读本文。

 计算机二级C语言考试内容有哪些

 全国计算机二级C语言程序设计包括40个单选题和三道操作题,单选题中1~10题为二级公共基础知识,单选题的11~40题是C语言的内容。操作题包括程序填空、程序改错和编程题各一题。程序填空是将一个完整的程序,扣掉两到三处,让考生将它填写完整。

 程序改错也是一个完整的程序,有2~3处错误要求考生将他们改正。编程题是要求考生编写一个程序,运行出题干要求的结果。二级C语言程序设计考试涉及公共基础知识和C语言两块。公共基础知识包括数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分。

 考10个单选,C语言有基础知识(C语言概述、常量与变量、数据类型、运算符和表达式),编程三大结构(顺序结构、选择结构、循环结构),数组、函数和指针,其他内容(预处理命令、结构体和共用体、位运算、文件)四大部分内容。重点是第二、三部分。

 计算机二级C语言备考方法

 1、学会并习惯使用编程软件的帮助系统。C语言编程软件有非常全面的帮助系统,熟练掌握、使用帮助系统,可以使我们减少记忆量,解决解题中的陌生、疑难问题。

 2、应使用考试模拟软件进行实际的上机操作练习,尤其要做一些具有针对性的上机模拟题,以便熟悉考试题型,体验真实的上机环境,减轻考试时的紧张程度。

 3、熟悉考试场地及环境,尤其是要熟悉考场的硬件情况和所使用的相关软件的情况。一般在正式考试前,考点会给我们提供一次模拟上机的机会,应尽可能地去参加。模拟考试时,不要把重点放在做题上,而应放在熟悉考试环境,相应软件的使用方法,考试系统的使用等方面。

 4、在考试时不要急燥、慌张,而是要认真、冷静地看清题目要求,在做完题后一定要保存文件,并运行程序检测运行结果是否符合题目要求。在考完交卷前先关闭掉C语言编程软件和其他打开的文件,再交卷,确保交卷过程中不出错误。

TAGS:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;
3.作者投稿可能会经我们编辑修改或补充。

搜索
排行榜
标签列表