C语言程序设计复习题.docx

上传人:b****6 文档编号:7324287 上传时间:2023-05-11 格式:DOCX 页数:24 大小:37.54KB
下载 相关 举报
C语言程序设计复习题.docx_第1页
第1页 / 共24页
C语言程序设计复习题.docx_第2页
第2页 / 共24页
C语言程序设计复习题.docx_第3页
第3页 / 共24页
C语言程序设计复习题.docx_第4页
第4页 / 共24页
C语言程序设计复习题.docx_第5页
第5页 / 共24页
C语言程序设计复习题.docx_第6页
第6页 / 共24页
C语言程序设计复习题.docx_第7页
第7页 / 共24页
C语言程序设计复习题.docx_第8页
第8页 / 共24页
C语言程序设计复习题.docx_第9页
第9页 / 共24页
C语言程序设计复习题.docx_第10页
第10页 / 共24页
C语言程序设计复习题.docx_第11页
第11页 / 共24页
C语言程序设计复习题.docx_第12页
第12页 / 共24页
C语言程序设计复习题.docx_第13页
第13页 / 共24页
C语言程序设计复习题.docx_第14页
第14页 / 共24页
C语言程序设计复习题.docx_第15页
第15页 / 共24页
C语言程序设计复习题.docx_第16页
第16页 / 共24页
C语言程序设计复习题.docx_第17页
第17页 / 共24页
C语言程序设计复习题.docx_第18页
第18页 / 共24页
C语言程序设计复习题.docx_第19页
第19页 / 共24页
C语言程序设计复习题.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计复习题.docx

《C语言程序设计复习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习题.docx(24页珍藏版)》请在冰点文库上搜索。

C语言程序设计复习题.docx

C语言程序设计复习题

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

一、单项选择题

1.下列表达式中不正确的是。

A、pxB、p=q=9

C、k/(p+3)D、23i+5

2.若w是一个bool型变量,则w&&!

w的值是。

A、trueB、false

C、与w的值相同D、与!

w的值相同

3.要定义一个int型数组A,并使其各元素具有初值9,0,3,0,0,不正确的定义语句是。

A、intA[]={9,0,3};B、intA[]={9,0,3,0,0};

B、intA[5]={9,0,3};D、intA[5]={9,0,3,0};

4.如果一个函数无返回值,则只能作为被调用。

A、表达式B、语句

C、有参函数D、无参函数

5.有关析构函数的说法中不正确的是。

A、析构函数有且只能有一个

B、析构函数无任何函数类型

C、析构函数和构造函数一样可以有参数

D、析构函数的作用是在对象被撤销时收回先前分配的内存空间

6.的功能是对对象进行初始化

A、析构函数B、数据成员

C、构造函数D、静态成员函数

7.下列for语句的循环次数为。

for(inti=0,x=0;!

x&&i<=5;i++)

A、5B、6

C、1D、无限

8.X>Y&&X<=Y的值为。

A、trueB、false

C、与X>Y的值相同D、与X<=Y的值相同

9.若对函数类型未加显式说明,则该函数的隐含类型是。

A、voidB、double

C、intD、char

10.有关类和对象的说法,下列不正确的是。

A、对象是类的一个实例B、任何一个对象只能属于一个具体的类

C、一个类只能有一个对象D、类与对象的关系和数据类型和变量的关系相似

11..不是构造函数的特征。

A、构造函数的函数名与类名相同B、构造函数可以重载

C、构造函数可以设置默认参数D、构造函数必须指定类型说明

12.是析构函数的特征。

A、一个类中只能定义一个析构函数B、析构函数与类名不同

C、析构函数的定义只能在类体内D、析构函数可以有一个或多个参数

13.类型修饰符unsigned修饰类型是错误的。

A、charB、intC、longintD、float

14.下列十六进制的整型常数表示中,是错误的

A、0xafB、0X1bC、2fxD、0XAE

15.下列运算符中,的结合性从左到右。

