编辑点评:收集了几套C++试题试卷,用来复习
专门为C++程序设计打造的一系列配套的练习题合集,C++期中期末试题真题合集pdf免费版中包含了期中真题,期末练习题,还有班级试题等,高清无水印,直接打印就可以练习学习,很方便,可复制的版本。
C++程序设计试题图片预览
试题预览
一、选择题(每小题 3 分,共 48 分。)
01、下列关于 C++函数的叙述中,正确的是( )。
A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明 D)函数不能自己调用自己
02、下列关于类和对象的叙述中,错误的是( )。
A)一个类只能有一个对象 B)对象是类的具体实例
C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系
03、在 C++中,用于实现运行时多态性的是( )。
A)内联函数 B)重载函数 C)模板函数 D)虚函数
04、下列关于运算符重载的叙述中,正确的是( )。
A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载
C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参
05、对于语句 cout<<x<<endl;错误的是描述是( )。
A)“cout”是一个输出流对象 B)“endl”的作用是输出回车换行
C)“x”是一个变量 D)“<<”称作提取运算符
06、有如下类声明,则类 MyDERIVED 中保护的数据成员和成员函数的个数是( )。
class MyBASE
{ private: int k;
public: void set(int n){ k=n;}
int get( )const{ return k;} };
class MyDERIVED: protected MyBASE
{ protected: int j;
public: void set(int m, int n){ MyBASE::set(m); j=n;}
int get( ) const { return MyBASE::get( )+j; } };
A)4 B)3 C)2 D)1
07、已知在一个类体中包含如下函数原型: Volume operator-(Volume)const;,下列关于这个函数
的叙述中,错误的是( )。
A)这是运算符-的重载运算符函数 B)这个函数所重载的运算符是一个一元运算符
C)这是一个成员函数 D)这个函数不改变类的任何数据成员的值
08、执行如下的程序段后,输出结果是( )。
cout.fill('*'); cout.width(6); cout.fill('#'); cout << 123 << endl;
A)###123 B)123### C)***123 D)123***
09、在下列函数原型中,可以作为类 AA 构造函数的是( )。
A)void AA(int); B)int AA(); C)AA(int)const; D)AA(int);
10、下面四个选项中,( )是用来声明虚函数的。
A)virtual B)public C)include D)using namespace
11、实现运行时的多态性要使用( )。
A)重载函数 B)构造函数 C)析构函数 D)虚函数
12、要实现动态联编,必须通过( )调用虚函数。
A)对象指针 B)成员名限定 C)对象名 D)派生类名
c程序设计重点知识点
一、C语言知识点归纳:
1、C语言程序是由多个函数构成的。
2、每个C语言程序中有且只有一个main函数。
3、C语言不使用行号,无程序行的概念。
4、程序中可使用空行和空格。
5、C语言程序格式常用锯齿形书写格式。
6、C语言程序中可加任意多的注释,注释形式/*……*/,并且注释形式不能嵌套,即不能注释里面又有另一个注释。//行注释是C++当中新增加的内容。
7、引用C语言标准库函数,一般要用文件包含预处理命令将其头文件包含进来。
8、用户自定义的函数,必须先定义后使用。
9、变量必须先定义后使用。
10、变量名,函数名必须是合法的标识符,标识符习惯用小写字母,C语言是字母大小写敏感的语言。
11、不能用关键字来命名变量和函数。
12、C语言的语句都是以分号结尾的。
13、计算机中使用的进制数是二进制数,而不是十进制数,因为二进制只有两个数码,运算简单便于硬件实现,同时二进制便于逻辑运算。将十进制数转换成二进制数应分为整数部分转换和小数部分转换,整数部分转换可采用基数除法来实现,小数部分转换可采用基数乘法来实现。八进制和十六进制也是C语言中经常表示数据的进制,因为它们与二进制之间的转换非常方便,但要注意他们不是计算机中使用的进制。
14、机器数的表示形式有原码、反码和补码几种形式,计算机中通常使用补码的形式来表示一个数,因为补码运算可以连同符号位一起参与运算,这便于运算器的设计与实现。
二、编程过程中初学者极易犯的错误:
1、书写标识符时,忽略了大小写字母的区别。例如把变量a写成A。
2、忽略了变量的类型,进行了不合法的运算。例如floata,b;printf(“%d”,a%b);,其中%运算只能是整形变量或常量。
3、将字符常量与字符串常量混淆。例如charc;c=”a”;,应该是c=’a’;
4、语句末尾忘记加分号。
5、容易多加不需要的分号,例如{inta,b;printf(“%d,%d”,a,b);};这里花括号外是不能加分号的。
6、将C语句写在{}的外面。
7、变量未定义就使用。
8、在执行部分定义变量。在TC下,函数由生命部分和执行部分组成,并且这两部分不能交叉,也就是说,不能在C语言中间定义变量。下面程序中,变量b的定义放到了执行部分。
voidmain()
{
inta;
a=10;
intb;
b=a;
}
但要记住VC6.0中没有这样的规定,只要变量定义在前,使用在后就行。
9、给变量赋值时忽视了变量的表示范围。例如charch=130;char类型的取值范围是-128~127,这里130超出了ch的表示范围。
10、定义变量时,变量名之间用了空格或分号分隔。例如:intab;应改为:inta,b;
11、输入字符常量时漏掉单引号,认为A、B就是’A’、’B’。例如charch=A;
12、C语句末尾的分号用了中文的分号(;)而不是英文的(;),导致编译错误。
13、误将字母o当成数字零0。
14、编程中经常漏掉}、)、’、”。
15、定义变量时数据类型名与变量名之间无空格。例如inta;
16、对于float型变量,使用%运算符。
17、对表达式进行强制类型转换时漏掉了(),例如:int(3.2+a),应该为:(int)(3.2+a)。
18、赋值运算符的左边使用表达式:例如:a+b=30;或者是30=a+b;
19、语序颠倒。例如下列程序中初学者会误认为程序的输出为a=21:
main()
{
inta,b;
a=b+1;
b=20;
printf(“a=%d”,a);
}
20、#include或#define命令用分号结束。
#开头的是预处理命令,而不是C语句,因此,不用用分号结尾。例如#include;就是错误的,多了个分号。
21、利用scanf函数输入变量值时漏掉取地址符&。
22、利用printf函数和scanf函数时,格式控制符与表达式类型不一致,或数量不相等。例如:
inta,b;
scanf(“%d”,&a,&b);//格式控制符与表达式的'数量不相等
printf(“a=%d,b=%f”,a,b);//%f应改为%d。
23、调用scanf函数输入浮点数时规定了精度。
例如:
floatf;
scanf(“%5.2f”,&f);//应改为scanf(“%5f”,&f);
24、对算数表达式取地址。
取地址运算符&只能用于变量。
下面做法是错误的:
inta,b;
scanf(“%d”,&(a+b));//错误
25、利用printf打印单引号、双引号、反斜杠时,没有在这些字符前利用反斜杠构成转义字符。
例如printf(”youshouldsay”bye”!”);
应改为:printf(”youshouldsay”bye”!”);
三、C语言编程习惯。
1、一行只放一条语句。尽管C语言允许在一行放置多条语句,但一行只放一条语句有助于程序的调试。
2、养成随时给程序加注释的习惯。一边别的程序员或自己日后对程序的快速理解。
3、程序的书写要有层次感,及锯齿形。
4、编写函数时,变量定义部分和函数的执行部分之间增加一空行,或者在程序的执行部分按照完成的功能块增加相应的空行,会增加程序的易读性。
5、为变量起有意义的名字,既可以帮助程序员读懂程序,也可以避免变量的重复乱用,导致程序的逻辑错误。
6、在运算符和赋值符号的两边加上一个空格会增加程序的易读性。
例如a=a+b;写成a=a+b;更好。
热门评论
最新评论