二级C语言试题(总)

发布于 2019-04-18 16:33  编辑:simi
0
计算机等级考试题库 扫码微信刷题


复习掌握的任何一个考点都有可能改变一切,此时多刷一道二级C语言试题,多背一条知识点,都显得尤为重要。赶紧点击文章结尾处的计算机等级考试题库刷题吧!



二级C语言试题

1

1.以下叙述中正确的是(  )

A.用户自己定义的函数只能调用库函数

B.实用的C语言源程序总是由一个或多个函数组成

C.不同函数的形式参数不能使用相同名称的标识符

D.C语言的函数内部,可以定义局部嵌套函数

参考答案:B

参考解析:A选项中,”用户自己定义的函数只能调用库函数”描述是不正确的,也可以调用自定义函数;C选项中,对于不同函数的形式参数可以使用相同名称的标识符;D选项中,关于函数的定义不可以嵌套,但函数的调用可以嵌套。因此B选项正确。

 

2.以下关于C语言数据类型使用的叙述中错误的是( )

A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

B.若要保存带有多位小数的数据,可使用双精度类型

C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型

D.整数类型表示的自然数是准确无误差的

参考答案:C

参考解析:C语言中没有逻辑类型,所以c错误。若要保存带有多位小数的数据,可以用单精度类型也可以用双精度类型。处理包含不同类型的相关数据可以定义为结构体类型。整数类型可以无误差的表示自然数。

 

3.下面选项中关于编译预处理的叙述正确的是

A.预处理命令行必须使用分号结尾

B.凡是以#号开头的行,都被称为编译预处理命令行

C.预处理命令行不能出现在程序的最后一行

D.预处理命令行的作用域是到最近的函数结束处

参考答案:B

参考解析:本题考查预编译的预编译处理命令行,预处理命令行不能以分号结尾,所以A选项错误,预处理命令行可以出现在程序的最后一行,预处理命令行作用域是整个文件。

 

4.--X树共有150个结点,其中度为l的结点有l0个,则该---X树中的叶子结点数为( )

A.71B.70C.69D.不可能有这样的二叉树

参考答案:D

参考解析:在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为0的结点总是比度为2的结点多一个。如果有一棵二叉树,结点总数为l50,假设度为0的结点个数为n,则有n+10+n1=150n=70.5,由于结点个数必须是整数,所以不可能有题目中这样的二叉树。故选择D选项。

 

5.以下选项中,能用作用户标识符的是( )

A.-0-B.8-;8C.voidD.unsigned

参考答案:A

参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。8中以数字8开头,所以错误。cD中用的是关键字voidunsigned,所以错误。

 

6.以下叙述正确的是( )

A.表达式sizeof(FILE*)==sizeof(int*)的值为真

B.文件指针的值是一个整数,它的值一定小于文件字节数

C.文件指针的值是所指文件的当前读取位置

D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符

参考答案:A

参考解析:

slzeof(FILE})=4,因为file·为指针,指针的大小4sizeof(int·)=4,理由同前面。文件指针的值是地址,是一个16进制的数,它的值不一定小于文件字节数,因此选项8错误。文件指针是所指文件的当前读取位置,而不是文件指针的值因此选项C错误。mgscanf(FILE-streamconstchar}format[argument]fmanf函数可以向任意类型的文件,写入任意数量不能超过系统的缓冲区,写文件先写入缓冲区,最后一起写入文件,因此选项D错误。答案为A选项。

 

 

 

2

1.下面叙述中错误的是(  )

A.软件测试的目的是发现错误并改正错误

B.对被调试的程序进行“错误定位”是程序调试的必要步骤

C.程序调试通常也称为Debug

D.软件测试应严格执行测试计划,排除测试的随意性

参考答案:A

参考解析:软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。

 

2.以下关于结构化程序设计的叙述中正确的是(  )

A.结构化程序使用goto语句会很便捷

B.C语言中,程序的模块化是利用函数实现的

C.一个结构化程序必须同时由顺序、分支、循环三种结构组成

D)由三种基本结构构成的程序只能解决小规模的问题

参考答案:B

参考解析:滥用goto语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。一个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。

 

3.算法的空间复杂度是指(  )

A.算法在执行过程中所需要的计算机存储空间

B.算法所处理的数据量

C.算法程序中的语句或指令条数

D.算法在执行过程中所需要的临时工作单元数

参考答案:A

参考解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间。所以选择A

 

4.若变量x,y已正确定义并赋值,以下符合C语言语法的表达式是(  )

A.x+1=y

B.++xy=x- -

C.x=z+10=z+y

D.double(x)/10

参考答案:B

参考解析:A选项中不能将变量Y赋给表达式,C选项中错误与A选项一样,D选项中强制类型转换表达式应写成(double)x/10

 

5.数据库应用系统中的核心问题是(  )

A.数据库设计

B.数据库系统设计

C.数据库维护

D.数据库管理员培训

参考答案:A

参考解析:数据库应用系统中的核心问题是数据库的设计。

 

