复习C++期末考试题目

一、单项选择题

1.‘A’的ASCII码为65,n为int型,执行 n =‘A’+‘6’-‘3’;后,n的值为    B    。

A)‘D’        B)  68        C) 不确定的值         D) 编译出错

2.下列变量名中,  A     是合法的。

A)CHINA        B)  byte-size           C) double          D) A+a

3.在static int B[3][3]={{1},{3,2},{4,5,6}};中, a[2][2]的值是  C     。

A)0        B) 5          C)6          D)2

4.若有定义 int a=3, *p=&a ;则 *p的值是    B     。

A)常量a的地址值                      B)3

C)变量p的地址值                      D)无意义

5.下列关于指针运算的各叙述中,不正确的叙述是   D     。

A)指向同一数组的两个指针,可以进行相等或不等的比较运算;

B)可以用一个空指针赋值给某个指针;

C)指向数组的指针,可以和整数进行加减运算;

D)指向同一数组的两个指针,可以进行有意义的相加运算。

6. 已知x、y、z是int型变量,且x=3,y=4,z=5;则下面各表达式中,值为0的是   D   。

A)‘x’&&‘y’  B) x<=y    C)x || y+z && y-z    D) !((x

7.下列各选项中,正确的选项是    A    。

A) 0和‘\0’值相等。                B) 0和‘0’ 值相等 。 

C)‘\0’和 ‘0’ 值相等 。          D) 0、‘\0’和‘0’ 值都不相等。

8. 若有说明语句:char ch=‘\72’;则变量 ch   A      。

A)包含1个字符           B) 包含2个字符   

C) 包含3个字符           D) 说明不合法 

9.在下列关于C++与C语言关系的各描述中,   D    是错误的。

A)C语言是C++的一个子集;      B)C语言与C++是兼容的;

C)C++对C语言进行了一些改进;  D) C++和C语言都是面向对象的。

10.在下列关于类概念的各描述中,     A    是错误的。

A)类就是C语言中的结构体类型;

B)类是具有共同行为的若干对象的统一描述体;

C)类是创建对象的样板;

D)类是抽象数据类型的实现。

11.在下列各选项中,符合C++语法的赋值表达式是   C       。

A) d=3+=d+6               B) d=6+e=d+8

C) d=e+=f+6  d=e+f+6      D) d=2+e, d+5=1

12.对 for( 表达式1 ; ;表达式3 ) 可理解为    B     。

A)for( 表达式1 ;0 ;表达式3 )

B)for( 表达式1 ;1 ;表达式3 )

C)for( 表达式1 ;表达式1 ;表达式3 )

D)for( 表达式1 ;表达式3 ;表达式3 )

13.若有定义:int a[3][4] ; 则对a数组某一元素的正确表示是    C     。

A)a[2][4]         B) a[1,3]       C)a[1+1][0]         D) a(2)(1)

14.若有初始化 static char str[]=“NDJSZX” ;则其中的str[]相当于  B   

A)str[8]        B) str[7]        C) str[6]         D) str[2]

15.一维整型数组a的正确定义是    D     。

A) int a(10);

B) int n=10;  int a[n];

C) int n;  cin>>n;  int a[n];

D) const int SIZE=10;  int a[SIZE];

16.采用函数重载的目的在于   D      ;

A) 实现共享                      B)减少空间

C) 提高速度                      D)使用方便,提高可读性

17.下列的各类函数中,    C     不是类的成员函数。

A)构造函数                         B)析构函数

C)友元函数不是类的成员函数         D)拷贝初始化构造函数

18.若有定义:int x , *p ; 则正确的赋值表达式是    D     。

A) *p=*x      B) *p=&x         C) p=x         D) p=&x

int *p=&x   

19.下列静态数据成员特性中,   D     是错误的。

A) 说明静态数据成员时前边要加修饰符static;

B) 静态数据成员要在类体外进行初始化;

C) 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域分辨符;

D) 静态数据成员不是所有对象共有的。静态数据成员是所有对象共有的

20.以下各选项中,正确的函数声明是   C     。

