电大C++语言程序设计形考册_第1页
电大C++语言程序设计形考册_第2页
电大C++语言程序设计形考册_第3页
电大C++语言程序设计形考册_第4页
电大C++语言程序设计形考册_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专业好文档c+语言程序设计课程作业与评价中央电大计算机教研室第一次作业练习一、填空题 1c+语言中的每条基本语句以_作为结束符,每条复合语句以_作为结束符。 2. 用于输出表达式值的标准输出流对象是_,用于从键盘上为变量输入值的标准输入流对象是_。 3. 当不需要函数返回任何值时,则应把该函数类型定义为_。 4. 执行“cout143+18=143+18endl;”语句后得到的输出结果为_。 5. 执行“cout“ning”“chen ”38endl;”语句后得到的输出结果为_。 6在每个c+程序中都必须包含有这样一个函数,该函数的函数名为_。 7c+源程序文件的缺省扩展名为_,由c+源程序文

2、件编译而成的目标文件的缺省扩展名为_,由c+目标文件连接而成的可执行文件的缺省扩展名为_。 8. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用_或_符号作为分隔符。 9十进制数25表示成符合c+语言规则的八进制和十六进制数分别为_和_。 10. 在c+语言中,用转义字符序列_或操纵符_表示输出一个换行符。 11执行“coutchar(b+2)endl;”语句后得到的输出结果为_。 12. 执行“coutchar(k-3)endl;”语句后得到的输出结果为_。 13. 已知az的ascii码为6590,当执行“int x=h+5;”语句后x的值为_。 14已知az的ascii码为6

3、590,当执行“char ch=16*5+2;coutchendl;”语句序列后,得到的输出结果为_。 15.假定一个枚举类型的定义为“enum raxa,xb,xc,xd;”,则执行“coutxc=xcendl;”语句得到的输出结果为_。 16假定一个枚举类型的定义为“enum rbab,ac=3,ad,aex=ad;”,则x的值为_。 17char、short和int类型的大小分别为_、_和_。 18float和double类型的大小分别为_和_。 19. 十进制数128和-3.26的类型分别为_和_。 20. 若需要定义一个标识符常量,并且使c+能够进行类型检查,则应在定义语句的开始使用

4、保留字_。 21. 使用const语句定义一个标识符常量时,则必须对它同时进行_。 22. 执行“int x=45,y=16;coutx/y x%yz的相反表达式为_。 33. 逻辑表达式x5 & xb | b=5的相反表达式为_。 35若x=15,y=40,则xy和x=y的逻辑值分别为_和_。 36. 假定x=5,则执行“a=(x?10:4*2);”语句后a的值为_。 37假定a=5,则条件表达式“a=0?10:20”的值为_。 38. 执行“typedef int datatype;”语句后,在使用int定义整型变量的地方都可以使用_来定义整型变量。 39设x和y均为bool量,则x &

5、y为真的条件是_。 40设x和y均为bool量,则x | y为假的条件是_。 二、写出下列程序运行后的输出结果 1. #include void sb(char ch) switch(ch) case a: case a: coutwell!;break; case b: case b: coutgood!;break; case c: case c: coutpass!;break; default: coutbad!;break; void main() char a1=b,a2=c,a3=f; sb(a1);sb(a2);sb(a3);sb(a); coutendl; 运行结果: 2.

6、#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() int x=20,y=12; coutsd(x,y,-) ; coutsd(x,y,*) ; cout

7、sd(x+y,y-2,/)endl; 运行结果: 3. #include void main() int s=0; for(int i=1;i6;i+) s+=i*i; couts=sendl; 运行结果: 4. #include void main() int s=0; for(int i=1;i+) if(s50) break; if(i%3=0) s+=i; couti,s=i,sendl; 运行结果: 5. #include void main() int s1=0, s2=0; for(int i=0;i10;i+) if(i%2) s1+=i; else s2+=i; couts1

8、 s2endl; 运行结果: 6. #include void main() int n=10,y=1; while(n-) y+;+y; couty*y=y*yendl; 运行结果:三、写出下列每个函数的功能 1. #include int sa(int a, int b) if(ab) return 1; else if(a=b) return 0; else return -1; 函数功能: 2. int sc(int a, int b, int c) if(a=b & a=c) return a; if(b=a & b=c) return b; if(c=a & c=b) return