6.下列叙述中正确的是(  )

A.switch语句中,不一定使用break语句

B.switch语句中必须使用default

C.break语句必须与switch语句中的case配对使用

D.break语句只能用于switch语句

参考答案:A

参考解析:default语句在switch语句中可以省略,所以B错误;switch语句中并非每个case后都需要使用break语句,所以C错误;break语句还可以用于for等循环结构中,所以D错误。

 

7.对于一个正常运行的C程序,以下叙述中正确的是(  )

A.程序的执行总是从main函数开始,在程序的最后一个函数中结束

B.程序的执行总是从程序的第一个函数开始,在main函数结束

C.程序的执行总是从main函数开始

D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

参考答案:C

参考解析:任何一个c程序都是从主函数main开始,至主函数main结束,所以选择c选项。

 

8.以下定义数组的语句中错误的是(  )

A.int num[][3]={{12}3456};

B.int num[2][4]={{12}{34}{56}};

C.int num[]={123456};

D.int hum[][4]={123456};

参考答案:B

参考解析:B)选项中定义的数组为24列,而赋值时赋成了3行所以出错。

 

9.以下关于typedef的叙述错误的是(  )

A.typedef可以增加新类型

B.typedef只是将已存在的类型用一个新的名字来代替

C.typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D.typedef为类型说明一个新名,通常可以增加程序的可读性

参考答案:A

参考解析:typedef并不是增加了新类型,而是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用typedef可以增强程序的可移植性。所以A选项错误。

 

10.E-R图中,用来表示实体联系的图形是(  )

A.椭圆形

B.矩形

C.菱形

D.三角形

参考答案:C

参考解析:在E-R图中实体集用矩形,属性用椭圆,联系用菱形。

 

 

 

3

1.以下叙述中正确的是

A.两个字符串可以用关系运算符进行大小比较

B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位)

C.C语言本身没有提供对字符串进行整体操作的运算符

D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和

参考答案:C

参考解析:本题考查字符串处理函数strienstrcatstrcmpB选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmpD选项当使用连接函数strcat时,内存空间会减少一个字符位置。

 

2.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )

A.一对一B.一对多C.多对多D.多对一

参考答案:C

参考解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。

 

3.对于while(!E)s;,若要执行循环体s,则E的取值应为:

A.E等于1

B.E不等于0

C.E不等于1

D.E等于0

参考答案:D

参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(0)时,执行循环体语句。该题中如要执行语句s,则!E应为真,因此E应等于0D选项正确。

 

4.在软件设计中不使用的工具是( )

A.系统结构图

B.PAD

C.数据流图(DFD)

D.程序流程图

参考答案:C

参考解析:系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C

 

5.若有定义语句:char a='\82';则变量a(  )

A.说明不合法

B.包含1个字符

C.包含2个字符

D.包含3个字符

参考答案:B

参考解析:char a='\82',定义字符量achar型变量值为1个字节长度,并从右侧开始运算,所以a的值应为'2'。因此B选项正确。

 

6.fp已定义为指向某文件的指针,且没有读到该文件的末尾,则C语言函数feof(fp)的函数返回值是

A.EOF

B.0

C.-1

D.0

参考答案:D

参考解析:本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符)eof函数值为非零值,否则为0,所以选项D正确。

 

7.以下叙述中正确的是

A.只要适当地修改代码,就可以将do-whilewhile相互转换

B.对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环

C.对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句

D.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句

参考答案:A

参考解析:B选项中,for语句中需要先求解先求解表达式1;C选项中,for语句使用最为灵活,它完全可以取代while语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。

 

8.设有如下定义:

struck sk

{ int a;

float b;

}data;

int *p;

若要使P指向data中的a域,正确的赋值语句是 C

A p=&a;

B p=datAa;

Cp=&datAa;

D*p=datAa;

 

9.设有以下说明语句:

typedef struct stu

{ int a;

float b;

} stutype;

则下面叙述中错误的是( D )

Astruct是结构类型的关键字

Bstruct stu是用户定义的结构类型

Cab都是结构成员名

Dstutype是用户定义的结构体变量名

 

10.语句int *p;说明了 C

Ap是指向一维数组的指针

Bp是指向函数的指针,该函数返回一int型数据

Cp是指向int型数据的指针

Dp是函数名,该函数返回一指向int型数据的指针

 

 

 

4

1.(A )是构成C语言程序的基本单位。

A、函数

B、过程

C、子程序

D、子例程

 

2.C语言程序从 C 开始执行。

A 程序中第一条可执行语句

B 程序中第一个函数

C 程序中的main函数

D、包含文件中的第一个函数

 

3、以下说法中正确的是( C )

AC语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义

CC语言程序总是从main( )函数开始执行

DC语言程序中的main( )函数必须放在程序的开始部分

 

4.下列关于C语言的说法错误的是( B )

A C程序的工作过程是编辑、编译、连接、运行

B C语言不区分大小写。

C C程序的三种基本结构是顺序、选择、循环

