电大C程序设计历年考试真题汇总.doc_第1页
电大C程序设计历年考试真题汇总.doc_第2页
电大C程序设计历年考试真题汇总.doc_第3页
电大C程序设计历年考试真题汇总.doc_第4页
电大C程序设计历年考试真题汇总.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、 单选题(每小题2分)1在每个C+程序中都必须包含有这样一个函数,该函数的函数名为( A )。 Amaln BMAIN Cname DfunctiOn2设x和y均为b001量,则x&y为真的条件是( D )。 A.其中一个为假 B其中一个为真 C.它们均为假 D.它们均为真3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址 大 ( C )。 A1 B2 C4 D84. 设x和y均为bool量,则xy为假的条件是( B )。 A.它们均为真 B.它们均为假 C其中一个为真 D.其中一个为假5假定a为一个整型数组名,则元素a4的字节地址为( C )。 A.a+4 Ba+8 C.a十16 Da十326当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ( D )。 AiOS:in B.iOS:Out CiOs:iniOs:Out D没有 7. C+源程序文件的缺省扩展名为_A_。 A cpp B exe C obj D lik8. 在下面的一维数组定义中,哪一个有语法错误。_C_ A int a=1,2,3; B int a10=0; C int a; D int a5;9. 在下面的二维数组定义中,哪一个是正确的。_B_ A int a5; B int a5; C int a; D int a(10); 10. 假定a为一个数组名,则下面的哪一种表示有错误。_B_ A ai B *a+ C *a D *(a+1) 11. 由C+源程序文件编译而成的目标文件的缺省扩展名为_C_。 A cpp B exe C obj D lik12. 由C+目标文件连接而成的可执行文件的缺省扩展名为_B_。 A cpp B exe C obj D lik13. 下面的哪一个保留字不能作为函数的返回类型?_C_ A void B int C new D long14. 下面的函数声明中,哪一个是“void BC(int a, int b);”的重载函数?B A int BC(int x ing y); B void BC(int a, char b); A float BC(int a, int b, int c=0); A int BC(int a, int b=0);15. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为_C_。 A n B n+1 C n-1 D n-216. 假定AB为一个类,则该类的拷贝构造函数的声明语句为_C_。 A AB&(AB x); B AB(AB x) C AB(AB&); D AB(AB* x)17. 声明或定义一个内联函数时,必须在函数开始使用保留字_C_。 A static B const C inline D extern18. 在下面的函数声明中,存在着语法错误的是_D_。 A BC(int a, int); B BC(int, int); C BC(int, int=5); D BC(int x; int y);19假定AB为一个类,则执行“AB a(4), b3, *p2;”语句时,自动调用该类构造函数的次数为_B_。 A 3 B 4 C 6 D 920. 假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行 “delete px;”语句时,自动调用该类析构函数的次数为_C_。 A 0 B 1 C n D n+121. 对于结构中定义的成员,其隐含访问权限为_A_。 A public B protected C private D static二、填空题(每小题2分)1若需要定义一个标识符常量,并且使C+能够进行类型检查,则应在定义语句的开始使用保留字 const 2算术表达式 + 4b一1对应的c+表达式为(x*y*y)(3*a)十4*b一13逻辑表达式xy&x!l0的相反表达式为。x=yx=104逻辑表达式ab&b!155假定一个二维数组的定义为“char*a54;”,则该数组所含元素的个数为20,所占存 储空间的字节数为80。6变量分为全局和局部两种,全局变量没有赋初值时,将由系统自动置为o。7. 假定a是一个一维数组,则ai对应的存储地址(以字节为单位)为a十i*sizeof(ai)8假定一个结构类型的定义为“struct Adouble a,b,A*c;;”,则该类型的大小为20字节。9假定要访问一个结构指针P所指对象中的b指针成员所指的对象,则表示方法为*(p一b)。10在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先基类成员,后类对象成员,最后为非类对象成员。11假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为AB()。12若需要把一个函数void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句 friend void F();13执行“coutchar(A+2)y和x=y的逻辑值分别为_false_和_true_。 18假定一个一维数组的定义为“char* a8;”,则该数组所含元素的个数为_8_,所占存储空间的字节数为_32_。19假定p所指对象的值为25,p+1所指对象的值为46,则*p+的值为_25_。20. 假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)+;”语句后,p所指对象的值为_26_。21. 假定一个结构类型的定义为 “struct Dint a; union int b; double c;D* d2;”,则该类型的大小为_20_字节。22. 假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为_ Worker* r=new Workern_。23当撤消一个含有基类和类对象成员的派生类对象时,将首先完成_派生类_的析构函数定义体的执行,接着完成_类对象所属类_的析构函数定义体的执行,最后完成_基类_的析构函数定义体的执行。 24. 设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的_析构函数_。25已知AZ的ASCII码为6590,当执行“char ch=14*5+2;coutch5的相反表达式为_X+Y3 & x10的相反表达式为_x=10 _。37. 逻辑表达式ab | b=5的相反表达式为_a=b & b!=5_。38. 假定一个二维数组的定义为“char a56;”,则该数组所含元素的个数为_30_,所占存储空间的字节数为_30_。39. 执行“cout43-18=43-18endl;”语句后得到的输出结果为_43-18=25 _。40. 使用const语句定义一个标识符常量时,则必须对它同时进行_初始化_。41. 表达式x=x+1表示成增1表达式为_+x_。 42. 假定一个二维数组为aMN,则ai的地址值(以字节为单位)为_a+(i*N)*sizeof(a00) 或a+i*sizeof(ai)43. 若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用_iostream.h 或 iomanip.h_头文件。 44假定p所指对象的值为36,p+1所指对象的值为49,则*+p的值为_49_。三、给出下列程序运行后的输出结果(每小题6分)1. #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; ease/ ;if(b)x=double(a)/b; else exit(l); break; default: exit (1); return x; void main() int x=20, y=5; eoutSD(x, y,+); court.SD(x, y,*); eoutSD(x-y,y, /)endl; ) 25 100 32. #include include void main() char*a5=student, worker, cadre, soldier, apen; char *pl,*p2; pl=p2=a0; for(int i=l; i0) pl=ai; if(strcmp(ai, p2)0) p2=ai; ) coutplp2endl; worker apen3. #include void WF(int x, int y) x=x+y; y=x+y; coutsubs:x, y=x,yendl; void main() int x=8, y=l5; coutmain:x, y=xi, yendl; WF(x, y); X=2*X; coutmain:x, y=x, yendI; main:x,y8,154. # include void LG(int*& a, int& m) a=new intm int* p=a; for(int i=0, im, i+) *p+=i*i+l, void main() int * b, n=5, LG(b, n); for(int i=0; in; i+) coutbi coutendl; deleteIh; 1 2 5 10 175. #include #include struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; void main() Worker x;char * t=WeiRong;int d=45; float f=1235;strcpy(x, name, t)x. age=d; x. pay=f;coutx, namex. agex. payendl; WeiRong 45 12356. #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; coutendl; void main() char a6=Abcaf; for(int i=0; ai; i+) SB(ai); well! good! pass! well! bad!7. #include void main() int a8=36,25,48,14,55,40,72,40; int b1, b2; b1=b2=a0; for(int i=1;ib1) if(b1b2) b2=b1; b1=ai; coutb1 b2endl; 72 558. #include void main() int a8=3,5,7,9,11,13,15,17; int *p=a; for(int i=0;i8;i+) coutsetw(5)*p+; if(i+1)%3=0) coutendl; 3 5 7 9 11 139. #include void LG(int*& a, int& m) a=new intm; int* p=a; for(int i=0;im;i+) *p+=i*i; void main() int *b,n=5; LG(b,n); for(int i=0;in;i+) coutbn-i-1 ; coutendl; deleteb; 16 9 4 1 010. #include #include void main() char* a5=student,worker,cadre,soldier,peasant; char *p1, *p2; p1=p2=a0; for(int i=0;i0) p1=ai; if(strcmp(ai, p2)0) p2=ai; coutp1 p2endl; worker cadre 11. #include void main() int a10=2,4,6,8,10,12,14,16,18,20; for(int i=0; i10; i+) coutsetw(5)*(a+i); if(i+1)%4=0) coutendl; 2 4 6 8 10 12 14 16 18 2012. #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*i+1; coutsetw(5)di ; coutendl; LH(d,5); for(i=0;i5;i+) coutsetw(5)di ; coutendl; deleted; 1 3 9 19 33 33 19 9 3 113. #include void main() int s=0; for(int i=1;i=5;i+) s+=i*i; couts=sendl; s=5514. #include void main() int s=0; for(int i=1;i+) if(s50) break; if(i%2=0) s+=i; couti,s=i,sendl; i,s=15,5615. #include void main() int a8=36,25,48,14,55,40,32,66; int b1, b2; b1=b2=a0; for(int i=1;i8;i+) if(aib1) if(b1b2) b2=b1; b1=ai; coutb1 b2endl; 14 2516. #include int LB(int *a, int n) int s=1; for(int i=0;in;i+) s*=*a+; return s; void main() int a=1,2,3,4,5,6,7,8; coutLB(a,5) LB(&a3,3) ; coutLB(a+2,4)endl; 120 120 36017. #include struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; void main() Worker x=wangfong,43,640; Worker y, *p; y=x; p=&x; y.age y.payendl; coutname age*2 pay+100endl; wangfong 43 640 wangfong 86 74018. #include void main() int s=0; for(int i=1;i+) if(s50) break; if(i%2=0) s+=i; couti,s=i,sendl; i,s=15,5619. #include void main() char a=abcdabcabfgacd; int i1=0, i2=0, i=0; while(ai) if(ai=a) i1+; if(ai=b) i2+; i+; couti1 i2endl; 4 320. #include void main() int a9=2,4,6,8,10,12,14,16,18; for(int i=0;i9;i+) coutsetw(5)*(a+i); if(i+1)%3=0) coutendl; 2 4 6 8 10 12 14 16 1821. #include void LE(int* a, int* b) int x=*a; *a=*b; *b=x; cout*a *bendl; void main() int x=10, y=25; LE(&x,&y); coutx yendl; 25 10 25 1022. #include class A int a,b; public: A() a=b=0; A(int aa, int bb) a=aa; b=bb; couta bendl; ; void main() A x,y(2,3),z(4,5); 2 3 4 523#include template class FF TT a1, a2, a3; public: FF(TT b1, TT b2, TT b3) a1=b1; a2=b2; a3=b3; TT Sum() return a1+a2+a3; ; void main() FF x(2,3,4),y(5,7,9); coutx.Sum() y.Sum()endl; 9 2124. #include void main() int a10=36,25,48,14,55,40,72,40,86,27; int b1, b2; b1=b2=a0; for(int i=1;ib1) if(b1b2) b2=b1; b1=ai; coutb1 b2endl; 86 7225. #include void main() int a8=3,5,7,9,11,13,15,17; int *p=a; for(int i=0;i8;i+) *p+=10; coutsetw(5)*p+; if(i+1)%3=0) coutendl; 13 15 17 19 21 23 25 2726.#include 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; x=5, y=8 /2分 x=13, y=21 /2分 x=13, y=8 /2分26#include void main() int x=25,y=120; coutdec:decsetw(10)xsetw(10)yendl; coutoct:octsetw(10)xsetw(10)yendl; couthex:hexsetw(10)xsetw(10)ydecb) a=b; i(ac) a=c; return al 求出a,b,c三个数中的最小值并返回。2. #include template TT WG(TT a, TT b) if(ab) return 1; else if(a=b) return 0; else return -1; 模板函数,比较两个变量a和b的大小,若ab则返回l,若a=b则返回0,若a; void QB(StrNode * & f, int n) if(n=0) f=NULL; return; f=new StrNode; cinf-name; StrNode 0, p=f; while(-n) p=p-next = new StrNode; cinp-name; p-next=NULL; 建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。4. /struct Worker / char name15; /姓名/ iht age; /年龄/ float pay; /工资/;istream & operator(istream & istr, Worker & x) cout请输入一个职工记录:姓名、年龄、工资、x.agex.pay; return istr; 重载提取操作符,用于从输入流中输入一个Worker类型的记录到引用参数x中。5. float FI(int n) /n为大于等于1的整数 float x,y=0; do cinx; n-; y+=x*x; while(n0); return y; 求出从键盘上输入的n个整数的平方和并返回。6. #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; 采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。7. #include void LI(int n) int* a=new intn; for(int i=0;iai; for(i=n-1;i=0;i-) cout*(a+i) ; coutn; delete a; 把从键盘上输入的n个整数按与输入的相反次序显示出来。8#include #include #include void JA(char* fname) /可把以fname所指字符串作为文件标识符的文件称为fname文件 ofstream fout(fname); char a20; cina; while(strcmp(a,end)!=0) foutaa; fout.close(); 从键盘上输入一组字符串到fname文件中,直到输入标志结束的字符串end为止9. bool WB(int a, int n, int x) for(int i=0;in;i+) if(ai=x) return true; return false; 从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。10. template void WE(Type a, Type b, int n) for(int i=0;in;i+) bn-i-1=ai; 模板函数,把数组a的每个元素按逆序放入数组b中。11. 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=0; for(i=0;i=s) m+; b=new intm; int* p=b; for(i=0;i=s) *p+=ai; 把数组a的n个元素中大于等于平均值的所有元素值依次写入到由引用参数b12#include #include void JB(char* fname) /可把以fname所指字符串作为文件标识符的文件称为fname文件, /假定该文件中保存着一批字符串,每个字符串的长度均小于20。 ifstream fin(fname); char a20; int i=0; while(fina) coutaendl; i+; fin.close(); couti=iendl; 从字符串文件fname中依次读出每个字符串并输出到屏幕上显示出来,同时统计出该文件中的字符串个数。13. int WC(int a, int n, int k) int c=0; for(int i=0;i=k) c+; return c; 统计出数组a中大于等于值为k的元素个数并返回。14. #include int* LJ(int a, int n) int k=0; for(int i=1;iak) k=i; return &ak; 求出数组a中n个元素的最大值元素

温馨提示

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

评论

0/150

提交评论