C++语言程序设计基础考试卷

更新时间:2023-10-10 02:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

考试试卷

2007 -- 2008 学年 2 学期时间100分钟

C++语言程序设计基础课程 64学时3学分考试形式:闭卷 专业年级:总分100分,占总评成绩56 % 注:此页不作答题纸,请将答案写在答题纸上 一、单选题(本题24分,每小题1分)

1. 在面向对象的程序设计C++中,当用cin、cout输入、输出时程序头部要( ) A、#include B、#include C、#include D、#include 2. 类的概念是( )

A、对象的抽象。 B、同一类记录的集合。 C、同一类数据的集合。 D、所有对象的集合。 3. C++源程序文件的扩展名为( )

A、.CPP B、.C C、.DLL D、.EXE

4. 有二维字符数组char s[4][6]={“zhang”,”gao”,”tang”,”wang”},执行程序cout<<*s[2],屏幕上显示________。 A、gao B、tang C、g D、t 5. 编译程序的功能是( )

A、将汇编语言程序转换为目标程序 B、将汇编语言程序转换为高级语言程序 C、将高级语言程序转换为目标程序

D、将高级语言程序转换为汇编语言程序

6. 下面的函数声明中, 哪一个是” void BC(int a, int b);”的重载函数? ( ) A、int BC(int a, int b) B、 void BC(int a, char b) C、float BC(int a, int b, int c = 0) D、 void BC(int a, int b=0)

7. 设a和b为整型变量,执行语句b=(a=2+3,a*4),a+5;后a和b的值为_______。 A、5,10 B、20,25 C、5,25 D、5,20 8. 如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c

9. 在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是( ) A、3 B、2 C、6 D、4

10.已知 char c; char * const pc="asdf",( )是正确的。 A、pc="dfgh" B、*pc=‘b’ C、*pc++=‘y’ D、pc=&c

11.int i=10;执行下列语句后,i的值是_______。 switch(i) { case 9: i+=1; case 10: i+=1;

case 11: i+=1; case 12: i+=1; }

A、10 B、11 C、12 D、13 12. 对于int *pa[5]的描述,()是正确的。

A、pa是一个指向数组的指针,所指向的数组是5个int型元素

B、pa是一个指向某数组中的第5个元素的指针,该元素是int型变量 C、pa[5]表示某个数组的第5个元素的值

D、pa是一个具有5个元素的指针数组,每个元素是一个int型指针 13.设有类型说明:enum color{red,yellow=3,white,black};

则执行语句cout<

cout<

A、0 B、100 C、200 D、300 15. 下列对结构及其变量定义错误的是:( ) A、struct MyStruct{ B、struct MyStruct{ int num; int num; char ch; char ch; }; }my; MyStruct my; C、struct{ D、struct{

int num; int num; char ch; char ch; } };

my; struct my; 16.执行以下程序: #include void main(void)

{char c=0; cout<

17.下列关于指针运算的描述错误的是:() A、在一定条件下,两个指针可以相加

B、在一定条件下,两个指针可以进行关系运算 C、在一定条件下,指针可以为空

D、在一定条件下,两个指针可以相互赋值

18.在C++语言中,对函数参数默认值描述正确的是:( ) A、函数参数的默认值只能设定一个

B、一个函数的参数若有多个,则参数默认值的设定可以不连续

C、函数参数必须设定默认值

D、在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值 19. 关于函数的所有缺省参数的叙述_____正确: A、只能出现在参数表的最左边 B、只能出现在参数表的最右边 C、必须用非缺省的参数隔开 D、都不对 20. 不能作为函数重载判断依据的是:( )

A、参数个数 B、参数类型 C、函数名字 D、返回类型 21. 以下程序的输出结果是:( ) #include

void prt(int *x,int *y,int *z){

cout<<++*x<<\ }

int a=10,c=20,b=40; void main(){

prt(&a,&b,&c); prt(&a,&b,&c); }

A、 11,42,31 B、11,41,20 C、11,21,40 D、11,41,21 12,21,41 12,42,20 11,21,41 12,42,22 22.以下程序的输出结果是:( ) #include void func(char **m){ ++m;

cout<<*m<

void main(){

static char *a[]={\ char **p; p=a; func(p); }

A、字符o的起始地址 B、字符a的起始地址 C、字符o D、afernoon 23.以下程序的输出结果是:( ) #include int fun(char *s){ char *p=s;

while (*p!='\\0') p++; return (p-s); }

void main(){

cout<

A、0 B、1 C、2 D、3

24.在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选

用________合适。 A、内嵌函数 B、重载函数 C、递归调用 D、嵌套调用 二、填空题(本题22分,每空2分)

1.在C语言中,编程的单位是____;在C++语言中,编程的单位是______。 2.对类中的成员函数和属性的访问是通过Public、Private和___protected__这3 个关键字来控制的。

3.一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为___私有__权限,而把成员函数(方法)定义为Public权限。

4.在类定义中,数据和成员函数默认权限是__私有_______。

5.类中的构造函数是一个特殊的成员函数,它由类的对象new调用,它的作用是_____初始化_。

6.在定义类的对象时,C++程序将自动调用该对象的___构造函数___函数初始化对象自身。 7.在撤销类的对象时,C++程序将自动调用该对象的___析构函数___函数。 8.非成员函数应声明为类的__友元函数______才能访问这个类的private成员。 9.在下面程序的横线处填上适当的语句,使该程序执行结果为10。 #include class MyClass {

public:

___________________ //为x置值 int GetNum(){return x;}; //取x值 private: int x; };

void main() {

MyClass my(10);

cout << my.GetNum() << endl; }

三、阅读程序,严格按输出顺序与格式写出程序运行结果(本题30分,每小题6分) 下列程序的输出结果是____(1)_____。 #define MUL(x,y) x*y #include void main(void) { int x=4,y=6; cout<

下面函数的功能是________(2) ________。 sss(char* s,char* t) { while((*s)&&(*t)&&(*t++==*s++)); return; }

[程序]

#include int c=-1;

void f(int* a,int b) { static int c=2; (*a)++; c--; cout<<*a<<'\\t'<

void main(void) { int i; for(i=0;i<=1;i++) f(&i,c); cout<<\}

程序执行后输出的第一行是_____(4)_____; 输出的最后一行是____(5)_____。 [程序]

下面程序的输出结果是_____(6)_____。 #include int funa(int a,int b) { return(a + b); }

int funb(int a,int b) { return(a - b); }

int sub(int(*f)(int ,int),int x,int y) { return ((*f)(x,y)); }

void main(void) { int x,(*p)(int,int); p=funb; x=sub(funa,8,3); x+=sub(p,9,3); cout<<\}

[程序]

下面程序的输出结果是_____(7)_____。 #include

本文来源:https://www.bwwdw.com/article/n7zf.html

Top