DC程序从main函数开始执行

 

5.下列正确的标识符是(C )

A-a1

Ba[i]

Ca2_i

Dint t

 

5~8题为相同类型题

考点:标识符的命名规则

只能由字母、数字、下划线构成

数字不能作为标识符的开头

关键字不能作为标识符

选项A中的“- ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

 

6.下列C语言用户标识符中合法的是(B )

A3ax

Bx

Ccase

D-e2 E)union

选项A中的标识符以数字开头不满足(2);选项CE均为为关键字,不满足(3);选项D中的“-”不满足(1);

 

7.下列四组选项中,正确的C语言标识符是( C )

A %x

Ba+b

Ca123

D123

选项A中的“% ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

 

8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)

Aprint _3d db8 aBc

BI\am one_half start$it 3pai

Cstr_1 Cpp pow while

DPxq My->book line# His.age

选项B中的“\”,”$ ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)

 

9.C语言中的简单数据类型包括(D )

A、整型、实型、逻辑型

B、整型、实型、逻辑型、字符型

C、整型、字符型、逻辑型

D、整型、实型、字符型

 

10.C语言程序中,表达式5%2的结果是 C

A2.5

B2

C1

D3

%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2

 

 

 

5

1、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是(  )

A.编译程序

B.操作系统

C.教务管理系统

D.汇编程序

参考答案:C

参考解析: 编译软件、操作系统、汇编程序都属于系统软件,只有C教务管理系统才是应用软件。

 

2、设有定义:

int a=1b=2e=3;

以下语句中执行效果与其他三个不同的是(  )

A.if(a>b) c=aa=bb=c;

B.if(a>b) {e=aa=bb=e;}

C.if(a>b)e=a;a=b;b=C;

D.if(a>b) {c-7-a;a=b;b=e;}

参考答案:C

参考解析: 由于a小于b,所以所有选项中的条件都为假,c选项中实际执行了a=b;b=c;两个操作。而ABD选项由于条件不成立.所以什么也没有做,所以选择C选项。

 

3、若有以下定义:

则对x数组元素的正确引用是(  )

A.pt+3

B.*&x[10]

C.*(pt+10)

D.*(x+3)

参考答案:D

参考解析: 没有A选项的引用形式。*&放在一起作用抵消,所以B选项错误,最大只能引用到x[9]*(pt+i)表示引用指针pt所指元素后的第i个元素,所以c选项错误,最大只能为*(pt+9)。因此D选项正确。

 

4、若有定义语句:double a* P=&a;以下叙述中错误的是(  )

A.定义语句中的*号是一个间址运算符

B.定义语句中的*号是一个说明符

C.定义语句中的P只能存放double类型变量的地址

D.定义语句中,*P=&a把变量a的地址作为初值赋给指针变量P

参考答案:A

参考解析: 在变量定义double a* P=&a;中,*号是一个指针运算符,而非间址运算符,所以A错误。

 

5、若有定义语句:int x=10;,则表达式x-=x+x的值为(  )

A.0

B.-20

C.-10

D.10

参考答案:C

参考解析: 算术运算符+的优先级高于-=,且-=的结合方向为自右向左,所以表达式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,选择C

 

6、下列排序方法中,最坏情况下比较次数最少的是(  )

A.冒泡排序

B.简单选择排序

C.直接插入排序

D.堆排序

参考答案:D

参考解析: 冒泡排序与筒单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n

 

7、以下叙述中错误的是(  )

A.使用三种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环三种基本结构组成

C.C语言是一种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

参考答案:A

参考解析: 使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A错误。

 

8、以下不构成无限循环的语句或语句组是(  )

A.n=0

do{++n;}while(n<=0);

B.n=0;

while(1){n++;}

C.n=10;

while(n);{n--;}

D.for(n=0i=1;;i++)n+=i;

参考答案:A

参考解析: 选项Ado后面的语句只执行了一次便结束了循环;B选项中条件while(1)永远成立,所以是死循环;C选项中n的值为10,而循环体为空语句,所以wilile(n)永远为真,进入死循环;D选项中for语句第二个表达式为空,所以没有判别条件,进入死循环。

 

9、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是(  )

A.1

B.0

C.2

D.不知道a的值,不能确定

参考答案:A

参考解析: 逻辑或”||”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若al,则左边运算对象为1;a的值不是1,则右边运算对象的值为1,所以总能保证一边非零,所以结果为真,即1

 

10、支持子程序调用的数据结构是(  )

A.

B.

C.队列

D.二叉树

参考答案:A

参考解析: 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A


复习计算机等级考试题库-二级C语言试题是一次独立的行动,需要探索、琢磨、积极应战、顽强应战,艰辛由你独自承担,胜利由你独立争取。



文章推荐:

全国计算机等级考试可以不考一级直接考二级吗?

2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”

全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)


温馨提示:

考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office

想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库

想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯


本文网址:http://www.k51.com.cn/info/jsjdjks/1904/1851384.html
选择分享到: