C语言程序设计课程期末复习题_第1页
C语言程序设计课程期末复习题_第2页
C语言程序设计课程期末复习题_第3页
C语言程序设计课程期末复习题_第4页
C语言程序设计课程期末复习题_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、C+语言程序设计课程期末复习题一、单选题1在每个C+程序中都必须包含有这样一个函数,该函数的函数名为( )。Amain BMAIN Cname Dfunction2设x和y均为bool量,则x&&y为真的条件是( )。A它们均为真 B其中一个为真 C它们均为假 D其中一个为假3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大( )字节。A1 B2 C4 D84设x和y均为bool量,则x|y为假的条件是( )。A它们均为真 B其中一个为真 C它们均为假 D其中一个为假5假定a为一个整型数组名,则元素a4的字节地址为( )。Aa+4 Ba+8 C

2、a+16 Da+326当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。Aios:in Bios:out Cios:in | ios:out D没有7C+源程序文件的缺省扩展名为( )。Acpp Bexe Cobj Dlik8在下面的一维数组定义中,哪一个有语法错误。( )Aint a =1,2,3; Binta10=0; Cint a ; Dint a5;9在下面的二维数组定义中,哪一个是正确的。( )Aint a5 ; Bint a 5; Cint a ; Dint a (10);10假定a为一个数组名,则下面的哪一种表示有错误( )。Aai B*a+

3、 C*a D*(a+1)11声明或定义一个内联函数时,必须在函数开始使用保留字( )。Astatic Bconst Cinline Dextern12在下面构造函数的声明中,存在着语法错误的是( )。ABC(int a,int); BBC(int,int); CBC(int,int=5); DBC(int x,int y);13假定AB为一个类,则执行“AB a(4),b3,*p2;”语句时,自动调用该类构造函数的次数为( )。A3 B4 C6 D914假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete px;”语句时,自动调用该类析构函数的次数为( )。

4、A0 B1 Cn Dn+1 15、下列符号中,不能用作变量名的是( ) A. 4x_y B. ab1_y C. _cd D. _123 16、执行 cout<<"x="<<3<<""<<endl<<"xyz" 后,输出结果是( ) A. x=3 B. x=3; C. x=3;xyz D. x=3 xyz xyz xyz 17、下面哪一个是C+的保留字( ) A. "void" B. INT C. Float D. double 18、假定一个二维数组的定义

5、语句为 "int a34=3,4,2,8,6;" 则元素 a12的值是( ) A. 2 B. 4 C. 6 D. 8 19、字符串 "x+y*z=3n" 的长度为( ) A. 10 B. 11 C. 8 D. 9 20、下面关于局部变量的说法哪一个是正确的( )A. 定义该变量的程序文件中的函数都可以访问 B. 定义该变量的函数中的定义处以下的任何语句都可以访问C. 定义该变量的复合语句中的定义处以下的任何语句都可以访问D. 局部变量可用于函数之间传递数据21、如果一个函数无返回值,则只能作为( )被调用A. 表达式 B. 语句 C. 无参函数 D. 有

6、参函数 22、已知一正常运行的程序中有以下语句: int *p2=&x,*p1=a; *p2=b; 由此可知,变量a和b的类型分别是( )A. int 和 int B. int * 和 int C. int 和 int * D. int * 和 int * 23、对于一个类的析构函数,其函数名与类名( ) A. 完全相同 B. 完全不同 C. 相差一个字符 D. 无关系 24、假定一个类的构造函数为: “A(int aa=5, bb=3)a=aa;b=bb;” 则执行“A x(7);”语句后,x.a 和 x.b 的值分别是( ) A. 5 和 3 B. 7 和 5 C. 7 和 3 D

7、. 7 和 0 25、当说明一个结构体变量时,系统分配给它的内存是:( ) A、结构中第一个成员所需内存量 B、各成员所需内存量的总和 C、成员中占内存量大者所需的容量 D、结构中最后一个成员所需内存量 二、填空题1十进制数25表示成符合C+语言规则的八进制和十六进制书分别为 和 。2假定一个枚举类型的定义为“enum RBab,ac=3,ad,ae x=ad;”,则x的值为 。3假定x=5,y=8,则表达式2+x+和+y*4的值分别为 和 。4关系表达式(x=0)的等价表达式为 。5执行“typedef int DataType;”语句后,在使用int定义整型变量的地方都可以使用 来定义整型

