南邮 面向对象程序设计及C++ 期末试卷A

合集下载

面向对象程序设计C++期末试卷及标准答案A

面向对象程序设计C++期末试卷及标准答案A

《面向对象程序设计C++》期末考试试卷(A)班级::学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是(C )。

A.面向对象的程序设计语言B.面向过程的程序设计语言C.既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D.非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括(D )。

A.封装性B.多态性C.继承性D.功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。

A.Microsoft Visual Studio 6.0!B.MicrosoftC.Microsoft VisualD.Microsoft Visual Studio 6.0下面函数调用中,不合法的是( C )。

A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,(A )是正确的。

已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)。

《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是(C).A。

面向对象的程序设计语言B.面向过程的程序设计语言C。

既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D。

非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D)。

A.封装性B.多态性C.继承性D.功能分解,逐步求精3、若定义:string str;当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B)。

A。

Microsoft Visual Studio 6。

0! B.MicrosoftC。

MicrosoftVisualD.Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(inta,int b=7,char z='*'); 下面函数调用中,不合法的是( C )。

A。

testDefaulParam(5); B。

testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');5、下列语句中,将函数intsum(int x, int y)正确重载的是( C )。

A。

floatsum(int x, int y); B. int sum(int a, intb);C.floatsum(float x,float y); D。

double sum(int y, int x);6、下列表示引用的方法中,(A )是正确的。

已知:int a=1000;A。

int &x=a; B。

char &y;C。

2022年南京邮电大学公共课《C语言》科目期末试卷A(有答案)

2022年南京邮电大学公共课《C语言》科目期末试卷A(有答案)

2022年南京邮电大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int a=-1;a=a|0377;printf("%d,%o\n",a,a);以上程序段的输出结果是_______。

2、C语言的源程序必须通过【】和【】后,才能被计算机执行。

3、结构化程序由________、________ 、________ 3种基本结构组成。

4、C语言中的标识符可分为关键字、_______和_______3类。

5、若采用十进制数的表示形式,则077为_______,0111为_______,0xab为_______。

6、设main函数的说明为:int main(int argc,char*argv[]),且有命令行为:FILE1123<回车>,则argc的值是_______,argv[1]的值是_______。

7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。

函数中错误的部分是_______,改正后为_______。

void add(float a,float b){float c;c=a+b;return c;}8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。

例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。

请填空。

