【好题分享】适合C++初学者(第二弹)
1.哪个不是关键字:( )
A.int
B.struct
C.define
D.continue
答案解析
C语言关键字:C语言定义的,具有特定含义、专门用于特殊用途的C语言标识符,也称为保留字
define不是关键字,是编译器实现的,用来定义宏的预处理指令,不是C语言中的内容。
int、struct和continue都是C语言中包含的关键字。
因此:选择C
2.C语言关键字说法正确的是:( )
A.关键字可以自己创建
B.关键字不能自己创建
C.关键字可以做变量名
D.typedef不是关键字
答案解析
C语言关键字:C语言定义的,具有特定含义、专门用于特殊用途的C语言标识符,也称为保留字
A:错误,关键字是语言自身定义的
B:正确
C:错误,关键字具有特殊含义,不能作为变量名
D:错误,typedef是用来给类型取别名的关键字
因此,选择B
3.下面哪个不是C语言内置的数据类型:( )
A.char
B.double
C.struct Stu
.short
答案解析
C语言中内置类型包括:
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
struct关键字是用户用来自定义的结构体类型,不属于C语言的内置类型。
因此:选择C
4.局部变量的作用域是:( )
A.main函数内部
B.整个程序
C.main函数之前
D.局部变量所在的局部范围
答案解析
在C语言中,变量分为局部变量和全局变量。
局部变量:一般将定义在函数中的变量称为局部变量,其只能在函数内部使用。
全局变量:定义在全局作用域中的变量,即函数外的变量,称之为全局变量,全局变量的生命周期随程序启动而 生,随程序结束而消亡,在任何函数中都可以使用。
注意:全局变量使用起来方便,但为了防止冲突和安全性,尽量避免定义全局变量。
A:main函数内部定义的局部变量作用域在main函数中,但是其他函数中的局部变量则不在,因此A选项不对。
B:局部变量作用域在函数内部,全局变量是整个程序,因此B选项不对
C:main函数之前,是系统做的一些事情,因此也不对
D:正确,即在函数体内
因此:选择D
5.下面代码输出的结果是:( )
#include <stdio.h>
int num = 10;
int main()
{
int num = 1;
printf("num = %dn", num);
return 0;
}
A. 程序有问题,不能编译
B.输出1
C.输出10
D.输出0
答案解析
答案解析:
本题主要考察变量的访问规则,C语言中:
1. 不允许在同一个作用域中定义多个相同名称的变量
比如:在一个班级中存在两个名字相同的学生王帅,当老师点王帅回答问题时,那个回答就冲突了
2. 允许在不同的作用域中定义多个不同名称的变量
比如:两个班级中各有一个王帅,老师在A班中点王帅回答问题,不会有任何歧义
3. 不同作用域中定义的变量,在访问时采用就近原则。
比如:你们村有一个小伙伴名字叫刘德华,那你在你们村喊刘德华时,你们村的刘德华就会跑过来响应你,
而我们世界级别人见人爱的天王他不会理你,因为距离远听不见,但是两个刘德华可以同时存在这个 世界上,只要不在一个村,就不会冲突。
根据以上描述可知,对于以上代码:
1. 全局作用域中的num和main中的num可以同时存在,不会冲突,因为不是同一个作用域
2. 在main函数中访问num时,采用就近原则,因此访问的是main中的num,相当于将全局作用域中的num屏蔽了
A:错误:因为两个num不在同一个作用域中,可以通过编译
B:正确,main中访问的是main中的num,而main函数中的num是1,因此打印1
C:错误,应该访问main函数中的num,而不是全局作用域中的num
D:错误,凑选择的
因此:选择B
6. 用在switch语言中的关键字不包含哪个?( )
A.continue
B.break
C.default
D.case
答案解析
switch是用来进行多分支选择的语句,一般结构是:
switch(变量表达式)
{
case xx1:
// ...
break;
case xx2
// ...
break;
default:
// ...
}
当变量表达式的内容与某个case后的常量相等后,就执行该case下的语句,break表示该case以后的内容不会执行,如果没有跟break,会继续执行当前case之后的case分支。
当变量表达式的内容没有与那个case匹配,就会执行default下的内容。
switch中常用的关键字:case 、break、 default,当然case中语句比较复杂时,可能会用if进行判断。
continue是用来结束本次循环的,而switch不是循环,因此其中不能使用continue关键字。
因此:选择A