试卷代号:1075 座位号■ 中央广播电视大学2007一2008学年度第一学期“开放本科”期末考试 机械等专业C十十语言程序设计试题 2008年1月 题 号 二 三 四 五 总 分 分 数 得 分 评卷人 一、单选题(每小题2分,共20分)》 1.由C十十源程序文件编译而成的目标文件的缺省扩展名为()。 A.obj B.lik C.exe D.cpp 2.程序运行中需要从键盘上输人多于一个数据时,各数据之间应使用( )符号作为分 隔符。 A.空格或逗号 B.逗号或回车 C.逗号或分号 D.空格或回车 3.设x是一个bool型的逻辑量,y的值为10,则表达式x&&.y的值为()。 A.1 B.0 C.与x值相同 D).与×值相反 4.or语句能够被改写为( )语句。 A.复合 B.if C.switch D.while 5.在下面的do循环语句中,其循环体被执行的次数为()。 int i=0;doi;while(i*i<10); A.4 B.3 c.5 D.2 523
试卷代号 :1075 座位号〔工 口 中央广播电视大学2007-2008学年度第一学期“开放本科”期末考试 机械等专业 C-}+语言程序设计 试题 2008}} 1月 题 号 四 五 总 分 分 数 得 分 评卷人 一、单选题 (每小题 2分,共 20分 ) 由 C十十源程序文件编译而成的目标文件的缺省扩展名为( ohj ex e Iik cpp .程序运行中需要从键盘上输人多于一个数据时,各数据之间应使用 ( )符号作为分 隔符。 空格或逗号 逗号或分号 逗号或回车 空格或 回车 3.设x是一个bool型的逻辑量,Y的值为l0,则表达式xw.}-Y的值为( A.1 13. 0 C.与 X值相同 I).与 x值相反 4. for语句能够被改写为( )语句。 八.复合 B.if C. switch D. while 5.在下面的d。循环语句中,其循环体被执行的次数为( )。 int i= U;do i十一十一;while( i*i<'10); A.4 B. 3 C. S D.2 523
6.在下面的一维数组定义中,()语句有语法错误。 A.inta[]={l,2,3}; B.inta[10]={0}; C.int a[]; D.int a5]; 7.下面的( )保留字不能作为函数的返回类型。 A.void B.int C.new D.long 8.下面的函数声明中,( )是“void BC(inta,intb);”的重载函数。 A.int BC(int x,int y); B.void BC(int a,char b); C.float BC(int a,int b,int c=0); D.int BC(int a,int b=0); 9.当类中一个字符指针成员指向具有个字节的存储空间时,它所能存储字符串的最大 长度为()。 A.n B.n+1 C.n-1 D.n-2 10.假定AB为一个类,则该类的拷贝构造函数的声明语句为( A.AB&.(AB x); B.AB(AB x); C.AB(AB*x); D.AB(AB&); 得 分 评卷人 二、填空题(每小题2分,共20分) 1.执行“cout<<char('A’十3);”语句后得到的输出结果为 2.在C十+每个程序行的后面或单独一行的开始使用注释的标记符为 3.表达式float(25)/4的值为 4.关系表达式x+y>5的相反表达式为 5.假定一个二维数组的定义为“inta[3][6];”,则该数组含有 个元素。 6.执行“typedef int ABC[20];”语句把ABC定义为具有20个整型元素的 7.假定p所指对象的值为36,p十1所指对象的值为49,则+十p的值为 8.假定a是一个一维数组,则a[门的指针访问方式为 9.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构 造函数中的 实现。 10.当一个类对象离开它的作用域时,系统将自动调用该类的 524
6.在下面的一维数组定义 中,( )语句有语法错误 。 A. int a仁〕={1,2,3}; 13. int a[10]={0}; C. int a[]; D. int a仁5]; 7.下面的( )保留字不能作为函数的返回类型。 A.void B. int C. new D. long 8.下面的函数声明中,( )是“void BCGnt a, int b) ;”的重载函数。 A. int BC(int x, int y); C. float BC(int: a,int b,int c=0); B. void BC(int a, char b) D. int BC(int a, int b=0) 9.当类中一个字符指针成员指向具有 n个字节的存储空间时,它所能存储字符串的最大 长度为( )。 A. n B. n十1 C. n一 1 D. n- 2 10.假定 AB为一个类 ,则该类的拷贝构造函数的声明语句为( )。 A. A33乙(AB x); 13. Al3(Al3 x); C. AB(AB } x); D. AB(AB乙); 得 分 评卷人 二、填空题 (每小题 2分 ,共 20分 } 1.执行“cout+ char('A’十3);”语句后得到的输出结果为__ 。 2.在 C十+每个程序行的后面或单独一行的开始使用注释的标记符为 3.表达式 float(25)/4的值为 4.关系表达式 x-i- y} 5的相反表达式为 5.假定一个二维数组的定义为“int a [3][6];",则该数组含有 个元素。 6.执行“typedef int A13C [ 20 ] ;”语句把 A13C定义为具有 20个整型元素的 7.假定P所指对象的值为36,p}-1所指对象的值为49,则‘}- + P的值为_ 8.假定 a是一个一维数组,则 a[i]的指针访问方式为 9.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构 造函数中的 实现。 10.当一个类对象离开它的作用域时,系统将自动调用该类的 524
得分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.include<iostream.h> #include<stdlib.h> int SD(int a,int b,char op){ switch(op){ case'+':return a++b; case’-’:return a--b; default:{cout<<"操作符op出错,退出运行!”;exit(l);) } } void main() int x=20,y=6; cout<<SD(x,y,’+')<<’'<<SD(x,y,-)<<endl; 运行结果: 2.include<iostream.h> include<string.h> void main(){ char *a5]=("student","worker","cadre","soldier","apen"); char pl; pl=a[0]; for(int i=1;i<;++)( if(strcmp(a[i],p1)>0)p1=ai]; cout<<pl<<endl; } 运行结果: 525
得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题 6分,共 30 1.#include<iostream, h> #include<stdlih. h> int SD(int a, int b,char op){ switch(op){ case’+’:return a-I-b ca se return a一 b default; {cout<G},操作符op出错,退出运行!}};exit(1); void main(){ int x=20,y= 6; cout+ SD(x,y,’十’)<<” + SD(x,y,’一’)< <endl; } 运行结果 : 2.#include<iostream. h> #include<strin}, h> void main(){ char二a仁5]={”student“,“workerl ,“cadre“,‘,soldier, apen char p1= * p1; a[0]; for(int i=1;t<J;i十+){ if(strcmp(a[i],p1)>0) pl=a[i] coot<<pl+ endl 运行结 果 :
3.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; 运行结果: 4.include<iomanip.h const int n=9; void main(){ inta[n]={2,4,6,8,10,12,14,16,18}; int s=0; for(int i=0;i<n;i++){ if(i%3==0)s十=a[i门; } cout<<s="<<<<endl; 运行结果: 5.include<iomanip.h> void main(){ int d=new int[5]; int i; for(i=0;i<5;i++){ d[i]=2*i+1; cout<<d[i]<<’’: cout<<endl; delete]d; } 运行结果: 526
3.#include<iostream. h> int WF(int x, int y) x 二二 Y- x牛y; x十y; return x+y; void main() cout+ F(8,5)< <endl; 运行结果 : 4.#include<iomanip. h} const int n=9; void main<)( int a仁n]“{2,4,6,8,10,12,14,16,18} ints= 0; forGnt i二0; iC ; i+一+){ if(i0o3=二0 ) s-1-=a[i]; } Gout+ 0s="+ s+ endl; 运行结果 : 5.共include<iomanip, h> void main(){ int*d=new int仁J]; mt t; fore=0;i<};i+十){ d仁i〕二2‘i十1; cout+ d仁1]+ ’ } coutC < endl; delete仁]d; } 运行结果 526
得分 评卷人 四、写出下列每个函数的功能(每小题8分,共24分) 1.float FI(int n)( //n为大于等于1的整数 float x,y=0; do{ cin >>x; y十=x*x; while(--n>0); return y; 函数功能: 2.bool WE(int a],int b],int n)( for(int i=0;i<n;i++) if(a[i]!=b[i])break; if(i==n)return true;return false; } 函数功能: 3.void LK(int a],int n,int&.m)( float s=0; int i; for(i=0;i<n;i++)s+=ai]; s/=n; m=0: for(i=0;i<n;i++)if(ali]>=s)m++; 函数功能: 得 分 评卷人 五、按题目要求编写函数(6分)】 假定一个函数声明为“void AD(inta[],intn);",要求把数组a中的n个元素值按相反 的次序仍保存在数组a中。 527
得 分 评卷人 四、写出下列每个 函数的功能(每小题 8分 ,共 24分 ) 1. float FL(int n){ float x,y = 0 do{ 刀n为大于等于 1的整数 cin> > X; y+=x * x; }while(一一n}0); return y; } 函数功能 : 2. bool WE<int a[],int b[],int n){ for(int i=0;i<n;i }-+) if(a仁i]!=b[i])break; if(i= =n) return true;return false; } 函数功能 : 3. void LK(int a仁〕,int n, int邑m){ float s=0; m ti; for(i=0;iGn; i十+)s一+一 a[i]; s/=n; m=0; for(i=0;i<n; i-I-+)if (a[i]>=s ) m-1-+ } 函数功能 : 得 分 评卷人 五 、按题 目要求编写函数(6分) 假定一个函数声明为“void AD(int a[], int n);",要求把数组 a中的 n个元素值按相反 的次序仍保存在数组 a中。 527