试卷代号:1075 座位■■ 中央广播电视大学2009一2010学年度第一学期“开放本科”期末考试 C十十语言程序设计试题 2010年1月 题 号 三 四 五 总 分 分 数 得分 评卷人 一、单选题(每小题2分,共20分) 1.由C十十源程序文件编译而成的目标文件的缺省扩展名为()。 A.obj B.lik C.exe D.cpp 2.程序运行中需要从键盘上输入多于一个数据时,各数据之间需要使用( )符号作为 分隔符。 A.空格或逗号 B.逗号或问车 C.逗号或分号 D.空格或回车 3.设×是一个bool型的逻辑量,y的值为10,则表达式x&&y的值为( A.1 B.0 C.x的值 D.x的相反值 4.任何for语句都能够被改写为( )语句。 A.复合 B.if C.switch D.while 5.break语句叫做( )语句。 A.中断退出循环或开关 B.返回 C.转向 D.继续 557
试卷代号:1075 座位号口 习 中央广播电视大学2009-2010学年度第一学期“开放本科”期末考试 C++语言程序设计 试题 2010年 1月 题 号 四 五 总 分 分 数 得 分 评卷人 一、单选题(每小题 2分,共 20分) 1.由 C+ 源程序文件编译而成的目标文件的缺省扩展名为( A. obj C. exe lik cpp 2.程序运行中需要从键盘上输人多于一个数据时,各数据之间需要使用( 分隔符。 )符号作为 空格或逗号 逗号或分号 .逗号或 回车 .空格或回车 3.设x是一个bool型的逻辑量,Y的值为10,则表达式x乙&Y的值为( A.1 B. 0 C. x的值 D. x的相反值 4.任何 for语句都能够被改写为( )语句。 A.复合 B. if C. switch D. while 5. break语句叫做 ( )语句 。 中断退 出循环或开关 转 向 B.返 回 D。继续 557
6.在下面的一维数组定义中,( )语句有语法错误。 A.inta[]={1,2,3} B.int a[10]=(0) C.int a[] D.int a[5] 7.下面的( )保留字不能作为函数的返回类型。 A.void B.int C.new D.long 8.下面的函数声明中,( )是“void BC(inta,intb);”的重载函数。 A.int BC(int x,int y) B.void BC(int a,char b) C.float AA(int a,char b) D.int BC(int a,int b=0) 9.当一个字符指针指向具有个字节的存储空间时,它所能存储字符串的最大长度为( A.n B.n+1 C.n-1 D.n-2 10.假定AB为一个类,则该类的拷贝构造函数的声明语句为( A.AB&(AB x) B.AB(AB x) C.AB(AB¥x) D.AB(AB&) 得 分 评卷人 二、填空题(每小题2分,共20分)】 1.C十十语言中每条复合语句以左花括号开始,并以 结束。 2.假定一个枚举类型的定义为“enum RA{ab,ac,ad,ae};”,则ac的值为 3.十进制数25表示成符合C十十语言规则的八进制数为 4.表达式x=x十y表示成复合赋值表达式为 5.若x=5,则x>5的逻辑值为 6.假定一个一维数组的定义为“char a[8];”,则该数组占用 个字节的存储空间。 7.假定x=10,则表达式2+x十十的值为 8.假定p所指对象的值为25,p+1所指对象的值为46,则*十+p的值为 9.假定要动态分配一个类型为int的具有n个元素的数组,并由r指向这个动态数组,则 使用的语句为int*r= l0.设px指向一个类的动态分配的对象,则执行“delete px;”语句时,将自动调用该类的 558
6.在下面的一维数组定义中,( A. int a[]=(1,2,3) C. int a[]· )语句有语法错误。 B.int a[10]二{0) D int a[5] 7.下面的( )保留字不能作为函数的返回类型。 A. void B. int C. new D. long 8.下面的函数声明中,( )是“void BC(int a, int b);"的重载函数。 A. int BC(int x, int y) C. float AA(int a, char b) 且 void BC(int a, char b) D. int BC(int a, int B=0) 9.当一个字符指针指向具有 n个字节的存储空间时,它所能存储字符串的最大长度为( )。 A. n C. n一 1 B. n十1 D. -n--2 10.假定 AB为一个类,则该类的拷贝构造函数的声明语句为( ) A. AB&(AB x) B. AB(AB x) C. AB(AB, x) D. AB(AB&) 得 分 评卷人 二、填空题【每小题 2分,共 20分) 1. C十十语言中每条复合语句以左花括号开始,并以_ 结束。 2.假定一个枚举类型的定义为“enum RA (ab,ac,ad,ae); ",则ac的值为_ 。 3.十进制数25表示成符合C+十语言规则的八进制数为_ 。 4.表达式x= x-1- y表示成复合赋值表达式为_ 。 5.若 x=5,则 x>5的逻辑值为 6.假定一个一维数组的定义为“char * a[8], "",则该数组占用_ 个字节的存储空间。 7.假定x=10,则表达式2十x十+的值为_ 。 8.假定p所指对象的值为25,p十1所指对象的值为46,则‘++p的值为_ 。 9.假定要动态分配一个类型为 int的具有 n个元素的数组,并由 r指向这个动态数组,则 使用的语句为 int * r= 10.设 px指向一个类的动态分配的对象,则执行“delete px;”语句时,将自动调用该类的 558
得分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.include<iostream.h> void main(){ int n=5,sum=0; while(n){ sum=n; n一-; } cout<<sum="<<sum<<endl; 运行结果: 2.include<iostream.h const int N=6; void main(){ inta[N]={76,83,54,62,40,65}; int cl,c2; cl=c2=a[0]; for(int i=1;i<N;i++) if(a[i]>c1)cl=a[i] else if(a[i]<c2)c2=a[i]; cout<<cl<<<<c2<<endl; } 运行结果: 3.include<iomanip.h void main(){ inta[8]={4,8,15,16,20,30,48,62}; int p=a; while(p<a+8){ cout<<*p<<’’; p+=3; cout<<endl; } 运行结果: 559
得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题 6分.共 30 1.#include<iostream. h> void main(){ int n= 5,sum =0; while(n) { sum+ =n; n一 一 ; } cout< "sum二”< sum< endl } 运行结果 : 2.#include<iostream. h> const int N=6; void main(){ int a[N]=(76,83,54,62,40,65); int cl,c2; cl二。2二a[0]; for(int i二1;i<N; i+十) if(a[i]>cl) c1=a[i]; else if(a[i]<c2) c2=a[i]; cout< cl< ,' < c2< endl; } 运行结果 : 3.#include<iomanip. h> void main(){ int a[8]“{4,8,15,16,20,30,48,62); int * p今 a; while(p<a+8){ cout< * p+ '’; p十“3; } cout< endl; } 运行结果: 分) 559
4.include<iomanip.h int LF(int x,int y) x=x十y;y=x+y; return x+y; } void main(){ int x=5,y=8; cout<<LF(1,2)<<’’<<LF(x,y)<<endl; } 运行结果: 5.include<iostream.h class A int a,b; public: A(){a=b=0;} A(int aa,int bb)( a=aa;b=bb; cout<<a<<<<<<endl; }; void main(){A x,y(3,4);) 运行结果: 得分 评卷人 四、写出下列每个函数的功能(每小题8分,共24分) 1.int SA(int a,int b){ if(a>b)return 1; else if(a==b)return 0; else return-1; 函数功能: 560
4.#include<iomanip. h> int LF(int x, int y){ x=x+y; Y=x+Y; return x十Y; } void main( ){ int x= 5,Y=8; cout+ F(1,2)< ” < LF(x, y) < endl; } 运行结果 : 5.#include<iostream. h> class A { int a, b public: A() (a二b=0;} M int aa, int bb){ a二aa; b=bb; cout< a< ’'< b< endl } }; void main(){A x,y(3,4);} 运行结果: 得 分 评卷人 四、写出下列每个 函数的功能(每小题 8分 ,共 24分) 1. int SA(int a, int b){ if(a>b) return 1; else if (a= =b) return 0; else return一1; } 函数 功能 : 560
2.int LK(int a],int n)( float s=0;int i; for(i=0;i<n;i++)s+=a[i]; s/=n: int m=0; for(i=0;i<n;i++)if(ali]>=s)m++; return m; } 函数功能: 3.int WD(int a[],int n)( int m=a0]; for(int i=1;i<n;i+) if(aCi]>m)m=ai]; return m; 函数功能: 得分 评卷人 五、按题目要求编写程序(6分) 已知6≤a≤30、15≤b≤36,求出满足不定方程2a十5b=126的全部整数组解。如(13, 20)就是其中的一组解,并按此格式输出每组解。 561
2. int LK(int a[],int n){ float s=0;int i; for(i二O;i<n;i++') s+二a[i]; m 二 0 s/ int for(i二O;i<n;i++)if (a[i]>=s) m++; return m ; } 函数功能 : 3.int WD(int a[],int n){ int m二a[0]; for(int i二1;i<n; i-}-+) if(a[i]>m) m=a[i]; return m ; } 函数功能: 得 分 评卷人 五、按题 目要求编写程序《6分) 已知 6<a<30,15成b簇36,求出满足不定方程 2a+5b=126的全部整数组解。如(13, 20)就是其中的一组解,并按此格式输出每组解。 561