A、三目B、赋值C、比较D、单目

16.预处理命令在程序中都是以开头的。

A、*B、#C、:

D、/

17.将两个字符串连接成一个字符串时,选用函数。

A、strlenB、strcpyC、strcatD、strcmp

18.下述静态数据成员的特征中,是错误的。

A、说明静态数据成员时,前面要加修饰府static

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

C、引用静态数据成员时,要在静态数据成员名加类名和作用域运算符

D、静态数据成员不是所有对象所公有的

19.类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么:

A.类C的继承方式只能采用public继承。

B.可改用单继承的方式实现类C的同样功能。

C.类A和类B至少有一个是抽象类。

D.类A和类B至少有一个是虚基类。

20.下列哪种用法不能体现类A和类B之间的组合关系:

A.类A中声明数据成员Bb;

B.类A中声明数据成员B*b;

C.类A中声明数据成员constB&b;

D.类A中声明成员函数Bfunc(B&obj);

21.执行boolOK=2!

=3;cout<

A、trueB、false

C、1D、0

22.若w是一个bool型变量,则w||5的值是。

A、trueB、false

C、与w的值相同D、与!

w的值相同

23.已知一正常运行的程序中有这样两个语句:

int*p2=&x,*p1=d1;

*p2=*d2;

由此可知,变量d1和d2的数据类型分别是。

A、int和intB、int*和int

C、int*和int*D、int和int*

24.要使指针变量P指向一维数组A的第五个元素(下标为4的那个元素),正确的赋值表达式是。

A、P=&A或P=&A[4]B、P=A+4或A=&A[4]

C、P=A+4或P=A[4]D、P=&A+4或P=A[4]

25.是给对象取一个别名。

A、指针B、引用

C、枚举D、结构

26.sizeof(double)是一个表达式。

A、整型B、双精度

C、不合法D、函数调用

27.要定义一个int型数组A,并使其各元素具有初值9,0,3,0,0,不正确的定义语句是。

A、intA[]={9,0,3};B、intA[]={9,0,3,0,0};

B、intA[5]={9,0,3};D、intA[5]={9,0,3,0};

28.下列while循环的次数是。

While(inti=0)i――;

A、0B、1

C、5D、无限

29.有关构造函数的说法不正确的是。

A、构造函数的名字和类的名字一样B、构造函数在声明对象时自动执行

C、构造函数无任何数据类型D、构造函数有且只有一个

30.以下类的说明中,指出有错误的地方。

classA

{

inta=1;//A

doubleb;//B

public:

A();//C

~A();//D

}

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

A、构造函数B、析构函数

C、友员函数D、拷贝初始化构造函数

32.下列定义中,是定义指向数组的指针p。

A、int*p[5]B、int(*p)[5]

C、(int*)p[5]D、int*p[]

33.下列double型常量表示中,是错误的。

A、E15B、.35C、3E5D、3E-5

34.对字符数组初始化时,是正确的。

A、chars1[]=“abcd“;B、chars2[3]=“xyz”;

C、chars3[][3]={“abc”};D、chars4[2][3]={“xyz”,”mnp”};

35.下述关于break语句的描述中,是不正确的。

A、break语句可以用在循环体内,它将退出该重循环

B、开关语句中每个语句序列中必须有break语句

C、开关语句中default子句只能放在最后

D、开关语句中case子句后面的表达式可以是整型表达式

36.下面关于条件语句的描述中,是错误的。

A、if语句中只有一个else子句B、if语句中可以有多个elseif子句

C、if语句中if体不能是开关语句D、if语句的if体可以是循环语句

37.派生类的对象对它的基类中是可以访问的。

A、公有继承的公有成员B、公有继承的私有成员

C、公有继承的保护成员D、私有继承的公有成员

38.关于虚函数的描述中,是正确的。

A、虚函数是一个static类型的成员函数

B、虚函数是一个非成员函数

C、基类中说明了虚函数后,派生类中将其对应的函数不必说明为虚函数

