文档详情

电大C程序设计历年考试真题汇总

xian****hua
实名认证
店铺
DOC
75.50KB
约16页
文档ID:138084386
电大C程序设计历年考试真题汇总_第1页
1/16

一、 单选题(每小题2分)1.在每个C++程序中都必须包含有这样一•个函数,该函数的函数名为( A ) A.maln B.MAIN C.name D.functiOn2.设x和y均为b001量,则x&&y为真的条件是( D ) A.其中一个为假 B.其中一个为真 C.它们均为假 D.它们均为真3.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址 大 ( C ) A.1 B.2 C.4 D.84. 设x和y均为bool量,则x︱︱y为假的条件是( B ) A.它们均为真 B.它们均为假 C.其中一个为真 D.其中一个为假5.假定a为一个整型数组名,则元素a[4]的字节地址为( C ) A.a+4 B.a+8 C.a十16 D.a十326.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ( D ) A.iOS::in B.iOS::Out C.iOs::in︱iOs::Out D.没有 7. C++源程序文件的缺省扩展名为___A_____。

A cpp B exe C obj D lik8. 在下面的一维数组定义中,哪一个有语法错误C______ A int a[]={1,2,3}; B int a[10]={0}; C int a[]; D int a[5];9. 在下面的二维数组定义中,哪一个是正确的B_____ A int a[5][]; B int a[][5]; C int a[][]; D int a[](10); 10. 假定a为一个数组名,则下面的哪一种表示有错误B______ A a[i] 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), b[3], *p[2];”语句时,自动调用该类构造函数的 次数为____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.逻辑表达式x>y&&x!=l0的相反表达式为——x<=y︱︱x==104.逻辑表达式a<=b︱︱b==15的相反表达式为—— a>b&&b!=155.假定一个二维数组的定义为“char*a[5][4];”,则该数组所含元素的个数为—20—,所占存 储空间的字节数为—80—6.变量分为全局和局部两种,—全局—变量没有赋初值时,将由系统自动置为o7. 假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为—a十i*sizeof(a[i])—8.假定一个结构类型的定义为“struct A{double a,b,A*c;};”,则该类型的大小为—20—字节。

9.假定要访问一个结构指针P所指对象中的b指针成员所指的对象,则表示方法为*(p一>b)10.在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先—基类成员—,后—类对象成员—,最后为—非类对象成员—11.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为—AB(){}—12.若需要把一个函数"void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句 friend void F();13.执行“cout<y和x==y的逻辑值分别为___false_____和__true______ 18.假定一个一维数组的定义为“char* a[8];”,则该数组所含元素的个数为___8_____,所占存储空间的字节数为___32_____。

19.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为__25______20. 假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所指对象的值为__26______21. 假定一个结构类型的定义为 “struct D{int a; union {int b; double c;};D* d[2];};”,则该类型的大小为___20_____字节22. 假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为___ Worker* r=new Worker[n]_____23.当撤消一个含有基类和类对象成员的派生类对象时,将首先完成__派生类___的析构函数定义体的执行,接着完成__类对象所属类___的析构函数定义体的执行,最后完成__基类__的析构函数定义体的执行 24. 设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的__析构函数__25.已知'A'~'Z'的ASCII码为65~90,当执行“char ch=14*5+2;cout<

27. 表达式x=x+1表示成增量表达式为___++X_______28. 关系表达式x+y>5的相反表达式为____X+Y<=5________ 29. 执行“typedef int ABC[10];”语句把ABC定义为具有10个整型元素的__数组类型 30. 假定a是一个二维数组,则a[i][j]的指针访问方式为_*(a[i]+j) 或*(*(a+i)+j) 31. 假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为___ *(x.a) 32.对一个类中的数据成员的初始化可以通过构造函数中的___初始化表___实现,也可以通过构造函数中的_函数体_实现33.当一个类对象离开它的作用域时,系统将自动调用该类的__析构函数_34. 假定 AB为一个类,则执行”AB a[10];”语句时,系统自动调用该类构造函数的次数为___10_____36. 逻辑表达式x>3 && x<10的相反表达式为_x<=3 || x>=10 _37. 逻辑表达式a>b || b==5的相反表达式为_a<=b && b!=5_38. 假定一个二维数组的定义为“char a[5][6];”,则该数组所含元素的个数为___30_____,所占存储空间的字节数为__30______。