_______;a=b;b=c;_______;9、设有如下结构体说明:struct ST{int a;float b;struct ST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。

_______10、下面程序段的运行结果是_______。

char ch[]="600";int a,s=0;for(a=0;ch[a]>= '0'&&ch[a]<='9';a++)s=10*s+ch[a]-'o';printf("%d",s);二、选择题11、在C语言中,char型数据在内存中的存储形式是()。

南邮面向对象程序设计及期末试卷

南邮面向对象程序设计及期末试卷

南京邮电大学 学年第 二 学期《面向对象程序设计及C++》(期末)试卷1院(系) 班级 学号 姓名 (★温馨提醒:① 这是试题纸,教师不批改,请将所有最终答案写在答题纸上 ② 请在试题纸和答题纸上均完整填写班级、学号、姓名信息 ③ 考试结束时请将答题纸、试题纸及草稿纸一并交来一、填空题(共10分,每空1分)1、开发C++程序与开发其他高级语言的程序一样,包括编辑、编译、 ① 和② 四个步骤。

2、C++语言中的标准输出流对象是 ③ ,在程序中用于代表标准输出设备。

3、对于已存在的定义“int *ptr=new int [10] ;”,应该用 ④ 语句释放动态内存空间。

4、C++语言提供了处理异常的有效机制,通过 ⑤ 抛出异常,通过 ⑥ 检测异常、通过catch 捕捉并处理异常。

5、类的成员有3种访问属性,其默认的访问属性为 ⑦ ;访问属性为___⑧ 的成员既可被派生类继承又保持了封装和信息隐藏性。

(请填关键字)6、C++支持两种多态性,其中函数重载和运算符重载用于实现 ⑨ ,而虚函数用于实现 ⑩ 。

二、单选题(共20分,每题2分)1、假设已有定义:const char *name="chen";下面语句中错误的是 。

A 、name[3]= 'a'; B 、name="lin"; C 、name=new char[5]; D 、cout<<name[3];2、设有语句void f(int a[10],int &x); int y[10],*py=y,n=10;则对函数f 的正确调用语句是 。

A 、f(py[10],n);B 、f(py,n);C 、f(*py,&n);D 、f(py,10); 3、下列不正确的重载函数是 。

A 、int print(int X); 和 void print(float X);B 、int disp(int X); 和 char disp(int Y) const;C 、void disp(char * str,int Y);和 int disp(char * s,int X);D 、int view(int X , int y); 和 int view(int X);装 订 线 内不 要 答 题自觉 遵 守考 试 规 则,诚 信 考 试,绝 不 作 弊4、有关this指针的描述中,错误的是。

南邮面向对象程序设计及C期末试卷A

南邮面向对象程序设计及C期末试卷A

南邮⾯向对象程序设计及C期末试卷A南京邮电⼤学学年第⼆学期《⾯向对象程序设计及C++》(期末)试卷1院(系) 班级学号姓名(★温馨提醒:①这是试题纸,教师不批改,请将所有最终答案写在答题纸上②请在试题纸和答题纸上均完整填写班级、学号、姓名信息③考试结束时请将答题纸、试题纸及草稿纸⼀并交来⼀、填空题(共10分,每空1分)1、开发C++程序与开发其他⾼级语⾔的程序⼀样,包括编辑、编译、①和②四个步骤。

2、C++语⾔中的标准输出流对象是③,在程序中⽤于代表标准输出设备。

3、对于已存在的定义“int *ptr=new int [10] ;”,应该⽤④语句释放动态内存空间。

4、C++语⾔提供了处理异常的有效机制,通过⑤抛出异常,通过⑥检测异常、通过catch 捕捉并处理异常。

5、类的成员有3种访问属性,其默认的访问属性为⑦;访问属性为___⑧的成员既可被派⽣类继承⼜保持了封装和信息隐藏性。

(请填关键字)6、C++⽀持两种多态性,其中函数重载和运算符重载⽤于实现⑨,⽽虚函数⽤于实现⑩。

⼆、单选题(共20分,每题2分)1、假设已有定义:const char *name="chen";下⾯语句中错误的是。

A 、name[3]= 'a'; B 、name="lin"; C 、name=newchar[5]; D 、cout<2、设有语句void f(int a[10],int &x); int y[10],*py=y,n=10;则对函数f 的正确调⽤语句是。

A 、f(py[10],n);B 、f(py,n);C 、f(*py,&n);D 、f(py,10); 3、下列不正确的重载函数是。

A 、int print(int X); 和 void print(float X); B 、int disp(int X); 和 char disp(int Y) const;C 、void disp(char * str,int Y);和 int disp(char * s,int X);D 、int view(int X , int y); 和 int view(int X);装订线内不要答题⾃觉遵守考试规则,诚信考试,绝不作弊4、有关this指针的描述中,错误的是。

《面向对象程序设计C》期末试卷及标准答案A

《面向对象程序设计C》期末试卷及标准答案A

《面向对象程序设计C++ 》期末考试一试卷( A )班级:姓名:学号:分数:题号一二三四总分得分试卷说明:本套试题共四个大题,所有题目都答在答题纸上,写在其余地方均无效。

(答题纸在本套试卷的第10 页上)一、选择题(每题 2 分,共 40 分)1、C++是( C )。

A.面向对象的程序设计语言B.面向过程的程序设计语言C.既支持面向对象的程序设计又支持面向过程的程序设计的混杂型语言D.非构造化的程序设计语言2、面向对象程序设计思想的主要特色中不包含(D)。

A. 封装性B.多态性C.继承性D.功能分解,逐渐求精3、若定义:string str;当语句 cin>>str;履行时,从键盘输入:Microsoft Visual Studio !所得的结果是str=(B)。

A. Microsoft Visual Studio !C. Microsoft VisualB. MicrosoftD. Microsoft Visual Studio4、考虑下边的函数原型申明:void testDefaulParam(int a,int b=7,char z='*');下边函数调用中,不合法的是(A. testDefaulParam(5);C. testDefaulParam(5,'#');C)。

B. testDefaulParam(5,8); D. testDefaulParam(0,0,'*');5、以下语句中,将函数 int sum(int x, int y)正确重载的是(C)。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、以下表示引用的方法中,(A)是正确的。

已知: int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求经过函数来实现一种不太复杂的功能,而且要求加速履行速度,采纳(A)。

《面向对象程序的设计C++》期末试卷与标准答案(A)

《面向对象程序的设计C++》期末试卷与标准答案(A)

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是(C)。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D )。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是(C )。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,(A )是正确的。

已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A )。

南京邮电大学《C语言程序设计》2023-2024学年第一学期期末试卷

南京邮电大学《C语言程序设计》2023-2024学年第一学期期末试卷

南京邮电大学《C语言程序设计》2023-2024学年第一学期期末试卷《C语言程序设计》考试内容:《C语言程序设计》;考试时间:120分钟;满分:100分;姓名:——;班级:——;学号:——一、选择题(每题2分,共20分)1. 下列哪个选项是C语言合法的标识符?A. `2number`B. `_var`C. `int`D. `if`2. 下列关于C语言数据类型的说法中,哪个是错误的?A. `char` 类型用于存储单个字符。

B. `float` 和`double` 都是浮点型数据类型,但`double` 的精度高于 `float`。

C. `void` 类型用于表示无类型,不能用于声明变量。

D. `int` 类型的变量占用4个字节的内存空间(注:此选项可能因编译器和平台而异,但在此上下文中作为示例)。

3. 下列哪个语句能够正确地从标准输入读取一个整数并存储在变量`num`中?A. `scanf("%f", &num);`B. `scanf("%d", num);`C. `printf("%d", &num);`D. `scanf("%d", &num);`4. 下列哪个循环结构在条件表达式为真时至少执行一次循环体?A. `for` 循环B. `while` 循环C. `do-while` 循环D. 以上都是,取决于条件表达式5. 假设有数组定义`int arr[5] = {1, 2, 3, 4, 5};`,则`arr[2]`的值是?A. 1B. 2C. 3D. 46. 在C语言中,关于函数返回值的说法错误的是?A. 函数可以没有返回值,此时返回类型应为`void`。

B. 函数只能返回一个值,且该值的类型必须与函数声明的返回类型一致。

C. 函数返回的值可以通过赋值语句赋给另一个变量。

D. 函数返回的值类型必须是`int`。

《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是( C)。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D )。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio !所得的结果是str=( B )。