A)double  func( int  x ,  int  y ) 

B)int  func( int  x ;  int  y ) ;

C)float  func( int  x ,  int  y ) ;逗号隔开

D)char  func( int  x ,  y ) ;

二、填空题

1.一个C++程序的执行从    main     函数开始,到   main     函数结束 。

2. 设有定义 int  x=3,  y=4 ; 则表达式 x*=y+5的值为     27   。若有         定义  int  a=2 ;则执行完语句 a+=a-=a*a ;之后,a的值为   -4      。

3.在C++ 中,只能用于整型操作数的算术运算符是  %     ;表达式3 / 2的结果为     1    。

4.在C++ 中, 变量的三个基本要素是指:变量名、  变量类型  和  变量值      。

5.设有定义 int  x=3,  y=4, t ; 则实现x,y两变量值交换的三个语句是:t=x ;   

    x=y        ;     y=t       ; 。

6.在C++ 中,有两种给出注释的方法。一种是沿用C语言的注释符,即  /*     */   。另一种是从它开始,直到它所在行尾的字符都为注释的注释符,即   //      。

7.C++ 中, 函数在定义时可以预先定义出默认的形参值。默认形参值必须        按  从右到左  的顺序定义。因为在调用时,实参初始化形参是按  从左到右       的顺序

8C++程序中,对刚创建的对象进行初始化的工作由  构造    函数来完成;而对象被删除前的一些清理工作则是由  析构    函数来完成的。

9. Visual C++ 6.0 集成开发环境界面由标题栏、菜单栏、工具栏、  项目工作区      窗口、文档窗口、  输出    窗口以及状态栏等组成。

10类是逻辑上相关的   函数     与数据的封装。特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的   继承    

三、程序阅读题

1.源程序如下:

# include   

void main( )

{

  char  *s =”abcdefg” ;       

  cout << s << endl ;

s + = 2 ;

cout << s << endl ;    //加号向右从第n位输出

      }

 

2.源程序如下:

# include           

# define  N  5

void main( )

{

  int  i ,  j ;

  for( i = N;  i >= 1 ;  i-- )

   {

for( j = 1;  j <= N-i ;  j + + )

   cout << " ″;    // 双引号内含一空格

for( j = 1;  j <= 2*i-1 ;  j + + )

   cout << ″*″;

cout << endl ;

      }

}                            //考虑其他情况

复习C++期末考试题目_第1张图片

 

3.源程序如下:

# include            

void  main( )

{

int  fun( int  a ) ;

int  a=2,  i ;

 for ( i = 0 ;  i < 3 ;  i + + )  

printf (“ %3d ” ,  fun( a ) ) ;

}

int  fun( int  a )

{

int  b = 1 ;

 static  int  c = 1 ;

 b = b + 1 ;   c = c + 1 ;         

 return ( a + b + c ) ;

}

 

4.源程序如下:

# include               

void  main( )