D、派生类的虚函数和基类的虚函数具有不同的参数个数和类型

39.类A有一个实例化的常量对象a,那么下面的说法中不正确的是:

   

A.类A中的非静态数据成员一定都是常量成员。

B.通过a可以直接调用类A的常量成员函数。

C.a不能直接作为左值表达式使用。

D.a可以是静态常量对象。

40.在不考虑强制类型转换的情况下,关于类中常量成员函数的下列说法不正确的是     :

A.常量成员函数中不能修改本类中的非静态数据成员。

B.常量成员函数中可以调用本类中的任何静态成员函数。

C.常量成员函数的返回值只能是void或常量。

D.若常量成员函数中调用虚函数f,那么函数f在本类中也一定是一个常量成员函数。

41.n>=0的等价条件是。

A、n<0B、!

(n>=0)

C、!

(n<0)D、!

(n>0)

42.与if(x>0)if(y<0)x+=y;elsex-=y;等效的语句有。

A、if(x>0||y<0)x+=y;elsex-=y;B、if(x<=0||y>=0)x+=y;elsex-=y;

C、if(x>0)x=(y>=0?

x-y:

x+y);D、if(y>=0)if(x<=0)x-=y;elsex+=y;

43.要使语句p=newlong*;能够正确执行,p应定义为。

A、long***p;B、long**p;

C、longp;D、long*p;

44.有关构造函数的说法中不正确的是。

A、构造函数的名字和类的名字一样B、构造函数在说明类变量时自动执行

C、构造函数无任何函数类型D、构造函数有且只能有一个

45.以下语句不正确的是。

(设有intp,q)

A、p*=3B、p/=q

C、p+=3D、p&&=q

46.以下程序段。

intx=-1;

do{x=x*x;}while(!

x);

A、是死循环B、循环执行二次

C、循环执行一次D、有语法错误

47.当一个函数无返回值时,函数的类型应定义为类型。

A、voidB、任意

C、intD、无

48.C++语言中规定,函数的返回值的类型是由。

A、return语句中的表达式的类型决定B、调用该函数时的主调函数类型决定

C、调用该函数时系统临时决定D、在定义该函数时所指定的函数类型决定

49..的功能是对对象进行初始化。

A、构造函数B、数据成员

C、虚函数D、析构函数

50.如果一个函数无返回值,则只能作为被调用。

A、表达式B、语句

C、有参函数D、无参函数

51.下列说明中:

constchar*ptr;ptr应该是。

A、指向字符常量的指针B、指向字符的常量指针

C、指向字符串常量的指针D、指向字符串的常量指针

52.为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系。

A、缩排位置相同的ifB、在其之前未配对的if

C、在其之前未配对的最近的ifD、同一行上的if

53.inta=3,*p=&a;其中p的值是。

A、变量a的地址值B、无意义

C、变量p的地址值D、3

54.下列运算符中,可以用于浮点数。

A、++B、%C、>>D、&

55.下列的是引用调用

A、形参参是指针,实参是地址值B、形参和实参都是变量

C、形参和实参都是数组名D、形参是引用,实参是变量

56.下列存储类标识符中,的可见性和存在性不一致。

A、外部类B、自定类C、内部静态类D、寄存器类

57.下面关于new和delete操作符的说法,哪个是不正确的:

A.使用new操作符,可以动态分配全局堆中的内存资源。

B.若p的类型已由A*强制转换为void*,那么执行语句deletep;时,类A的析构函数不会被调用。

C.实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中。

D.执行语句A*p=newA[100];时,类A的构造函数只会被调用1次。

58.类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员一定是不允许的:

A.TM*a;B.TN&a;C.TMa;D.TNa;

59.类B是通过public继承方式从类A派生而来的,且类A和类B都有完整的实现代码,那么下列说法正确的是:

A.类B中具有pubic可访问性的成员函数个数一定不少于类A中public成员函数的个数。

