C期末复习题一.docx

上传人:b****4 文档编号:24228870 上传时间:2023-05-25 格式:DOCX 页数:33 大小:27.06KB
下载 相关 举报
C期末复习题一.docx_第1页
第1页 / 共33页
C期末复习题一.docx_第2页
第2页 / 共33页
C期末复习题一.docx_第3页
第3页 / 共33页
C期末复习题一.docx_第4页
第4页 / 共33页
C期末复习题一.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C期末复习题一.docx

《C期末复习题一.docx》由会员分享,可在线阅读,更多相关《C期末复习题一.docx(33页珍藏版)》请在冰豆网上搜索。

C期末复习题一.docx

C期末复习题一

C++语言程序设计期末复习题

一、单项选择题

1.下列符号中,不可以作为变量名的是        d     。

       A. list_p_9                    B. PA123

       C. ready                      D. for

2.由C++目标文件连接而成的可执行文件的缺省扩展名为        b     。

       A. cpp                        B. exe

       C. obj                        D. lik

3.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为       a      。

A.main          B.MAIN          C.name          D.functkion

4.设x和y均为bool量,则x&&y为真的条件是         a      。

A.它们均为真   B.其中一个为真   C.它们均为假    D.其中一个为假

5.下列表达式中正确的是      b      。

       A. (k++)++                   B. k---j

       C. k--/=5                     D. (k+3)=5

6.执行下面程序段的输出结果是      b     。

intx=4,y=-55;

if(x>0)if(x>10)cout<<”AA”elsecout<<”BB”

elseif(y<-8)if(y>-20)cout<<”CC”elsecout<<”DD”;

A.AA          B.BB          C.CC          D.DD

7.下面四个程序段中,输出23个*号的程序段是       c       。

A.for(inti=1;i<23;i++)cout<<’*’;

B.for(inti=23;i>=0;i--)cout<<’*’;

C.inti=23;while(i>0){cout<<’*’;i--;}

D.inti=0;while(0<=23){cout<<’*’;i++;}

8.在下面的一维数组定义中,哪一个有语法错误。

          c     

       A.  int a[]={1,2,3}              B.  int a[10]={0}

       C.  int a[]                     D.  int a[5]

9.假定a为一个整型数组名,则元素a[4]的字节地址为         c       。

A.a+4           B.a+8            C.a+16           D.a+32

10.要定义一个int型二维数组a,并使其各元素具有初值:

        2 3 0 0

        4 0 5 0

        0 0 0 0

则正确的定义语句是     b       。

 A.inta[][]={2,3,0,0,4,0,5,0,0,0,0,0};

  B.inta[][4]={2,3,0,0,4,0,5,0,0,0,0,0};

  C.inta[3][4]={{2,3},{4,,5}};

  D.inta[][]={{2,3,0,0},{4,0,5,0},{0,0,0,0}};

11.在下面的函数声明中,存在着语法错误的是        d       。

       A.  void BC(int a,int)          B. void BD(int,int)

       C.  void BE(int,int=5)           D. int BF(int x;int y)

12、下面的哪个保留字不能作为函数的返回类型?

        c       。

A.void          B.int             C.new            D.long

13.已知intf(int);和intg(int);分别是函数f和g\的原型。

下列语句中,将函数f作为语句调用的有               。

A.f(3)+g(3);          B.p/=f(3);          C.g(f(3));         D.f(g(3));

14.已知一函数的形参说明为intarr[5][6],在下列说明中,与此等效的形参说明为   d 。

A.intarr[][]        B.int[5][]          C.int*a[6]          D.int(*a)[6]

15.已知函数f的原型是:

intf(chara,char*b=NULL,doublec=0.0);

则下列调用中,不能正确地调用f函数的是       。

   A.f(99)         B.f(‘A’,4.5)        C.f(‘A’,”123”)       D.f((char)65,”123”)

16.已知一函数的原型是:

intf(int,int=0,double=0.0);

则下列函数中可以加以重载的是         。

   A.intf(int);      B.intf(int,int);     C.f(int,int,double);    D.f(intdouble);

