如果暂时没有更好的出路,请选择努力!如果暂时没有通过全国计算机等级考试的信心,请选择努力刷二级C语言试题!
二级C语言试题
【1】
1.数据的存储结构是指( )。
A.数据所占的存储空间
B.数据的逻辑结构在计算机中的存放形式
C.数据在计算机中的顺序存储方式
D.存储在计算机外存中的数据
2.将E-R图转换到关系模式时,实体与实体间的联系可以表示成( )。
A.属性
B.关系
C.键
D.域
3.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。
A.125
B.n/Z
C.n
D.n+1
4.树是结点的集合,它的根结点的数目是( )。
A.有且只有1个
B.1或多于1
C.0或1
D.至少有2个
5.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是( )。
A.R-S
B.R×S
C.R∩S
D.R∪S
6.关于结构化程序设计原则和方法的描述错误的是( )。
A.选用的结构只允许有一个入口和一个出口
B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C.不允许使用GOTO语句
D.语言中所没有的控制结构,应该采用前后一致的方法来模拟
7.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为( )。
A.并运算
B.交运算
C.差运算
D.积运算
8.下列叙述中正确的是( )。
A.在面向对象的程序设计中,各个对象之间具有密切的关系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述三种说法都不对
9.结构化程序设计的三种基本结构是( )。
A.过程、子程序和分程序
B.顺序、选择和重复
C.递归、堆栈和队列
D.调用、返回和转移
10.在数据库设计中,将E-R图转换为关系模式的过程属于( )。
A.需求分析阶段
B.逻辑设计阶段
C.概念设计阶段
D.物理设计阶段
1.B。【解析】数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。
2.B。【解析】将E-R图转换成指定RDBMS中的关系模式是数据库逻辑设计的主要工作。从E—R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。
3.C。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。
4.C。【解析】树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为0。
5.B。【解析】关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元的S只能做笛卡儿积运算。
6.C。【解析】限制使用GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用GOTO语句。其他三项为结构化程序设计的原则。
7.A。【解析】关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。
8.C。【解析】面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。
9.B。【解析】程序的三种基本控制结构包括顺序、选择和重复(循环),这三种结构足以表达出各种其他形式的结构。
10.B。【解析】数据库设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。其中逻辑设计的主要工作是将E-R图转换为关系模式。
【2】
1.在C++语言中函数返回值的类型是由( )决定的。
A.调用该函数时系统临时
B.return语句中的表达式类型
C.定义该函数时所指定的函数类型
D.调用该函数时的主调函数类型
2.下列描述正确的是( )。
A.表示m>n为true或mn&&m B.switch语句结构中必须有default语句
C.if语句结构中必须有else语句
D.如果至少有一个操作数为true,则包含‖运算符的表达式为true
3.使用ifstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为( )。
A.ios::in
B.ios::out
C.ios::inlios::out
D.没有默认
4.下列各类函数中,不是类的成员函数的是( )。
A.构造函数
B.抽象类
C.派生类
D.以上都不对
5.下面关于数组的初始化正确的是( )。
A.charstr[]={’a’,’b’,’e’}
B.charstr[2]={’a’,’b’,’e’)
C.charstr[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}
D.charstr()={’a’,’b’,’C’}
6.类模板templateclassX{…},其中友元函数f对特定类型T(如int),使函数f(x)成为x模板类的友元,则其说明为( )。
A.friendvoidf();
B.friendvoidf(x);
C.friendvoidA::f();
D.friendvoidC::f(x);
7.类MyClass的定义如下:
classMyClass
{
public:
MyClass(){value=0;}
SetVariable(inti){valtic=i;}
private:
intvalue;
};
MyClass*P,my;p=&my;
则对下列语句序列正确的描述是( )。
A.语句p=&my;是把对象my赋值给指针变量P
B.语句MyClass*P,my;会调用两次类MyClass的构造函数
C.对语句*P.SetVariable(5)的调用是正确的
D.语句P->SetVariable(5)与语句my.SetVariable(5)等价
8.下面关于break语句的描述中,不正确的是( )。
A.break可以用于循环体内
B.break语句可以在for循环语句中出现多次
C.break语句可以在switch语句中出现多次
D.break语句可用于if条件判断语句内
9.如果表达式-x/y中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为( )。
A.operator/(x.operator--(),y);
B.operator/(operator--(x),y);
C.X.operator--().operator/(y);
D.y.operator/(operator--(x));
10.已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是( )。
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.obj2=*ptr;
1.C。【解析】函数类型决定了函数返回值的类型。函数值返回类型可以由编译器自动完成类型转换。在函数有返回值的调用中,编译器将return后面的表达式的类型强制转换为该函数定义时指定的返回值类型。
2.D。【解析】本题主要考查C++语言的基本语法,选项A中应该为m>n‖m 3.D。【解析】使用ifstream流类定义流对象并打开磁盘文件时,文件没有默认的打开方式。其中ios::in是为输入而打开;iso::out是为输出而打开。
4.C。【解析】构造函数包括默认构造函数和拷贝构造函数等,析构函数和构造函数一样属于类的特殊的成员函数。而友元函数则是为了增加类的访问灵活性而允许其他类的成员函数或全局函数访问类的内部变量或成员函数的一种机制,其缺点是破坏了类的封装性。
5.A。【解析】本题考查的是字符数组的初始化。选项B中用三个元素初始化大小为2的数组,越界了;选项C中应该是2行3列的数组,题中使用3行2列初始化;选项D中数组应用方括号。
6.B。【解析】声明一个函数模板的格式template<模板形参表声明>函数声明。调用模板函数时,如果与模板实参中最后的若干个参数有关的信息可以从模板函数的实参中获得,则相关的模板实参可以省略。
7.D。【解析】语句p=&my;是把对象my的地址值赋给指针变量P。语句MyClass*P,my;,由于P只是一个指向对象的指针,因此定义指针P不调用构造函数,所以此语句只调用一次构造函数。对成员函数的引用可以通过两种形式:指针->成员函数(形参表)或者对象名.成员函数名(形参表)。
8.D。【解析】本题考查break语句的使用。break可以结束switch语句和for循环语旬,但是不能使用在条件判断语句内。
9.B。【解析】本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的对象,则c1.operator+(c2)与c1+c2含义相同。如果+作为该类的非成员函数重载,则operator+(c1,c2)与c1+c2含义相同。同理,运算符“/”作为友元函数重载,则(--x)/y与表达式operator/((…x),y)相同。前缀运算符“--”作为友元函数重载,则--x与operator--(x)相同,所以组合起来是operator/(operator--(x),y);,即B选项。
10.A。【解析】本题考查const修饰符的作用。注意,const位置不同,其修饰的部分也是不同的。本题中const修饰的是ptr所指的对象本身,所以,ptr可以重新指向新的对象,而ptr->a则无法被更新。
【3】
1.已知:int a(3);下列表达式中,错误的是( C )。
A.a%2==0 B.a--+2
C.(a?2)++ D.a>>=2
2.已知:int b(5),下列表达式中,正确的是( D )。
A.b="a" B.++(b?1)
C.b%2.5 D.b=3,b+1,b+2
3.下列关于类型转换的描述中,错误的是( C )。
A.类型转换运算符是(<类型>)
B.类型转换运算符是单目运算符
C.类型转换运算符通常用于保值转换中
D.类型转换运算符作用于表达式左边
4.下列表达式中,其值为0的是( A )。
A.5/10 B.!0
C.2>4?0:1 D.2&&2||0
5.下列表达式中,其值不为逻辑值的是( A )。
A.算术表达式 B.关系表达式
C.逗号表达式 D.逻辑表达式
6.下列关于数组概念的描述中,错误的是( B )。
A.数组中所有元素类型是相同的
B.数组定义后,它的元素个数是可以改变的
C.数组在定义时可以被初始化,也可以不被初始化
D.数组元素的个数与定义时的每维大小有关
7.下列关于数组维数的描述中,错误的是( C )。
A.定义数组时必须将每维的大小都明确指出
B.二维数组是指该数组的维数为2
C.数组的维数可以使用常量表达式
D.数组元素个数等于该数组的各维大小的乘积
8.下列关于数组下标的描述中,错误的是( B )。
A.C++语言中数组元素的下标是从0开始的
B.数组元素下标是一个整常型表达式
C.数组元素可以用下标来表示
D.数组元素的某维下标值应小于该维的大小值
9.下列关于初始值表的描述中,错误的是( C )。
A.数组可以使用初始值表进行初始化
B.初始值表是用一对花括号括起的若干个数据项组成的
C.初始值表中数据项的个数必须与该数组的元素个数相等
D.使用初始值表给数组初始化时,没有被初始化的元素都具有默认值
10.下列关于字符数组的描述中,错误的是( D )。
A.字符数组中的每一个元素都是字符
B.字符数组可以使用初始值表进行初始化
C.字符数组可以存放字符串
D.字符数组就是字符串
【4】
1.下列关于字符串的描述中,错误的是( C )。
A.一维字符数组可以存放一个字符串
B.二维字符数组可以存放多个字符串
C.可以使用一个字符串给二维字符数组赋值
D.可以用一个字符串给二维字符数组初始化
2.已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。
A.a[0] B.a[1]
C.a[2] D.a[3]
3.已知:int ab[ ][3] = {{1, 5, 6}, {3}, {0,2}}; 数组元素ab[1][1]的值为( A )。
A.0 B.1
C.2 D.3
4.已知:char s[ ]="abcd";输出显示字符'c'的表达式是( C )。
A.s B.s+2
C.s[2] D.s[3]
5.已知:char ss[ ][6]={"while", "for", "else", "break"};输出显示"reak"字符串的表达式是( B )。
A.ss[3] B.ss[3]+1
C.ss+3 D.ss[3][1]
判断题
1.变量的类型高低是指它被存放在内存的地址值大小。×
2.使用sizeof运算符可以求得某种类型和某个变量在内存中占的字节数,不能求得某个表达式的类型在内存中所占的字节数。×
3.在C++语言中,非保值转换应用强制类型转换。√
4.表达式中各操作数计算顺序取决于运算符的优先级和结合性。√
5.在C++程序中,变量值是可以改变的,变量的地址值是不能改变的。√
6.数组中所有元素的类型都是相同的。√
7.定义数组时必须对数组进行初始化。×
8.数组某维的大小可以用常量表达式,不可用变量名。√
9.定义一个数组没有对它进行初始化,则该数组的元素值都是无意义的。×
10.用来给数组进行初始化的初始值表内的数据项的个数必须小于等于数组元素个数。√
【5】
1.下列变量名中,非法的是( C )。
A.A25 B.My_car
C.My-str D.abc
2.下列常量中,十六进制int型常量是( A )。
A.0x5f B.x2a
C.046 D.7a
3.下列常量中,不是字符常量的是( B )。
A.'\n' B."y"
C.'x' D.'\7'
4.在函数体内定义了下述变量a,a的存储类为( D )。
int a;
A.寄存器类 B.外部类
C.静态类 D.自动类
5.下列关于变量存储类的描述中,错误的是( C )。
A.任何变量定义后都具有一个确定的存储类
B.变量的存储类确定了变量的作用域和寿命
C.定义变量时没有存储类说明符者一律为自动类
D.内部静态类变量和外部静态类变量的存储类说明符都是static
6.下列关于变量数据类型的描述中,错误的是( A )。
A.定义变量时int型数据类型可以省略
B.变量的数据类型可以决定该变量占内存的字节数
C.变量的数据类型是可以被强制的
D.变量的数据类型是有高低之分的
7.长双精度浮点型常量的后缀是( C )。
A.U B.F
C.L D.无
8.下列运算符中,不能用于浮点数操作的是( D )。
A.++ B.+
C.*= D.&(双目)
9.下列运算符中,优先级最高的是( A )。
A.*(双目) B.||
C.>> D.%=
10.下列运算符中,优先级最低的是( B )。
A.== B.?:
C.| D.&&
考无忧小编tips:
不求时时刻刻在刷计算机等级考试题库,但求记住要劳逸结合刷题、复习。今天,你刷了多少题?复习了以上的二级C语言试题了吗?
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的近期资讯吗?点击进入>>>计算机等级考试题库资讯