
《C+语言程序授计》模拟试愿二 一、其空题 1、在C+每个程序行的后面或单独一行的开始使用注释的标记符为 2、执行“typedef int DataType:”哥句后,在使用int定文整型变量的地方都可以使用 来定义整型变量. 3、假定一个二维数组的定文为“car[][N]:”,则该数组所占存储空间的字节数为 4、str即函数用于进行两个字符串之何的 5、若“doah1ex=l00:”是文件f1.cpe中的一个全局变量定义语句,若文件f2cpp中的某 个函数需要访问此x,则应在文件2Cp中添加对x的声明语句为 6、调用系统函数时,要先使用:include命令包含该系统函数的原型语句所在的 文作, 7、假定D所指对象的值为25,叶1所指对象的值为46,则执行“(和)+:”语句后,D所指 对象的值为一· 8、假定a是一个一维数组,则a[]对应的存储地址(以字节为单位)为 (char*)at 9、假定一个二维数组为a][).则ai][j】对应的存储地址(以字节为单位)为(char)a+ *sizeof(a[i][j]). 10,对一个类中的数据成黄的初始亿可以通过构造函数中的门始化表实现,也可以通过构造 函数中的 实现。 11、在一个深生类中。对基类成员、类对象成员和非类对象成员的初始化的过程中,对 成员的初始化是在其余两者之间进行的。 12、当鞭酒一个含有基类和类对象成员的派生类对象时,将首先完成 的析构函 数定义体的执行。 13、假定用户设有给一个名为B的类定义析构函数,则系统为其隐含定文的析构函数为 14、C+支持两种多态性,编译时的多态性和 时的多老性。 15、若采用一>a动心(y)表达式调用一个成员函数,在成员函数中使用的 就代表了类 外的p指针
《C++语言程序设计》模拟试题二 一、 填空题 1、在 C++每个程序行的后面或单独一行的开始使用注释的标记符为__________。 2、执行“typedef int DataType;”语句后,在使用 int 定义整型变量的地方都可以使用 __________来定义整型变量。 3、假定一个二维数组的定义为“char a[M][N];”,则该数组所占存储空间的字节数为 ________。 4、strcmp 函数用于进行两个字符串之间的________。 5、若“double x=100;”是文件 f1.cpp 中的一个全局变量定义语句,若文件 f2.cpp 中的某 个函数需要访问此 x , 则应在文件 f2.cpp 中添加对 x 的声明语句为_________________。 6、调用系统函数时,要先使用#include 命令包含该系统函数的原型语句所在的__________ 文件。 7、假定 p 所指对象的值为 25,p+1 所指对象的值为 46,则执行“(*p)++;”语句后,p 所指 对象的值为________。 8、假定 a 是一个一维数组,则 a[i]对应的存储地址(以字节为单位)为 (char*)a+____________。 9、假定一个二维数组为 a[M][N],则 a[i][j]对应的存储地址(以字节为单位)为(char*)a+ ______________ *sizeof(a[i][j])。 10、对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造 函数中的____________实现。 11、在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化的过程中,对 ____________成员的初始化是在其余两者之间进行的。 12、当撤消一个含有基类和类对象成员的派生类对象时,将首先完成____________的析构函 数定义体的执行。 13、假定用户没有给一个名为 AB 的类定义析构函数,则系统为其隐含定义的析构函数为 ____________。 14、C++支持两种多态性:编译时的多态性和__________时的多态性。 15、若采用 p->abc(y)表达式调用一个成员函数,在成员函数中使用的________就代表了类 外的 p 指针

16、假定B为一个类。该类中含有一个指向动态数组空间的指针成员阳,则在该类的析构 函数中应该包含有一条 语句, 17、一个单目运算符作为类的成员函数重载时有 个参数。 18、一个双单目运算符作为鞋立函数重我时有 个参数。 二、单选愿 19、每个C+程序文件的编译错误分为()类。 AI B.2 C.3 D.4 20、设x和y均为bool量,期x川y为假的条件是0, A它们均为真 B.其中一个为真 C它们均为假 D.其中一个为假 21、字符串“abl2”的长度为()。 A6B.7 C.8 0.9 2、在下列的常值常量定文中,情误的定义语句是()。 A const 10 且.const int20: C.const char ch D.const bool mark=true: 23、枚举类吸中的每个枚举常量的值都是一个《)。 A整数 B,浮点数 C字符 D逻辑值 24、声明或定义一个内暖函数时,必须在函数开始使用保留字()· A.static B.const C.inline D.extern 25、下而正确的函数原型语句是《), A.int Function(void a) B.void Function (int) C.int Function(a) D.void int(double a) 器、若用数组名作为函数调用的实参,传递给形参的是()。 人数组的首地址 且数组中第一个元素的值 C数组全部元素的值 D数组元素的个数 27、假定一条定义语句为“1nta[10],x,m=a:”,若要把数组a中下标为3的元素值赋 给,则不正确的语句为()。 A.x=pa[3]: 且.x-◆a+3) Cn[3: 几.x=邦t+3:
16、假定 AB 为一个类,该类中含有一个指向动态数组空间的指针成员 pa,则在该类的析构 函数中应该包含有一条______________语句。 17、一个单目运算符作为类的成员函数重载时有________个参数。 18、一个双单目运算符作为独立函数重载时有________个参数。 二、 单选题 19、每个 C++程序文件的编译错误分为()类。 A.1 B.2 C.3 D.4 20、设 x 和 y 均为 bool 量,则 x || y 为假的条件是()。 A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假 21、字符串“a+b=12 ”的长度为()。 A.6 B.7 C.8 D.9 22、在下列的常值常量定义中,错误的定义语句是( )。 A.const M=10 B.const int M=20; C.const char ch D.const bool mark=true; 23、枚举类型中的每个枚举常量的值都是一个()。 A.整数 B.浮点数 C.字符 D.逻辑值 24、声明或定义一个内联函数时,必须在函数开始使用保留字()。 A.static B.const C.inline D.extern 25、下面正确的函数原型语句是()。 A.int Function(void a) B.void Function (int) C.int Function(a) D.void int(double a) 26、若用数组名作为函数调用的实参,传递给形参的是()。 A.数组的首地址 B.数组中第一个元素的值 C.数组全部元素的值 D.数组元素的个数 27、假定一条定义语句为“int a[10], x, *pa=a;”,若要把数组 a 中下标为 3 的元素值赋 给 x,则不正确的语句为()。 A.x=pa[3]; B.x=*(a+3) C.x=a[3]; D.x=*pa+3;

28、当使用ofstreaa流类定文一个流对象并打开一个磁盘文件时,文作的隐含打开方式为 0. A.ios::in B.fos::out C.ios::in ios::out D.ios::binary 三、露行结果 29. 年include(iostrean.h> roid main() int=10,=1: hile(n一)y+:y+:》 ccut("y-"(y(《endl; 第「29】题参考答案: -21 30. ¥include #include void main) int i.n: forn=2:n=20:n+) int temp-int(sqrt(n》:/求出n的平方根并取整 for(i=2:itemp)cout<《n(c"“: cout”“: 第「30小题参考答案: 235711131719
28、当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ()。 A.ios::in B.ios::out C.ios::in | ios::out D.ios::binary 三、运行结果 29、 #include void main() { int n=10,y=1; while(n--) {y++;y++;} cout #include void main() { int i,n; for(n=2; ntemp) cout<<n<<" "; } cout<<" "; } 第『30』题参考答案: 2 3 5 7 11 13 17 19

31. Wincludeciostream.h void SB(char ch)! switch(ch){ case "A":case "a": coucc"welll",break. ease "B":case "b": G减sgoo"bek case "C":case 'c". cout struct Worker【 hunI5/姓名 ige∥年龄 float pay工货 锅 void maind)
31、 #include void SB(char ch) { switch(ch) { case "A": case "a": cout #include struct Worker { char name[15];//姓名 int age;//年龄 float pay;//工资 }; void main() {

Worker x chw1="liouing°: imd38.l0mf仁493. strepy(x.name.t). x.age-d.x.pay=f. cout #include struct Worker har nam15/姓名 int age,∥年龄 nepy:H工贤 bool operator-(Worker&rl,Worker&r2)! if(stremp(r1.rame.r2.name--0) return true; else return false, void maind)! Worker a4-"abc'25,4201,defr,58.6381, {hi°.49.5601.{jk363751 Worker x="ghi": forl int i-0;i4.i++) if(ali]=x)break. cout<cali]name<<""<cali]age<<"*<cali].paryccendl
Worker x; char *t="liouting"; int d=38; float f=493; strcpy(x.name,t); x.age=d; x.pay=f; cout #include struct Worker { char name[15];//姓名 int age;//年龄 float pay;//工资 }; bool operator==(Worker& r1, Worker& r2) { if(strcmp(r1.name, r2.name)==0) return true; else return false; } void main() { Worker a[4]={{"abc",25,420},{"def",58,638}, {"ghi",49,560},{"jkl",36,375}}; Worker x={"ghi"}; for(int i=0; i<4; i++) if(a[i]==x) break; cout<<a[i].name<<" "<<a[i].age<<" "<<a[i].pay<<endl;

第「33引题参考答案: i49560 四、函数功能 34. int fun6(int m.int n.int b=2) if mcb&nalil.age>ali].pay. 假定结构类型Wckr的定文如下: struct Worker【 char namel15]:姓名 imt年龄 a磁p吗工资 第「35)题参考答案: 从键盘输入n个WCk:类型的记录到一维数组a中。 36. void QB(StrNode&f,int n) if n=0){f=NULL:retum.!
} 第『33』题参考答案: ghi 49 560 四、函数功能 34、 int fun6(int m, int n, int b=2) { if(m>a[i].name>>a[i].age>>a[i].pay; } 假定结构类型 Worker 的定义如下: struct Worker { char name[15];//姓名 int age;//年龄 float pay;//工资 }; 第『35』题参考答案: 从键盘输入 n 个 Worker 类型的记录到一维数组 a 中。 36、 void QB(StrNode*& f, int n) { if(n==0) {f=NULL; return;}

f-new StrNode cinofname, StrNode+p-f. whild(-n) p-p->next=new StrNode. cin>p->name, p->next=NULL: 假定错构类型StrNode的定义如下: struct StrNode char namel15]:字符串域 StrNode*net折针域 参考答案: 建立一个具有口个结点的链表,每个结点的字符串值由健盘输入,链表的表头指针由引 用变量带回。 37.#include #includefstream h> oid JC(char'◆fname,i W/可把以fe所指字符串作为文件标识符的文件称为fame文件 ofstream fout(frame,ios::out ios::binary): ntX名 for(int i=0.i<n:++)! cinpox. fout.writel(charx sizeoflx) fout.closc()
f=new StrNode; cin>>f->name; StrNode* p=f; while(--n) { p=p->next=new StrNode; cin>>p->name; } p->next=NULL; } 假定结构类型 StrNode 的定义如下: struct StrNode { char name[15];//字符串域 StrNode *next;//指针域 }; 参考答案: 建立一个具有 n 个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引 用变量 f 带回。 37、 #include #include void JC(char* fname, int n) //可把以 fname 所指字符串作为文件标识符的文件称为 fname 文件 { ofstream fout(fname, ios::out | ios::binary); int x; for(int i=0;i>x; fout.write((char*)&x, sizeof(x)); } fout.close(); }

参考答案 向二进制文作fnme中输出由键盘输入的n个整数, 编程0感分,每思08分 38、,#inelude #include void JD(char*fname) /可把以fnac所指字符串作为文件标识符的文件称为fnane文件, /假定该文件保存着一批整数。 ifstrean fin(fname,ios::in ios:nocreate ios:binary): int x.s=0.n=0: hile(f1n?read(char*)kx,sizeof)》{ st=x:n++: cout(<endl: fin?close0: 参考答案: 从二进制文件中输入所有整数,计算并显示出所有整数的个数、总和与平均值
参考答案: 向二进制文件 fname 中输出由键盘输入的 n 个整数。 编程:08 分,每题 08 分 38、 .#include #include void JD(char* fname) //可把以fname所指字符串作为文件标识符的文件称为fname文件, //假定该文件保存着一批整数。 { ifstream fin(fname, ios::in | ios::nocreate | ios::binary); int x, s=0, n=0; while(fin?read((char*)&x, sizeof(x))) { s+=x; n++; } cout<<<endl; fin?close(); } 参考答案: 从二进制文件中输入所有整数,计算并显示出所有整数的个数、总和与平均值