试题

二级C笔试考前练习习题及答案

时间:2025-11-29 10:00:47 小英 试题 我要投稿
  • 相关推荐

2025年二级C笔试考前练习习题及答案(精选6套)

  无论是身处学校还是步入社会,我们需要用到练习题的情况非常的多,只有多做题,学习成绩才能提上来。学习就是一个反复反复再反复的过程,多做题。那么问题来了,一份好的习题是什么样的呢?下面是小编为大家收集的2025年二级C笔试考前练习习题及答案,欢迎阅读与收藏。

2025年二级C笔试考前练习习题及答案(精选6套)

  二级C笔试考前练习习题及答案 1

  1.若变量c为char类型,能正确判断出c为小写字母的表达式是()

  A)′a′<=c<=′z′

  B)(c>=′a′)||(c<=′z′)

  C)(′a′=C)

  D)(c>=′a′)&&(c<=′z′)

  2.下面程序的输出结果是()

  main()

  { int x=2,y=0,z;

  x+=3+2;printf("%d",x);

  x*=y=z=4;printf("%d",x);

  }

  A)728

  B)无法计算

  C)7,4

  D)8,4

  3.有如下程序

  main()

  {int x=1,a=0,b=0;

  switch(x){

  case 0∶b++;

  case 1∶a++;

  case 2∶a++;b++;

  }

  printf("a=%d,b=%d\n",a,b);

  }

  程序运行后的输出结果是()

  A)a=2,b=1

  B)a=1,b=1

  C)a=1,b=0

  D)a=2,b=2

  4.以下选项中,正确的if-else语句是()

  A)if(x!=0)

  printf("%d",x)

  else

  printf("%d",-x);

  B)if(x!=0)

  {x=x+y;printf("%d",x); }

  else

  printf("%d",-x);

  C)if(x!=0)

  x=x+y;printf("%d",x);

  else

  printf("%d",-x);

  D)if(x!=0)

  {x=x+y;printf("%d",x)};

  else

  printf("%d",-x);

  5.有以下程序段

  int n=0,p;

  do {scanf("%d",&p);n++;}while(p!=12345 &&n<3);

  此处do-while循环的.结束条件是()

  A)p的值不等于12345并且n的值小于3

  B)p的值等于12345并且n的值大于等于3

  C)p的值不等于12345或者n的值小于3

  D)p的值等于12345或者n的值大于等于3

  6.若有如下程序段:

  main()

  { int n=0;

  while(printf("*"))

  { n++;

  if(n<3)break; }}

  则下列描述正确的是()

  A)其中循环控制表达式与0等价

  B)其中循环控制表达式与’0’等价

  C)其中循环控制表达式是不合法的

  D)以上说法都不对

  7.C语言中main函数参数的非法表示形式是()

  A)main(char *argv[],int argc)

  B)main(int a,char**b)

  C)main(int y,char *x[])

  D)main(int argv,char *argc[])

  8.设有如下枚举类型定义:

  enum language {Basic=3,Assembly,Ada=100,COBOL,Fortran};

  枚举类型Fortran的值为()

  A)4

  B)7

  C)102

  D)103

  9.阅读下述程序段:

  y=-1;

  if (x!=0)

  if (x>0)

  y=1;

  else

  y=0;

  该程序段所描述的数学关系是()

  A)y=-1(x<0)

  0(x=0)

  1(x>0)

  B)y=1(x<0)

  0(x=0)

  -1(x>0)

  C)y=0(x<0)

  -1(x=0)

  1(x>0)

  D)y=-1(x<0)

  1(x=0)

  0(x>0)

  10.设有数组定义:char array[]="China";蚴?閍rray所占的空间为()

  A)4个字节

  B)5个字节

  C)6个字节

  D)7个字节

  【参考答案:1.D 2.A 3.A 4.B 5.D 6.B 7.A 8.C 9.C 10.C】

  二级C笔试考前练习习题及答案 2

  1.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )

  A.派生类的对象可以赋给基类的对象

  B.派生类的对象可以初始化基类的引用

  C.派生类的对象可以直接访问基类中的成员

  D.派生类的对象的.地址可以赋给指向基类的指针

  【参考答案】 C

  2.下列关于虚基类的描述,错误的是( )

  A.设置虚基类的目的是为了消除二义性

  B.虚基类的构造函数在非虚基类之后调用

  C.若同一层中包含多个虚基类,这些基类的构造函数按它们说明的次序调用

  D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数

  【参考答案】 B

  3.下列运算符中,在C++语言中不能重载的是( )

  A.*

  B.>=

  C.:

  D./

  【参考答案】 C

  4.下列程序的运行结果是( )

  #include

  class A

  { int a;

  public:

  A( ) {a=0;}

  A(int aa)

  {a=aa;

  cout<

  void main( )

  {A x,y(2),z(3);

  cout<

  A.00

  B.23

  C.34

  D.25

  【参考答案】 B

  5.判断char型变量c是否为小写字母的正确表达式是( )

  A.′a′<=c<=′z′

  B.(c>+A)&&(c<=z)

  C.(′a′>=c)||(′z′<=c)

  D.(c>=′a′)&&(c<=′z′)

  【参考答案】 D

  二级C笔试考前练习习题及答案 3

  1.下面对软件特点描述不正确的是()。

  A.软件是一种逻辑实体,具有抽象性

  B.软件开发、运行对计算机系统具有依赖性

  C.软件开发涉及软件知识产权、法律及心理等社会因素

  D.软件运行存在磨损和老化问题

  【答案】D

  【解析】软件具有以下特点:①软件具有抽象性,是一种逻辑实体;②软件没有明显的制作过程;③软件在使用期间不存在磨损、老化问题,④对硬件和环境具有依赖性;⑤软件复杂性高,成本昂贵;⑥软件开发涉及诸多的社会因素。D项描述是硬件存在的问题。答案选择D选项。

  2.下面描述不属于软件特点的是()。

  A.软件是一种逻辑实体,具有抽象性

  B.软件在使用中不存在磨损、老化问题

  C.软件复杂性高

  D.软件使用不涉及知识产权

  【答案】D

  【解析】软件具有以下特点:①软件是一种逻辑实体,具有抽象性;②软件没有明显的制作过程,③软件在使用期间不存在磨损、老化问题;④软件对硬件和环境具有依赖性;⑤软件复杂性高,成本昂贵,⑥软件开发涉及诸多的社会因素,如知识产权等。答案选择D选项。

  3.下面对软件特点描述错误的是()

  A.软件没有明显的制作过程

  B.软件是一种逻辑实体,不是物理实体,具有抽象性

  C.软件的开发、运行对计算机系统具有依赖性

  D.软件在使用中存在磨损、老化问题

  【答案】D

  【解析】软件的特点有:①具有抽象性,是逻辑实体;②没有明显的制作过程;③在使用期间不存在磨损、老化问题;④对硬件和环境具有依赖性;⑤复杂性高,成本昂贵;⑥开发涉及诸多的社会因素。答案选择D选项。

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

  A.编辑软件

  B.操作系统

  C.教务管理系统

  D.浏览器

  【答案】B

  【解析】系统软件是控制和协调计算机及外部设备,支持应用软件开发和运行的软件,操作系统是系统软件;支撑软件是支撑各种软件的.开发与维护的软件,又称为软件开发环境,浏览器属于支撑软件;应用软件是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,编辑软件、教务管理软件属于应用软件。答案选择B选项。

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

  A.学生成绩管理系统

  B. C语言编译程序

  C. UNIX操作系统

  D.数据库管理系统

  【答案】A

  【解析】应用软件是为解决特定领域的应用而开发的软件,如事务处理软件,工程与科学计算软件,学生成绩管理系统、教务管理系统、浏览器、编辑软件等应用性质不同的各种软件。系统软件是计算机管理自身资源,提高计算机使用效率并服务于其他程序的软件,如操作系统,编译程序,汇编程序,数据库管理系统等。支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件,如需求分析工具软件,设计工具软件,编码工具软件,测试工具软件,维护工具软件等。答案选择A选项。

  6.数据库管理系统是()。

  A.操作系统的一部分

  B.在操作系统支持下的系统软件

  C.一种编译系统

  D.一种操作系统

  【答案】B

  【解析】系统软件主要包括:①操作系统软件;②各种语言的解释程序和编译程序;③各种服务性程序;④各种数据库管理系统。数据库管理系统是一种系统软件,负责数据库中的数据组织、数组操纵、数据维护、控制和保护以及数据服务等。答案选择B选项。

  7.数据库管理系统是()。

  A.操作系统的一部分

  B.在操作系统支持下的系统软件

  C.一种编译系统

  D.一种通信软件系统

  【答案】B

  【解析】系统软件主要包括:①操作系统软件;②各种语言的解释程序和编译程序;③各种服务性程序;④各种数据库管理系统。数据库管理系统是一种系统软件,负责数据库中的数据组织、数组操纵、数据维护、控制和保护以及数据服务等。答案选择B选项。

  8.下列选项中,不属于数据管理员(DBA)职责的是()。

  A.数据库维护

  B.数据库设计

  C.改善系统性能,提高系统效率

  D.数据类型转换

  【答案】D

  【解析】数据库管理员对数据库进行规划、设计、维护、监视等,其主要工作有:①数据库设计,主要是对数据模式进行设计,②数据库维护,对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;③改善系统性能,不断调整内部结构,提高系统效率。答案选择D选项。

  9.数据库系统的核心是()。

  A.数据模型

  B.软件开发

  C.数据库设计

  D.数据库管理系统

  【答案】D

  【解析】数据库系统包括四个部分:数据库、数据库管理系统、数据库应用程序、数据库管理员。其中DBMS是为数据库的建立、使用和维护而配置的软件,是数据库系统的核心。答案选择D选项。

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

  A.数据库系统是一个独立的系统,不需要操作系统的支持

  B.数据库技术的根本目标是要解决数据的共享问题

  C.数据库管理系统就是数据库系统

  D.数据库系统由数据库应用系统、数据库和数据库管理系统组成。

  【答案】B

  【解析】A项错误,数据库需要调用操作系统的接口,需要操作系统的支持;C项错误,数据库管理系统(DBMS)是数据库系统的核心,负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务等;D项错误,数据库应用系统是数据库系统再加上应用软件及应用界面这三者所组成,具体包括:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面。答案选择B选项。

  二级C笔试考前练习习题及答案 4

  1.C语言编译程序的功能是()。

  A.执行一个C语言编写的源程序

  B.把C源程序翻译成ASCII码

  C.把C源程序翻译成机器代码

  D.把C源程序与系统提供的库函数组合成一个二进制执行文件

  【答案】C

  【解析】编译程序的功能是将“高级语言”翻译为“机器语言”。每条C语言语句,经过编译最终都将转换成二进制的机器指令。答案选择C选项。

  2.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是()。

  A. C语言程序仅可以编译执行

  B. C语言程序仅可以解释执行

  C. C语言程序既可以编译执行,又可以解释执行;

  D.以上说法都不对

  【答案】A

  【解析】编译执行是指程序执行前需要一个专门的编译过程把程序编译成机器语言的文件,再次运行时不需要重新翻译,执行效率高;解释执行是指每个语句都是执行的时候才翻译,执行效率低。用C语言编写的程序必须经过编译器编译后,转换为二进制的机器指令来运行。答案选择A选项。

  3.以下叙述中错误的是()。

  A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

  B. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件

  C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

  D. C语言源程序经编译后生成后缀为的目标程序

  【答案】A

  【解析】A项错误,注释语句不会被翻译成二进制的机器指令。C源程序经过C编译程序编译之后生成后缀为的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把文件与各种库函数连接起来生成一个后缀为的可执行文件。答案选择A选项。

  4.以下叙述中错误的是()

  A.C语言的可执行程序是由一系列机器指令构成的

  B.用C语言编写的.源程序不能直接在计算机上运行

  C.通过编译得到的二进制目标程序需要连接才可以运行

  D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的exe文件

  【答案】D

  【解析】A项正确,C语言的可执行程序是由一系列机器指令组成的;BC项正确,用C语言编写的源程序必须经过编译,生成二进制目标代码,再经过连接才能运行;D项错误,C语言经过编译链接后的二进制目标代码可以脱离C语言集成开发环境独立运行。答案选择D选项。

  5.以下叙述正确的是()。

  A. C编译程序把文件后缀为.c的源程序文件编译成文件后缀为的二进制文件

  B. C编译程序把文件后缀为.c的源程序文件编译成文件后缀为的可执行文件

  C. C编译程序把文件后缀为的二进制文件编译成文件后缀为的可执行文件

  D.链接程序把文件后缀为.c的源程序文件链接成文件后缀为的可执行文件

  【答案】A

  【解析】C编译程序把文件后缀为C的源程序文件编译成文件后缀为的二进制文件,链接将一个或多个目标文件与程序用到的库文件连接起来,形成一个可以在操作系统直接运行的执行程序,故排除B、C、D项,答案选择A选项。

  6.以下叙述中正确的是(A.在C语言程序中,main函数必须放在其他函数的最前面

  B.每个后缀为.c的C语言源程序都可以单独进行编译

  C.在C语言程序中,只有main函数才可以单独进行编译

  D.每个后缀为.c的C语言源程序都应该包含一个main函数

  【答案】B

  【解析】main函数可以在程序的任何位置。每一个可执行的C程序都必须有一个且只能有一个主函数。后缀名为.c的C语言源程序都可以单独进行编译。main函数只是让执行程序的系统知道该从哪里开始执行程序(从主函数处执行),其他有关这个程序的子函数是通过函数调用来实现其功能(不需main函数)。答案选择B选项。

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

  A. C语言编写的函数源程序,其文件名后缀可以是.c

  B. C语言编写的函数都可以作为一个独立的源程序文件

  C. C语言编写的每个函数都可以进行独立的编译并执行;

  D.一个C语言程序只能有一个主函数

  【答案】C

  【解析】C源程序经过C编译程序编译之后生成一个后缀为的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件,把此文件与C语言提供的各种库函数连接起来生成一个后缀为的可执行文件。只有含有main函数的经过编译链接才能执行。答案选择C选项。

  8.以下叙述中错误的是(A.一个C程序可以包含多个不同名的函数

  B.一个C程序只能有一个主函数

  C. C程序在书写时,有严格的缩进要求,否则不能编译通过

  D. C程序的主函数必须用main作为函数名

  【答案】C

  【解析】一个C程序有且只有一个主函数main。一个C程序可以包含多个不同名字的子函数。C程序在书写时没有严格的缩进要求。答案选择C选项。

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

  A. C语言规定必须用main作为主函数名,程序将从此开始执行

  B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

  C. C语言程序将从源程序中第一个函数开始执行;

  D. main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等

  【答案】A

  【解析】用户不能指定某函数为主函数,C语言规定,程序从main函数开始执行,从main函数退出,C语言函数名区别大小写。答案选择A选项。

  10.下列叙述中错误的是()。

  A. C程序可以由一个或多个函数组成

  B. C程序可以由多个程序文件组成

  C.一个C语言程序只能实现一种算法

  D.一个C函数可以单独作为一个C程序文件存在

  【答案】C

  【解析】一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法,答案选择C选项。

  二级C笔试考前练习习题及答案 5

  单选题

  1). 循环链表的主要优点是( )

  A.不再需要头指针了

  B.从表中任一结点出发都能访问到整个链表

  C.在进行插入、删除运算时,能更好的保证链表不断开

  D.已知某个结点的位置后,能够容易的找到它的直接前件

  正确答案:B

  2). 下述关于数据库系统的叙述中,正确的是( )。

  A.数据库系统减少了数据冗余

  B.数据库系统避免了一切冗余

  C.数据库系统中数据的一致性是指数据类型一致

  D.数据库系统比文件系统能管理更多的数据

  正确答案:A

  答案解析:数据库系统会减少数据冗余,但不可能避免一切冗余。

  3). 设树T的度为4,其中度为1、2、3、4的结点个数分别为4、2、l、1。则T中的叶子结点的个数为( )。

  A.8

  B.7

  C.6

  D.5

  正确答案:A

  答案解析:将题中所述的树用图形表示,可得叶子结点数目。

  4). 数据库设计包括两个方面的设计内容,他们是( )。

  A.概念设计和逻辑设计

  B.模式设计和内模式设计

  C.内模式设计和物理设计

  D.结构特性设计和行为特性设计

  正确答案:A

  答案解析:数据库设计包括数据库概念设计和数据库逻辑设计两个方面的`内容。

  5). 没函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择存储类别是( )。

  A.auto

  B.register

  C.static

  D.auto或register

  正确答案:C

  答案解析:未赋初值的静态局部变量,编译程序自给它赋初值0。所以选择C。

  6). 为了使模块尽可能独立,要求( )。

  A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

  B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

  C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

  D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

  正确答案:B

  答案解析:耦合是指模块之间的关联程度,而内聚是指模块内部各部分的聚合程度。模块之间的关联程度越小,模块内部的聚合程度越高,越容易维护。在程序设计中应追求高内聚低耦合。

  7). 若函数中有定义语句″int k;″,则( )。

  A.系统将自动给k赋初值O

  B.这时k中的值无定义

  C.系统将自动给k赋初值-1

  D.这时k中无任何值

  正确答案:B

  答案解析:根据题目,若以这种方式定义变量k时,编译程序仅为k开辟存储单元,并未在存储单元中存放任何初始值,所以变量中的值无意义,称变量值″无定义″。所以正确答案为选项B。

  8). 下列对于软件测试的描述正确的是( )。

  A.软件测试的目的是证明程序是否正确

  B.软件测试的目的是使程序运行结果正确

  C.软件测试的目的是尽可能地多发现程序中的错误

  D.软件测试的目的是使程序符合结构化原则

  正确答案:C

  答案解析:软件测试是为了尽可能多地发现程序中的错误,尤其是发现至今尚未发现的错误。

  9). 下列枚举类型的定义中,包含枚举值3的是( )。

  A.enum test{ RED,YELLOW,BLUE,BLACK};

  B.enum test{ RED,YELLOW= 4,BLUE,BLACK};

  C.enum test{ RED= -1,YELLOW,BLUE,BLACK};

  D.enum test{ RED,YELI,OW=6 ,BLUE,BLACK};

  正确答案:A

  答案解析:本题主要考查枚举类型的定义,其中几个枚举值全部未赋常量值时,它们自左至右分别与整数0,1,…,n-l对应。由此可判断本题答案。

  10). 能正确表示逻辑关系″a≥10或a≤O″的C++语言表达式是( )。

  A.jsj-ej-0130.jpg

  B.jsj-ej-0131.jpg

  C.jsj-ej-0132.jpg

  D.jsj-ej-0133.jpg

  正确答案:D

  答案解析:逻辑运算符″II″表示或的意思。

  11). 下列关于C++函数的说明中,正确的是( )。

  A.内联函数就是定义在另一个函数体内部的函数

  B.函数体的最后一条语句必须是return语句

  C.标准C++要求在调用一个函数之前,必须先声明其原型

  D.编译器会根据函数的返回值数型和参数表来区分函数的不同重载形式

  正确答案:C

  答案解析:内联函数不是定义在另一个函数体内部的函数,而是将lnllne放在函数定义中函数类型之前;函数体的最后一条语句可以是任意的语句;编译器不会根据函数返回值的类型来区分重载形式,选项D错误。标准C++要求在调用一个函数之前,必须先声明其原型。

  12). 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为

  A.GEDHFBCA

  B.DGEBHFCA

  C.ABCDEFGH

  D.ACBFEDHG

  正确答案:B

  二级C笔试考前练习习题及答案 6

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

  A.所有数据结构必须有根结点

  B.所有数据结构必须有终端结点(即叶子结点)

  C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构

  D.没有根结点或没有叶子结点的数据结构一定是非线性结构

  【答案】D

  【解析】D项正确,线性结构的特点是:①集合中必存在“第一个元素"且惟一②集合中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟一的“后继”,④除第一个元素外,其他数据元素均有惟一的“前驱”。所以没有根结点或没有叶子结点的数据结构一定是非线性结构。AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。答案选择D选项。

  2.以下叙述中错误的是()。

  A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

  B. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件

  C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

  D. C语言源程序经编译后生成后缀为.obj的目标程序

  【答案】A

  【解析】A项错误,注释语句不会被翻译成二进制的机器指令。C源程序经过C编译程序编译之后生成后缀为.obj的.二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。答案选择A选项。

  3. C语言主要是借助以下()功能来实现程序模块化的。

  A.定义函数

  B.定义常量和外部变量

  C.三种基本结构语句

  D.丰富的数据类型

  【答案】A

  【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。

  4.有以下程序段:

  char ch;

  int k;

  ch='a';

  k=12;

  print("%c,%d,",h,ch,k);

  printf("k=%d",k);

  已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是()。

  A.因变量类型与格式描述符的类型不匹配输出无定值

  B.输出项与格式描述符个数不符,输出为零值或不定值

  C.a,97,12k=12

  D. a,97,k=12

  【答案】D

  【解析】字符变量的值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。"ch='a",%c表示以字符格式输出ch的值,所以输出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出"k=",然后以十进制代码输出k的值,为12。答案选择D选项。

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

  A.栈是“先进先出”的线性表

  B.队列是“先进后出"的线性表

  C.循环队列是非线性结构

  D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

  【答案】D

  【解析】有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错误,栈是“先进后出"的线性表B项错误,队列是“先进先出"的线性表;C项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。

  6.某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为()。

  A. 5

  B. 40

  C.3

  D. 2

  【答案】B

  【解析】二叉树的后序序列为DCBGFEA,则A为根结点。中序序列为DCBAEFG,则DCB为左子树结点,EFG为右子树结点。同理B为C父结点,C为D父结点。根据分析,可画出左子树,同理E为F父结点,F为G父结点。根据分析,可画出右子树,故二叉树深度为4层。答案选择B选项。

  7.设有定义:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是()。

  A. s[0]=m[1];

  B. s=m;

  C.s.n=m.n;

  D. s[2].x=m[2].x;

  【答案】A

  【解析】定义了结构体类型数组s,长度为2,结构体类型数组m,长度为2,并对数组m进行了初始化。同类型的结构体可以直接用变量名实现赋值,A项正确;数组名为数组首地址,地址常量之间不可以相互赋值,B项错误;数组名为地址常量不是结构体变量,不能引用成员,C项错误;s[2]与m[2]数组越界,D项错误。答案选择A选项。

  8.关于C语言标识符,以下叙述错误的是()。

  A.标识符可全部由数字组成

  B.标识符可全部由下划线组成

  C.标识符可全部由小写字母组成

  D.标识符可全部由大写字母组成

  【答案】A

  【解析】C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头,故答案选择A选项。

  9.以下程序段中的变量已定义为int类型,则

  sum=pAd=5;

  pAd=sum++,++pAd,pAd++;

  printf("%d",pAd);

  程序段的输出结果是()。

  A. 6

  B. 4

  C. 5

  D. 7

  【答案】D

  【解析】自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。执行pAd=sum++,sum++是后置自增,执行完后,pAd=5,sum=6。++pAd和pAd++语句中没有其他运算,即效果相同,pAd分别加1,两句执行完后,pAd7。答案选择D选项。

  10.设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为()。

  A. 5

  B. 6

  C.m-5

  D. m-6

  【答案】D

  【解析】循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用队首指针指向队首元素的前一个位置,因此,从队首指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=20,rear=15时,队列中有m-20+15=m-5个元素,最坏情况下需要比较次数为m-6次。答案选择D选项。

【二级C笔试考前练习习题及答案】相关文章:

C语言考前练习题及答案03-17

计算机二级C语言考前练习题及答案03-20

2017计算机二级C语言考前练习题及答案06-07

计算机二级考前练习题及答案(C语言)201704-21

2017计算机二级C++考前练习题及答案03-30

2017计算机二级C++考前练习题及答案03-11

C语言考前练习试题及答案02-27

C语言考前模拟练习题05-11

2024年计算机二级《C语言》考前练习题及答案05-09