试卷代号: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<iostream.h> #include<stdlib.h void main(){ int x=20,y=6,z; if(x>y)z=x+y; else if(x<y)z=x*y; else z=x+10; cout<<="<<<<endl; } 运行结果: 22.include<iostream.h #include<string.h void main(){ char a[5]=("student","worker","cadre","soldier","apen"); unsigned int n=strlen(a[0]);/求字符串a[0]的长度 for(int i=1;i<5;i++){ if(strlen(a[i])<n)n=strlen(a[i]); cout<<n<<endl; 运行结果: 23.include<iostream.h> 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<iostream. h> # include<std1ib. h> void mainO { int x=20 , y=6 , z; if(x>y) z=x+y; else if(x<y) z=x 头y; else z=x+lO; cout<<"z="< <z<<endl; 运行结果: 22. 拌include<iostream.h> # include<string. h> void mainO { char 提a[5]= {飞 ",飞 ,飞 ,"apen unsigned int n=strlen(a[O]); II for Cint i=1;i<5;i+ { if(strlen(a[i])<n) n=strlen(a[i] ) ; cout<<n<<endl; 运行结果: 23. # include<iostream. h> int WFCint x , int y) { x=x+y; y=x+y; return 头y; void mainO { cout<<WF(3 的«endl; 运行结果= 535
24.include<iomanip.h const int N=8; void main(){ inta[N]={2,4,6,8,10,12,14,18}; int s=0; for(int i=0;i<N;i++) if(a[i]%3==0)s+=a[i]; } cout<<"s="<<<<endl; } 运行结果: 25.include<iomanip.h> void main()( int d=new int[5]; int i,s=1; for(i=0;i<5;i++)d[i]=i+1, for(i=0;i<5;i++)s*=d[i]; cout<<s<<endl; 运行结果: 得 分 评卷人 四、写出下列每个函数的功能(每小题8分,共24分) 26.double FI(double n){ /n为大于等于1的整数 double x,y=0; for(int i=0;i<n;n++)( cin>>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<N; i++) { if(a[i]%3= =0) s+ =a[i] cout<<"s="<<s<<endl; 运行结果 25. # include<iomanip. h> 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<0 &b<0)return -1; else return 0; 函数功能: 28.int QB(int x,int y)( int a=(x>=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<O &.&. b<O) return -1; else return 0; 函数功能 28. int QBOnt x , int y) { int a=(x>=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