试卷代号:1075 座位号口 中央广播电视大学2008一2009学年度第二学期“开放本科”期末考试 C十十语言程序设计试题 2009年7月 题 % 二 三 四 五 总分 分 数 得分 评卷人 一、单选题(每小题2分,共20分) 1.C十十可执行文件的默认扩展名为( )。 A.cpp B.exe C.obj D.lik 2.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分 隔符。 A.空格或逗号 B.逗号或回车 C.逗号或分号 D.空格或回车 3.在每个C十十程序中都必须包含有这样一个函数,该函数的函数名为( A.main B.MAIN C.name D.function 4.假定一个循环语句为“for(inti=O;i<n;i++)S;”,从循环头部可以看出,循环体S 语句将被执行( )次。 A.1 B.n-1 C.n D.n+1 5.假定a为一个短整型(short int)数组,则元素a[8]的地址比该数组的首地址大() 个字节。 A.4 B.8 C.16 D.32 532
试卷代号:1075 座位号口习 中央广播电视大学2008-2009学年度第二学期“开放本科”期末考试 C++语言程序设计 试题 2009年 7月 题 号 四 五 总 分 分 数 得 分 评卷人 一、单选题(每小题 2分,共 20分) 2 隔符。 .C++可执行文件的默认扩展名为( )。 A. cpp B. exe C. obj D. lik .程序运行中需要从键盘上输人多于一个数据时 ,各数据之间应使用 ( )符号作为分 A.空格或逗号 C.逗号或分号 B.逗号或回车 D.空格或回车 3.在每个 C十+程序 中都必须包含有这样一个函数 ,该函数的函数名为( )。 A. main B. MAIN C. name D. function 4.假定一个循环语句为“for(int i=0; i<n; i++) S;",从循环头部可以看出,循环体 S 语句将被执行( )次。 A. 1 B. n- 1 C. n D. n+ l 5.假定 a为一个短整型(short int)数组,则元素 a[8」的地址比该数组的首地址大( ) 个字节。 A. 4 C. 16 B. 8 D. 32 532
6.求一个字符串长度的标准函数为( A.strlen() B.strcap() C.streat() D.stremp() 7.若用数组名作为函数调用的实参,传递给对应形参的是该数组的()。 A.首地址 B.第一个元素的值 C.全部元素的值 D.所含元素的个数 8.假定a为一个数组名,则下面的( )表达式表示有语法错误。 A.a B.*a十+ C.*a D.*(a+1) 9.假定AB为一个类,则执行“ABa(4),b[4],*p[5];”语句时,自动调用该类构造函数 的次数为()。 A.4 B.5 C.8 D.13 l0.当需要对标准输入/输出设备进行输入/输出操作时,应在文件开始使用#include预 处理命令,使之包含( )头文件。 A.iostream.h B.stdlib.h C.fstream.h D.strstrea.h 得分 评卷人 二、填空题(每小题2分,共20分) 1.十进制数30表示成符合C++语言规则的十六进制数为 2.假定一个枚举类型的定义为“enum RB{ab,ac,ad,ae},”,则枚举常量ad的值为 3.假定y=8,则执行y+十4运算后,y的值为 4.算术表达式十+1对应的C++表达式为 2xy 5.关系表达式x<5的相反表达式为 6.假定整数变量×=35,则a/12的运算结果为 7.假定一个二维数组的定义语句为“inta[3][4];”,则该数组包含有 个整型元素。 8.函数被调用时,实参向形参的传送分为引用传送和 传送两种方式。 533
6.求一个字符串长度的标准函数为( )。 A. strlen<) B. strcap() C. strcat() D. strcmp() 7.若用数组名作为函数调用的实参,传递给对应形参的是该数组的( A.首地址 B.第一个元素的值 C.全部元素的值 D,所含元素的个数 8.假定 a为一个数组名,则下面的( )表达式表示有语法错误 。 A. a[i] B.*a++ C. ,a D. * (a+ 1) 9.假定 的次数为( AB为一个类,则执行“AB a(4), b[4], * p[5];”语句时,自动调用该类构造函数 A. 4 C. 8 B. 5 D. 13 10.当需要对标准输人/输出设备进行输入/输出操作时,应在文件开始使用 #include预 处理命令 ,使之包含 ( )头文件。 A. iostream. h B. stdlib. h C. fstrearn. h D. strstrea. h 得 分 评卷人 二、填空题 (每小题 2分 ,共 20分) 1.十进制数30表示成符合C++语言规则的十六进制数为_ 。 2.假定一个枚举类型的定义为“enum RB { ab, ac, ad, ae) ;",则枚举常量 ad的值为 3.假定y=8,则执行Y十+*4运算后,Y的值为_ 。 ,二t ,1. -4} x十y.,、 *‘ 。,,*、、、 住·异J刁、衣 ]L 2A,不丫了丫 丫 t h'1 JjIL Cf`J k-,丁 下 W I^- VW IN 乙工 y 5.关系表达式 x<5的相反表达式为 6.假定整数变量x=35,则a/12的运算结果为_ 。 7.假定一个二维数组的定义语句为“int a[3][4];",则该数组包含有_ 个整型元素。 8.函数被调用时,实参向形参的传送分为引用传送和_ 传送两种方式。 533
9.假定一个结构类型的定义为"struct B{inta[5];char*b;};",则该类型的大小为 字节。 10.在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的 使其初始化。 得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.include<iostream.h> void main(){ int n=4,y=1; while(n--)y*=3; cout<<"y="<<y<<endl; 运行结果: 2.include<iostream.h> void main(){ inta[8]={2,8,10,5,12,7,9,20}; int c=0,i=0; while(i<8){ if(a[i]<10)c++: i++; cout<<"c="<<<<endl; } 运行结果: 3.#include<iomanip.h> void main()( inta[5]={3,6,9,12,8}; for(int p=a;p<a+5;p++) if(*p>10)cout<<*p<<endl; } 运行结果: 534
9.假定一个结构类型的定义为”struct B{int a[5]; char* b;};",则该类型的大小为 字节 。 10.在定义类对象的语句执行时,系统在建立每个对象的过程中将 自动调用该类的 使其初始化 。 得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题 6分,共30分) 1.#include<iostream. h> void main(){ int n=4,y=1; while(n一一)y*=3; cout< "y="< y< endl; } 运行结果 : 2.#include<iostream. h> void main(){ int a[8]“{2,8,10,5,12,7,9,20); int c=0,i=0; while(i<8 ){ if (a仁i]<10) c++; i++ ; } cout< "c= "+ c< endl; } 运行结果 : 3.#include<iomanip. h> void main(){ int a[5]={3,6,9,12,8}; for(int * p=a; p<a+5;P++) if,p>10) cout< * p< endl; } 运行结果 : 534
4.include<iomanip.h> int LA(int a],int n) int s=0; for(int i=0;i<n;i++) s十=a[i]; return s; } void main(){ inta[5]=(5,2,8,6,4}; int b=LA(a,5); cout<<"b="<<<<endl; } 运行结果: 5.#include<iomanip.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>=4o)cout<<a[i门.aa<<''; cout<<endl; } 运行结果: 得分 评卷人 四、写出下列每个函数的功能(每小题8分,共24分) 1.int SA(int a,int b){ if(a>b)return 1; else if(a==b)return 0; else return-1; } 函数功能: 535
4.#include<iomanip. h> int LA(int a[],int n){ int s= 0; for(int i=0;i<n;i十 十) 5+二a仁1〕 return s; } void main() int a[5]“X5,2,8,6,4}; int b=LA(a,5); cout< "b="+ b< endl; } 运行结果 : 5.#include<iomanip. h> struct AB{ char as[15]; intbb; }; void main(){ AB a[4]={{"Apple",25),{"Peach",40),{"Pear",36),("Tomato",62)}; for(int i=0;i< 4;i+ +) if (a仁i]. bb>一40) cout< a[i]. aa+ ' '; cout< < endl ; } 运行结果 : 得 分 评卷人 四、写出下列每个函数的功能(每小题 8分,共 24分 ) 1. int SA(int a, int b){ if(a>b) return 1; else if (a==b) return 0; else return一1; } 函数功能 : 535
2.int.LK(int a],int n){ float s=0;int i; for(i=0;i<n;i++)s+=a[i]; s/=n; int m=0; for(i=0;i<n;i++)if(a[i]>=s)m++; return m; } 函数功能: 3.int WD(int a],int n){ int m=a[0]; for(int i=1;i<n;i++) if(a[i]>m)m=a[i]; return m; 函数功能: 得分 评卷人 五、按题目要求编写函数(6分)】 假定一个函数声明为“int Sum(intn);”,要求计算并返回12+22十..+n2的值。 536
2. int"LK(int a[],int n){ float s=0;int i; for(i=O;i<n;i++)s+=a[i]; m = 0 s/= int for(i=0;i<n; i++)if(a[i]>=s) m++; return m ; } 函数功能 : 3. int WD(int a[],int n){ int m=a[0]; for(int i=1;i<n; i++) if(a[i]>m) m=a[i]; return m ; } 函数功能 : 得 .分 评卷人 五、按题 目要求编写函数 (6分) 假定一个函数声明为,"int Sum(int n) ;",要求计算并返回1Z+22+. .. +n'的值。 536