
C+语言程序设计》模拟试思七 一、就空题 1、在#ic1ude命令中所包含的头文件,可以局系统定文的头文件,也可以是 定义 的头文件。 2、一个函数定义由函数头和 两部分组成。 3、用于从键盘上为变量输入值的标准输入流对象是 4.已知A一"Z"的ASCII码为6590,当执行“char ch=1体5+2:eout<《ch<end1:”语句序 列后,得到的输出结果为一· 5、使用c©如st语句定文一个常值常量时,测必须对它同时进行 6、假定=5。则表达式2+x+的值为一。 7、假定一个一维数组的定文为“car*a[8]:”,则该数组所含元素的个数为 8、假定一个二维数组的定文为“ta[3)[5】:”,则该数组所占存储空间的字节数为 一◆ 9、存储字符”。”需要占用存储器的一个字节空间: 10、存储一个空字符串需要占用 个字节。 11、重载一个函数的条件是:该函数必须在参数的个数或参数的 上与其它同名函 数有所不同, 12、重载一个函数的条件是:该桥数必须在参数的 或参数的类型上与其它同名橘 数有所不同, 13、如果一个函数直接或阿接地调用自身,这样的调月敲称为 调用, 14.调用系统函数时,要先使用+clude命令包含该系统函数的原型语句所在的 文件。 15、函数形参的作用城是该函数的 16、假定要动态分配一个类型为rkr的具有n个元素的数组.并由r指向这个动志数组, 则使用的语句表达式为 一=new Torker[m]. 17、与结构成员访月表达式p)e等价的表达式是 18、对基类数据成员的初始化是通过执行派生类构造函数中的 来实现的。 二、单连题 19、枚举类型中的每个枚举常量的值都是一个()
C++语言程序设计》模拟试题七 一、填空题 1、在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义 的头文件。 2、一个函数定义由函数头和________两部分组成。 3、用于从键盘上为变量输入值的标准输入流对象是________。 4、已知"A"~"Z"的 ASCII 码为 65~90,当执行“char ch=14*5+2;coutname 等价的表达式是____________。 18、对基类数据成员的初始化是通过执行派生类构造函数中的____________来实现的。 二、单选题 19、枚举类型中的每个枚举常量的值都是一个()