9、 c; 函数功能: 3. int se(int n) /n为大于等于1的整数 int x; cinx; if(n=1) return x; int m=x; while(-n) cinx; m+=x; return m; 函数功能: 4. double sf(double x, int n) /n为大于等于0的整数 double p=1,s=1; for(int i=1;i=n;i+) p*=x; s+=p/(i+1); return s; 函数功能: 5. #include bool sg(int x) /x为大于等于2的整数 int a=int(sqrt(x); /取x的平方根 int i

10、=2; while(i=a) if(x%i=0) break; i+; if(ix; while(x!=-100) n+; y+=x; cinx; if(n=0) return y; else return y/n; 函数功能:第二次作业练习一、填空题 1假定一个一维数组的定义为“char* a5;”,则该数组所含元素的个数为_,所占存储空间的字节数为_。 2. 假定一个二维数组的定义为“int a46;”,则该数组所含元素的个数为_,所占存储空间的字节数为_。 3. 假定一个二维数组的定义为“char a88;”,则该数组所含元素的个数为_,所占存储空间的字节数为_。 4. 执行“typed

11、ef float abc10;”语句把abc定义为具有10个单精度元素的_。 5. 在函数外定义的变量称为_变量,若没有被初始化则系统隐含对它赋初值_。 6函数中的形参变量的初值由_该函数时获得。 7函数调用时,实参向形参的传送分为_和_两种传送方式。 8变量分为全局和局部两种,_变量没有赋初值时,其值是不确定的。二、给出下列程序运行后的输出结果 1. #include void main() int a10=12,39,26,41,55,63,72,40,83,95; int i0=0, i1=0, i2=0; for(int i=0;i10;i+) switch(ai%3) case 0:

12、 i0+; break; case 1: i1+; break; case 2: i2+; couti0 i1 i2endl; 运行结果: 2. #include #include void main() char* a5=student,worker,cadre,apple,peasant; char *p1, *p2; p1=p2=a0; for(int i=0;i0) p1=ai; if(strcmp(ai, p2)0) p2=ai; coutp1 p2endl; 运行结果: 3. #include void main() int a8=36,73,48,14,55,40,32,66;

13、int b1, b2; b1=b2=a0; for(int i=1;ib1) if(b1b2) b2=b1; b1=ai; coutb1 b2endl; 运行结果: 4. #include void main() char a=aabcdaabacabfgacd; int i1=0, i2=0, i=0; while(ai) if(ai=a) i1+; if(ai=b) i2+; i+; couti1 i2endl; 运行结果: 5. #include void main() char a=abcdabcabdaeaf; int b5=0, i=0; while(ai) switch(ai)

14、case a: b0+;break; case b: b1+;break; case c: b2+;break; case d: b3+;break; default: b4+; i+; for(i=0;i5;i+) coutbi ; coutendl; 运行结果: 6. #include void main() int a10=76,83,54,62,40,75,80,92,77,84; int b4=60,70,90,101; int c4=0; for(int i=0;i=bj) j+; cj+; for(i=0;i4;i+) coutci ; coutendl; 运行结果: 7. #i

15、nclude void main() int a34=1,2,7,8,5,6,11,12,24,10,3,4; int m=a00; int ii=0, jj=0; for(int i=0;i3;i+) for(int j=0;jm) m=aij; ii=i; jj=j; coutii jj aiijjendl; 运行结果: 8. #include void main() int a=10, b=20; couta bendl; a*=4; int b=a+35; couta bendl; couta bendl; 运行结果:三、写出下列每个函数的功能 1. int wc(int a, int

16、 n, int k) int c=0; for(int i=0;i=k) c+; return c; 函数功能: 2. #include void wa(int a, int n) for(int i=0;in-1;i+) int k=i; for(int j=i+1;jn;j+) if(ajak) k=j; int x=ai; ai=ak; ak=x; 函数功能: 3. #include template int wg(tt a, tt b) if(ab) return 1; else if(a=b) return 0; else return -1; 函数功能: 4. #include t