{

  int  prime ( int  x ) ;

static  int  a [6] = { 5,  9,  6,  11,  13,  8 } ;

  int  i ,  *p = a ,  sum = 0 ;

  for ( i = 0 ;  i < 6 ;  i + + )

     if ( prime ( *( p + i ) ) = = 1 )

        { printf ( “ %d \t ” ,  * (a+i ) ) ;  sum  + =  * ( a + i ) ;  }

  printf ( “\n The  Sum = %d \n ”,  sum ) ;

int  prime ( int  x )

{

int  i ;

  for ( i = 2 ;  i <  x ;  i + + )

if ( x % i = = 0 )  return ( 0 ) ;

     return ( 1 );

}

 

5.源程序如下:

# include  < iostream.h >

void  f1( int I )  { I += 10 ; }

void  f2( int * I )  { *I += 10 ; }

void  f3( int& n )  { n += 10 ; }

void  main( )

{                                      

  int  I = 0 ;

f1( I ) ;

  cout <<“I  is  ”<< I << endl ;

f2( &I ) ;

  cout <<“I  is  ”<< I << endl ;

f3( I ) ;

  cout <<“I  is  ”<< I << endl ;

}

 

 

6.源程序如下:

# include  

class  Class

{ public :

   Class ( int  n = 6 ,  int  m = 7 ) ; //默认数值

~Class ( ) ;

void  Set ( int  n ,  int  m )  { x = n ;  y = m ; }

   private :

     int  x,  y ;

  } ;

  Class :: Class( int  n,  int  m)

{

   Set( n,  m ) ;

   cout <<“Construct :  x= ”<< x <<“,  y= ” << y << endl ;

  }

Class :: ~Class( )

{

cout <<“Destruct :  x=” << x <<“,  y= ” << y << endl ;

}  

void  main( )

{                                    

Class  a ( 5 ) ;  //5,7

Class  b ( 1 ,  3 ) ;

cout <<exiting…\n  ;

   }

复习C++期末考试题目_第2张图片

四、程序填空题 

1.本程序用递归的方法计算并输出Fibonacci数列的前20项。Fibonacci数列的规律是:数列前两项均为1,从第三项开始,每一项都是其前两项的和。请补全fac函数。

# include  

int  fac( int  n ) ;

void  main( )

{

int  i ;

for( i = 0 ;  i < 20 ;  i + + )

  cout << fac( i ) << ″  ″;  

}

int  fac( int  n )

{                      // 红色显示的部分为参考答案

                              int s;

                              if(n==0 || n==1) s=1;

                                 else s=fac(n-1)+fac(n-2);

                              return s;

 }

2.本程序的功能是输出三角形式的九九乘法表。请在横线上填空。

#include            

void main( )                             

{                                     

int  i ,  j ;                                 

     for( i=1;  i<=___9___ ;  i++ )

{

for( j=1;  j<=___i_____ ;  j++)

     printf ( “ %1d*%1d=%2d  ” ,  j ,   i ,  i*j       ) ;

printf( “ \n ” ) ;

}

    } 

五、程序设计题

1.设学生的人数已知,他们的考试成绩也已知。请编程补全下面的程序,使该程序能完成:(1)计算出这些成绩的平均成绩并显示出来;(2)计算出这些成绩的最高成绩并显示出来。

  # include  

  # define  N  8

  void  main( )

  {

static  float  score[N]={ 86, 67, 98, 80, 78, 95, 56, 78 } ;

int i;

float s, aver, max;

s=0;

for(i=0; i

  s=s+score[i];

aver=s/N;

cout<<aver=<

max=score[0];

for(i=1; i

   if(max

cout<<max=<

}

2.编一程序,其功能是:对键盘输入的年、月、日,计算并输出该日是该年的第几天。

要求:年、月、日分别用year、month、day表示;用函数leap来判别year年是否闰年。

提示:非闰年各月的天数可预先放入一个数组中。

 void main( )

{

  int  year , month , day , s , i ;

  bool leap(int year);

  static dofm[13]={0, 31, 28, 31, 30, 31, 30,

31, 31, 30, 31, 30, 31 };    // 0下标(0月)不用

     cin>>year>>month>>day;

     s=0;

     for(i=1; i// 统计month月之前的那些月的总天数

        s=s+dofm[i];

     s=s+day;                  // 统计非闰年时到month月day日的总天数

     if( month>2 && leap(year)==true ) s=s+1;

     cout<该日是该年的第  <<

   }

   bool leap(int year)

   {  bool flag=false ;            // 先设输入的该年不是闰年 

      if( (year%400==0) || ( year%4==0 && year%100 !=0 ) )

         flag=true ;

      return flag ;

   }

写在最后

今天就到这里了哈~

后续我还会发布更多的项目源或者学习资料,希望大家可以持续关注,有什么问题可以给我留言。

不管你是转行也好,初学也罢,进阶也可,如果你想学编程~

【值得关注】我的【C/C++源码资料学习群】点击进入

B站视频教程:c语言基础学习的个人空间_哔哩哔哩_Bilibili

你可能感兴趣的:(编程语言,C++,c语言,c++,开发语言)