试卷代号:1075 座位号■■ 国家开放大学(中央广播电视大学)2014年春季学期“开放本科”期末考试 C十十语言程序设计 试题 2014年7月 题 号 二 三 四 总 分 分 数 得分 评卷人 一、单选题(每小题2分,共20分)》 1.循环体至少被执行一次的语句为( )语句。 A.for循环 B.while循环 C.do循环 D.任一种循环 2.假定a为一个整型数组名,则元素a[4]与()的表示等价。 A.a+4 B.¥a十4 C.*(a+4) D.¥(a+16) 3.由C十十源程序文件编译而成的目标文件的缺省扩展名为()。 A.obj B.lik C.exe D.cpp 4.在下面的一维数组定义中,()语句有语法错误。 A.inta[]={1,2,3}; B.inta[10]={0}; C.int a] D.int a5]; 5.程序运行中需要从键盘上输人多于一个数据时,各数据之间应使用( )符号作为分 隔符。 A.空格或逗号 B.逗号或回车 C.逗号或分号 D.空格或回车 6.设x是一个bool型的逻辑量,y的值为10,则表达式x&&y的值为()。 A.1 B.0 C.与x值相同 D.与x值相反 391
试卷代号 7 5 座位号仁口 国家开放大学(中央广播电视大学 2 0 4年春季学期"开放本科"期末考试 c++ 设计 2014 年7 |题号|一|二|三|四|总分| |分数 I I I I I |得分|评卷人| 一、单选题{每小题 2分,共 0分) I I I 1.循环体至少被执行一次的语句为( )语句。 A. for B. while C. do 环D.任一种 2. 定a 为 数组 素a[4] )的表示等价。 A. a+4 c. B.铃 D. 3. 由C 源程序 )。 A. obj C. exe 4. 在下 维数组定 ( A. int a[]={1 ,2, 3}; C. int a[]; B. lik D. cpp )语句有语法错误。 B. int a[10]= {O}; D. int a[5]; 5. 程序运行 需要从键盘上输入 数据 )符号作为分 隔符。 A. 号B. 号或 c. 逗号 6. 设x 个bool 辑量 ,y 为10 式x&&y )。 ~1 B. O c. D. 391
7.若函数声明为double*function(),则该函数的返回值为( )。 A.实数型 B.实数指针型 C.函数指针型 D.数组型 8.假定变量m定义为“intm=7,”,则定义变量p的正确语句为( )。 A.int p=&m; B.int¥p=&m; C.int &p=*m; D.int p=m; 9.假定AB为一个类,p为指向该类动态对象数组的指针,该数组长度为n,则执行 一“delete[☐p;”语句时,自动调用该类析构函数的次数为()。 A.1 B.n C.n-1 D.n+1 l0.当需要使用ifstream流类定义一个流对象并联系一个磁盘文件时,应在文件开始使 用#include命令,使之包含( )头文件。 A.strstrea.h B.stdlib.h C.iostream.h D.fstream.h 得 分 评卷人 二、填空题(每小题2分,共20分) ll.假定一个枚举类型的定义为“enum RA{ab,ac,ad,ae};”,则ac的值为 12.若x=5,y=15,则×>y的逻辑值为 13.假定x=10,则表达式2+x十+的值为 14.假定一个-一维数组的定义为“char a[8];”,则该数组所占用存储空间的字节数为 l5.设p指向一个类的动态分配的对象,则执行“delete p;”语句时,将自动调用该类的 16.执行“cout<<char('A’+4);”语句后得到的输出结果为 17.在C十+每个程序行的后面或单独一行的开始使用注释的标记符为 l8.假定个结构类型的定义为“struct A{double a,b;Ac;};”,则该类型占用的存储空 间的大小为」 字节。 19.假定一个二维数组的定义为“inta[3][6];”,则该数组含有 个元素。 20.在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的 使其初始化。 392
7. 数声 为double 祷functionO )。 A.实数型 .实数指针型 C. 型D.数组 8. 量m 定义为"intm=7;" 量p 句为 )。 A. int p=&m; c. int &p= 提m; B. int 铃p=&m; D. int 祷p=m; 9. 定AB 类 动 态 对 象 数 长 度 []p ; "语句时,自动调用该类析构函数的次数为( )。 A. 1 a n C. n-l D. n+l 10. 需要 用ifstream 象并联 个磁盘 文件 用:1* include 使之包含 )头文件。 A. strstrea. h B. stdlib. h C. iostream. h D. fstream. h |得分|评卷人| 每小题 2分,共 0分} I I I 1 1. 定一个枚举类 为"enum RA{ab ,ad ,ae} 则ac 12. 若x=5 ,y=15 则x>y 的 辑值 13. 定x=10 式2+x++ 14. 定一 一维数组 [ 8 ] 该数 存储 15. 设p 动 态 行"delete pz" 该类 16. 行"cout«char(' A'+ 句后 17. + + 个程 后面 独一 开始 用注 标记符 18. 构类 定义为"struct A{double ,b;A*c;} 间的大小为字节。 19. 定一 维数组 定义为"int a[3][6];" ,则该数组含有-一一一个元素。 20. 对 象 行 时 对 象 调 用 使其初始化。 392
得分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共36分) 21.include<iostream.h> int WF(int x,int y)( x=x十y; y=x十y; return x+y; void main(){ cout<<WF(8,5)<<endl; } 运行结果: 22.include<iostream.h void main(){ inta[6]={36,25,48,14,55,40} int bl=a[o]; for(int i=1;i<6;i++) if(a[i订>bl)bl=a[i]; cout<<"bl="<<bl<<endl; 运行结果: 23.include<iostream.h> void main() inta[9]={3,5,7,9,11,13,15,17,25}: int *p=a; for(int i=0;i<9;i++) if(i+1)%3==0)cout<<¥(p+i)<<’’; cout<<endl; 运行结果: 393
|得分|评卷人| I I I 三、写出下列每个程序运行后的输出结果{每小题 3 6 21. *I: include<iostream. h> int WF<int x ,int y) { x=x+y; y=x+y; return x+y; } void mainO { cout<<WF(8 ,5)< <endl; 运行结果 22. *I: include<iostream. h> void mainO { int a[6] = {36 ,25,48, 14 ,55,40 }; int hI =a[O]; for <int i=I ;i<6;i++) if<a[i]>hl) hI =a[i]; cout<<"hI = "<<hI< <endl; 运行结果 23. *I: include<iostream. h> void mainO { int a[9]= {3 5汀, 9, I, 3, 5, 7, mt *p=a; for <int i=0;i<9;i++) if< <i+ l) %3= =0) cout<<善 i) '; cout<<endl; 运行结果 393
24.#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=a[i]j]; cout<<m<<endl; 运行结果: 25.include<iostream.h> include<string.h> void main() char *a5]=("student","worker","cadre","soldier","apen"); unsigned int n=strlen(a[O]); for(int i=1;i<5;i++){ if(strlen(a[i])>n)n=strlen(a[i]); cout<<n<<endl; } 运行结果: 26.#include<iostream.h> struct AB( char aa[15]; int bb; }; void main(){ ABa[4]={"Apple'",25},{"Peach",40},{"Pear",36},{"Tomato",62}; for(int i=0;i<4;i++) if(a[i].bb<35)cout<<a[i].aa<<’’; cout<<endl; 运行结果: 394
24. :1* include<iostream. h> void mainO { int a[3J[4J = {{l, 2 ,7 ;8} ,{ ,6 11 ,20 ,3 ; int m=a[OJ[O for (int i=O;i<3;i++) for (int j=O;j<4;j++) i£<a[iJ[jJ>m) m=a[iJ[jJ; cout«m«endl; 运行结果 25. :1* include<iostream. h> :1* include<string. h> void mainO { char 铸a[5叼J={"飞'studen旧t unsigned in旧It n=st仕rlen(a[O叫J); for叫(i阳nt ρi+ { if(strlen(a[i]»n) n=strlen(a[iJ); cout«n«endl; 运行结果 26. :1* include<iostream. h> struct AB { char aa[l5J ; int bb; void main () { AB a[4J= {{"Apple" 2日,{ "Peach" , 40}, {"Pear" , 36}, {"Tomato" , 62}}; fdr (int i=O;i<4;i++) i£<a[i]. bb<35) cout«a[i]. aa«' '; cout<<endl; 运行结果: 394
得分 评卷人 四、写出下列每个函数的功能(每小题8分,共24分) 27.int Fun(int a[],int n){ double s=0; int i,m=0; for(i=0;i<n;i++)s+=ati]; s=s/n; for(i=0;i<n;i++)if(a[i]>=s)m++; return m; 函数功能: 28.int WG(int a,int b){ if(a>0&&b>0)return 1; else if(a<o &b<0)return -1; else return 0; } 函数功能: 29.假定结构类型DNode中的data域为结点值域,next域为结点指针域,f指向单链表 的表头结点。 void QB(DNode f) if(f==NULL)return; while(f!=NULL){ cout<f->data<<’’; f=f->next; } 函数功能: 395
|得分|评卷人 I I I 四、写出下列每个函数的功能{每小题 27. int FunOnt ,int n) { double s=O; int i,m=O; forO=O;i<n;i++) s+ =a[i]; 8=s/n; forO=O;i<n;i++) iHa[iJ>=s) m++; return m; 函数功能 28. int WGOnt a , int b) { if( a>O &. &. b>O)return 1; else if(a<O &.&. b<O)return 一1 ; else return 0; 函数功能 29. 结构 型DNode 的data ,next 点 指 针域 的表头结点。 void QB(DNode f) if(f= =NULL) return; while(f! =NULL) { cout<<f->data<<' '; f=f一>next; 函数功能: 395