8、变量。6在函数外定义的变量称为 变量,若没有被初始化则系统隐含对它赋初值 。7假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p+);”语句后,p所指对象的值为 。8假定一个结构类型的定义为“struct Aint a,b;A * c;”,则该类型的大小为 字节。9在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的 使其初始化。10对基类数据成员的初始化是通过执行派生类构造函数中的 来实现的。11若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语句: 。12当从字符文件中读取回车和换行两个字符时,被系统看作为一个 。13执行“cout&

9、lt;<char(A+2)<<endl;”语句后得到的输出结果为 。14已知AZ的ASCII码为6590,当执行“int x=C+5;”语句后x的值为 。15表达式float(25)/4和int(14.6)%5的值分别为 和 。16表达式x=x+y表示成复合赋值表达式为 。17若x=5,y=10,则x>y和x!=y的逻辑值分别为 和 。18假定一个一维数组的定义为“char *a8;”,则该数组所含元素的个数为 ,所占存储空间的字节数为 。19假定p所指对象的值为25,p+1所指对象的值为46,则*p+的值为 。20假定p所指对象的值为25,p+1所指对象的值为46,则

10、执行“(*p)+;”语句后,p所指对象的值为 。21假定一个结构类型的定义为“struct Dint a;unionint b;double c;D *d2;”则该类型的大小为 字节。22假定要动态分配一个类型为Worker的具有n 个元素的数组,并由r指向这个动态数组,则使用的语句为 。23当撤消一个含有基类和类对象成员的派生类对象时,将首先完成 的析构函数定义体的执行,接着完成 的析构函数定义体的执行,最后完成 的析构函数定义体的执行。24设px是指向一个类动态对象的指针变量,则执行“delete px;”语句时,将自动调用该类的 。25若需要定义一个标示符常量,并且使C+能够进行类型检查

11、,则应在定义语句的开始使用保留字 。26逻辑表达式x>3&&x<10的相反表达式为 。27逻辑表达式a>b|b=5的相反表达式为 。28假定一个二维数组的定义为“char a5 ;”则该数组所含元素的个数为 ,所占存储空间的字节数为 。29变量分为全局和局部两种, 变量没有赋初值时,将由系统自动置为0。30假定a是一个一维数组,则ai对应的存储地址(以字节为单位)为 。31假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表达方法为 。32在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先 ,后 ,最后为 。33假定用户没有给一个名

12、为AB的类定义构造函数,则系统为其隐含定义的构造函数为 。34若需要把一个函数“void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句: 。35、假定一个二维数组定义为: "int dd37;" 则该数组所含元素的 个数为_,所占存储空间的字节数为_.36、一个数组的数组名实际上是指向该数组_的指针, 并且在任何时候都不 允许_.37、调用系统函数时,要先使用_命令包含该系统函数的原形语句所在的头文件。38、假定要访问一个结构类型指针gp 所指对象中的整型成员 kk,表示方法为_.39、假定 A 为一个类,当执行语句 “A aa3,a;” 时,系统

13、自动调用该类的构造函数的 次数为_.40、如果一个函数直接或间接地调用自身,这样的调用称为_调用。41、假定一个结构类型的定义为:”struct Aint d; float ff;” 则该类型的大小为_字节。42、构造函数与所在的类_,并且没有_。.三、给出下列程序运行后的输出结果1#include<iostream.h>void main() int s1=0,s2=0; for(int i=0;i<10;i+) if(i%2)s1+=i; else s2+=i; cout<<s1<<<<s2<<endl;2.#include

14、<iostream.h>void main() int a8=8,19,26,15,6,24,27,18; int i2=0,i3=0; for(int i=0;i<8;i+) if(ai%2=0)i2+; else if(ai%3=0)i3+; cout<<i2<<<<i3<<endl;3.#include<iostream.h>void main() int a34=1,2,7,8,5,6,11,12,9,20,3,4; int m=a00;int ii=0,jj=0;for(int i=0;i<3;i+)

