C++复习题

  • 格式:doc
  • 大小:49.00 KB
  • 文档页数:6

计算机专业C++语言程序设计复习题一

—、单选题(每小题2分,共12分) 1.下面的哪一个保留字不能作为函数的返回类型?——— A.void B.int C.new D.long 2.假定a为一个数组名,则下面的哪一种表示有错误。——— A.a[i] B.* a + + C. *a D.*(a + 1) 3.在下面的二维数组定义中,哪一个是正确的。——— A.int a[5][]; B. inta[][5]; C. int a[][]; D.int a[](10); 4.下面的哪一个函数头格式不正确?——— A. AA(int a,int b) B.AA(int a,int b=0) C.AA(int a=0,int b=0) D.AA(int a=0,int b) 5.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,50该成员函数的声明语句为:——— A.AB operator+(AB&a,AB&b); B. AB operator+(AB&a); C. operator+(AB a); D. AB&operator+(); 6.当需要使用ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含———文件。 A.iostream.h B.stdlib.h C.strstrea.h D.fstream.h

二、填空题(每小题2分,共24分) 1.C++语言中的每条基本语句以作为 结束符,每条复合语句以作为 结束符。 2.假定一个枚举类型的定义为“enum RA {ab,ac,ad,ae };”,则执行“cout<<“ac=”<<ac<<endl;”语句得到的输出结果为 。 3.执行“int x=45,y=13;cout<<x/y<<’’<<x%y<<endl;”语句序列后得到的输出结果为 。 4.增量表达式+ + y表示成赋值表达式为 。 5.假定a=5,则条件表达式“a > =0? 10:20”的值为 。 6.变量分为全局和局部两种, 变量没有赋初值时,其值是不确定的。 7.函数调用时,实参向形参的传送分为 和 两种传送方式。 8.假定a是一个一维数组,则a[i]的指针访问方式为 。 9.假定一个结构类型的定义为“stmct C {double*a[5];int n;};”,则该类型的大小为 字节。 10.当一个类对象被撤消时将自动调用该类的 。 11.假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为 。 12.若要在程序文件中进行文件输入输出操作,则必须在开始的#inlude命令中使用 头文件。

三、给出下列程序运行后的输出结果(每小题6分,共30分) 1. #include<iostream.h> void main() { char ch=’*’; int n=5; while(1){ for(inti=0;i<n;i++= cout<<ch; cout<<endl; if(--n==0)break: } } 2. #include<iostream.h> void main() { int a[10]=176,83,54,62,40,75,80,92,77,843; int b[4]={60,70,90,101}; int c[4]=101; for(int i=0;i<10;i++={ int j=0; while(a[i]>=b[j])j++; c[j]++; } for(i=0;i<4;i++=cout<<c[i]<<’’; cout<<endl; } 3. #include<iomanip.h> void main() { int a[8]=14,8,12,16,20,24,28,323; int *p=a; do { cout<<*p<<’’; p + =2; } while(p<a+8=; cout< <endl; } 4. #include<iomanip.h> void LF(int&x,int y){ x=x+y; y=x+y; cout<<“x=,’<<x<<“,y=”<<y<<endl; } void main() { int x=5,y=8; cout<<“x=”<<x<<“,y=”<<y<<endl; LF(x,y); cout<<“x=”<<x<<“,y=”<<y<<endl: } 5. #include<iomanip.h> void main() { int x=25,y=120; cout<<“dec:”<<dec<<setw(10)<<x<<setw(10)<<y<<endl; cout<<“oct:”<<oct<<setw(10)<<x<<setw(10)<<y<<endl; cout<<“hex:”<<hex<<setw(10)<<x<<setw(10)<<y<<dec<<endl; }

四、写出下列每个函数的功能(每小题6分,共24分) 1.int SC(int a,int b,int c) { if(a<b=a=b; if(a<c=a=c; return a; } 2. #include<iostream.h> temPlate<class TT> int WG(Tr a,Tr b)6 if(a>b)retunn 1; else if(a==b)retun 0; else retum-1; } 3.shuct SbNode { char name[15];//八字符串域 StrNode*next;//指针域 }; void QB(StrNode*&f,int n){ if(n==0){f:NULL;return;} f=new StrNode; cin>>f->name; StrNode*p=f; while( - - n) { p=p->next=new StrNode; cin> >p->name; } p->next=NULL; } 4. #include<iomanip.h> 0include<fstream.h> void JC(char 661ame,int n) //可把以fname所指字符串作为文件标识符的文件称为fname文件 { ofstream fout(fname,ios::out | ios:: binary); int x; for(inti=0;i<n;i++= { cin>>x; fout.write((char *)&x,sizeof(x)); } fout.close(); }

五、编程(10分) 编写一个函数fun(),首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a[4][4]中,接着求出主对角线上元素之乘积,最后返回这个乘积。

计算机专业C++语言程序设计复习题二

一、填空(每空2分,共20分) 1. C++目标程序经___________后生成扩展名为exe的可执行程序文件。 2. 16位计算机中整型占__________个字节存储空间。 3. 要在屏幕上显示"Hello,world!"应执行语句cout<<______________________。 4. 表达式8&3的结果是__________。 5. 作为语句的函数调用是通过__________________________来体现的。 6. 执行if (x>=0||x<=0) cout<<"abcd";else cout<<"wxyz";屏幕上显示的是_______________。 7. 设一维整型数组data已进行了初始化,则其元素个数可由操作符sizeof通过表达式__________________________计算出来。 8. 若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符_______________。 9. 设有int w[3][4];,pw是与数组名w等价的数组指针,则pw应初始化为__________________________。 10.要使引用pr代表变量char * p;,则pr应初始化为__________________________。

二、单项选择题(每空2分,共20分) 1.下列变量名中,( )是合法的。 A CHINA B byte-size C double D A+a 2.下列各种函数中,( )不是类的成员函数。 A 构造函数 B 析构函数 C 友元函数 D 拷贝构造函数 3.下列( )是正确的语句。 A ; B a=17 C x+y D cout<<"\n" 4.循环while(int i=0) i--;执行次数是( )。 A 0 B 1 C 5 D 无限 5.设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是( )。 A g(f(3)); B f(g(3)); C g(f(3)+2); D p= f(g(3)+1);