A. Microsoft Visual Studio !B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio4、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,( A )是正确的。

已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A )。

南京邮电大学C语言期末试卷及答案

南京邮电大学C语言期末试卷及答案

模拟试卷A一、单选题1、C语言中运算对象一定不能是double类型的运算符是___ 。

A、%=B、/C、=D、<=2、能正确表达数学逻辑关系"0<a<1或0<b<1"的c语言表达式是___。

A、(0<a)&&(a<1)||(0<b)&&(b<1)B、((0<a)||(a<1))&&((0<b)||(b<1))C、(0<a<1)&&(0<b<1)D、(0<a<1)||(0<b<1)3、设有以下变量均为int类型,则值不等于7的表达式是___。

A、(x=y=6,x+y,x+1)B、(x=y=6,x+y,y+1)C、(x=6,x+1,y=6,x+y)D、(y=6,y+1,x=y,x+1)4、下列while循环体中printf语句将执行___。

int i= 3;while(--i) printf("%d", i);A、3次B、2次C、0次D、无限次5、有语句定义:int i, j; 则以下程序段中printf的执行次数是___。

for (i=3; i; i--)for (j=0;j<2;j++) { printf("%d",i*j); }A、9B、4C、0D、66、int a,b,c; 语句if(a>b) c=0; else c=1; 等价于___。

A、c=(a>b)?1:0;B、c=a>b;C、c=a<=b;D、以上均不是7、有如下定义语句:int a, b=5, *p=&a; 则能完成a=b赋值功能的语句是___。

A、a=*p;B、*p=*&b;C、a=&b;D、*p =&*p;8、设int *ptr, x, array[5]={5,4,3,2,1}; ptr=array; 能使x的值为3的语句是___。

面向对象程序设计》期末试卷及标准答案

面向对象程序设计》期末试卷及标准答案

《面向对象程序设计C++》期末考试一试卷(A)班级:姓名:学号:分数:题号一二三四总分得分试卷说明:本套试题共四个大题,所有题目都答在答题纸上,写在其余地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每题2分,共40分)1、C++是(C )。

面向对象的程序设计语言面向过程的程序设计语言既支持面向对象的程序设计又支持面向过程的程序设计的混淆型语言非结构化的程序设计语言2、面向对象程序设计思想的主要特点中不包含( D )。

