
《C+语言程序授计》模报试题四 一、填空短 1、short类型的大小为 一个字节。 2、十进制数28类型为。 3,若需要定义一个常值常量,并且使C+雀够进行类型检查,则应在定义语句的开始使用 保留字 4、关系表达式x!0)的等价表达式为 5、假定不允许使用逻辑非操作符,则关系表达式x+y>5的相反表达式为 6、当在程序中执行到语句时,将结束木层循环类语句域th语句的执行, 了、当在程序中执行到语句时,将结束所在循环语句中循环体的一次执行。 8、若是一个字符数组,则从键盘上向该数组输入一个字符串的表达式语句为 9、假定一个函数模板的定义为“templateT cubin(行n》return*n知:》”,则 类型参数为一· 10、假定p所滑对象的值为25,p1所指对象的值为6,则+p的值为一· l1、假定一个结构类型的定义为“struet D(inta:union int b:double c:}:* d2]::”,则该类型的大小为字节。 12、在定文类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的 使其初始化. 13、当撒清一个含有基类和类对象成员的深生类对象时,将最后完成 的析构函 数定文体的执行。 14、C+支特两种多态性: 时的多态性和运行时的多态性 15、若在类的定复体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名 前必须加上类名和两个 分隔符。 16、重载运算符时,其原有的优先级、. 以及操作对象的个数不允许改变。 17、一个单川运算符作为类的成员函数重载时有一个参数。 18、若要在程序文件中进行文件输入输出慢作,则必须在开始的#1lud地角令中使用 头文件 二、单流题 19、C+程序的基本模块为()
《C++语言程序设计》模拟试题四 一、填空题 1、short 类型的大小为________个字节。 2、十进制数 28 类型为________。 3、若需要定义一个常值常量,并且使 C++能够进行类型检查,则应在定义语句的开始使用 保留字__________。 4、关系表达式(x!=0)的等价表达式为________。 5、假定不允许使用逻辑非操作符,则关系表达式 x+y>5 的相反表达式为____________。 6、当在程序中执行到________语句时,将结束本层循环类语句或 switch 语句的执行。 7、当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行。 8、若 a 是一个字符数组,则从键盘上向该数组输入一个字符串的表达式语句为__________。 9、假定一个函数模板的定义为“templateT cubin(T n){return n*n*n ;}”,则 类型参数为________。 10、假定 p 所指对象的值为 25,p+1 所指对象的值为 46,则*++p 的值为________。 11、假定一个结构类型的定义为 “struct D{int a; union {int b; double c;};D* d[2];};”,则该类型的大小为________字节。 12、在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的 ____________,使其初始化。 13、当撤消一个含有基类和类对象成员的派生类对象时,将最后完成____________的析构函 数定义体的执行。 14、C++支持两种多态性:_________时的多态性和运行时的多态性。 15、若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名 前必须加上类名和两个________分隔符。 16、重载运算符时,其原有的优先级、__________以及操作对象的个数不允许改变。 17、一个单目运算符作为类的成员函数重载时有________个参数。 18、若要在程序文件中进行文件输入输出操作,则必须在开始的#inlude 命令中使用 ____________头文件。 二、单选题 19、C++程序的基本模块为()