17、emplate type wd(type a, int n) type m=a0; for(int i=0;im) m=ai; return m; 函数功能: 5. template void we(type a, type b, int n) for(int i=0;in;i+) bi=ai*2; 函数功能:第三次作业练习一、填空题 1假定p所指对象的值为28,p+1所指对象的值为62,则*p+的值为_。 2假定p所指对象的值为28,p+1所指对象的值为62,则*+p的值为_。 3. 假定p所指对象的值为25,p+1所指对象的值为50,则执行“(*p)+;”语句后,p所指对象的值为_。 4假

18、定p所指对象的值为25,p+1所指对象的值为50,则执行“*(p+);”语句后,p所指对象的值为_。 5假定a是一个指针数组,则a+i所指对象的地址比a地址大_字节。 6. 假定a是一个一维数组,则ai的指针访问方式为_。 7. 假定a是一个二维数组,则aij的指针访问方式为_。 8. 假定a是一个一维数组,则ai对应的存储地址(以字节为单位)为_。 9. 假定一个二维数组为amn,则aij对应的存储地址(以字节为单位)为_。 10. 假定一个二维数组为amn,则ai的地址值(以字节为单位)为_。 11. 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大_字节

19、。 12. 假定a为一个字符数组名,则元素a8的字节地址为_。 13. 假定a为一个整型数组名,则元素a4的字节地址为_。 14假定一个结构类型的定义为 “struct aint a,b; short c; a* d;”,则该类型的大小为_字节。 15假定一个结构类型的定义为 “struct bint a8; char* b;”,则该类型的大小为_字节。 16. 假定一个结构类型的定义为 “struct dint a; union int b; double c;d* d3;”,则该类型的大小为_字节。 17. 假定要动态分配一个类型为worker的具有n个元素的数组,并由r指向这个动态数组,

20、则使用的语句为_。 18. 假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为_。 19. 假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为_。二、给出下列程序运行后的输出结果 1. #include void main() int a8=7,9,11,13,3,8,15,17; int *p=a; for(int i=0;i8;i+) coutsetw(5)*p+; if(i+1)%4=0) coutendl; 运行结果: 2. #include void main() int a5=3,6,15,7,20; int *p=a; for(int i=0;i5

21、;i+) coutsetw(5)*p+; coutendl; for(i=0;i5;i+) coutsetw(5)*-p; coutendl; 运行结果: 3. #include void main() int a8=4,8,12,16,20,24,28,32; int *p=a; do cout*p ; p+=3; while(pa+8); coutendl; 运行结果: 4. #include void main() int x=20,y=40,*p; p=&x; cout*p ; *p=x+10; p=&y; cout*pendl; *p=y+20; coutx yendl; 运行结果:

22、 5. #include int la(int *a, int n) int s=0; for(int i=0;in;i+) s+=ai; return s; void main() int a=5,10,15,20,25,30; int b=la(a,5); int c=la(a+3,2); coutb c b+2*cendl; 运行结果: 6. #include void lc(int a, int b) int x=a; a=b; b=x; couta bendl; void main() int x=15, y=36; lc(x,y); coutx yendl; 运行结果: 7. #i

23、nclude void lf(int& x, int y) x=x+y; y=x+y; coutx=x, y=yendl; void main() int x=5, y=8; coutx=x, y=yendl; lf(x,y); coutx=x, y=yendl; 运行结果: 8.#include void lg(int*& a, int& m) a=new intm; int* p=a; for(int i=0;im;i+) *p+=2*i+1; void main() int *p,n=5; lg(p,n); for(int i=0;in;i+) coutpi ; coutendl; de

24、letep; 运行结果: 9.#include void lh(int* a, int n) int* p=a+n-1; while(ap) int x=*a; *a=*p; *p=x; a+;p-; void main() int* d=new int5; int i; for(i=0;i5;i+) di=2*i+3; coutsetw(5)di ; coutendl; lh(d,5); for(i=0;i5;i+) coutsetw(5)di ; coutendl; deleted; 运行结果: 10. #include struct worker char name15; /姓名 int