A.封装性B.多态性C.继承性D.功能分解,逐渐求精3、若定义:stringst r;当语句cin>>str;履行时,从键盘输入:MicrosoftVisualStudio6.0!所得的结果是str=(B)。

A.MicrosoftVisualStudio6.0!B.MicrosoftC.MicrosoftVisualD.MicrosoftVisualStudio6.04、考虑下边的函数原型申明:voidtestDefaulParam(inta,intb=7,charz='* ');下边函数调用中,不合法的是(C )。

A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');5、以下语句中,将函数intsum(intx,inty)正确重载的是( C )。

A.floatsum(intx,inty);B.intsum(inta,intb);C.floatsum(floatx,floaty);D.doublesum(inty,intx);6、以下表示引用的方法中,(A)是正确的。

已知:inta=1000;A.int&x=a; B.char&y; C.int&z=1000; D.float &t=&a;7、在一个函数中,要求经过函数来实现一种不太复杂的功能,而且要求加快履行速度,采纳(A )。

《面向对象程序设计C++》期末试卷(A)标准答案

《面向对象程序设计C++》期末试卷(A)标准答案

《面向对象程序设计C++》期末考试试卷(A)标准答案班级:姓名:学号:分数:一、单项选择题(每小题2分,共40分)1-5.C D B C C6-10.A A D D B11-15.A B B B C16-20.D C B C C二、填空题(前14个空,每空1分,后3个空,每空2分,共20分)1.抽象实例 2. this指针3. E D、F A、B、C、D、E D、F 4. virtual 5.静态多态性动态多态性6. 抽象类7. friend void fun(A &a)8. 继承组合或模板9. 在对象被系统释放之前做一些内存清理工作10. A(const A&) 11. A operator++(int)三、阅读程序(13分)1、a=89,b=56,c=122、ABC3、A::A() called.B::B() called.B::~B() called.A::~A() called.4、Call B's function f()Call B's function g()Call C's function g()四、编程题(共27分)1、(10分)Complex::Complex(){real=0;imag=0;}Complex::Complex(double r){real=r;}Complex::Complex(double r,double i){real=r;imag=i;} Complex operator+(Complex &c1,Complex &c2){ Complex c;c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag;return c;}ostream& operator << (ostream& output,Complex& c){ output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;return output;}istream& operator >> (istream& input,Complex& c){ cout<<"input real and imaginary part of complex number:";input>>c.real>>c.imag;return input;}2、(17分)class Circle:public Shape{public:Circle(double r){radius=r;}void set(){ cout<<"Please input the value of the circle:"<<endl;cin>>radius;}void show(){ cout<<"the radius of the circle="<<radius<<endl; } double area() {return 3.14159*radius*radius;} private:double radius;};class Square:public Shape{public:Square(double a){this->a=a;}void set(){ cout<<"Please input the value of a:"<<endl;cin>>a;}void show(){ cout<<"a="<<a<<endl; }double area(){return a*a;}private:double a;};int main(){Circle C(5.5);C.show();Square S(9.9);S.show();Shape *s[]={&C,&S};cout<<"total="<<total(s,2)<<endl;return 0;}。

《面向对象程序设计C++》期末试卷及标准答案A

《面向对象程序设计C++》期末试卷及标准答案A

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是(C )。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D )。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,( A )是正确的。

计本03《面向对象程序设计》期末试卷[A卷].docx

计本03《面向对象程序设计》期末试卷[A卷].docx