A整数 B.浮点数 C字符 业,正辑值 20、假定a为一个字符数组名,则元素[8)相对于该数组首地址的字节地址为0, A.4 B8C16 D.32 21、变量s己定义为“char*s=”el1 o sorld!”:”,要使变量p指向8所指向的同一个 字符串。则应定义为()。 A.char *p=s: B.char ps: C.char和=*s: D.char和:ps: 2、假定一条定义语句为“inta[10],x,pa;”,若要肥数组a中下标为3的元素值赋 给x,则不正确的语句为()。 Axpa[3】: B=*(a+3》: Cx=a[3)]: 0=和4+3: 23、假定B为一个类,则执行“Ba,b(3),和:”语句时,自动调用该类构造函数的次数 为0. A2 B3 C.4 0.5 24、若需要把一个类外定义的成员函数指明为内联函数,则必须肥关健字()放在函数原型 或函数头的前而。 A.in R inline C.inline D.InLiner 25、对于一个类的构造函数,其函数名与类名0: A光全相同 B基本相同 C.不相同 D,无关系 26、类的构造函数是在定义该类的一个0时被白动调用执行的, A成员函数 B数据成员 C对象D.友元函数 27、一个类的构迹函数通常被定义为该类的0成员。 A公用 B.保护 C.私有 D.友元 28、假定8为一个类,则执行“超r1r2:”语句时将自动调用该类的0. 人无参构造函数 B.带参构造雨数 C鼠植重我函数 D.拷贝构违函数 三、运行结果 29. #include const int M-20: void main(
A.整数 B.浮点数 C.字符 D.逻辑值 20、假定 a 为一个字符数组名,则元素 a[8]相对于该数组首地址的字节地址为()。 A.4 B.8 C.16 D.32 21、变量 s 已定义为“char *s=”Hello world!”;”,要使变量 p 指向 s 所指向的同一个 字符串,则应定义为()。 A.char *p=s; B.char *p=&s; C.char *p;p=*s; D.char *p; p=&s; 22、假定一条定义语句为“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; 23、假定 AB 为一个类,则执行“AB a, b(3), *p;”语句时,自动调用该类构造函数的次数 为()。 A.2 B.3 C.4 D.5 24、若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型 或函数头的前面。 A.in B.inline C.inLine D.InLiner 25、对于一个类的构造函数,其函数名与类名()。 A.完全相同 B.基本相同 C.不相同 D.无关系 26、类的构造函数是在定义该类的一个()时被自动调用执行的。 A.成员函数 B.数据成员 C.对象 D.友元函数 27、一个类的构造函数通常被定义为该类的()成员。 A.公用 B.保护 C.私有 D.友元 28、假定 AB 为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的()。 A.无参构造函数 B.带参构造函数 C.赋值重载函数 D.拷贝构造函数 三、运行结果 29、 #include const int M=20; void main() {

int c2.c3,c5: c2-c3-c5-0: for (int i=1:K=M:1++) if(i2=0)c24+: if(i3=-0)e3+: 1f(s5=00c5+: comt《c2(”"(c3(""(c5(endl: 参考答案 1064 30、 #includeciostrean h> void main()[ inta[10]-(7683,54.62,40,75,80.92,77,84: imtb[4]={60,70,90.101}: int c[4]=(0) for (int i=0:i=b[j])j++: c[U】+: 1 far(i=0:i(4:it+)cout(c[i】(”“: cout void SB(char ch)
int c2,c3,c5; c2=c3=c5=0; for(int i=1; i void main() { int a[10]={76,83,54,62,40,75,80,92,77,84}; int b[4]={60,70,90,101}; int c[4]={0}; for(int i=0;i=b[j]) j++; c[j]++; } for(i=0;i void SB(char ch) {

switch(ch) case"A”:case”a”: cout( include class A( int a,b:char op: public: A(int aa,int bb,char ch)[a=aa:b=bb:op=ch: int Comp( switch(opl【 case”4”:return a+b: case"-”:return a-b: case"w”:return a*b:
switch(ch) { case "A": case "a": cout #include class A { int a,b; char op; public: A(int aa, int bb, char ch) {a=aa; b=bb; op=ch;} int Comp() { switch(op) { case "+": return a+b; case "-": return a-b; case "*": return a*b;

case /if(b!=0)return a/b:else exit(1) case "s":if(b!=0)return akb:else exit(1): default:exit (1) void SetA(int aa,int bb,char ch)[ a"aa:b-bb:op-ch: : void main(void){ Ax(3,5"*): int a=x.Comp(): 无Seth4,9,“+): a+ex.C0即0: LSe1A8,5,"%7: a+=%,Cc即0: comt("a-"(a《(endl: 参考答案: a=31 33、 #include class B( int a,b: public: B0a=t-0:】 B(int aa.int bb)(a=aa;b-bb:) B operator+(B&x) B r:
case "/": if(b!=0) return a/b; else exit(1); case "%": if(b!=0) return a%b; else exit(1); default: exit(1); } } void SetA(int aa, int bb, char ch) { a=aa; b=bb; op=ch; } }; void main(void) { A x(3,5,"*"); int a=x.Comp(); x.SetA(4,9,"+"); a+=x.Comp(); x.SetA(8,5,"%"); a+=x.Comp(); cout class B { int a,b; public: B() {a=b=0;} B(int aa, int bb) {a=aa; b=bb;} B operator +(B& x) { B r;

【,aa+x,0日 r.bmbtx.b: return r: B operator-(隧x){ Br: r.a=a-x.a: r.b-b-x.b: return r: void OutB( cout(n》x: while(x!--1)[ n十+:y+=x: cin>)x:
r.a=a+x.a; r.b=b+x.b; return r; } B operator -(B& x) { B r; r.a=a-x.a; r.b=b-x.b; return r; } void OutB() { cout>x; while(x!=-1) { n++; y+=x; cin>>x;

if(n==0)returm y:else return y/m: 参考答案: 求出从健登上输入的一批常数的平均值,以-1作为结束输入的标志。 35、 f1 oat FI(intn){/角为大于等于1的整数 float x,y=0: do cin>>x: 1一:y+=*1 】hile(n0): return y: 参考答案:求出从键含上输入的个常数的平方和并返回。 36、 tinclude include void nain() int x.y: cin>>x: -int(sgrt(x):/sqrt(x)为求x的算术平方根 for(int i=1:i include(fstreanh>
} if(n==0) return y; else return y/n; } 参考答案: 求出从键盘上输入的一批常数的平均值,以-1 作为结束输入的标志。 35、 float FI(int n) {//n 为大于等于 1 的整数 float x,y=0; do { cin>>x; n--; y+=x*x; } while(n>0); return y; } 参考答案:求出从键盘上输入的 n 个常数的平方和并返回。 36、 #include #include void main() { int x,y; cin>>x; y=int(sqrt(x));//sqrt(x)为求 x 的算术平方根 for(int i=1;i #include

void JC(char*fname,int n) /可把以fae所指字符串作为文件标识符的文件称为far文件 ofstream fout (fname,ios::out fos:binary): int x: for (int i=0:i<m:i++) cinD》x: fout.write((char*)&x.sizeof(x)): 1 fout.close(): 参考答案:向二进制文件fae中输出由键盘输入的n个整数。 五、精程 38、已知6≤a≤30,15≤b≤36,编一程序求出满足不定方程2a+5b-125的全部整数组解. 如(13,20)线是其中的一组解。 参考答案: =inclode void main() int a.b: /定义变量正确得2分 for(a-6:a(-30:a+)/外循环次数正确得2分 forb-l5:b(-36:bt+)/内循环次数正确得2分 1f2*a+5纯=126)60ut<《”('<《a<',”《<K《”)'< /条件正确得2分。输出语句正确得2分
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(); } 参考答案:向二进制文件 fname 中输出由键盘输入的 n 个整数。 五、编程 38、 已知 6≤a≤30,15≤b≤36,编一程序求出满足不定方程 2a+5b=126 的全部整数组解。 如(13,20)就是其中的一组解。 参考答案: #include void main() { int a,b; //定义变量正确得 2 分 for(a=6;a<=30; a++) //外循环次数正确得 2 分 for(b=15;b<=36;b++) //内循环次数正确得 2 分 if(2*a+5*b==126) cout<<’(’<<a<<’,’<<b<<’)’< //条件正确得 2 分,输出语句正确得 2 分 }