17.已知一函数中有下列变量定义,其中属于静态变量的是         。

   A.inta=5;      B.staticdoubleb;   C.registercharc;    D.autoshortd;

18.已知一个运行正常的的程序中有下面两个语句:

int *p1,*p2=&a;

p1=b;

   由此可知,变量a和b的类型分别是        。

    A.int和int     B.int*和int     C.int*和int    D.int*和int*

19.假设p是一指针变量,下列表达式中正确的是        。

    A.++p++        B.(++p)++        C.++(p++)       D.p++-=3

20.设有程序段如下:

intk;

intA[10];

   则下列表达式中,与元素A[k]等效的是       。

    A.A+k         B.*A+k         C.*(A+k)         D.A+*k

21.设有数组定义

      inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

   则表达式*(*(a+2)+1)的值是        。

    A.5            B.6            C.9          D.10

22.要使语句:

 p=newint[10]; 能够正常执行,p应定义为:

       A.intp;       B.intp[10];     C.int*p;     D.int(*p)[10];

23.已知函数f的原型为:

voidf(int&a,char*b);

变量s,t的定义是:

ints;chart[]=”ABCD”;

把s和t分别作为第一参数和第二参数来调用函数f,正确的调用语句是:

        。

   A.f(&s,&t);       B.f(&s,t);        C.f(s,t);         D.f(s,&t);

24.设有如下定义

       struct Person{

         char*name;

         char*sex;

         int age;

         float pay;

       }p={“李小莉”,”女”,23,370};

则下列语句中正确的是              。

A. cout<<(*p).name<name<

             <<(*p).sex<sex<

             <<(*p).age<age<

             <<(*p).pay<pay<

C. cout<

             <

             <

             <

25.设有定义如下:

  union ABC{

      char ch;

      int  ia;

      int *ipa;

      double db;

   };

则表达式sizeof(ABC)的值是          。

A. 17        B. 8       C. 4       D. 1

26.假定AB为一个类,则该类的拷贝构造函数的声明语句为             。

       A. AB&(AB x)                B. AB(AB x)

       C. AB(AB &)                  D. AB(AB*x)

27.对于结构中定义的成员,其隐含访问权限为           。

       A. public                       B. protected

       C. private                      D. static

28.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为      。

       A. ios:

:

in                     B. ios:

:

out

       C. ios:

:

int|ios:

:

out             D. 没有

29.假定AB为一个类,则执行“AB a(4),b[3],*p[2];”语句时,自动调用该类构造函数的次数为                。

A.3             B.4              C.6              D.9

30.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:

                。

A. AB operator+(AB &a,AB &b)      B. AB operator+(AB &a)

C. operator+(AB a)                      D. AB &operator+()

二、填空题

1.执行“cout <<43<<’-‘<<18<<’=’<<43-18<

2.已知’A’~’Z’的ASCII码为65~90,当执行“char ch=14*5+2;cout <

语句序列后,得到的输出结果为     H    。

3.使用const语句定义一个标识符常量时,则必须对它同时进行    初始化    。

4.表达式x=x+1表示成增量表达式为    x++     。

5.若x=5,y=10,则x>y和x<=y的逻辑值分别为    0    和     1   。

6.C++语言中的每条基本语句以      ;      作为结束符,每条复合语句以       }    

作为结束符。

7.执行“cout <

8.float和double类型的大小分别为      4     和      8     。

 

10.关系表达式x+y>5的相反表达式为     x+y<=5或者!

(x+y>y)                    。

11.表达式:

x=625,i=(x>100?

10:

100)的值是       10       。

12.执行intx=4,y;y=x--+3;语句后,变量x的值是    3   ,y的值是    7    。

13.执行程序段

intx=5,y=10;

x+=y;y=x-y;x-=y;

    后变量x的值是   10    ,y的值是    5    。

14.与赋值语句:

y=OK?

(READY?

-1:

0):

1;等效的嵌套的if语句为:

     if(y=OK)

{if(READY)-1;else0;}

else1;         。

15.执行语句i=10;do{cout<<’*’;i--;}while(i+3);后,将显示出     13   个*号。

16.设有下面的定义

int s[10]={1,2,3,4,5,6,7,8,9,10};

int sum=0;

请完善下面的语句实现求数组s的所有元素之和,并保存在变量sum中:

 for(int   j=0  ;  j<10  ;j++) sum+=s[j]   ;

17.执行语句序列

char str1[10]=”ABCD”,str2[10]=”XYZxyz”;

for(inti=0;str1[i]=str2[i];i++);

   后,数组str1中的字符串是   XYZxyz        ,数组str2中的字符串是      XYZxyz     。

18.执行下面程序段

char str1[10]=”ABCD”,str2[10]=”XYZxyz”;

if(strcmp(str1,str2)>0)

    cout<

else

    cout<

   后的输出结果是       XYZxyz         。

19.执行“typedef int ABC[10];”语句把ABC定义为具有10个整型元素的       。

20.假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为        a+i       。

21.已知函数f的定义是:

int f(int n){n*=2;return n+1; }

则执行

   int m=5,n=3;

   m=f(n);

后,变量m的值是     7     ,n的值是      3   。

22.如果在一函数定义中使用    static     修饰符,则声明该函数不允许其它程序文件中的函数调用。

23.已知一函数模板定义为

       templateType incre(Type n){return n+1;}

   则函数调用incre(5.0)使用得该函数模板产生的实例化函数为:

                  

24.已知文件fileA.cpp中的一些函数需要访问在另一个文件fileB.cpp中定义的全局整型

变量var,则在文件fileA.cpp的首部对变量var应声明为        extern            。

25.变量分为全局和局部两种,             变量没有赋初值时,其值是不确定的。

26.假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所

指对象的值为    26    。

27.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为    *(p->b)

                            。

28.假定一个一维数组的定义为“char *a[8];”,则该数组所含元素的个数为     8    ,

所占存储空间的字节数为           。

29.假定a是一个二维数组,则a[i][j]的指针访问方式为   *(* (a+i) +j)           。

30.设px是指向一个类动态对象的指针变量,则执行“delete px;”语句时,将自动调用

该类的   析构函数   。

31.若需要把一个函数“void F();”定义为一个类AB的友元函数,则应在类AB的定义

中加入一条语句:

   friendvoidF();               。

32.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用

                     头文件。

33.假定一个结构类型定义为

“struct D{int a; union{int b;double c;};D *d[2];};”,

则该类型的大小为             字节。

34.对一个类中的数据成员的初始化可以通过构造函数中的       函数体          实现,也可

以通过构造函数中的       初始化器            实现。

35.假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次

数为        10              。

36.假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb

的写法为                                   。

37.请完成下面的一个类的定义:

class ABC{

  private:

         inta,b;

  public:

        ABC(int aa,int bb=5)

        { 

                a=aa                   ; //将aa的值赋给a

                 b=bb                  ; //将bb的值赋给b

        }

      intfA()                   ;

      intfB()                   ;

};

int ABC:

:

fA(){return a+b; }

int ABC:

:

fB(){return a*b; }

三、下列程序运行后的输出结果

1.#include

voidmain()

{

      ints=0;

      for(inti=1; ;i++){

             if(s>50)break;

             if(i%2==0) s+=i;

      }

      cout <<"i,s="<

}i,s=15,56

2.#include

inta=5;

voidmain(){

      inta=10,b=20;

      cout<

      {  inta=0,b=0;

         for(inti=1;i<6;i++){

             a+=i;b+=a;

      }

             cout<

:

a<

      }

      cout<

}1020

15355

1020

3.#include

voidSB(charch){

   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<<"nad!

";break;

   }

}

voidmain(){

   chara1="b",a2="C",a3="f";

   SB(a1);SB(a2);SB(a3);SB("A");

   cout<

}good!

pass!

nad!

well!

4.#include

voidmain()

{

      chara[]="abcdabcabfgacd";

      inti1=0,i2=0,i=0;

      while(a[i]){

             if(a[i]=="a")i1++;

             if(a[i]=="b")i2++;

             i++;

      }

      cout<

}43

5.#include

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1