试卷代号: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<iostream.h void main(){ int s1=0; for(int i=1;i<=5;+)s1+=2*i; cout<<"s1-<<s1<<endl; 输出结果: 2.include<iostream.h> void main(){ inta[6]={6,9,12,18,15,20}; int c=0; for(int i=0;<6;) if(a[i门%2==1)c++; cout<<"c="<<c<<endl; 输出结果: 3.include<iostream.h void main(){ inta[3][4]={1,2,7,8},{5,6,11,15},{9,20,3,4}}; intm=a[0][0]; for(int i=0;i<3;+) for(int j=0;j<4;j++) if(a[i]j]>m)m=afi]]; cout<<m<<endl; } 输出结果: 552
得分|评卷人 三、写出下列每个程序运行后的输出结果{每小题 1. # include<iostream. h> void mainO { int sl =0; for(int i=l; i<=5; i++) sl+=2 祷i z cout<<"sl="<<sl<<endl; 输出结果: 2. # include<iostream. h> void mainO { int a[6]={6 ,9 ,12,18 ,15 ,20}; int c=O; for(int i=O; i<6; if(a[i]%2== l) c+ cout<<"c= "<<c<<endl; 输出结果: 3. # include<iostream. h> void mainO { int a[3][4]={ {1, 2 11 2 0 } } int m=a[O][O]; for(int i=0;i<3;i++) for(int j=0;j<4;j if(a[i][j]>m) m=a[i][j]; cout<<m<<endl; 输出结果: 552
4.include<iostream.h> void main(){ inta=10,b=15,c; c=a十b; int b=a+20; c十=a十b; cout<<c<<endl; } 输出结果: 5.include<iostream.h> void main(){ inta[8]={6,19,4,12,20,5,18,25}; int米p,s=0; for(p=a;p<a+8;p十+) if(*p<10)s+=*p; cout<<s<<endl; 输出结果: 分 得 评卷人 四、写出下列每个函数的功能(每小题8分,共24分) 1.int WC(int a],int n,int k){ int c=0; for(int i=0;i<n;i) if(a[i门>=k)c++; return c; 函数功能: 553
4. # include<iostream. h> void mainO { int a=10 , b=15 , c; c=a十b; { int b=a+20; cout<<c<<endl; 输出结果 • 5. # include<iostream. h> void mainO { int a[8J= (6 , 19 ,4 ,12 ,20 ,5 , 18 ,25}; int 铃p. s=O; for(p=a; p<a十8;p十 十 if( 头p<lO) 头p; cout<<s<<endl; 输出结果: 得分 囚、写出下列每个函数的功能{每小题 1. int WC(int int n. int k) ( int c=O; for(int i=O;i<n;i if(a[i]> = k) • return c; 函数功能: 553
2.bool SG(int x){ //x为大于等于2的整数 int a=int(sqrt(x)); //sqrt(x)为求x的平方根 int i=2; while(i<=a){ if(x%i==0)break; i++; } if(i>a)return true;else return false; } 函数功能: 3.假定结构类型Worker中的name域表示姓名,age域表示年龄,pay域表示工资。 void QA(Worker a[],int n){ for(int i=0;i<n;i++) cin>>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; whileO<=a) { if(x%i= =0) break; i+ if0>a) return true; else return false; 函数功能: 3. 假定 型Worker 的name 表示 ,age 表示年龄 ,pay 域表示工资 void QA(Worker int n) { for(int i=O; i<n; i+ cin>>a[i]. name>>a[i]. age>>a[i]. pay; 函数功能: 得分|评卷人 五、按题目要求编写函数 6分) 假定一个函数声明为 AD(int int n) 要求把数组a 的n 个元 相反的次序排列。 554