B.一个类B的实例对象占用的内存空间一定不少于一个类A的实例对象占用的内存空间。

C.只要类B中的构造函数都是public的,在main函数中就可以创建类B的实例对象。

D.类A和类B中的同名虚函数的返回值类型必须完全一致。

60.下列哪种函数可以是虚的:

A.自定义的构造函数B.拷贝构造函数C.静态成员函数D.析构函数

二、多项选择题

1.下列对指针变量的操作中,正确的是()

Achars[7];int*p=s=580;Bchars[6];int*p1=s;*p1=*p2;

Cchara[7],*p;p=a;Dinta[6],*p;p=&a;

Einta[8],*p=a;

2.下列一维数组的初始化语句中,正确的是()

Afloatb[5]={0,3.2,4.3};Bfloatb[5]={0,3,4.5,6,7,1.2};

Cchara[3]={‘a’};Dinta[]={0};

Estaticintb[3]={1,5};

3.若有说明inti=4,j=2,a[5][4],(*p)[4];和赋值语句p=a;则对数组元素

a[i][j]之值的正确引用是()

A*(p+4*i+j)B*(p+i)[j]C*(*(p+i)+j)D*p[i][j]

Ep[i][j]

4.以下叙述中正确的是()

A.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

E.用static标识的变量是全局变量

5.设有如下定义:

int(*ptr)();则以下叙述中不正确的是()

A.ptr是指向一维数组的指针变量

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

E.ptr是一个指向二维数组的指针变量

6.以下标识符中不合法的是()

A、pabB、a#bC、intD、2_and

7.已知:

chara[20],b[20];则以下正确的输入语句是()

A、gets(a,b);B、scanf(“%s%s”,a,b);

C、scanf(“%s%s”,&a,&b);D、gets(a),gets(b);

8.已知:

double*p[6];它的含义是()

A.p是指针数组

B.p是数组指针

C.p是含有6个元素的一维数组,数组中每个元素都是指向double型变量的指针

D.p是double型数组

9.已知:

inti,x[3][4];则能将x[1][1]的值赋给变量i的语句是()

A、i=*(*(x+1)+1)B、i=x[1][1]C、i=*(*(x+1))D、i=*(x[1]+1)

10.设有以下说明语句:

structstu

{inta;

floatb;

}stutype;

则下面叙述中正确的是()

A、struct是结构类型的关键字B、structstu是用户定义的结构类型

C、stutype是用户定义的结构类型变量名D、a和b都是结构成员名

11.若有说明:

long*p,a;则能通过scanf语句正确给输入项读入数据的程序段是(    )

(A)*p=&a;scanf(“%ld”,p);(B)p=(long*)malloc(4);

(C)scanf(“%ld”,p=&a);(D)scanf(“%ld”,&a);

(E)scanf(“%ld”,p);a=*p;

12.下列一维数组的初始化语句中,正确的是(     )

(A)floatb[5]={0,3.2,4.3};(B)floatb[5]={0,3,4.5,6,7,1.2};

(C)chara[3]={‘a’};(D)inta[]={0};

(E)staticintb[3]={1,5};

13.以下叙述中错误的是(     )

A.定义函数时,形参的类型说明只能放在函数定义的第一行参数表中

B.return语句后边不能用表达式

C.如果函数的类型与返回值类型不一致,以函数类型为准

D.如果函数的类型与返回值类型不一致,以返回值类型为准

E.如果形参与实参的类型不一致,以实参类型为准

14.若有以下说明:

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

charc=’a’,d,g;

则数值为4的表达式是(     )

(A)a[g-c](B)a[4](C)a[3](D)a[‘d’-‘c’](D)a[‘d’-c]

15.设有如下定义:

int(*ptr)();则以下叙述中不正确的是(     )

A.ptr是指向一维数组的指针变量

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

E.ptr是一个指向二维数组的指针变量

16.以下标识符中不合法的是(    )

A、pabB、a#bC、intD、2_andE、abc

17.已知:

chara[20],b[20];则以下正确的输入语句是(    )

A、gets(a,b);B、scanf(“%s%s”,a,b);

C、scanf(“%s%s”,&a,&b);D、gets(a),gets(b);

E、getchar(a,b);

18.已知:

double*p[6];它的含义是(    )

a)p是指针数组

b)p是数组指针

c)p是含有6个元素的一维数组,数组中每个元素都是指向double型变量的指针

d)p是double型数组

e)p是一个指向数组的指针

19.已知:

inti,x[3][4];则能将x[1][1]的值赋给变量i的语句是(   )

A、i=*(*(x+1)+1)B、i=x[1][1]C、i=*(*(x+1))D、i=*(x[1]+1)E、i=x[1]+1

20.设有以下说明语句:

structstu

{inta;

floatb;

}stutype;

则下面叙述中正确的是(    )

A、struct是结构类型的关键字B、structstu是用户定义的结构类型

C、stutype是用户定义的结构类型变量名D、a和b都是结构成员名

E、stutype是结构体类型名

21.若变量已正确定义并赋值,下面符合C语言语法的表达式是()

Aa:

=b+1Ba=b=c=2Ca+=b+3D*p++Ea=a+7=c+b

22.以下叙述中正确的是()

A.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

E.用static标识的变量是全局变量

23.设有如下定义:

int(*ptr)();则以下叙述中不正确的是()

A.ptr是指向一维数组的指针变量

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针

E.ptr是一个指向二维数组的指针变量

24.以下叙述正确的是()

A.do-while语句构成的循环不能用其它语句构成的循环来代替

B.do-while语句构成的循环只能用break语句退出

C.由do-while语句构成的循环,其循环体至少执行一次

D.用do-while语句构成的循环,在while后的表达式为非零时结束循环

E.用do-while语句构成的循环,在while后的表达式为零时结束循环

25.若已定义:

inta[9],*p=a;并在以后的语句中未改变p的值,能表示a[1]地址的表达式是()

Ap+1Ba+1Ca++D++pE&a[1]

26.以下标识符中合法的是()

AdayBE2CintDab_cd

27.已知:

inta,*p=&a;则下列函数调用中正确的是()

Ascanf(“%d”,&a);Bscanf(“%d,p”);

Cprintf(“%d”,a);Dprintf(“%d”,*p);

28.设有说明int(*ptr)[M];其中的标识符ptr是()

A.M个指向整型变量的指针

B.数组指针

C.具有M个指针元素的一维指针数组,每个元素都只能指向整型变量

D.一个指向具有M个整型元素的一维数组的指针

29.已知:

staticinta[2][3]={2,4,6,8,10,12};正确表示数组元素的是()

A*(a+1)B*(a[1]+2)C*(*(a+1)+1)Da[0][0]

30.若有以下说明和语句:

structstudent

{intage;

intnum;

}std,*p;

p=&std;

则以下对结构变量std中成员age的引用方式正确的是()

Astd.ageBp->ageC(*p).ageD*p.age

三、填空题:

1.字符串“Hello”的长度是个字节,存储时占有个字节的空间。

2.字符串“C:

\\DOS\\DATA.DAT”所表示的全路径文件名是。

3.如果x的值为34,y的值为-7,则执行if(x>0)cout<<’A’;if(y<-8)cout<<’B’;屏幕上显示的是。

4.与if(READY)if(OK)y=-1;elsey=0;elsey=1;等效的赋值语句是。

5.执行inti,s;

for(i=8,s=0;i>0;i--)s+=i;

while(++i<5)s+=i;

后,s的值是。

6.字符串“ccut\nsoft”的长度是。

7.执行for(inti=23;i>0;i--)cout<<’*’;将输出个*号。

8.指针变量保存的不是一般的数据值,而是程序中另一个对象的。

9.一个类有个析构函数。

10.执行intx=5,y;y=++x-3;后,x的值是,y的值是。

11.利用操作符++,

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

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2