15、 for(int j=0;j<4;j+) if(aij>m)m=aij;ii=i;jj=j;cout<<ii<<<<jj<<<<aiijj<<endl;4.#include<iostream.h>void main() int a=10,b=15; cout<<a<<<<b<<endl; a*=3; int b=a+20; cout<<a<<<<b<<endl; cout<<a<<

16、<<b<<endl;5.#include<iomanip.h>void main() int x=20,y=40,*p; p=&x;cout<<*p<<*p=x+10;p=&y;cout<<*p<<endl;*p=y+20;cout<<x<<<<y<<endl;6.#include<iostream.h>void SB(char ch) switch(ch) case A:case a: cout<<”well!”;brea

17、k; case B:case b: cout<<”good!”;break; case C:case c: cout<<”pass!”;break; default: cout<<”bad!”;break; cout<<endl;void main() char a6=”Abcaf”; for(int i=0;ai;i+)SB(ai);7.#include<iostream.h>void main() int a8=36,25,48,14,55,40,72,40; int b1,b2; b1=b2=a0; for(int i=1;i&

18、lt;8;i+) if(ai>b1) if(b1>b2)b2=b1; b1=ai; cout<<b1<<<<b2<<endl;8.#include<iomanip.h>void main() int a8=3,5,7,9,11,13,15,17; int *p=1;for(int i=0;i<8;i+) cout<<setw(5)<<*p+; if(i+1)%3=0)cout<<endl;9.#include<iomanip.h>void LG(int* & a

19、,int& m) a=new int m; int *p=a; for(int i=0;i<m;i+) *p+=i*i;void main() int *b,n=5; LG(b,n); for(int i=0;i<n;i+) cout<<bn-i-1<< cout<<endl; deleteb;10.#include<iostream.h>#include<string.h>struct Worker char name5;/姓名 int age; /年龄 float pay; /工资;void main() Wo

20、rker x; char *t=”WeiRong”; int d=45;float f=1235; strcpy(,t); x.age=d;x.pay=f; cout<<<<<<x.age<<<<x.pay<<endl;11.#include<iostream.h>void main() int s=0; for(int i=1;i<=5;i+) s+=i*i; cout<<”s=”<<s<<endl;12.#include<iostrea

21、m.h>void main() int s=0; for(int i=1;i+) if(s>50)break; if(i%2=0)s+=i;cout<<”i,s=”<<i<<”,”<<s<<endl;13.#include<iomanip.h>int LB(int *a,int n) int s=1; for(int i=0;i<n;i+) s*=*a+; return s;void main() int a=1,2,3,4,5,6,7,8; cout<<LB(a,5)<< <

22、;<LB(&a3,3)<< ; cout<<LB(a+2,4)<<endl;14.#include<iostream.h>struct Worker char name15;/姓名 int age; /年龄 float pay; /工资;void main() Worker x“wangfong”,43,640; Worker y,*p; y=x;p=&x; cout<<<<<<y.age<<<<y.pay<<endl; cout<&l

23、t;p->name<<<<p->age*2<<<<p->pay+100<<endl;四、写出下列每个函数的功能1#include<iostream.h>int S(int a,int b) if(a>b)return 1; else if(a=b)return 0; else return -1;2.#include<math.h>bool SG(int x) /x为大于等于2的整数 int a=int(sqrt(x);/取x的平方根 int i=2; while(i<=a) if

24、(x%i=0)break; i+; if(i<=a)return 0;else return 1;3./ struct Worker/ char name15;/姓名/ int age; /年龄/ float pay; /工资;void Q(Worker a,int n) for(int i=0;i<n;i+) cin>>>>ai.age>>ai.pay;4.#include<iomanip.h>#include<fstream.h>void JD(char *fname) /可把以fname所指字符串作为文

