1、电大c++形考册及答案 教育部人才培养模式 改革和开放教育试点 C++语言程序设计形成性考核册 学校名称: 学生姓名: 学生学号: 班 级: 中央广播电视大学出版社 姓 名: 学 号: 得 分: 教师签名:
2、
C++语言程序设计作业1
一、填空题
1.C++语言中的每条基本语句以____;_______作为结束符,每条复合语句以____}______作为结束符。
2.用于输出表达式值的标准输出流对象是____cout_______,用于从键盘上为变量输入值的标准输入流对象是_______cin_____________。
3.当不需要函数返回任何值时,则应把该函数类型定义为________void_______。
4.执行”cout<<143<<‘+’<<18<<‘=‘<<143+18< 3、61_________________。
5.执行”cout<<“nign”<<“chen”<<38< 4、空格___或__回车___符号作为分隔符。
9.十进制数25表示成符合C++语言规则的八进制和十六进制数分别为___031______ 和_____ox19______。
10.在C++语言中,用转义字符序列____\n_______或操纵符_endl________表示输出一个换行符。
11.执行”Cout< 5、t x=‘H’+5;”语句后x的值为____77_____。
14.已知’A’~’Z’的Ascll码为65~90,当执行”char ch=16*5+2; cout< 6、r、short和int类型的大小分别为___1B______、_2B____和____4B___。
18.float和double类型的大小分别为_____4B________和____8B__________。
19.十进制数128和-3.26的类型分别为____int_______和___flaot________。
20.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字_#define__。
21.使用const语句定义一个标识符常量时,则必须对它同时进行__初始化___。
22.执行”int x=45,y=16;cout< 7、‘< 8、a++或++a_____。
29.增量表达式++y表示成赋值表达式为___y=y+1或y+=1___。
30.关系表达式(x==0)的等价表达式为_____x!=1__________。
31.关系表达式(x!=0)的等价表达式为__x=1__。
32.关系表达式x+y>z的相反表达式为_____x+y!>Z或_x+y<=Z____。
33.逻辑表达式x>5&&x<10的相反表达式为____x<=5 || x>=10___。
34.逻辑表达式a>b|| b==5的相反表达式为____a<=b &&b!=5______。
35.若x=15,y=40,则 x>y 和 x<=y的逻 9、辑值分别为____0______和__1___。
36.假定x=5,则执行”a=(x? 10: 4*2);”语句后a的值为___10__。
37.假定a=5,则条件表达式”a==0 ? 10:20”的值为____20___。
38;执行”typedef int DataType;”语句后,在使用int定义整型变量的地方都可以使
用 DataType 来定义整型变量。
39.设x和y均为bool量,则x&&y为真的条件是_xture,yture____。
40.设x和y均为bool量,则x|| y为假的条件是_xfalse,yfalse___。
二、写出下列程序运行后的 10、输出结果
1.# include 11、 good!Pass!Bad!Well!
}
}
void main(){
char a1=‘b’,a2=‘C’,a3=‘f’;
SB(a1);SB(a2);SB(a3);SB(‘A’);
cout< 12、uble(a)+b; break;
case ‘-’: x=double(a)-b; break; 8 240 3.2
case ‘*’: x=doubel(a)*b; break;
case ‘/’: if(b) x=double(a)/b;
else exit(1); break;
default:exit(1);}
return x;}
void main( ){
int x=20,y=12;
cout< 13、y,’-’)<<‘ ‘;
cout< 14、
for(int i=1;i++){
if(s>50)break;
if(i%3==0)s+=i;
cout<<“i,s=”<
void main() {
int s1=0,s2=0;
for(int i=0; i<10;i++)
if(i%2) s1+=i;
else s2+=i;
15、 cout< 16、h>
int SA(int a,int b) {
if(a>b) return 1;
else if(a==b) return 0; 返回值 1 a>b
else return -1; 0 a=b
} -1 a=b&&a>=c) return a;
17、 if(b>=a&&b>=c) return b;
if(c>=a&&c>=b) return c;
} 返回值int a,b,c中最大值
3. int SE(int n) {
//n为大于等于1的整数
int x; cin>>x; if(n==1) return x;
int m=x; 输入x当n=1返回地址x
while(--n){ 否 18、则求输入x值之和放到m中并
cin>>x; m+=x; 返回m处
}
return m ;
}
4. double SF(double x,ini n) {
//n为大于等于0的整数
double p=1,s=1;
for(int i=1;i<=n;i++){
p*=X;
s+=p/(i+1);
}
return s; S=1+ 19、x/2+x*x/2+x*x*x/3+…xn/n+1
}
5. # include 20、 }
6. float FH() {
float x, y=0, n=0;
cin>>x;
while(x!=-100){ 输入n个实数计算它的平均值以-100作结束
n++; y+=x;
cin>>x;
}
if(n==0) return y; else return y/n;
}
姓 名:
学 号:
得 分:
教师签 21、名:
C++语言程序设计作业2
一、填空题
1.假定一个一维数组的定义为”char *a[5];”,则该数组所含元素的个数为____5___ 所占存储空间的字节数为____5____.
2.假定一个二维数组的定义为”int a[4][6];”,则该数组所含元素的个数为___24_____, 所占存储空间的字节数为____96______ 。
3.假定一个二维数组的定义为”char a[8][8];”,则该数组所含元素的个数为_ 64_____,所占存储空间的字节数为__64_______。
4. 执行”typdef float ABC[10]; 22、语句把ABC定义为具有10个单精度元素的__数组____。
5. 在函数外定义的变量称为___全局_ __变量,若没有被初始化则系统隐含对它赋初值0__。
6.函数中的形参变量的初值由 调用函数调用 该函数时获得。
7.函数调用时,实参向形参的传送分为_传值__ 和_传址___两种传送方式。
8. 变量分为全局和局部两种, 局部 _变量没有赋初值时,其值是不确定的。
二、给出下列程序运行后的输出结果
1.# include 23、95};
int i0=0,i1=0,i2=0;
for(int i=0;i<10; i++)
switch (a[i]%3) {
case 0:i0++; break;
case 1: i1++; break;
case 2:i2++; }
cout< 24、
void main( ) {
char a[5]={ “student”,”worker”,”cadre”,”apple”,”peasant” } ;
char *pl,*p2;
pl=p2=a[0];
for(int i=0;i<5;i++) {
if(strcmp(a[i],pl)>0) pl=a[i];
if(strcmp(a[i],p2)<0) p2=a[i];
}
cout< 25、 }
3 . # include 26、 # include 27、 28、
i++;
}
for(i=0;i<5;i++) cout<
void main() {
int a[10]={76,83,54,62,40,75,80,92,77,84};
int b[4]={60,70,90,101};
int c[4]={0};
for(int i=0 29、i<10;i++) {
int j=0;
while(a[i]>=b[j]) j++;
c[j]++;
}
for(i=0; i<4; i++) cout< 30、4,10,3,4}};
int m=a[0][0];
int ii=0,jj=0;
for(int i=0;i<3;i++ )
for(int j=0;j<4;j++ )
if(a[i][j]>m) {m=a[i][j]; ii=i; jj=j; }
cout< 31、 main(){
int a=10,b=20;
cout< 32、{
int c=0;
for(int i=0;i 33、x=a[i]; a[i]=a[k]; a[k]=x;
}
}
3.# include 34、pe a[],int n){
Type m=a[0];
for(int i=0; i 35、
学 号:
得 分:
教师签名:
C++语言程序设计作业3
一、填空题
1.假定P所指对象的值为28,p+1所指对象的值为62,则*p++的值为__28___。
2.假定p所指对象的值为28,P+l所指对象的值为62,则*++p的值为__62__。
3.假定p所指对象值为25,p+l所指对象的值为50,则执行”(*p)++;”语句后,p所指对象的值为_25___。
4.假定p所指对象的值为25,p+1所指对象的值为50,则执行” *(p++);”语 36、句后,p所指对象的值为_50__。
5.假定a是一个指针数组,则a+i所指对象的地址比a地址大_i*sizeof(a[0])_ 字节。
6.假定a是一个一维数组,则a[i]的指针访问方式为____*(a+i)_ _。
7.假定a是一个二维数组,则a[i][j]的指针访问方式为___*(a[i]+j)___。
8.假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为 &a[0]+i*sizeof(a[0][0])_。
9.假定一个二维数组为a[M][N],则a[i][j]对应的存储地址(以字节为单位)为_&a+(i*4j)*sizeof(a[0][0])。
10.假定一 37、个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为&a[0][0]+(i*aj)*sizeof(a[0][0])。
11.假定p是一个指向float型数据的指针,则p+l所指数据的地址比p所指数据的地址大4_字节。
12.假定a为一个字符数组名,则元素a[8]的字节地址为_&a+8_。
13.假定a为一个整型数组名,则元素a[4]的字节地址为__&a+16___。
14.假定一个结构类型的定义为”struct A {int a,b;short c; A * d;};”,则该类型的大小为10_字节。(A * d含义:允许用A的指针类型。指针占4字节)
15.假定一个结构类 38、型的定义为”struct B {int a[8];char *b;”,则该类型的大小为36节。
16.假定一个结构类型的定义为”struct D { int a ; union { int b;double c;}
D*d[3];};” 则该类型的大小为__12 _字节。
17.假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为_worker*r=new(worker[n]_。
18.假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为_&a 对象。
19.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方 39、法为 _ p b 对象。
二、给出下列程序运行后的输出结果
1.# include 40、 3 8 15 17
}
2.# inelude 41、 15 7 20
} 20 7 15 6 3
3.# include 42、 include 43、){
int s=0;
for(int i=0; i 44、nt a,int b){
int x=a;
a=b;b=X;
cout<
void LF(int &x,int y){
X=X+y ;
y=X+ 45、y;
cout<<“x=“< 46、 void LG(int * & a,int & m) {
a= new int[m] ;
int * p=a;
for(int i=0; i 47、 1 3 5 7 9
}
9 . # include 48、 d[i]=2*i+3;
cout< 49、ream.h>
struct Worker {
char name[15] ;
int age;
float pay;
};
void main( ) {
Worker x= {“weirong’, 55 , 640 }; weirong 55 640
Worker y, *p; weirong 60 630
y=x; p=&x;
cout<< 50、y.name<< ‘ ‘ <
void main(){
int s=0;