39. 执行“cout<<43<<’-’<<18<<’=’<<43-18< 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; eout< include void main() { char*a[5]={"student", "worker", "cadre", "soldier", "apen"}; char *pl,*p2; pl=p2=a[0]; for(int i=l; i<5; i++) { if(strcmp(a[i], p1)>0) pl=a[i]; if(strcmp(a[i], p2)<0) p2=a[i]; ) cout< void WF(int x, int y) { x=x+y; y=x+y; cout<<"subs:"<<"x, y="< void LG(int*& a, int& m) { a=new int[m] int* p=a; for(int i=0, i #include struct Worker { char name[15]; //姓名 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;cout< void SB(char ch) { switch(ch) { case 'A': case 'a': cout<<"well!";break; case 'B': case 'b': cout<<"good!";break; case 'C': case 'c': cout<<"pass!";break; default: cout<<"bad!";break; } cout< void main() { int a[8]={36,25,48,14,55,40,72,40}; int b1, b2; b1=b2=a[0]; for(int i=1;i<8;i++) if(a[i]>b1) { if(b1>b2) b2=b1; b1=a[i]; } cout< void main() { int a[8]={3,5,7,9,11,13,15,17}; int *p=a; for(int i=0;i<8;i++) { cout< void LG(int*& a, int& m) { a=new int[m]; int* p=a; for(int i=0;i #include void main() { char* a[5]={"student","worker","cadre","soldier","peasant"}; char *p1, *p2; p1=p2=a[0]; for(int i=0;i<5;i++) { if(strcmp(a[i], p1)>0) p1=a[i]; if(strcmp(a[i], p2)<0) p2=a[i]; } cout< void main() { int a[10]={2,4,6,8,10,12,14,16,18,20}; for(int i=0; i<10; i++) { cout< void LH(int* a, int n) { int* p=a+n-1; while(a void main() { int s=0; for(int i=1;i<=5;i++) s+=i*i; cout<<"s="< void main() { int s=0; for(int i=1;;i++) { if(s>50) break; if(i%2==0) s+=i; } cout<<"i,s="< void main() { int a[8]={36,25,48,14,55,40,32,66}; int b1, b2; b1=b2=a[0]; for(int i=1;i<8;i++) if(a[i] int LB(int *a, int n) { int s=1; for(int i=0;i struct Worker { char name[15]; //姓名 int age; //年龄 float pay; //工资 }; void main() { Worker x={"wangfong",43,640}; Worker y, *p; y=x; p=&x; cout<name<<' '<age*2<<' '<pay+100< void main() { int s=0; for(int i=1;;i++) { if(s>50) break; if(i%2==0) s+=i; } cout<<"i,s="< void main() { char a[]="abcdabcabfgacd"; int i1=0, i2=0, i=0; while(a[i]) { if(a[i]=='a') i1++; if(a[i]=='b') i2++; i++; } cout< void main() { int a[9]={2,4,6,8,10,12,14,16,18}; for(int i=0;i<9;i++) { cout< void LE(int* a, int* b) { int x=*a; *a=*b; *b=x; cout<<*a<<' '<<*b< class A { int a,b; public: A() {a=b=0;} A(int aa, int bb) { a=aa; b=bb; cout< 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); cout< void main() { int a[10]={36,25,48,14,55,40,72,40,86,27}; int b1, b2; b1=b2=a[0]; for(int i=1;i<10;i++) if(a[i]>b1) { if(b1>b2) b2=b1; b1=a[i]; } cout< void main() { int a[8]={3,5,7,9,11,13,15,17}; int *p=a; for(int i=0;i<8;i++) { *p+=10; cout< void LF(int& x, int y) { x=x+y; y=x+y; cout<<"x="<b) a=b; i~(a>c) a=c; return al } 求出a,b,c三个数中的最小值并返回。

2. #include template TT WG(TT a, TT b) { if(a>b) return 1; else if(a==b) return 0; else return --1; } 模板函数,比较两个变量a和b的大小,若a>b则返回l,若a==b则返回0,若a; void QB(StrNode * & f, int n) { if(n==0) {f=NULL; return;} f=new StrNode; cin>>f->name; StrNode 0, p=f; while(--n) { p=p->next = new StrNode; cin>>p->name; > p->next=NULL; } 建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。

4. //struct Worker {// char name[15]; //姓名// iht age; //年龄// float pay; //工资//};istream & operator>>(istream & istr, Worker & x) { cout<<"请输入一个职工记录:姓名、年龄、工资、"<>x.name>>x.age>>x.pay; return istr;} 重载提取操作符,用于从输入流中输入一个Worker类型的记录到引用参数x中5. float FI(int n) { //n为大于等于1的整数 float x,y=0; do { cin>>x; n--; y+=x*x; } while(n>0); return y; } 求出从键盘上输入的n个整数的平方和并返回6. #include void WA(int a[], int n) { for(int i=0;i

7. #include void LI(int n) { int* a=new int[n]; for(int i=0;i>a[i]; for(i=n-1;i>=0;i--) cout<<*(a+i)<<' '; cout<<'\n'; delete []a; }把从键盘上输入的n个整数按与输入的相反次序显示出来8.#include #include #include void JA(char* fname) //可把以fname所指字符串作为文件标识符的文件称为fname文件 { ofstream fout(fname); char a[20]; cin>>a; while(strcmp(a,"end")!=0) { fout<>a; } fout.close(); }从键盘上输入一组字符串到fname文件中,直到输入标志结束的字符串"end"为止9. bool WB(int a[], int n, int x) { for(int i=0;i

10. template void WE(Type a[], Type b[], int n) { for(int i=0;i=s) m++; b=new int[m]; int* p=b; for(i=0;i=s) *p++=a[i]; }把数组a的n个元素中大于等于平均值的所有元素值依次写入到由引用参数b12.#include #include void JB(char* fname) //可把以fname所指字符串作为文件标识符的文件称为fname文件, //假定该文件中保存着一批字符串,每个字符串的长度均小于20。

{ ifstream fin(fname); char a[20]; int i=0; while(fin>>a) { cout< 查看更多

下载提示
相关文档
正为您匹配相似的精品文档