试卷代号: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 void main(){ int n=5,sum=0; while(n){ sum=n; n一-; } coutc1)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 void main(){ int n= 5,sum =0; while(n) { sum+ =n; n一 一 ; } cout 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;icl) c1=a[i]; else if(a[i] 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.includeb)return 1; else if(a==b)return 0; else return-1; 函数功能: 560
4.#include 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) class A { int a, b public: A() (a二b=0;} M int aa, int bb){ a二aa; b=bb; coutb) 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=s)m++; return m; } 函数功能: 3.int WD(int a[],int n)( int m=a0]; for(int i=1;im)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=s) m++; return m ; } 函数功能 : 3.int WD(int a[],int n){ int m二a[0]; for(int i二1;im) m=a[i]; return m ; } 函数功能: 得 分 评卷人 五、按题 目要求编写程序《6分) 已知 6<a<30,15成b簇36,求出满足不定方程 2a+5b=126的全部整数组解。如(13, 20)就是其中的一组解,并按此格式输出每组解。 561
试卷代号:1075 中央广播电视大学2009一2010学年度第一学期“开放本科”期末考试 C十十语言程序设计试题答案及评分标准 (供参考) 2010年1月 一、单选题(每小题2分,共20分) 1.A 2.D 3.C 4.D 5.A 6.C 7.C 8.B 9.C 10.D 二、填空题(每小题2分,共20分) 1.}(右花括号) 2.1 3.031 4.x+=y 5.假(false或0) 6.32 7.12 8.46 9.new int[n]; 10.析构函数 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.sum=15 2.8340 //每个数据3分 3.41648 /每个数据2分 4.834 //每个数据3分 5.34 //每个数据3分 562
试卷代号:1075 中央广播电视大学2009-2010学年度第一学期“开放本科”期末考试 C++语言程序设计 试题答案及评分标准 (供参考) 2010年 1月 一、单选题(每小题 2分,共20分) 1. A 6. C 2. D 3. C 4. D 5. A 7. C 8.B 9. C 10. D 二、填空题 (每小题 2分 ,共 20分) 1.}(右花括号) 2.1 3.031 4. x+ =y 5.假(false或 0) 6.32 7.12 8.46 9. new int[n]; 10.析构函数 三、写出下列每个程序运行后的输出结果(每小题 6分,共 30分》 1. sum = 15 2.83 40 刀每个数据 3分 3.4 16 48 刀每个数据 2分 4.8 34 //每个数据 3分 5. 3 4 //每个数据 3分 562
四、写出下列每个函数的功能(每小题8分,共24分】 评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。 1.比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a<b则返回-1。 2.求出数组a的n个元素中大于等于平均值的元素个数并返回。 3.从数组a的n个元素中求出最大值并返回。 五、按题目要求编写程序(6分)“ 评分标准:根据编程的完整程度酌情给分。 #include<iostream.h void main() int a,b; 11分 for(a=6;a<=30;a十+) /2分 for(b=15;b<=36:b++) /3分 if(2*a+5*b==126) /14分 cout<<'('<<a<<','<<b<<')'<<endl;//6分 563
四、写出下列每个函数的功能(每小题 8分,共 24分) 评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。 1.比较两个整数,和b的大小,若。>b则返回1,若a==b则返回。,若a void main( ) int a, b; 刀1分 for(a=6;a<=30;a++) //2分 for(b=15;b<=36;b++) //3分 if (2*a+5*b==126) //4分 cout< <’(’< a< ’,’+ b+ ’)’< endl; //6分 563