25、 age; /年龄 float pay; /工资 ; void main() worker x=weirong,55,640; worker y, *p; y=x; p=&x; y.age y.payendl; coutname age+5 pay-10endl; 运行结果: 11. #include #include struct worker char name15; /姓名 int age; /年龄 float pay; /工资 ; void main() worker x; char *t=liouting; int d=46; float f=725; strc

26、py(,t); x.age=d; x.pay=f; x.age x.payendl; 运行结果:三、写出下列每个函数的功能 1. #include void li(int n) int* a=new intn, *p=a+n; for(int i=0;iai; for(i=n-1;i=0;i-) cout*(-p) ; coutn; delete a; 函数功能: 2. #include void lk(int a, int n, int*& b, int& m) float s=0; int i; for(i=0;in;i+) s+=ai; s/=n; m=

27、0; for(i=0;i=s) m+; b=new intm; int* p=b; for(i=0;i=s) *p+=ai; 函数功能: 3. /struct worker / char name15; /姓名 / int age; /年龄 / float pay; /工资 /; istream& operator(istream& istr, worker& x) cout请输入一个职工记录:姓名、年龄、工资x.agex.pay; return istr; 函数功能: 4. /struct strnode / char name15; /字符串域 / strnode *next;

28、 /指针域 /; void qb(strnode*& f, int n) if(n=0) f=null; return; f=new strnode; cinf-name; strnode* p=f; while(-n) p=p-next=new strnode; cinp-name; p-next=null; 函数功能: 5. /struct strnode char name15; strnode *next; ; void qc(strnode* f) while(f) coutnamenext; 函数功能:第四次作业练习一、填空题 1. 在定义类对象的语句执行时,系统在建立每个对象的过

29、程中将自动调用该类的_使其初始化。 2当一个类对象被撤消时将自动调用该类的_。 3对基类数据成员的初始化是通过执行派生类构造函数中的_来实现的。 4对一个类中的数据成员的初始化可以通过构造函数中的_实现,也可以通过构造函数中的_实现。 5在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先_,后_,最后为_。 6当撤消一个含有基类和类对象成员的派生类对象时,将首先完成_的析构函数定义体的执行,接着完成_的析构函数定义体的执行,最后完成_的析构函数定义体的执行。 7. 设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的_。 8当一个类对象

30、离开它的作用域时,系统将自动调用该类的_。 9假定一个类对象数组为an,当离开它的作用域时,系统自动调用该类析构函数的次数为_。 10. 假定 ab为一个类,则执行”ab a10;”语句时,系统自动调用该类构造函数的次数为_。 11假定用户没有给一个名为ab的类定义构造函数,则系统为其隐含定义的构造函数为_。 12假定用户没有给一个名为ab的类定义析构函数,则系统为其隐含定义的析构函数为_。 13若需要把一个函数”void f();”定义为一个类ab的友元函数,则应在类ab的定义中加入一条语句:_ 14若需要把一个类ab定义为一个类cd的友元类,则应在类cd的定义中加入一条语句:_ 15. 假

31、定一个类ab中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所使用的语句为_。 16. 假定类ab中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为_。 17. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为_。 18. 假定ab为一个类,则该类的拷贝构造函数的声明语句为_。 19. 对类对象成员的初始化是通过执行构造函数中的_完成的。 20. 对于类中定义的成员,其隐含访问权限为_,对于结构中定义的成员,其隐含访问权限为_。 21. 一个类的友元函数或友元类能够通过成员操作符访问该类的_。 22假定要对类ab定义加号操作

32、符重载成员函数,实现两个ab类对象的加法,并返回相加结果,则该成员函数的声明语句为:_ 23在c+流类库中,根基类为_。 24. 在c+流类库中,输入流类和输出流类的名称分别为_和_。 25. 若要在程序文件中进行标准输入输出操作,则必须在开始的#inlude命令中使用_头文件。 26. 若要在程序文件中进行文件输入输出操作,则必须在开始的#inlude命令中使用_头文件。 27. 当从字符文件中读取回车和换行两个字符时,被系统看作为一个_。 28当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为_,当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为_。 29. 当需要使用istrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含_文件。二、给出下列程序运行后的输出结果 1. #include class a int a,b; publ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论