计本03级《面向对象程序设计》期末试卷[A卷]一、判断题,正确的打丁,错误的打X (每小int NSum (int n) //递归函数NSum (n)求题1分,共计10分)1+2+…+n的和。

1、C语言与C++语言的最大区别是:C语言程{ if (n<=0) A ;序是以・C作后缀的,而C++语言程序是以.CPP else return n+ B ;作后缀的。

}2、在C卄语言中,字符串在内存中存放时,最void main()后是以ASCTT值为0的字符作为结尾标识的。

{3、在C++语言中,语句^include “filel.h”int i, n, sum;//结果存放在sum 中Q和语句^include <filel. h>是等价的。

cout<<z/Please in put n: “;4、C++中标识符内的大小写字母是没有区别的。

cin >>n;5、所有的MFC应用程序都必须有一个且只有一i f (n>Max\um) n = MaxNum;个CWinApp对象。

c ;6、当将一个类A定义为另一个类B的友元类时,for (i=l; D ;i++)sum = E •类A的所有成员函数都可以直接访问类B的所cout << ,z Tnp ut n 二,Result =有成员。

,z<<sum<<endl ;7、在C++中用new分配的内存空间,在不需要}时一般用free将该空间释放。

四、阅读下面的程序,写出程序运行的结果(共8>Visual C++集成开发环境中,一个Workspace 26分)中可以创建多个Projecto 程序1、(6分)9、在基类中被说明为虚函数的类的成员函数必#include<iostream. h>须在每个派生类中说明为虚函数,才能具有多void main()态的特征。

{10、语句“int (*p) (int x, int y); ” 说明了int a, b;P是一个指向整数的指针。

《面向对象程序设计C》期末试卷及标准答案

《面向对象程序设计C》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。

(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是( C )。

A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D )。

A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。

A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。

A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。

A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,( A )是正确的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京邮电大学 学年第 二 学期《面向对象程序设计及C++》(期末)试卷1院(系) 班级 学号 姓名 (★温馨提醒:① 这是试题纸,教师不批改,请将所有最终答案写在答题纸上 ② 请在试题纸和答题纸上均完整填写班级、学号、姓名信息 ③ 考试结束时请将答题纸、试题纸及草稿纸一并交来 谢谢合作!祝同学们取得好成绩!)一、填空题(共10分,每空1分)1、开发C++程序与开发其他高级语言的程序一样,包括编辑、编译、 ① 和 ② 四个步骤。

2、C++语言中的标准输出流对象是 ③ ,在程序中用于代表标准输出设备。

3、对于已存在的定义“int *ptr=new int [10] ;”,应该用 ④ 语句释放动态内存空间。

4、C++语言提供了处理异常的有效机制,通过 ⑤ 抛出异常,通过 ⑥ 检测异常、通过catch 捕捉并处理异常。

5、类的成员有3种访问属性,其默认的访问属性为 ⑦ ;访问属性为___⑧ 的成员既可被派生类继承又保持了封装和信息隐藏性。

(请填关键字)6、C++支持两种多态性,其中函数重载和运算符重载用于实现 ⑨ ,而虚函数用于实现 ⑩ 。

二、单选题(共20分,每题2分)1、假设已有定义:const char *name="chen";下面语句中错误的是 。

A 、name[3]= 'a'; B 、name="lin"; C 、name=new char[5]; D 、cout<<name[3];2、设有语句void f(int a[10],int &x);装 订线 内 不 要 答 题 自觉 遵 守考 试 规 则,诚 信 考 试,绝 不 作 弊int y[10],*py=y,n=10;则对函数f的正确调用语句是。

A、f(py[10],n);B、f(py,n);C、f(*py,&n);D、f(py,10);3、下列不正确的重载函数是。

A、int print(int X); 和 void print(float X);B、int disp(int X); 和 char disp(int Y) const;C、void disp(char * str,int Y);和 int disp(char * s,int X);D、int view(int X , int y); 和 int view(int X);4、有关this指针的描述中,错误的是。

A、this指针可以在程序中显式使用B、this指针是在使用对象时由系统自动生成C、this指针是指向当前对象的指针D、this指针是指向成员函数的指针5、关于成员函数特征的下列描述中,是错误的。

A、成员函数一定是内联函数B、成员函数可以重载C、成员函数可以设置缺省参数值D、成员函数可以是静态的6、以下关于构造函数的叙述不正确的是。

A、构造函数名必须和类名一致B、构造函数在定义对象时自动执行C、构造函数无任何函数类型D、一个类的构造函数有且仅有一个7、下列哪一项不能访问基类的保护成员。

A、基类的友元函数B、派生类的对象C、基类的成员函数D、公有派生类的成员函数8、下面有关基类与公有派生类的赋值兼容原则,正确的是。

A、公有派生类对象不能赋给基类对象B、基类对象能赋给其公有派生类的引用C、基类对象不能赋给公有派生类对象D、公有派生类对象地址不能赋给基类指针变量9、______是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。

A、虚析构函数B、虚构造函数C、纯虚函数D、静态成员函数10、假定要对类AB以友元函数形式重载加号运算符,实现两个AB类对象的加法,并返回相加结果,则该函数的声明语句为:。

A、friend AB operator+(AB & a , AB & b);B、friend operator+(AB a) ;C、friend AB operator+(AB & a) ;D、friend AB & operator+( );三、读程题(共30分,每空2分)1、以下程序运行后的输出结果第一行是 (1) ,第二行是 (2) 。

#include <iostream>using namespace std;int i=0;void main(){ int i=5;cout<<i<<endl;::i=i*20;cout<<::i<<endl;}2、以下程序运行后的输出结果第一行是 (3) ,第二行是 (4) ,第三行是 (5) 。

#include<iostream>using namespace std;class base{int n;public:base(int i) { n=i; }int getn( ) {return n;}friend int add(base &s1,base s2);};int add(base &s1,base s2){int result= s1.n+s2.n;int t=s1.n; s1.n=s2.n; s2.n=t;return result;}void main( ){base A(29),B(11);cout<<add(A,B) <<endl;cout<<A.getn()<<endl;cout<<B.getn()<<endl;}3、以下程序运行后的输出结果第一行是 (6) ,第二行是 __(7)_ 。

#include <iostream>using namespace std;template<class T>T fun(T x[],int n){int i;T value=x[0];for (i=1;i<n;i++)if (value<x[i])value=x[i];return value;}void main(){ int arrayA[]={5,8,2,9,1,7};double arrayB[]={3.8,5.8,2.7,9.4,1.6};cout<<fun(arrayA,6)<<endl;cout<<fun(arrayB,5)<<endl;}4、以下程序运行后的输出结果第一行是 (8) ,第二行是 (9) 。

#include <iostream>using namespace std;class base{public:virtual void fun(void){ cout<<"base::fun"<<endl;}};class divide:public base装订线内不要答题自觉遵守考试规则,诚信考试,绝不作弊{public:void fun(void){ cout<<"divide::fun"<<endl;} };void main(void) { divide d; base b1; base & b2=d; b2.fun(); b1.fun(); }5、以下程序运行后有多行输出结果,其中第一行是 (10) ,第二行是 (11) 第三行是 (12) ,第四行是 (13) 。

#include<iostream> using namespace std; class A {int n; public: A( ){ cout<<"constructing A"<<endl; } ~A( ){ cout<<"destructing A"<<endl; } };class B:public A {int n; A a; public: B( ){ cout<<"constructing B"<<endl; } ~B( ){ cout<<"destructing B"<<endl; } };void main( ) { B b; }装 订 线 内 不 要 答 题自觉 遵 守 考 试 规 则,诚 信 考 试,绝 不 作 弊6、以下程序运行后的输出结果第一行是(14) ,第二行是(15) 。

#include<iostream>using namespace std;const double PI=3.14159;class Shape //定义抽象基类 Shape{public:virtual void display( ) =0; //声明纯虚函数};class Rectangle:public Shape //定义派生矩形类Rectangle{public:Rectangle(double h,double w):hight(h),width(w) { }void display( ) //纯虚函数的实现代码 { cout<<hight*width<<endl;}private:double hight,width;};class Circle:public Shape //定义派生圆类Circle{public:Circle(double r):radius(r){ }void display( ) //纯虚函数的实现代码{ cout<<PI*radius*radius<<endl;}private:double radius;};void main( ){Shape *ptr[2]; //定义抽象类的指针数组ptr[0]=new Rectangle(15, 2); //创建Rectangle类的对象ptr[1]=new Circle(1); //创建Circle类的对象 ptr[0]->display( ); //调用Rectangle类的display函数ptr[1]->display( ); //调用Circle类的display函数delete []ptr[0];delete ptr[1];}四、程序填空题(共10分,每空2分)当前文件夹下存在文本文件f1.txt,现将该文件打开并将该文件内容原样复制到同一文件夹下新的文本文件f2.txt中,请完善程序:#include <iostream>#include < ① >using namespace std;void main(){ ② ifile("f1.txt");if(!ifile){ cout<<"abc.txt cannot be openned!"<<endl;return;}③ ofile("f2.txt");if(!ofile){ cout<<"xyz.txt cannot be openned!"<<endl;return;}char ch;while( ④ )⑤ifile.close( );ofile.close();}五、编程题1(共15分)定义学生类Student,该类包括私有数据成员char *name ,int age,分别表示学生的姓名和年龄。

相关文档
最新文档