试卷代号:1075 座位号■■ 国家开放大学(中央广播电视大学)2014年秋季学期“开放本科”期末考试 C十十语言程序设计试题 2015年1月 题号 二 三 四 总分 分 数 得分 评卷人 一、单选题(每小题2分,共20分) 1.C十+源程序文件的缺省扩展名为()。 A.obj B.lik C.exe D.cpp 2.任何for语句都能够被改写为( )语句。 A.复合 B.if C.switch D.while 3.假定有结构定义为“struct BOOK{char title[40];double price;},”,则该结构类型的 长度为()个字节。 A.28 B.40 C.44 D.48 4.在下面的二维数组定义中,只有( )语句是正确的。 A.int a[5]; B.int a[](10); C.inta[][☐; D.inta[[5]={1,2,3},{4,5}》; 5.循环语句“for(inti=0;i<n;i++);”执行结束后得到的i的值为()。 A.n B.n+1 C.n-1 D.2n 6.在下面的字符数组定义中,( )语句有语法错误。 A.char a[20]="abcdefg" B.char a[]="x+y=55." C.char a[15]={'1','2') D.char a[10]='5' 386
试卷代号 :1075 座位号 国家开放大学(中央广播电视大学 )2014 年秋季学期"开放本科"期末考试 c+ 十语言程序设计试题 2015 E E 一、单选题{每小题 分,共 20 分) 1. 十+源程序文件的缺省扩展名为( )。 A. obj B. lik C. exe D. cpp 2. 任何 for 语句都能够被改写为( )语句。 A. 复合 B. if c. switch D. while 3. 假定有结构定义为"struct BOOK {char title[ 40]; double price; }户,则该结构类型的 长度为( )个字节。 A. 28 B. 40 C. 44 D. 48 4. 在下面的二维数组定义中,只有( )语句是正确的。 A. int a[5][]; B. int a[] Cl O); C. int a[][]; D. int a[][5]= {{l , 2 , 3} , {4 , 5}}; 5. 循环语句"for {i nt i=O; i<n; i++);"执行结束后得到的 的值为( )。 A. n c. n-1 6. 在下面的字符数组定义中, ( A. char a[20]= bcdefg" c. char a[l 5] = {'1' ,'2'} 386 B. D. 2n )语句有语法错误。 B. char a[]= 气十 y=55." D. char a[10]='5
7.若用数组名作为函数调用的实参,传递给对应形参的是该数组的()。 A.首地址 B.第一个元素的值 C.全部元素的值 D.所含元素的个数 8.假定a为一个整型数组名,则元素a[2]与()的表示等价。 A.a+2 B.*a+2 C.*(a+2) D.*(a+4) 9.假定AB为一个类,则执行“ABa(4),b[5],*p[5];”语句时,自动调用该类构造函数 的次数为()。 A.4 B.5 C.6 D.14 I0.当需要对标准输入/输出设备进行输人/输出操作时,应在文件开始使用#include预 处理命令,使之包含( )头文件。 A.iostream.h B.stdlib.h C.fstream.h D.strstrea.h 得分 评卷人 二、填空题(每小题2分,共20分)】 11.假定x=7,则表达式3十x+十的值为 12.用于输出表达式值的标准输出流对象是 13.假定一维数组的定义为“inta[6];”,则该数组所含元素的个数为 14.假定p所指对象的值为25,p十1所指对象的值为50,则执行“(*p)十十;”语句后,p 所指对象的值为 15.当不需要函数返回任何值时,则应把该函数类型定义为 16.在每个C十十程序中都必须包含有这样一个函数,该函数的函数名为 17.假定一个枚举类型的定义为“enum RA{xa,xb,xc,xd}:”,则xc的值为 18.表达式a=a+1表示成增量表达式为 19.假定一个结构类型的定义为“struct A{double a,b;A*c;};”,则该类型的大小为 字节。 20.假定a是一个一维数组,则a[i们的指针访问方式为 387
7. 若用数组名作为函数调用的实参,传递给对应形参的是该数组的( )。 A. 首地址 B.第一个元素的值 c. 全部元素的值 D. 所含元素的个数 8. 假定 为一个整型数组名,则元素 a[2J 与( )的表示等价。 A. a+2 B. c.铃 (a 2) D. (a+ 4) 9. 假定 AB 为一个类,则执行 "AB a( 的, b[ 町,叩[5J;" 语句时,自动调用该类构造函数 的次数为)。 A. 4 c. 6 B. 5 D. 14 10. 当需要对标准输入/输出设备进行输入/输出操作时,应在文件开始使用# include 处理命令,使之包含( )头文件。 A. iostream. h B. stdlib. h C. fstream. h D. strstrea. h 二、填空题(每小题 分,共 20 分) 1.假定 x=7 ,则表达式 x+ 十的值为 12. 用于输出表达式值的标准输出流对象是 13. 假定一维数组的定义为"int a[6J 户,则该数组所含元素的个数为 14. 假定 所指对象的值为 25 p+1 所指对象的值为 50 ,则执行"(祷 p) 十+ ;"语句后, 所指对象的值为 15. 当不需要函数返回任何值时,则应把该函数类型定义为 16. 在每个 十+程序中都必须包含有这样一个函数,该函数的函数名为 17. 假定一个枚举类型的定义为"enum RA{xa xb xc xd} 户,则 xc 的值为 18. 表达式 a=a+1 表示成增量表达式为 19. 假定一个结构类型的定义为 "struct A{double a , b; 川;",则该类型的大小为 字节。 20. 假定 是一个一维数组,则 a[iJ 的指针访问方式为 387
得分 评卷人 三、写出下列每个程序的运行结果(每小题6分,共36分) 21.#include #include double SD(int a,int b,char op){ double x; switch(op){ case+':x=double(a)+b;break; case'-':x=double(a)-b;break; case'*':x=double(a)*b;break; case'/'if(b)x=double(a)/b; else exit(1); break; default:exit(1); return x; } void main() intx=20,y=12; cout<<SD(x,y,'-')<<endl; 运行结果: 22.#include<iostream.h void main(){ ints1=0,s2=0: for(int i=0;i<10;++) if(i%2)s1+=i; else s2+=i; cout<<s1<<<<2<<endl; 运行结果: 388
三、写出下列每个程序的运行结果(每小题 分,共 36 分) 21. # include # include double SD(int a , int b , char op) { double X; switch(op) { case' +': x=double(a) b; break; case' 一, :x=double(a)-b;break; case' 头, :x=double(a) b;break; case' /' :ifC b) x=double(a)/b; else xit (l) ; break; fault:exit (l) ; return X; void main () { int x=20 ,y=12; cout void main() { int sl=O , s2=0; forCint i=0;i<10;i+ 十〉 if(i%Z) sl+=i; else s2+=i; cout<<sl<<' '<<s2<<endl; 运行结果: 388
23.#include void main(){ inta[10]=(12,39,26,41,55,63,72,40,83,95}; inti0=0,il=0,i2=0; for(int i=0;i int LA(int a],int n) int s=0; for(int i=0;i<n;++) s+=a[i]; return s; } void main(){ inta[4]={2,1,6,4}; int b=LA(a,4); cout<<"b="<<<<endl; } 运行结果: 389
23. # include void maínO { int a[10J = {12 , 39 , 26 ,41 ,55 , 63 , 72 ,40 ,83 , 95} ; int iO=O , i1=0 , i2=0; for(int í=0;i void mainO { ínt a[8J={4 ,8 , 12 , 16 ,20 , 24 ,28 ,32}; mt p= do { cout int LA(int 口, int n) { ínt s=O; for(ínt i=O;i<n;i+ 十) =a[iJ; return s; void mainO { 运行结果: int a[ 4J = {2 , 1 ,6 ,4} ; int b=LA(a ,4); cout<<飞="<<b< <endl; 389
26.include>ai]; for(i=n-l;i>=0;i--)cout void WA(int a[],int n){ for(int i=0;i<n-1;i++){ int k=i; for(int j=i+1;j<n;j++) if(aj]<a[k])k=j; int x=a[i];a[i]=a[k];a[k]=x; } 函数功能: 390
26. :# include class A { int a , b; public: AO {a=b=O;} A( int aa , int bb) { a=aa; b=bb; cout void LI(int n) { 函数功能 int a=new int[n] ,祷 p=a+n; for(int i=O;i >a[i]; for(i=n-l ;i>=O;i 一一) cout void WA(int 口, int n) { 函数功能: 390 for(int i=O ;i<n-l ;i++) { int k=i; for(int j =i ;j<n;j+ 十) if(a[jJ<a[kJ)k=j; ínt x=a[iJ; a[iJ=a[kJ; a[k]=x;
29.int LK(int a[],int n)( float s=0;int i; for(i=0;i=s)m++; return m; } 函数功能: 391
29. int LK(int 口, int n) { float s=O; int i; 画数功能= for(j=O;i=s) rn++; return rn; 391
试卷代号:1075 国家开放大学(中央广播电视大学)2014年秋季学期“开放本科”期末考试 C十十语言程序设计试题答案及评分标准 (供参考) 2015年1月 一、单选题(每小题2分,共20分) 1.D 2.D 3.D 4.D 5.A 6.D 7.A 8.C 9.C 10.A 二、填空题(每小题2分,共20分) 11.10 12.cout 13.6 14.26 15.void 16.main 17.2 18.++a 19.20 20.¥(a十i) 三、写出下列每个程序的运行结果(每小题6分,共36分) 21.8 22.2520 (答对一个给3分) 23.424 (答对一个给2分) 24.41628 (答对一个给2分) 25.b=13 26.35 (答对一个给3分) 392
试卷代号 :1075 圄家开放大学(中央广播电视大学 )2014 年秋季学期"开放本科"期末考试 十十语言程序设计 试题答案及评分标准 一、单选题{每小题 分,共 20 分) 1. D 6. D 2. D 7. A 二、填空题{每小题 分,共 20 分) 11. 10 12. cout 13. 6 14.26 15. void 16. main 17.2 18. 十十 19.20 20. (a+ i) (供参考) 3. D 4. D 8. C 9. C 三、写出下列每个程序的运行结果(每小题 分,共 36 分) 21. 8 22.25 20 (答对一个给 分) 23.4 2 4 (答对一个给 分) 24.4 16 28 答对一个给 分) 25. b=13 26. 3 5 (答对-个给 分) 392 2015 5. A 10. A
四、写出下列每个函数的功能(每小题8分,共24分)】 评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。 27.把从键盘上输入的n个整数按与输人的相反次序显示出来。 28.对数组a中的n个整数按照从小到大的次序重新排列。 29.求出数组a中大于等于平均值的元素个数并返回。 393
四、写出下列每个函数的功能(每小题 分,共 24 分) 评分标准:每题与参考答案的叙述含义相同者得 分,否则酌情给分。 27. 把从键盘上输入的 个整数按与输入的相反次序显示出来。 28. 对数组 中的 个整数按照从小到大的次序重新排列。 29. 求出数组 中大于等于平均值的元素个数并返回。 393