25、件标识符的文件称为fname文件 /假定该文件保存着一批整数 ifstream fin(fname,ios:in|ios:nocreateios:binary) int x,s=0,n=0; while(fin.read(char*)&x,sizeof(x) s+=x;n+; cout<<n<<<<s<<<<float(s)/n<<endl; fin.close();5float FI(int n) /n为大于等于1的整数 float x,y=0; do cin>>x; n-;y+=x*x; while

26、(n>0); return y;6.#include<iostream.h>void WA(int a,int n) for(int i=0;i<n-1;i+) int k=i; for(int j=i+1;j<n;j+) if(aj<ak)k=j; int x=ai;ai=ak;ak=x; 7.#include<iostream.h>void LI(int n) int *a=new intn; for(int i=0;i<n;i+)cin>>ai; for(i=n-1;i>=0;i-)cout<<*(a+i

27、)<< cout<<n; delete a;8.#include<iomanip.h>#include<fstream.h>#include<string.h>void JA(char *fname) /可把以fname所指字符串作为文件标识符的文件称为fname文件 ofstream fout(fname); char a20; cin>>a; while(strcmp(a,”end”)!=0) fout<<a<<endl; cin>>a; fout.close();9.int WC(

28、int a,int n,int k) int c=0; for(int i=0;i<n;i+) if(ai>=k)c+; return c;10.#include<iostream.h>int *LJ(int a,int n) int k=0; for(int i=1;i<n;i+) if(ai>ak)k=i; return &ak;11./struct DNode/ double data; /值域/ DNode *next; /指针域/;void QB(DNode* & f,int n) if(n=0)f=NULL;return; f=n

29、ew DNode; cin>>f->data; DNode *p=f; while(-n) p=p->next=new DNode; cin>>p->data; p->next=NULL;12.#include<iostream.h>#include<fstream.h>#include<string.h>int JB(char *fname,char *key) /可把以fname所指字符串作为文件标识符的文件称为fname文件, /假定该文件中保存着一批字符串,每个字符串的长度均小于20。 ifstream

30、 fin(fname); char a20; int i=0; while(fin>>a) if(strcmp(a,key)=0)i+; fin.close(); return I;五、编程1已知6a30,15b36,编一程序求出满足不定方程2a+5b=126的全部整数组解。如(13,20)就是其中的一组解。2编写一个递归函数int FF(int a,int n),求出数组a中所有n个元素的平方之和并返回。3编写一个函数void SelectSort(int a,int n),采用选择排序的方法按升序排列数组a中的n个元素。4、显示输出数组an中大于等于平均值的所有元素值5 设计函

31、数gf,它返回两个参数的乘积,并在必要时交换两个参数,使小的在前,例如 int a=3,b=5,c=9,d=2; cout<</<<gf(&a,&b)<<,;cout<<a<<,<<b; cout<</<<gf(&c,&d)<<,;cout<<c<<,<<d; cout<</<<gf(&b,&c)<<,;cout<<b<<,<<c;

32、显示在屏幕上的是:/15,3,5/18,2,9/10,2,5复习题参考答案一、单选题1A 2A 3C 4C 5C 6D 7A8C 9B 10B 11C 12D 13B 14C15、A 16 B 17 D 18. C 19. C 20. C 21. B 22. B 23. C 24. C 25. B二、填空题1031 0x192437 364(!x)5DataType6全局 07468129构造函数10初始化表11friend class AB;12换行符13C1472156.25 416x+=y17false或0 true或1188 3219252026212022Worker *r=new

33、Workern;23派生类 类对象所属类 基类24析构函数25const26x <=3 | x>=1027a<=b && b!=52830 3029全局30a+i*sizeof(ai)31*(p->b)32基类成员 类对象成员 非类对象成员33AB()34friend void F()35、2184 36、第一个元素 修改37、#include38、gp->kk39、440、递归41、842、同名 返回值三、给出下列程序运行后的输出结果125 2025 232 1 20410 15 30 50 30 15520 40 30 606well! good! pass! well! bad!772 5583 5 7 9 11 13 15 17916 9 4 1 010WeiRo

温馨提示

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

评论

0/150

提交评论