东南大学非电类C++下学期 上机训练3
- 格式:doc
- 大小:31.00 KB
- 文档页数:2
(完整)东南大学08级C++(下)上机试卷和答案解析编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)东南大学08级C++(下)上机试卷和答案解析)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)东南大学08级C++(下)上机试卷和答案解析的全部内容。
东南大学08级C++(下)上机试卷D和答案解析(考试时间80分钟卷面成绩100分)学号姓名机位号说明:首先在Z盘建立一个以自己的学号命名的文件夹,用于存放上交的*。
CPP文件,考试结束前根据机房要求,将这个文件夹传送到网络服务器上,注意:提交时只保留文件夹中的CPP文件。
一、改错题(50分)【要求】调试程序,修改其中的语法错误及少量逻辑错误。
只能修改、不能增加或删除整条语句,但可增加少量说明语句和编译预处理指令。
【注意】源程序以“学号f1。
cpp”命名,存入自己学号文件夹。
【题目】以下程序实现动态生成数据成员,析构函数用来释放动态分配的内存,复制构造函数和复制赋值操作操作符实现深复制.【含错误的源程序】#include 〈iostream>#include 〈cstring〉using namespace std;class student{char *pName;public:student( );student( char *pname, int len );//错误1student( student &s );~student( );student & operator = ( student &s );} //错误2 student::student( ){cout >> ”Constructor”;//错误3pName = NULL;cout << "默认" << endl;}student::student( char *pname ){cout 〈< "Constructor";pName = new char[strlen(pname)+1];if ( pName ) strcpy( pName, pname );cout 〈〈 pName << endl;}student::student( student s ) //错误4{cout<<"Copy Constructor";if( s。
读书破万卷下笔如有神2008-2009学年C++(下)期末考试模拟试题一、选择题(每题2分,共30分)1. 下列程序段的运行结果是()。
char c[]=”\t\v\\0will\n”;cout<<strlen(c);A. 4B. 3C. 9D. 字符串中含有非法字符,输出结果不确定2. 已知定义类A,该类的构造函数的参数都没有缺省值。
执行语句:A a1(2) ,a2(1,2), *p=new A[3];则自动调用该类缺省的构造函数的次数为()。
A. 1B. 2C. 3D. 53. 下列叙述正确的是()。
A. 虚函数是一个static类型的成员函数B. 虚函数是一个非成员函数C. 包含虚函数的基类为虚基类D. 包含存虚函数的基类为抽象类4. 下列关于赋值兼容性规则的叙述不正确的是()。
A. 派生类的对象可以赋值给基类的对象B. 基类的对象可以赋值给派生类的对象C. 派生类的对象可以初始化基类对象的引用D. 可以将派生类对象的地址赋值给其基类的指针变量5. 设有定义int a[][3]={1,3,5,7,9,11,13,15,17};int *p=a[2];则*(p+1)的值为()。
A. 15B. 7C. 14 B. 66. C++中多态性包括两种:编译时的和运行时的。
运行时多态性是通过( )实现的。
①函数重载②运算符重载③类继承关系④动态链接⑤虚函数A. ①和②B. ③和⑤C. ④和⑤D. ③和④7. 关于动态内存分配,对delete运算符的下列说法中,()是错误的。
A. 应与new运算符配合使用。
B. 可以在类的成员函数中使用。
C. 对同一个指针变量可任意多次使用该运算符。
D. 若a是一个二维数组,则delete []a; 可删除a所占用的存储空间。
8. 设int x; int *p2=&x, *p1=&x; *p1=a; *p2=*b; 则变量a和b的类型分别是()。
东南大学考试卷( A 卷)Array课程名称C++程序设计考试学期05-06-3 得分适用专业非电类考试形式闭卷考试时间长度100分钟一、单项选择题(10分)1、以下关于C++语言中数组的描述正确的是。
(A)数组的大小是固定的,但可以有不同类型的数组元素(B)数组的大小是可变的,但所有数组元素的类型必须相同(C)数组的大小是固定的,所有数组元素的类型必须相同(D)数组的大小是可变的,可以有不同类型的数组元素2、下列关于指针的操作中,错误的是。
(A)两个同类型的指针可以进行比较运算。
(B)可以用一个空指针值赋给某个指针变量。
(C)一个指针可以加上两个整数之差。
(D)两个同类型的指针可以相加。
3. 关于字符串,以下陈述错误的是。
(A)字符型二维数组可以存储多个字符串。
(B)输出一个字符串时,不需要使用循环输出每个字符。
(C)使用库函数strlen求出的串长度包括串结束符。
(D)字符型指针可以在定义时赋予一个字符串常量的存储地址。
4. 若a是n行m列的数组,则元素a[x][y]是数组的第_________个元素。
(A)x*m+y (B)x*m+y+1 (C)x*n+y (D)x*n+y+15.以下不属于构造函数的特点是_______________。
(A) 具有与类名相同的函数名(B) 允许设置返回值(C) 允许重载(D) 在定义类的对象时自动调用6. 关于动态内存分配,对delete运算符的下列说法中,是错误的。
(A)应与new运算符配合使用。
(B)可以在类的成员函数中使用。
(C)对同一个指针变量可任意多次使用该运算符。
(D)若a是一个二维数组,则delete []a; 可删除a所占用的存储空间。
7. 关于运算符重载,下列叙述正确的是_____________。
(A)重载不能改变算术运算符的结合性(B)重载可以改变算术运算符的优先级(C)所有的C++运算符都可以被重载(D)运算符重载用于定义新的运算符8. 下列描述中,正确的是_____________。
东南大学2014学年工科电类/非电类专业一年级 C++期末试卷(A卷)(卷面成绩100分,考试时间120分钟)考试科目:计算机基础与C++程序设计(上)(开卷/闭卷):闭卷学号:姓名:___________一.大学计算机基础部分(共计20分)(一)选择题(共10题,每题1分,共10分)1. 以下不属于程序设计三要素的内容是:。
A. 算法B. 语言C. 环境D. 应用2. 以下描述中,包含了5个典型的计算机硬件结构部分的内容是:。
A.CPU、硬盘、主存B. CPU、存储器、I/O设备C. 存储器、I/O设备、系统总线D. CPU、存储器、系统总线3. 以下不同数制表示的数中最小的数值是:。
A. 二进制11011111B. 十六进制DFC.十进制217D. 八进制3374. 设一个栈的输入元素序列为a1,a2,a3,a4,输入过程中允许出栈,规定每个元素入栈、出栈只能各一次,则所得到的输出元素序列,不可能出现的是。
A. a1,a2,a3,a4B. a4,a3,a2,a1C.a1,a3,a4,a2D. a4,a1,a2,a35.在计算机中表示一个浮点数, 下面说法不正确的是。
A. 尾数反映浮点数的精度,阶反映浮点数后表示范围B. 尾数表示数的有效数字,阶表示数中小数点的位置C. 尾数为二进制定点纯整数,阶为二进制定点纯小数D. 浮点数由尾数和阶两部分组成6.十进制数 -27,用8位二进制数表示的原码和补码为。
A. 11011111、10011011B. 10011011、11100101C. 00011011、00011011D. 10011011、100110117. 微型计算机的内存储器是。
A. 按二进制位编址B. 按字节编址C. 按字长编址D. 根据微处理器型号不同而编址不同8. 根据计算机执行一条指令过程的基本步骤,下面选择正确的是。
① 分析指令② 取下一条指令③ 执行指令④ 取指令⑤ 执行过程结束A. ①②③④⑤B. ①③②⑤C.②③④①D. ④①③②9. 有一个数值152,它与十六进制数6A相等,那么该数值是。
一、选择题:(每题1分,共30分)1.以下程序的输出结果是—A) 1 B) 7 C) 9 D) 11ttincludeOvoid fut (int**s, int p[2][3]){**s=p[ll [1] ; }void main (){static int a[2] [3]=={1, 3, 5, 7, 9, 11};int *p;p=new int;fut (&p, a);cout<<*p<<endl;}2.执行以下程序后,y的值是,B)_A) 17 B) 18 C) 10 D) 20ttincludeOvoid main (){static int a[] = {2, 4, 6, & 10};int y=0, x, *p;p二&a[l];for (x二0;x〈3;x++)y+二* (p+x);cout<<y<<endl;}3.定义一下类:class X {int a ;public: X (int x=0 ) { a二x ; }};class Y: public X {int b;pub lie :Y ( int x=0 , int y=0 ) : X (y){ b = x ;}};在下列选项的说明语句中,存在语法错误的是(C)A. X *pa 二new Y(1 , 2 )B. X al - Y( 1,3 )C. X b2 ( 2 , 3 ) ; Y &a2 = b2 ;D. Y b3 ( 10 ) ; Xa3 ( b3 );4.下列关于虚函数描述中正确的是(B) 。
A.虚函数可以是一个static类型的静态成员B.虚函数可以是一个非静态成员C.虚函数实现静态多态性D.基类中釆用virtual说明一个虚函数后,派生类中定义相同的原型的虚函数时,可不必加virtual说明5.若磁盘上己存在某个文本文件,其全路径文件名为:d:\dir\,下列语句中能以”读文本文件”的方式打开该文件的是(B) °A・辻stream file( "d:\dir\");B.fstream file( "d:\\dir\\” );C・ fstream file (ios::in); ( "d:\dir\");D.ifstream * fi1e=new ifstream( "d:\\dir\\” );6.定义如下变量和数组:int i;int x[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9};则以下语句的输出结果是(C) 。
东南大学考试卷( B 卷)Array课程名称C++程序设计考试学期05-06-3 得分适用专业非电类考试形式闭卷考试时间长度100分钟一、单项选择题(10分)1、若有定义int a[][3]={{4,2},{1,3,5}};则此数组中最大值元素所在的行和列下标分别是____。
(A) 1、1 (B) 1、2 (C) 2、2 (D) 2、12、设有如下定义:int data=32767;int *pd;float *fp;则以下是正确的。
(A)pd=& data (B)*pd=& data(C)fp=(fload) &data; (D)fp=(*fload) &data;3. 设s和t分别为指向两个长度相同的字符数组的指针,则循环语句while( ); 可以正确实现字符串t到s的完整复制功能。
(A)*s=*t &&*t!=0 (B)s++ = t++ && *t!=0(C)*s++ = *t++ (D)*(++s) = *(++t)4. 在用new运算符建立一个三维数组15*30*10时,使用了3个下标运算符“[]”,与之对应,用delete运算符注销这个三维数组时使用了个下标运算符。
(A)1 (B)2 (C)3 (D)05.对于一个C++类,以下描述正确的是。
(A)只能有一个构造函数和一个析构函数(B)可有一个构造函数和多个析构函数(C)可有多个构造函数和一个析构函数(D)可有多个构造函数和多个析构函数6. 拷贝构造函数可用于三个方面,以下哪个方面不能运用拷贝构造函数。
(A)用基类的一个对象去初始化一个派生类的对象。
(B)函数的形参是类的对象。
(C)函数的返回值是类对象。
(D)用类的一个对象去初始化该类的另一个对象。
7. 已知Complex是复数,但下面的函数声明:friend Complex operator+(Complex &c1, Complex &c2);不能用于“实数+复数”,原因是。
百度文库 1东南大学C++程序设计(上)考试卷( A 卷) 课程名称 考试学期 得分 适用专业 电类、非电类 考试形式 闭卷 考试时间长度 100分钟 (一) 选择题(每空2分,共20分) 1. 设有说明“int i=10;float x;”,执行“x=5/i;”后,x 的值为_____ A. 0.5 B. 0 C. D. 以上皆否 2. 在while(!a)中,其中!a 与表达式__________等价。
A. a==0 B. a==1 C. a!=1 D. a!=0 3. 下面的整型常数中错误的是__________。
A. 123 B. 380 C. 038 D. 0xAF 4. 以下__________不能用作标识符 A. B. _1234 C. GetName D. b_tree 5. 设以下变量均为int 类型,则值不等于10的表达式是________。
A .x=y=9,x+y,x+1 B .x=y=9,x+y,y+1 C .x=9,y=1,y=x,x+y D .y=9,y+1,x=y,x+1 6. 若定义函数,int f(int x) {x*=10;return x;} 执行以下语句,int a=3,b;b=f(a) + f(a) 之后a,b 的值是________。
A .3,30 B .30,60 C .300,330 D .3,330 7. 已知int i=0;while(i++!=7); 当while 循环结束后,变量i 的值为________。
A .5B .6C .7D .88. 表达式__________是满足:当c 的值为1、3、5三个数时值为“真”,否则值为“假”的表达式A . (c=1)||(c=3)||(c=5)B . (c!=1)&&(c!=3)&&(c!=5)C . (c==1)&&(c==3)&&(c==5)D . (c==1)||(c==3)||(c==5) 学号姓名密 封 线 自觉 遵 守 考 场 纪 律 如 考 试 作 弊 此 答卷 无 效百度文库9. 对于C++的函数,正确的叙述是__________________A.函数的定义不能嵌套,但函数的调用可以嵌套B.函数的定义可以嵌套,但函数的调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用都能嵌套10. 若定义函数时未指定函数的返回类型,则函数的返回类型为_______________A.void B.int C.double D.编译出错(二)填空题(每空1分,共10分)1.已知小写字母A的ASCII码值是65,则下列语句执行后输出是char c = 66;cout<<c;2. 设y是int型变量,判断y为奇数的关系表达式为_______________。
一、数组处理与文件读写程序(15分)
【要求】
(1)建立两个一维整型数组a[10]和b[10]。
在数组a中存入10个整数:2109,451,254,988,635,679,517,124,813,43,并输出至屏幕。
(2)对数组a进行处理,找出其中的素数,依次存入数组b,并计算素数的个数。
(3)定义一个文件流对象iof,以文本方式打开磁盘文件"fileb.txt"。
要求将数组b中的元素和素数的个数写入文件。
(4)将文件"fileb.txt"中的数据读出,依次输出至屏幕。
【注意】将源程序以文件名MYF1.cpp存入Z盘自己的文件夹中。
文件"fileb.txt"也存入同一个文件夹。
二、汽车管理模拟程序(15分)
【要求】按以下描述和要求建立两个类moto和All :
class moto{ //汽车类
friend class ALL;
private:
int ; //汽车代号
char ; //汽车类型('A'-货车,'B'-客车)
int ; //空闲/使用(0/1)
float ; //载重量/载客人数
public:
moto(){ id=0; type=NULL; flag=0; weight=0;}
void set(int a, char b) //输入一辆汽车数据
{ id=a; type=b;}
void disp() //输出一辆汽车数据
{ cout<<id<<','<<type<<','<<weight<<endl;}
};
class ALL{ //汽车管理类
private:
moto car[12]; //最多管理12辆汽车
int num; //实际存储的汽车数量
public:
ALL(){num=0;} //构造函数
void AddCar(); //添加一辆新汽车,要求输入代号和类型
void list(); //分别打印客车清单和货车清单
void load(char t,float w); //派出车辆,输入车型和上货重量(或上客人数),
//选择一辆空车修改其数据,输出派出车号
};
请完成以上All类中未定义函数体的成员函数,并调试运行。
All类的成员函数AddCar()和list()可以调用moto类的相应成员函数实现其功能。
测试用主函数参考如下:
void main(){
ALL mt;
for(int i=0;i<4;i++) mt.AddCar();
mt.list();
mt.load('A',50);
mt.load('B',40);
mt.load('A',60);
mt.list();
}
【注意】将源程序以文件名MYF2.cpp存入Z盘自己的目录中。
以上的程序注释不必输入。