试卷代号:1075 座位■ 中央广播电视大学2010一2011学年度第一学期“开放本科”期末考试 C十十语言程序设计 试题 2011年1月 题号 二 三 四 五 总 分 分 数 得分 评卷人 一、单选题(每小题2分,共20分) 1.下面的保留字( )不能作为函数的返回类型。 A.void B.int C.new D.long 2.C++源程序文件的默认扩展名为( )。 A.cpp B.exe C.obj D.lik 3.在下列的标识符常量的定义语句中,错误的定义语句是()。 A.const double PI=3.14159; B.const int N=20; C.const char ch; D.const bool mark=true; 4.for循环语句一定能够被改写为( )语句。 A.复合 B.if C.switch D.while 5.假定a为一个数组名,则下面的( )表达式有语法错误。 A.a B.*++a C.*a D.*(a+1) 6.在下面的二维数组定义中,只有( )语句是正确的。 A.int a5]]; B.inta[](10); C.int a]]; D.inta[][5]={1,2,3},{4,5}}; 550
试卷代号 7 5 座位号 中央广播电视大学 2 0 2011 第一学期 期末 c++ 序 设 2011 年1 题号 总分 分数 得分|评卷人 一、单选题{每小题 2分,共 0分} 1.下面的保留字( )不能作为函数的返回类型。 A. void B. int C. new D. long 2.C++ 序 文 )。 A. cpp B. exe C.obj D. lik 3. 在下 标识符 定义 定义 )。 A. canst double PI=3. 14159; B. canst int N=20; C. canst char ch; D. canst bool mark=true; 4. for 句一 够被 )语句。 A. 合B.if C. switch D. while 5. 个数组 )表达式有语法错误。 A. a[i] B. 铃++a c. D. 1) 6. 在下面 组定 )语句是正确的。 550 A. int a[5][]; c. int a[] T B. int a[]OO); D. int a[][5]= {{l , 2, 3}, {4 ,5}};
7.下面()的函数声明格式不正确。 A.AA(int a,int b); B.AA(int a=0,int b); C.AA(int a=0,int b=0); D.AA(int a,int b=0); 8.假定指针变量p定义为“int*p=new int[30];”,要释放p所指向的动态数组空间,则 使用下面的( )语句。 A.delete p; B.delete p; C.delete &p; D.delete []p; 9.假定要对结构类型AB定义加号运算符重载的普通函数,实现两个AB类型对象的加 法,并返回相加结果,则该函数的声明语句为()。 A.AB operator +(AB&a,AB&b);B.AB operator +(AB&.a); C.operator +(AB a); D.AB&operator +() l0.当需要使用ifstream流类定义一个流对象并联系一个磁盘文件时,应在文件开始使用 #include命令,使之包含( )头文件。 A.strstrea.h B.stdlib,h C.iostream.h D.fstream.h 得 分 评卷人 二、填空题(每小题2分,共20分) 1.十进制数30表示成符合C+十语言规则的十六进制数为 0 2.假定一个枚举类型的定义为“enum RB{ab,ac,ad,ae};”,则枚举常量ad的值为 3.假定y=8,则执行y十十4运算后,y的值为 4.算术表达式岩十1对应的C叶十表达式为 5.关系表达式x<5的相反表达式为 6.假定整数变量x=48,则x/12的运算结果为 7.假定一个二维数组的定义语句为“inta[3][4幻;”,则该数组包含有 个整型元素。 8.函数被调用时,实参向形参的传送分为引用传送和 传送两种方式。 9.假定一个结构类型的定义为"struct B{inta[5];char*b;;”,则该类型的大小为 字节。 10.在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的 使其初始化。 551
7. 下 面 )的函数声明格式不正确。 A. AA(int a , int b); C. AA(int a=O , int b=O); B. AA(int a=O , int b); D. AA(int a , int b=O); 8. 假定指针变量p 定义 为"int 祷p=new int[30] 放p 所指 使用下面的( )语句。 A. delete p; B. delete 祷p; C. delete &. p; D. delete [] p; 9. 假定 结构 型AB 算符重 载 实 现 个AB 对 象 法,并返回相加结果,则该函数的声明语句为( )。 A. AB operator +(AB&' a , AB&. b); B. AB operator +(AB&' a); C. operator 十CAB a); D. AB&. operator +0 ; 10. 用ifstream 类定 文件 在文 始使 # include 之包 )头文件。 A. strstrea. h C. iostream. h B. stdlib. h D.fstream. h 得分|评卷人 二、填空题{每小题 2分,共 0分) 1.十进制数 0表示成符合 C十十语言规则的十六进制数为 2. 定一 为"enum RB {曲, ac , ad , ae} 量ad 3. 定y=8 行y++ 快4 运算 ,y 4. 算术表达式 +1 十 十 表达 xy 5. 表达式x<5 相反表达 6. 假定 4 8 结果 7. 假定一 二维数组 a[3][4];" 该数 含有 个整型 8. 形参 送分 9. 假定一 义 为飞 ru B{int a[5]; char 祷b;};" 该 类 型 的 字节。 10. 定 义类 对 建 立 每 个 对 象 使其初始化。 551
得分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.include void main(){ inta[6]={6,9,12,18,15,20}; int c=0; for(int i=0;m)m=afi]]; cout<<m<<endl; } 输出结果: 552
得分|评卷人 三、写出下列每个程序运行后的输出结果{每小题 1. # include void mainO { int sl =0; for(int i=l; i void mainO { int a[6]={6 ,9 ,12,18 ,15 ,20}; int c=O; for(int i=O; i void mainO { int a[3][4]={ {1, 2 11 2 0 } } int m=a[O][O]; for(int i=0;im) m=a[i][j]; cout<<m<<endl; 输出结果: 552
4.include void main(){ inta=10,b=15,c; c=a十b; int b=a+20; c十=a十b; cout void main(){ inta[8]={6,19,4,12,20,5,18,25}; int米p,s=0; for(p=a;p=k)c++; return c; 函数功能: 553
4. # include void mainO { int a=10 , b=15 , c; c=a十b; { int b=a+20; cout void mainO { int a[8J= (6 , 19 ,4 ,12 ,20 ,5 , 18 ,25}; int 铃p. s=O; for(p=a; p = k) • return c; 函数功能: 553
2.bool SG(int x){ //x为大于等于2的整数 int a=int(sqrt(x)); //sqrt(x)为求x的平方根 int i=2; while(ia)return true;else return false; } 函数功能: 3.假定结构类型Worker中的name域表示姓名,age域表示年龄,pay域表示工资。 void QA(Worker a[],int n){ for(int i=0;i>ai].name>>a[i].age>>a[i].pay; 函数功能: 得分 评卷人 五、按题目要求编写函数(6分) 假定一个函数声明为“void AD(inta[],intn);”,要求把数组a中的n个元素值按前后 相反的次序排列。 554
2. bool SGOnt x) { / / 为 大于 于2 的 int a= int(sqrt( x» ; / / sqrt( x) 求x int i=2; whileOa) return true; else return false; 函数功能: 3. 假定 型Worker 的name 表示 ,age 表示年龄 ,pay 域表示工资 void QA(Worker int n) { for(int i=O; i>a[i]. name>>a[i]. age>>a[i]. pay; 函数功能: 得分|评卷人 五、按题目要求编写函数 6分) 假定一个函数声明为 AD(int int n) 要求把数组a 的n 个元 相反的次序排列。 554
试卷代号:1075 中央广播电视大学2010一2011学年度第一学期“开放本科”期末考试 C++语言程序设计试题答案及评分标准 (供参考) 2011年1月 一、单选题(每小题2分,共20分)】 1.C 2.A 3.C 4.D 5.B 6.D 7.B 8.D 9.A 10.D 二、填空题(每小题2分,共20分) 1.0x1E(字母×和E大小写均可) 2.2 3.9 4.(x+y)/(2¥x¥y)+1 5.x>=5 6.4 7.12 8.值 9.24 10.构造函数 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.s1=30 2.c=2 3.20 4.65 5.15 555
试卷代号: 1075 中央广播电视大学 2011 年 度 第 一 学 开放 c++ 程序 试题 及评 (供参考) 2011 年1 一、单选题(每小题 1. C 2. A 6. D 7. B 3. C 8. D 4. D 9. A 5. B 10. D 二、填空题{每小题 1. Ox1E( 母x 和E 小写均 2.2 3.9 4. (x+y)/(2 铃y)+l 5. x>=5 6.4 7. 12 8. 9.24 10. 三、写出下列每个程序运行后的输出结果(每小题 1. 51=30 2. c=2 3.20 4.65 5. 15 555
四、写出下列每个函数的功能(每小题8分,共24分) 评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。 1.统计出数组a的n个元素中大于等于参数k的值的元素个数并返回。 2.判断×是否为一个素数(或质数),若是则返回真,否则返回假。 3.从键盘上输入n个Worker结构类型的记录依次保存到一维数组a的对应元素中。 五、按题目要求编写函数(6分) 评分标准:按照编程的完整程度酌情给分。 void AD(int a],int n) for(i=0;i<n/2;i++){ intx=a[i];a[i]=a[n-l-i门;a[n-l-i]=x; } 556
四、写出下列每个函数的功能{每小题 8分,共 4分) 评分标准:每题与参考答案的叙述含义相同者得 8分,否则酌情给分。 1.统计出数组 a的 n个元素中大于等于参数 k的值的元素个数并返回。 2. 素数 ,若是则返回真,否则返回假。 3. 从键盘 入n 个Worker 构类 依次保 一维 组a 应元 五、按题目要求编写函数 6分) 评分标准:按照编程的完整程度酌情给分。 void AD(int int n) for(j=O; i<n/2; 十 十 { int x=a[i]; a[i]=a[n-l一i]; a[n一l 一i]=x; 556