计算机二级C语言程序设计章节习题.docx
《计算机二级C语言程序设计章节习题.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言程序设计章节习题.docx(14页珍藏版)》请在冰点文库上搜索。
计算机二级C语言程序设计章节习题
计算机二级C语言程序设计章节习题
一
简单回答下述问题
C++语言中注释符的格式如何?
注释信息的功能是什么?
答:
注释符格式有2种:
格式一:
/*<注释信息>*/
格式二:
//<注释信息>
注释信息是用来对程序进行提示和说明的。
使用const定义符号常量比使用#define定义符号常量有何优点?
答:
使用const定义符号常量时要指出数据类型,而用#define定义符号常量时不需提出类型,因此前者比后者对类型要求更严格,这样会更安全。
内部静态存储类变量有何特点?
答:
内部静态存储类变贯的特点是作用域较小,但寿命很长,这种变量作用域与寿命不一致,因此会出现不可见但又存在的情况。
在使用插入符(<<)输出若干个表达式值时,有的表达式中使用的运算符的优先级低于插入符优先级时应该如何处理?
答:
这时需将表达式用括号括起来,己改变其优先级。
5.由多种不同运算符组成的表达式,其类型如何确定?
例如,
inta,b,c;
…
a=b>c?
b:
c;
这是一个条件表达式还是赋值表达式?
答:
表达式类型由优先级低的运算符组成的表达式来确定。
15
这是一个赋值表达式,因为赋值运算符优先级低于三目运算符。
1.
数组元素个数是由什么决定的?
答:
数组元素个数是由维数及其大小来决定的。
一维数组元素个数是该维的大小,二维数组的元素个数是两维大小之积等。
1.
数组元素下标有何规定?
答:
C++语言中,数组元素下标从0开始。
1.
初始值表中数据项的类型和个数有何规定?
答:
初始值表中数据项的类型应与该变是类型相同,个数应小于或等于被初始化的数组元素的个数。
1.
字符数组和字符串有什么关系?
答:
字符数组中可存放字符串,而字符数组不都是存放字符串的。
如果字符数组中有字符串结束符,则说明该字符数存放的是字符串。
10.一个数组中的元素类型是否一定相同?
何时定义的数组元素具有默认值?
答:
数组中元素类型必须相同。
存储类为外部和静态的数组其元素具有默认值
二
判断题
√1.表达式和表达式语句是不同的。
×2.空语句是一种没有用处的语句。
×3.复合语句就是分程序。
×4.条件语句中if子句和else子句都是必须有并且仅有一个。
√5.条件语句中elseif子句可以没有,也可以有多个。
√6.开关语句可实现多路分支。
×7.开关语句的<语句序列>中必须有一个break语句,否则该开关语句便无法退出。
×8.任何循环语句都是至少执行一次循环体。
×9.退出for循环语句必须是for后面括号内的中间一个表达式的值为0。
√10.do-while循环语句至少要执行一次循环体。
×11.循环语句的循环体中可以出现if语句,if语句的if体内不能出现循环语句。
×12.goto语句中所使用的语句标号是一种标识符,它的作用域是文件级的。
√13.break语句和continue语句都可以出现在循环体中,但是它们的作用是不同的。
×14.文件包含命令所能包含的文件类型是不受限制的。
三
单选题
1.下列关于语句的描述中,错误的是(A)。
A.C++程序中的函数是由若干条语句组成的
B.每条语句都要实现某种操作
C.条件语句是用来实现分支操作的
D.循环语句是用来在一定条件下重复执行某段程序的
2.下列关于条件语句的描述中,错误的是(C)。
A.if语句中最多只能有一个else子句
16
B.if语句的if体内可以出现开关语句
C.if语句中elseif子句和else子句的顺序是没有限制的
D.if语句中else子句是与它最近的if子句配对的
3.下列关于开关语句的描述中,错误的是(B)。
A.开关语句中,case子句的个数是不受限制的
B.开关语句中,case子句的语句序列中一定要有break语句
C.开关语句中,default子句可以省略
D.开关语句中,右花括号具有退出开关语句的功能
4.下列关于循环语句的描述中,错误的是(A)。
A.while循环语句中<条件>给定的表达式不能为非0的常量,否则便是死循环
B.for循环语句的循环体内可以出现while循环语句、do-while循环语句和for循环语句
C.循环语句的循环体可以是空语句
D.循环语句的循环体内可以出现break语句,也可以出现continue语句
5.已知:
inti(3);下列do-while循环语句的循环次数是(D)。
do{
cout<
i--;
}while(i!
=0);
A.0B.3
C.1D.无限
6.下列for循环语句的循环次数是(B)。
for(inti(0),j(5);i=3;i++,j--);
A.3B.无限
C.5D.0
7.下列while循环语句的循环次数是(A)。
while(inti(0))i--;
A.0B.1
C.2D.无限
8.下列程序段执行后,j值是(B)。
for(inti(0),j(0);i<10;i++)
if(i)j++;
A.0B.9
C.10D.无限
9.已知:
typedefcharCH;下列描述中,正确的是(A)。
A.使用CH定义的变量是char型变量
B.使用CH定义的是一个字符常量
C.使用CH定义的变量其类型不确定
D.使用CH定义的是一个字符串
10.下列关于预处理命令的描述中,错误的是(D)。
A.预处理命令最左边的标识符是#
B.预处理命令是在编译前处理的
C.宏定义命令可以定义符号常量
D.文件包含命令只能包含.h文件
四
单选题
1.下列关于面向对象概念的描述中,错误的是(C)。
A.面向对象方法比面向过程方法更加先进
B.面向对象方法中使用了一些面向过程方法中没有的概念
C.面向对象方法替代了结构化程序设计方法
D.面向对象程序设计方法要使用面向对象的程序设计语言
2.下列各种高级语言中,不是面向对象的程序设计语言是(D)。
A.C++B.Java
C.VBD.C
3.下列关于类的描述中,错误的是(A)。
A.类就是C语言中的结构类型
B.类是创建对象的模板
C.类是抽象数据类型的实现
D.类是具有共同行为的若干对象的统一描述体
4.下列关于对象的描述中,错误的是(C)。
A.对象是类的一个实例
B.对象是属性和行为的封装体
C.对象就是C语言中的结构变量
D.对象是现实世界中客观存在的某种实体
5.下列关于C++程序中使用提取符和插入符的输入/输出语句的描述中,错误的是(C)。
A.提取符是对右移运算符(>>)重载得到的
B.插入符是对左移运算符(<<)重载得到的
C.提取符和插入符都是双目运算符,它们要求有两个操作数
D.提取符和插入符在输入/输出语句中不可以连用
填空题
1.C++语言具有面向对象方法中要求的三大特性:
封装性、继承性和多态性。
2.C++程序中,有且仅有一个主函数。
3.C++程序是由类和函数组成的。
4.C++源程序的扩展名是cpp。
5.使用插入符进行标准输出文件输出时,使用的输出流对象名是cout。
判断题
×1.C++语言和C语言都是面向对象的程序设计语言。
√2.面向对象方法具有封装性、继承性和多态性。
√3.C语言是C++语言的一个子集。
C++语言继承了C语言。
×4.C++语言程序与C语言程序一样都是函数串。
×5.C++语言支持封装性和继承性,不支持多态性。
√6.C++语言比C语言对数据类型要求更加严格了。
√7.C++语言对C语言进行了一次改进,使得编程更加方便了。
×8.C++源程序在编译时可能出现错误信息,而在连接时不会出现错误信息。
√9.编译C++源程序时,出现了警告错(Warning)也可以生成可执行文件。
√10.C++语言程序的实现也要经过编辑、编译连接和运行3个步骤。
五
单选题
1.下列关于语句的描述中,错误的是(A)。
A.C++程序中的函数是由若干条语句组成的
B.每条语句都要实现某种操作
C.条件语句是用来实现分支操作的
D.循环语句是用来在一定条件下重复执行某段程序的
2.下列关于条件语句的描述中,错误的是(C)。
A.if语句中最多只能有一个else子句
B.if语句的if体内可以出现开关语句
C.if语句中elseif子句和else子句的顺序是没有限制的
D.if语句中else子句是与它最近的if子句配对的
3.下列关于开关语句的描述中,错误的是(B)。
A.开关语句中,case子句的个数是不受限制的
B.开关语句中,case子句的语句序列中一定要有break语句
C.开关语句中,default子句可以省略
D.开关语句中,右花括号具有退出开关语句的功能
4.下列关于循环语句的描述中,错误的是(A)。
A.while循环语句中<条件>给定的表达式不能为非0的常量,否则便是死循环
B.for循环语句的循环体内可以出现while循环语句、do-while循环语句和for循环语句
C.循环语句的循环体可以是空语句
D.循环语句的循环体内可以出现break语句,也可以出现continue语句
5.已知:
inti(3);下列do-while循环语句的循环次数是(D)。
do{
cout<
i--;
}while(i!
=0);
A.0B.3
C.1D.无限
6.下列for循环语句的循环次数是(B)。
for(inti(0),j(5);i=3;i++,j--);
A.3B.无限
C.5D.0
7.下列while循环语句的循环次数是(A)。
while(inti(0))i--;
A.0B.1
C.2D.无限
8.下列程序段执行后,j值是(B)。
for(inti(0),j(0);i<10;i++)
if(i)j++;
A.0B.9
C.10D.无限
9.已知:
typedefcharCH;下列描述中,正确的是(A)。
A.使用CH定义的变量是char型变量
B.使用CH定义的是一个字符常量
C.使用CH定义的变量其类型不确定
D.使用CH定义的是一个字符串
10.下列关于预处理命令的描述中,错误的是(D)。
A.预处理命令最左边的标识符是#
B.预处理命令是在编译前处理的
C.宏定义命令可以定义符号常量
D.文件包含命令只能包含.h文件
判断题
√1.表达式和表达式语句是不同的。
×2.空语句是一种没有用处的语句。
×3.复合语句就是分程序。
×4.条件语句中if子句和else子句都是必须有并且仅有一个。
√5.条件语句中elseif子句可以没有,也可以有多个。
√6.开关语句可实现多路分支。
×7.开关语句的<语句序列>中必须有一个break语句,否则该开关语句便无法退出。
×8.任何循环语句都是至少执行一次循环体。
×9.退出for循环语句必须是for后面括号内的中间一个表达式的值为0。
√10.do-while循环语句至少要执行一次循环体。
×11.循环语句的循环体中可以出现if语句,if语句的if体内不能出现循环语句。
×12.goto语句中所使用的语句标号是一种标识符,它的作用域是文件级的。
√13.break语句和continue语句都可以出现在循环体中,但是它们的作用是不同的。
×14.文件包含命令所能包含的文件类型是不受限制的。
六
单选题
1.下列变量名中,非法的是(C)。
A.A25B.My_car
C.My-strD.abc
2.下列常量中,十六进制int型常量是(A)。
A.0x5fB.x2a
C.046D.7a
3.下列常量中,不是字符常量的是(B)。
A.'\n'B."y"
C.'x'D.'\7'
4.在函数体内定义了下述变量a,a的存储类为(D)。
inta;
A.寄存器类B.外部类
C.静态类D.自动类
5.下列关于变量存储类的描述中,错误的是(C)。
A.任何变量定义后都具有一个确定的存储类
B.变量的存储类确定了变量的作用域和寿命
C.定义变量时没有存储类说明符者一律为自动类
D.内部静态类变量和外部静态类变量的存储类说明符都是static
6.下列关于变量数据类型的描述中,错误的是(A)。
A.定义变量时int型数据类型可以省略
B.变量的数据类型可以决定该变量占内存的字节数
C.变量的数据类型是可以被强制的
D.变量的数据类型是有高低之分的
7.长双精度浮点型常量的后缀是(C)。
A.UB.F
C.LD.无
8.下列运算符中,不能用于浮点数操作的是(D)。
A.++B.+
C.*=D.&(双目)
9.下列运算符中,优先级最高的是(A)。
A.*(双目)B.||
C.>>D.%=
10.下列运算符中,优先级最低的是(B)。
A.==B.?
:
C.|D.&&
判断题
√1.C++语言的合法字符集与C语言的完全相同。
×2.标识符规定大小写字母没有区别。
×3.C++程序中,不得使用没有定义或说明的变量。
√4.变量的存储类指出了变量的作用域和寿命。
√5.变量的数据类型指出了变量在内存中存放的字节数。
×6.定义变量时,变量的存储类说明符不得省略。
×7.自动类变量与内部静态类变量的作用域和寿命都是相同的。
×8.自动类变量可以定义在函数体外,这时应加说明符auto。
×9.外部类变量与外部静态类变量的作用域是相同的。
×10.变量被定义后是否有默认值与存储类无关,与数据类型有关。
七
判断题
√11.C++程序中,通常使用const来定义符号常量,定义时必须指出类型。
×12.变量被定义或说明后,它一定具有有意义的值。
×13.字符串常量与字符常量的区别仅表现在定义形式上的不同,一个用双撇号,另一个用单撇号。
×14.所有变量的可见性和存在性都是一致的。
√15.变量在它的作用域内一定是可见的,又是存在的。
√16.C++语言中除了包含C语言的所有运算符外,还规定自身的若干个运算符。
√17.增1和减1运算符以及赋值运算符都具有副作用。
×18.增1和减1运算符不仅可以作用在变量上,也可以作用在表达式上。
×19.关系运算符可以用来比较两个字符的大小,也可以比较两个字符串的大小。
×20.移位运算符在移位操作中,无论左移还是右移,对移出的空位一律补0。
×21.变量的类型高低是指它被存放在内存的地址值大小。
×22.使用sizeof运算符可以求得某种类型和某个变量在内存中占的字节数,不能求得某个表达式的类型在内存中所占的字节数。
√23.在C++语言中,非保值转换应用强制类型转换。
√24.表达式中各操作数计算顺序取决于运算符的优先级和结合性。
√25.在C++程序中,变量值是可以改变的,变量的地址值是不能改变的。
√26.数组中所有元素的类型都是相同的。
×27.定义数组时必须对数组进行初始化。
√28.数组某维的大小可以用常量表达式,不可用变量名。
×29.定义一个数组没有对它进行初始化,则该数组的元素值都是无意义的。
√30.用来给数组进行初始化的初始值表内的数据项的个数必须小于等于数组元素个数。
×31.在定义一个数组时,对其部分元素进行了初始化,没有初始化的元素的值都是无意义的。
√32.数组被初始化时是判越界的。
×33.字符数组就是字符串。
√34.使用printf()函数输出显示字符串时使用格式符%s,输出显示字符时使用%c或5%d。
×35.给数组元素赋值时只可用常量表达式。