A表达式 R.标识符C.语句 D.函数 20、每个C+程序文件的编译错误分为()类。 AI B.2 C.3 D.4 21、far语句能够被改写为(》语句. A复合 B.if C.switch D.while 22、在下面的二维数组定文中,《)语句是正确的. A int a(5][]: B.int a[][5] C.int al0[3={1,3.5,2]: .inta0(100: 23、在下面的函数声明中,()存在着语法储误。 A int BC(int a,int): B.int BC(int,int) C.int BC(int,int=5): D.int BC(int x:int y): 24、假定有定义“intb[10]:int pb:”,则不正确的赋植语句为《)。 A ph=b: B.pb-kb[0]: C.pbmnew int: D.-b[5): 25,假定B为一个类,x为番向该类动态对象数组的指针,该数组长度为n.则执行“elete 门x:”语句时,自动调用该类析构函数的次数为0。 LO B.I C.n D.ntl 25、假定品为一个类,ta0为该类的一个成员函数,若该成员函数在类定文体外定义, 则函数头为《)。 A.int AA::a0 B.int AA:a(C.AA::a() D.AA::int a( 27、一个类的析构函数通常按定义为该类的0成员。 人积有 且.保护C公用 D.友元 28、当使用0 fstrean流类定义一个流对象并打开一个磁盘文件时。文件的隐含打开方式为 0. A.ios:in B.ios:out C.ios:in I fos::out D.fos:binary 三、量行结果 29. #includeciostream.h> void main( ints1-0,s2-0:
A.表达式 B.标识符 C.语句 D.函数 20、每个 C++程序文件的编译错误分为()类。 A.1 B.2 C.3 D.4 21、for 语句能够被改写为()语句。 A.复合 B. if C. switch D. while 22、在下面的二维数组定义中,()语句是正确的。 A. int a[5][]; B. int a[][5]; C. int a[][3]={{1,3,5},{2}}; D. int a[](10); 23、在下面的函数声明中,()存在着语法错误。 A. int BC(int a, int); B. int BC(int, int); C. int BC(int, int=5); D. int BC(int x; int y); 24、假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为()。 A. pb=b; B. pb=&b[0]; C. pb=new int; D. pb=b[5]; 25、假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行 “delete []px;”语句时,自动调用该类析构函数的次数为()。 A.0 B.1 C. n D. n+1 26、假定 AA 为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义, 则函数头为()。 A. int AA::a() B. int AA:a() C. AA::a() D. AA::int a() 27、一个类的析构函数通常被定义为该类的()成员。 A.私有 B.保护 C.公用 D.友元 28、当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ()。 A.ios::in B.ios::out C.ios::in | ios::out D.ios::binary 三、 运行结果 29、 #include void main() { int s1=0, s2=0;

for(int i=0:i roid main() char a[]="abcdabcabdaeff"; itb[6=0i,i=0: hile(a[i])( switch(a[i])【 case“a”:b[o]+:break: case "b”:b[i]+:break: case "e":b[2]++:break: case"d°:b[3]+t:break: default:b[4]++: i*: 1 for(1=0:i5:i+)cout(afi】 void LD(int&a,int b》
for(int i=0;i void main() { char a[]="abcdabcabdaeff"; int b[5]={0}, i=0; while(a[i]) { switch(a[i]) { case "a": b[0]++;break; case "b": b[1]++;break; case "c": b[2]++;break; case "d": b[3]++;break; default: b[4]++; } i++; } for(i=0;i void LD(int& a, int& b) {

int x=a: ash:bex: cot woid LH(int a.int n)( int*patn-l日 while(a<p){ 1nt=潮 本a=印: p 8+:-: void min(){ int*d-new int[5]: int i: far(i-0:i5:i+){ d[i]=2*+3 cout<<setw(5)<<d[i]<<"; cout<Cendl:
int x=a; a=b; b=x; cout 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<<endl;

1H(d,5: for(i=0:i5:i+){ ccut(setw(5)(d[i] sinclude(string.h> struct Worker char nane[15】:/姓名 int age;/年龄 float pay::/工资 l: roid min() Worker x: char *t-'liouting”: int d=38:float f=493: strepy (x.name,t): x:age=d:无pay=f: cout(《%,nae<”"<%,age(”“<x,pay<《endl日 1 参考答案: 1iout1暖3849g 函数功能:24分,每墨06分 34
LH(d,5); for(i=0;i #include struct Worker { char name[15]; //姓名 int age;//年龄 float pay;//工资 }; void main() { Worker x; char *t="liouting"; int d=38; float f=493; strcpy(x.name,t); x.age=d; x.pay=f; cout<<x.name<<" "<<x.age<<" "<<x.pay<<endl; } 参考答案: liouting 38 493 函数功能:24 分,每题 06 分 34

年include(1 ostrean h) #include(math.h> void main() int x.y: cin>>x: y-int(sqrt (x):/sqrt(x)为求x的算术平方根 for(int iml:i void WA(int a[],int n) for(int i-0;i<n-l;i+t) int k=i: for(intj=i+l:jn:j+) if(a[j]a[k])k-j: int x=a[i]:a[i]=a[k]:a[k]=x:
#include #include void main() { int x,y; cin>>x; y=int(sqrt(x));//sqrt(x)为求 x 的算术平方根 for(int i=1;i void WA(int a[], int n) { for(int i=0;i<n-1;i++) { int k=i; for(int j=i+1;j<n;j++) if(a[j]<a[k]) k=j; int x=a[i]; a[i]=a[k]; a[k]=x; }

参考容案: 采用选择排序的方法对数组a中的个整数按照从小到大的次序重新持列。 37、 teaplate(class Type> void NE(Type al],Type b[].int n) for(int i=0:i<n:i++) b[n-i-1]-a[i]; 参考答案: 模板函数,把数组a的每个元素按逆序放入数组b中。 四、编程 38、编写一个函数,函数头格式为“oid1un4(char率a,intb》”,分别求出由字符指 针a所指向的字符串中包含的每种十速制数字出现的次数,把统计结果保#在组的相应 元素中
} 参考答案: 采用选择排序的方法对数组 a 中的 n 个整数按照从小到大的次序重新排列。 37、 template void WE(Type a[], Type b[], int n) { for(int i=0;i<n;i++) b[n-i-1]=a[i]; } 参考答案: 模板函数,把数组 a 的每个元素按逆序放入数组 b 中。 四、编程 38、 编写一个函数,函数头格式为“void fun4(char* a, int b[])”,分别求出由字符指 针 a 所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组 b 的相应 元素中