试卷代号:1075 座位号■■ 中央广播电视大学2011一2012学年度第一学期“开放本科”期末考试 C十十语言程序设计试题 2012年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.char ch='a' D.const bool mark=true; 4.在C+十语言中,循环类语句共有( )种。 A.1 B.2 C.3 D.4 5.假定a为一个数组名,则下面的( )表达式有语法错误。 A.ai] B.*+十a C.*a D.*(a+1) 6.在下面的二维数组定义中,只有( )语句是正确的。 A.int a[5]] B.inta[](10): C.int a[]] D.inta[3][5]; 533
试卷代号 座位号OJ 中央广播电视大学 11 2 0 2学年度第一学期"开放本科"期未考试 c++ 程序 设 2012 年1 |题号|一|二|三|四|五|总分| |分数 I I I I I I |得分|评卷人| 每小题 I I I 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; C. char ch=' 4. + + 环类 A. 1 C. 3 5. 个数组 A. a[i] C. 6. 下面 数组定义 A. int a[5][]; C. int a[][] ; B. const int N=20; D. const bool mark = true; 〉种。 B. 2 D.4 )表达式有语法错误。 B. + 十 D. 祷 l) 〉语句是正确的。 B. int a[]OO); D. int a[3][5]; 533
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.假定一条语句定义为“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分)】 11.若需要定义一个标识符常量,并且使C十十能够进行类型检查,则应在定义语句的开 始使用保留字 12.算术表达式2x3+1对应的C+十表达式为 13.逻辑表达式x>y&&x!=10的相反表达式为 14.每个字符指针变量占用内存的 个字节的存储空间。 I5.执行“typedef int DataType;”语句后,在使用int定义整型变量的地方都可以使用标 识符 来定义整型变量。 16.对于在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它赋予的初值 为 17.假定p所指对象的值为25,P十1所指对象的值为46,则执行“*(p十1);”语句后,p所 指对象的值为 l8.假定个结构类型的定义为“struct A{inta;double*b;A*c;};”,则该类型的大 小为 字节。 19.假定二维数组的定义为“inta[8][3];”,则该数组所含元素的个数为 20.若while循环语句为“while(i++<=4)s+=i;”,i的初值为1,s的初值为0,则此 循环语句执行结束后,$的值为 534
7. 下面 )的函数声明格式不正确。 A. AACint a , int b); C. AA(int a=O , int b=O); B. AACint a=O , int b); D. AA(int a , int b=o); 8. 假定 条语 为"int 铸p=new int[30] 要释放p 数组 用下面的 )语句。 A. delete p; B. delete 铸p; C. delete &.p; D. delete []p; 9. 假定要对 型AB 定义 号运 符重 普通 实现 个AB 法,并返回相加结果,则该函数的声明语句为 )。 A. AB operator +CAB&' a , AB&. b); B. AB operator +CAB&' a); C. operator +CAB a); D. AB&. operator +0; 10. 需要 用jfstream 流类定义一 流对 并联 盘文件 应在文件开始 用:# include 使之 含C )头文件。 A. strstrea. h B. std1ib. h C. iostream. h D. fstream. h 得 分 人i I I 每小 3t 1. 需要 个标 井且使 够进行类 检查 定义 始使用保留字 12. 术表 式2x3+1 对应 达式 13. 逻辑表达式x>y && x! =10 反表达 14. 个字符 针变量 15. 行"typedef int DataType;" 在使用int 定义 地方都 识符来定义整型变量。 16. 在所 义之 若没 含对 17. 定p 对象 为25 ,p+1 指对象 为46 赞Cp+l) ;"语句后,p所 指对象的值为 18. 定一 结构 定义为"struct A {i 的double 祷b; 祷c;} 小为字节。 19. 定二 定义为"int a[8][3];" ,则该数组所含元素的个数为 20. 若while 为"whileCi+十<=4) s+=i;",i 为1 ,s 为0 循环语句执行结束后,s的值为 534
得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 21.#include #includey)z=x+y; else if(x int WF(int x,int y)( x=x十y; y=x十y: return x *yi } void main(){ cout<<WF(3,4)<<endl; } 运行结果: 535
|得分|评卷人| I I I 三、写出下列每个程序运行后的输出结果{每小题 21. # include # include void mainO { int x=20 , y=6 , z; if(x>y) z=x+y; else if(x # include void mainO { char 提a[5]= {飞 ",飞 ,飞 ,"apen unsigned int n=strlen(a[O]); II for Cint i=1;i int WFCint x , int y) { x=x+y; y=x+y; return 头y; void mainO { cout<<WF(3 的«endl; 运行结果= 535
24.include void main()( int d=new int[5]; int i,s=1; for(i=0;i>x;y+=x; } return y; } 函数功能: 536
24. cl ud h> const int N=8; void main() { int a[N] = {2 ,4 ,6,8,10 ,12,14 ,18}; int s=O; forOnt i=O; i void mainO { int 提d=new int[5]; int i,s=l; forO=0;i<5;i++) d[i]=i+l forO=O; i<5; i+ +) 祷=d[i] ; cout<<s<<endl; 运行结果: 得分|评卷人 四、写出下列每个函数的功能{每小题 26. double FI<double n) { lin double x ,y=O; forOnt i=O; i<n; { cin» 川y+=x; return y; 函数功能: 536
27.int WG(int a,int b){ if(a>0&&.b>0)return 1; else if(a=y)?x:y; for(int i=a;i<x*y;i++) if(i%x==0&&i%y==0)return i; return x yi 函数功能: 得 分 评卷人 五、按题目要求编写函数(6分)】 29.假定函数声明为“void Print(inta[],intn);”,要求按下标从大到小的次序输出数组 a中的n个元素的值,每个值后面接着输出一个空格。 537
27. int WG(int a , int b) { if(a>O &.&. b>O) return 1; else ifCa=y)? x:y; forOnt i=a; i<x 祷y; i++) ifCi%x==O && i%y =c==O) return i; return 铃y; 函数功能: |得分|评卷人| I I I 五、按题目要求缩写函数 6分) 29. 假定 为"void Print(jnt int n) 求按 序 输 的n 一个 537
试卷代号:1075 中央广播电视大学2011一2012学年度第一学期“开放本科”期未考试 C++语言程序设计试题答案及评分标准 (供参考) 2012年1月 一、单选题(每小题2分,共20分) 1.C 2.A 3.C 4.C 5.B 6.D 7.B 8.D 9.A 10.D 二、填空题(每小题2分,共20分) 11.const 12.2*xx米x十1(或2¥p0w(x,3)+1) 13.x<=y11x==10 14.4 15.DataType 16.0 17.25 18.12 19.24 20.14 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 21.z=26 22.4 23.77 24,s=36 25.120 538
试卷代号 中央广播电视大学 11 2学年度第-学期"开放本科"期末考试 程序 分标 〈供参考〉 2012 年1 一、单选题(每小题 1. C 6.D 2. A 7. B 3. C 8. D 4. C 9. A 5. B 10. D 二、填空题{每小题 11. const 12. 诀x+1( 或2 铃pow(x ,3) 1) 13. x<:=y II x==10 14. 4 15. DataType 16. 0 17. 25 18. 12 19. 24 20. 14 三、写出下列每个程序运行后的输出结果{每小题 21. z=26 22. 4 23. 77 24. s=36 25. 120 538
四、写出下列每个函数的功能(每小题8分,共24分) 评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。 26.求出并返回从键盘上输人的n个实数之和。 27.若a和b都大于0则返回1,若a和b都小于0则返回一1,其他任何情况则返回0。 28.求出并返回整型参数x和y的最小公倍数。 五、按题目要求编写程序(6分) 29.评分标准:根据编程的完整程度酌情给分。 void Print(int a],int n) for(int i=n-1:>=0:i--) cout<<a[i]<<’’; cout<<endl; 539
四、写出下到每个画颤的功能(每小题 8分,共 4分} 评分标准=每题与参考答案的叙述含义相同者得 8分,否则酌情给分。 26. 并返 从键盘上输人 27. 和b 则返 回1 和b 都小 一1 其他 何情 28. 整型参数 最小公倍 五、按题目要求编写程序 6分} 29. 评分 编程 void Print(int int n) for (int i=n-l; i>=O; 一 一 cout<<a[iJ<<' '; cout<<endl; 539