
《C+语言程序授计》模拟试题六 一、填空恩 1,执行“c0uty逻辑值为 6、在i汇语句中,每个e1se关健字与它输面同层次并且最接近的 关键字相配套: 7、作为语句标号使用的C+保留字case和default具修用于」 语句的定义体中。 8、用于存储一个长度为的字符串的字符数组的长度至少为 9、重载一个函数的条件是:该函要必须在参量的 或参数的类型上与其它同名函 数有所不同。 10,假定一个二维数组为aM)。则a[1】的地址值(以字节为单位)为(char*)a+ *sizeof(a[O][0]). 11,假定一个结构类型的定义为“struet C{oubles率a[4]:1nt:}:”,则该类型的大小 为 字节。 12、若需要把一个函数”O1dF0:定义为一个类AB的友元函数,则应在类B的定义中 如入一条语句 、 13、把一个类的定义体和所有成员函数的定义体所构成的程序范围叫做该类的 城 14,假定从是一个类,“AA*b0:”是该类中一个成员函数的原型,则在类外定复时的 函数头为 15、若采用)abc(y)表达式调用一个成员函数,在成员函数中使用的 就代表了类 外的D指针。 16、重载运算符时,其原有的 、结合性以及慢作对象的个数不允许改变。 17、作为类的成员函数重载一个运算符时,参数表中只有一个参数,则说明该运算符具有 个操作数
《C++语言程序设计》模拟试题六 一、填空题 1、执行“couty 逻辑值为________。 6、在 if 语句中,每个 else 关键字与它前面同层次并且最接近的________关键字相配套。 7、作为语句标号使用的 C++保留字 case 和 default 只能用于________语句的定义体中。 8、用于存储一个长度为 n 的字符串的字符数组的长度至少为________。 9、重载一个函数的条件是:该函数必须在参数的__________或参数的类型上与其它同名函 数有所不同。 10、假定一个二维数组为 a[M][N],则 a[i]的地址值(以字节为单位)为(char*)a+ ____________________*sizeof(a[0][0])。 11、假定一个结构类型的定义为 “struct C{double* a[4]; int n;};”,则该类型的大小 为________字节。 12、若需要把一个函数”void F();”定义为一个类 AB 的友元函数,则应在类 AB 的定义中 加入一条语句:________________ 13、把一个类的定义体和所有成员函数的定义体所构成的程序范围叫做该类的__________ 域。 14、假定 AA 是一个类,“AA* abc();”是该类中一个成员函数的原型,则在类外定义时的 函数头为__________________。 15、若采用 p->abc(y)表达式调用一个成员函数,在成员函数中使用的________就代表了类 外的 p 指针。 16、重载运算符时,其原有的__________、结合性以及操作对象的个数不允许改变。 17、作为类的成员函数重载一个运算符时,参数表中只有一个参数,则说明该运算符具有 ________个操作数

18,若要在程序文件中进行标准输入输出操作,则必策在开始的#1lud0命令中使用 头文件。 二、单流恩 19、字符串“a+h=12”的长度为《), L6 B.7 C.8 0.9 20、在witch语句的每个Gas0块中,假定军是以break语句结束的,则此wiCh语句容 易被改写为()语句: A for B.if C.do D.while 21,在下面的字符数组定义中,《)语句有语法错误。 A.char a[20]="abedefg": B.char al]="x+y=55.": C.char al15]-'1,’2]: D.char a[l0]-'5”: 22、下面的()函数头格式不正确。 A.AA(int a,int b) B.AA(int a,int b=0) C.AA(int a-0.int b-0) D.AA(int a-0.int b) 23、要使语句“pmm1nt[10][20]:”能够正常执行,p应定文为(), Aint和 B.int p C.int和[20] L,int(p)[2D] 24,当类中一个字符指针成员指向具有■个字节的存储空同时,它所雀存储字符串的最大长 度为一· A.n B.n+1 C.n-I 0,-2 25、假定唱为一个类,则执行“Ba,b(3),p:”语句到,自动调用该类构造函数的次数 为0. A2 B.3 C.4 D.5 26,在类作川域中能够通过直接使用谈类的()成员名进行访问, L私有 B.公用 C.保护 D.任何 27、假定4为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中防月它, 则书写格式为()。 A.a B.AA::a C.a() D.AA::a0 28、当使用m葡类定文一个葡对象并打开一个磁世文件时,文件的隐含打开方式有): A.ios::in B.ios::out C.ios::in I fos::out D没有
18、若要在程序文件中进行标准输入输出操作,则必须在开始的#inlude 命令中使用 ____________头文件。 二、单选题 19、字符串“a+b=12 ”的长度为()。 A.6 B.7 C.8 D.9 20、在 switch 语句的每个 case 块中,假定都是以 break 语句结束的,则此 switch 语句容 易被改写为()语句。 A. for B. if C. do D. while 21、在下面的字符数组定义中,()语句有语法错误。 A. char a[20]=”abcdefg”; B. char a[]=”x+y=55.”; C. char a[15]={’1’,’2’}; D. char a[10]=’5’; 22、下面的()函数头格式不正确。 A. AA(int a, int b) B. AA(int a, int b=0) C. AA(int a=0, int b=0) D. AA(int a=0, int b) 23、要使语句“p=new int[10][20];”能够正常执行,p 应定义为()。 A. int *p B. int **p C. int *p[20] D. int(*p)[20] 24、当类中一个字符指针成员指向具有 n 个字节的存储空间时,它所能存储字符串的最大长 度为________。 A. n B. n+1 C. n-1 D. n-2 25、假定 AB 为一个类,则执行“AB a, b(3), *p;”语句时,自动调用该类构造函数的次数 为()。 A.2 B.3 C.4 D.5 26、在类作用域中能够通过直接使用该类的()成员名进行访问。 A.私有 B.公用 C.保护 D.任何 27、假定 AA 为一个类,a 为该类公有的数据成员,若要在该类的一个成员函数中访问它, 则书写格式为()。 A. a B. AA::a C. a() D. AA::a() 28、当使用 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为()。 A. ios::in B. ios::out C. ios::in | ios::out D.没有

三、运行铺果 29. include(iostream.h> void main() int x5; switch (2*x-3) case4:c0ut roid min(){ int s-0; for(int1=1:1=6:1+) stmiwi: cout roid min() int f,fl.f2,1: f1=f2=1: ccut(<f1(""<f2(”“:
三、运行结果 29、 #include void main() { int x=5; switch(2*x-3) { case 4: cout void main() { int s=0; for(int i=1;i void main() { int f,f1,f2,i; f1=f2=1; cout<<f1<<" "<<f2<<" ";

for(ǘ=3:i=10:1+)( f=f1+f2: cout oid月(int*a,int)( int*p=atn-1: while(a<p) int x=a: =p: Dx: ++:p一: 1 void main() inte d-new int[5】: int i: for(i=0:i5:i+){ d[i]-2i+3: cout<setw((d[i】(”":
for(i=3;i void LH(int* a, int n) { int* p=a+n-1; while(a<p) { int x=*a; *a=*p; *p=x; a++;p--; } } void main() { int* d=new int[5]; int i; for(i=0;i<5;i++) { d[i]=2*i+3; cout<<setw(5)<<d[i]<<" "; }

cout struct Worker char nane[I5】:/姓名 1 nt age:/年 f1 oat pay:/工资 1: void main( Worker x=厂wangfong”,43,640j: Worker y.*p: y=x:px: cout(y.naeme(《”"(p->age*2(”"(《p>par+100<《ced1; 参考答案: wangfong 43 640 wangfong 86 740 四、函数功能
cout struct Worker { char name[15];//姓名 int age;//年龄 float pay;//工资 }; void main() { Worker x={"wangfong",43,640}; Worker y, *p; y=x; p=&x; coutnameage*2pay+100<<endl; } 参考答案: wangfong 43 640 wangfong 86 740 四、函数功能

34 #include(math.h> bool SG(intx)V/x为大于等于2的整数 inta-int(sgrt(x):/取x的平方根 int i=2: while(i-s)c++;
34、 #include bool SG(int x) {//x 为大于等于 2 的整数 int a=int(sqrt(x)); //取 x 的平方根 int i=2; while(i=s) c++;

return c: 参考答案 求出数组a的个元素中大于等于平均值的元素个数,该个数由函数返回。 37 oid Ing陶t(IntNode转f,intn if (m=-0)[f-NULL:return:) f=new IntNode: IntNode*p=f: cut(“从键盘输入"(n((”个整数:“: while(n-)( p=p->next=new IntNode: cin>>p>data: p->next=MULL: p=f:f=f->mext:delete p: 假定IntNode的类型定文为: struct IntNode int data:/结点值域 IntNode*next;/结点指针城 : 参考答案1 根据从键盘上输入的■个整数建立以一个随表,其表头指针由「带回。 编程:08分,每题网分 38. include Teaplate Type ND(Type a[].int n){
return c; } 参考答案: 求出数组 a 的 n 个元素中大于等于平均值的元素个数,该个数由函数返回。 37、 void Input(IntNode*& f, int n) { if(n==0) {f=NULL; return;} f=new IntNode; IntNode* p=f; coutnext=new IntNode; cin>>p->data; } p->next=NULL; p=f; f=f->next; delete p; } 假定 IntNode 的类型定义为: struct IntNode { int data;//结点值域 IntNode* next;//结点指针域 }; 参考答案: 根据从键盘上输入的 n 个整数建立以一个链表,其表头指针由 f 带回。 编程:08 分,每题 08 分 38、 #include Template Type WD(Type a[], int n) {

Type m=a[0]: for(int iml:in)mFa[i]: return n: 参考答案: 模板函数,从数组a的个元素中求出最大植并返回
Type m=a[0]; for(int i=1;im) m=a[i]; return m; } 参考答案: 模板函数,从数组 a 的 n 个元素中求出最大值并返回