C程序设计基础复习题A.docx

上传人:b****6 文档编号:4831507 上传时间:2022-12-10 格式:DOCX 页数:21 大小:29.17KB
下载 相关 举报
C程序设计基础复习题A.docx_第1页
第1页 / 共21页
C程序设计基础复习题A.docx_第2页
第2页 / 共21页
C程序设计基础复习题A.docx_第3页
第3页 / 共21页
C程序设计基础复习题A.docx_第4页
第4页 / 共21页
C程序设计基础复习题A.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C程序设计基础复习题A.docx

《C程序设计基础复习题A.docx》由会员分享,可在线阅读,更多相关《C程序设计基础复习题A.docx(21页珍藏版)》请在冰豆网上搜索。

C程序设计基础复习题A.docx

C程序设计基础复习题A

《C++程序设计基础》复习题A

一、填空题

1.算法的基本控制结构包括:

,,。

2.在C++中有三种参数传递方式:

__________、__________和__________。

3.下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。

#include

usingnamespacestd;

______________pi=;

voidmain()

{

doubler;

cout<<″r=″;

_________________;

doublel=*pi*r;

doubles=pi*r*r;

cout<<″\nThelongis:

″<

cout<<″Theareais:

″<

}

4.若有定义语句:

inta=3,b=2;,则表达式a

a:

b的值是___________。

5.类的成员包括_________和_________两种,在面向对象的术语中,前者称为属性、后者称为方法。

其访问权限有三种,由符号_________、________和________指定,其中具有________权限的成员只有类中的成员函数才能访问、而具有________权限的成员在任何函数中都可访问。

6.构造函数是一个特殊的成员函数,其特殊性表现在创建对象时会__________。

构造函数名必须与__________相同。

7.函数重载是指一组函数具有相同的_________,在函数调用时,编译程序根据________的个数和类型确定使用那一个版本。

二、选择题

1.C++源程序文件的默认扩展名为()。

A.cppB.exeC.objD.lik

2.设有数组定义:

chararray[]="China";则数组array所占的空间为()。

A.4个字节B.5个字节C.6个字节D.7个字节

3.下列选项中,与实现运行时多态性无关的是()。

A.重载函数B.虚函数C.指针D.引用

4.若a是int类型变量,则计算表达式a=1000%999的值是()。

A.0B.1C.2D.3

5.下面程序段中,for循环的执行次数是()。

inti=10;

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

cout<<"*";

A.9B.10C.8D.7

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

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.程序执行中,数组元素的下标越界时,系统给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

7.有如下函数模板定义

template

Tfunc(Tx,Ty)

{

returnx*x+y*y;

}

在下列对func()的调用中,错误的是()。

A.func(3,5);B.func,

C.func(3,D.func((double)3,

8.类的析构函数的作用是()。

A.对象的初始化B.删除对象时的清理任务

C.与一般成员函数一样D.类的初始化

9.程序段

inta,b;

a=5;

b=a++;

cout<

的输出应为()。

A.4B.5C.6D.7

10.程序段

inti,a;

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

a=i;

cout<

的输出应为()。

A.0B.9C.10D.11

11.下列有关函数重载的叙述中,错误的是()。

A.函数重载就是用相同的函数名定义多个函数

B.重载函数的参数列表必须不同

C.重载函数的返回值类型必须不同

D.重载函数的参数可以带有默认值

12.下列变量名中,()是合法的。

A.CHINAB.byte-sizeC.doubleD.A+a

13.下列各种函数中,()不是类的成员函数。

A.构造函数B.析构函数C.友元函数D.拷贝构造函数

14.下列()是正确的语句。

A.;B.a=17C.x+yD.cout<<"\n"

15.循环while(inti=0)i--;执行次数是()。

A.0B.1C.5D.无限

16.使用操作符setw对数据进行格式输出时,需要包含()文件。

A.iostreamB.fstreamC.iomanipD.stdlib

17.对C++语言和C语言的兼容性,描述正确的是()

A.C++兼容CB.C++部分兼容C

C.C++不兼容CD.C兼容C++

18.对使用关键字new所开辟的动态存储空间,释放时必须使用()

A.freeB.createC.deleteD.realse

19.如没有使用private关键字定义类的数据成员,则默认为()

A.privateB.publicC.protectedD.friend

20.使用值传递方式将实参传给形参,下列说法正确的是()

A.形参是实参的备份B.实参是形参的备份

C.形参和实参是同一对象D.形参和实参无联系

三、判断题

1.C++语言规定,标识符中的字母一般区分大、小写。

2.控制台标准输入设备一般是指键盘。

3.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前处理。

4.循环体中continue语句的作用是结束整个循环的执行。

5.关系表达式的值是0或1。

6.用class定义的类中,默认的访问权限是私有的。

7.一个类中必须要有公有成员和私有成员。

8.如果在一个程序块中有两个变量具有相同的名字,并且都有效,只是它们的作用域不同,则优先访问作用域较小的那个变量。

9.类中成员函数都是公有的,数据成员都是私有的。

10.构造函数不能重载。

四、写出程序运行结果(注意结果的输出格式。

1.

voidmain()

{

inta[3][3],*p,i;

p=&a[0][0];

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

p[i]=i;

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

cout<

}

2.

#include

usingnamespacestd;

#include<>

intf1(intx)

{

staticintz=3,y=0;

y++;

z++;

return(x+y+z);

}

voidmain()

{

inta=1,k;

for(k=0;k<3;k++)cout<

}

3.

#include

longsub(intnum)

{

inti;

longsubsum=1;

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

subsum*=i;

return(subsum);

}

voidmain()

{

inti;longsum=0;

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

{

sum+=sub(i);

cout<

}

}

4.

#include

usingnamespacestd;

classPerson

{

public:

Person()

{

cout<<"ConstructPerson"<

}

~Person()

{

cout<<"DestructPerson"<

}

};

classStudent:

publicPerson

{

public:

Student()

{

cout<<"ConstructStudent"<

}

~Student()

{

cout<<"DestructStudent"<

}

};

classTeacher:

publicPerson

{

public:

Teacher()

{

cout<<"ConstructTeacher"<

}

~Teacher()

{

cout<<"DestructTeacher"<

}

};

voidmain()

{

Students;

Teachert;

}

五、编程题

1.编程求数列1,

,……的所有大于等于的数据项之和并输出结果。

2.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。

3.定义一个时间类Time,包含3个保护数据成员Hour(小时),Minute(分钟),second(秒)以及两个公有成员函数SetTime()用来为对象设置时间,ShowTime()用来输出显示时间。

定义该类的构造函数,初始化对象的Hour,Minute和Second;

主函数中定义两个对象,时间分别为15点38分42秒和3点4分5秒,并且输出。

《C++程序设计基础》复习题B

 

一、填空题

8.面向对象的程序设计中的对象是对一个客观实体的和的封装体。

9.C++语言中的每条基本语句以__________作为结束符,每条复合语句是以________字符作为开始符,以________字符作为结束符的。

10.有一种只在循环语句或switch语句中使用的流程控制语句,表示该语句的关键字是________________。

11.下面程序的功能是计算1-3+5-7+…-99+101的值存在s中,请填空。

#include<>

main()

{

inti,t=1,s=0;

for(i=1;i<=101;________________)

{

s=s+i*t;

t=_______________;

}

}

12.在C++语言中,逻辑假用________________表示。

13.执行“cout<

14.算术表达式-2

15.假定一个一维数组的定义为“char*a[8];”,则该数组所含元素的个数为,所占存储空间的字节数为。

16.若要访问指针变量p所指向的数据,应使用表达式______________。

17.表达式:

26%3=______________,32/5=_______________。

18.C++源程序文件的扩展名是______,头文件的扩展名是______。

19.在C++中,声明布尔类型变量所用的关键字是______________,定义虚函数所用的关键字是________。

二、选择题

21.由C++目标文件连接而成的可执行文件的默认扩展名为()。

A.cppB.exeC.objD.lik

22.在下列成对的表达式中,运算结果类型相同的一对是()。

A.7/2和/B.7/和7/2

C./2和7/2D./和/2

23.内联函数的特点是()。

A.减少代码量,加快访问速度B.减少代码量,减缓访问速度

C.增加代码量,减缓访问速度D.增加代码量,加快访问速度

24.类的私有成员可在何处被访问()。

A.本类的成员函数中B.本类及子类的成员函数中

C.通过对象名在任何位置D.不可访问

25.类的构造函数在以下什么情况下会被自动调用()。

A.定义成员函数时B.定义对象时

C.定义数据成员时D.定义友元函数时

26.下列关于析构函数描述正确的是()。

A.可以重载B.函数体中必须有delete语句

C.返回类型必须是void类型D.不能指定返回类型

27.下列哪个编译指令属于条件编译指令()。

A.#includeB.#defineC.#elseD.#pragma

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

A.mainB.MAINC.nameD.function

29.设x和y均为bool量,则x&&y为真的条件是()。

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

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

()。

A.voidB.intC.newD.long

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

A.ABoperator+(AB&a,AB&B.B.ABoperator+(AB&A.

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

32.变量的指针,其含义是指该变量的()。

A.值B.地址C.名D.一个标志

33.派生类的成员函数不能访问基类的()。

A.公有成员和保护成员B.公有成员

C.私有成员D.保护成员

34.数字字符0的ASCII值为48,若有以下程序

voidmain()

{

chara='1',b='2';

cout<

cout<

}

程序运行后的输出结果是()。

A.3,2B.50,2C.2,2D.2,50

35.执行下列程序段后,正确的结果是()。

inti=0,s=1;

while(i<3)

{

s+=i;

i++;

}

cout<

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

36.执行下列程序段后,正确的结果是()。

#include

usingnamespacestd;

voidmain()

{

chara[7]="abcdef";

charb[4]="ABC";

strcpy(a,B.;

cout<

A.eB.fC.0D.无输出

37.下列带缺省值参数的函数说明中,正确的说明是()。

A.intFun(intx,inty=2,intz=3);B.intFun(intx=1,inty,intz=3);

C.intFun(intx,inty=2,intz);D.intFun(intx=1,inty,intz);

38.拷贝构造函数的作用是()。

A.进行数据类型的转换B.用对象调用成员函数

C.用对象初始化对象D.用一般类型的数据初始化对象

39.类的私有成员可在何处访问()。

A.通过子类的对象访问B.本类及子类的成员函数中

C.通过该类对象访问D.本类的成员函数中

40.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是()。

A.编译器总是自动创建一个不带参数的构造函数

B.这个类没有构造函数

C.这个类不需要构造函数

D.该类不能通过编译

三、判断题正确的划√,错误的划×

1.析构函数是一个函数体为空的成员函数。

2.函数重载可以实现动态多态,虚函数可以实现静态多态。

3.若有定义:

doublex[3][5];则x数组列下标的上限是5,下限是1。

4.不能在类的构造函数中对其静态数据成员进行初始化。

5.在C++中,可以使用关键字struct定义类。

6.若有说明:

inta[3][4]={0},则只有元素a[0][0]可得到初值0。

7.字符串作为一维数组存放在内存中。

8.字符数组中的一个元素存放一个字符。

9.字符数组中的最后一个字符必须是'\0'。

10.形参为指针变量时,实参必须是数组名。

四、写出程序运行结果(注意结果的输出格式。

1.

#include

usingnamespacestd;

voidSwap(inta,intB.;

intmain()

{

intx(5),y(10);

cout<<"x="<

Swap(x,y);

cout<<"x="<

return0;

}

2.

#include

usingnamespacestd;

intfunc1(intn);

intfunc2(intn);

voidmain()

{

intsum;

sum=func2(5);

cout<

}

intfunc1(intn)

{

if(n==1)

return1;

else

returnn*func1(n-1);

}

intfunc2(intn)

{

ints=0;

for(inti=1;i<=n;i++)

s+=func1(i);

returns;

}

3.

#include

usingnamespacestd;

#include<>

voidmain()

{

inti=1,s=3;

do

{

s+=i++;

if(s%7==0)continue;

else++i;

}while(s<15);

cout<

}

4.

#include

usingnamespacestd;

classAA

{

public:

staticintn;

AA(){n++;}

};

intAA:

:

n=0;

voidmain()

{

cout<<"AA:

:

n="<

:

n<

AAd1;

cout<<<

AAd2;

cout<<<

AAd3,d4;

cout<<<

cout<<<

}

五、编程题

4.用公式:

π×π/6=1/(1×1)+1/(2×2)+1/(3×3)+......求π的近似值,直到最后一项的值小于10e-6为止。

5.编写函数arraymin,求n个整数的数组x中的最小数及其下标,找出最小数及其下标;并在主函数中定义一个10个整数的数组a(341,91,100,35,22,36,1,88,9,29),调用函数arraymin打印数组a的最小数及其下标。

6.定义一个Box(盒子)类,在该类定义中包括

数据成员:

length(长)、width(宽)和height(高);

成员函数:

构造函数Box,设置盒子长、宽和高三个初始数据;用函数volume计算并输出盒子的体积。

在main函数中,要求创建Box对象,长、宽和高分别为1,3,5,求盒子的体积。

《C++程序设计基础》复习题C

一、填空题

20.多行注释的开始标记符和结束标记符分别为__________和__________。

21.若n为整型,则表达式n=(float)2/3的值是。

22.C++目标程序经___________后生成扩展名为exe的可执行程序文件。

23.要在屏幕上显示"Hello,world!

"(要求带双引号)应执行语句cout<<______________________。

24.执行if(x>=0||x<=0)cout<<"abcd";elsecout<<"wxyz";屏幕上显示的是_______________。

25.当使用关键字_______作为函数返回类型时,该函数不返回任何值。

26.在类中必须声明成员函数的___________,成员函数的_________部分可以写在类外。

27.如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是_________类型或__________类型。

28.当一个变量被声明为另一个变量的引用时,此变量就成为被引用变量的________。

此时,对其中一个变量值的修改,_______(会/不会)影响到另一个变量的值。

29.友员不是类的成员,但必须在_________予以声明,它具有存取类的_________成员的特权。

30.如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是__________类型或________类型。

31.下面程序将字符数组a复制到字符数组b中。

main()

{

chara[]="Iamaboy.",b[20];

inti;

for(i=__________;a[i]!

='\0';i++)

{

____________________;

}

_____________________;

}

二、选择题

41.由C++源程序文件编译而成的目标文件的默认扩展名为()。

A.cppB.exeC.objD.lik

42.将小写字母n赋值给字符变量one_char,正确的操作是()。

A.one_char='\n';      B.one_char="n";

C.one_char=110;      D.one_char='N';

43.在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是()。

A.cerrB.cinC.coutD.cfile

44.包含自定义头文件的预处理指令是()。

A.#define<>B.#includeC.#defineD.#include""

45.用于标识十六进制前缀或后缀是()。

A.无B.后缀L或eC.前缀零D.前缀0x

46.设存在整型变量intx,则下列句与其它三项含义不同的是()。

A.int*p=&x;B.int&p=x;C.int&p=x;D.int&p=x;

47.在定义类成员时,为产生封装性,则需使用哪个关键字()。

A.publicB.publishC.protectedD.private

48.函数默认参数在函数原型中说明,默认参数必须放在参数序列的()。

A.前部B.中部C.后部D.两端

49.设存在函数intmin(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是()。

A.intm=min(min(15,26),min(15,47));

B.intm=min(15,26,47);

C.intm=min(15,min(47,26));

D.intm=min(min(47,26),16);

50.下列函数不能和函数voidprint(char)构成重载的是()。

A.intpr

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

当前位置:首页 > 高中教育 > 高考

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

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