试题

计算机二级《C语言》基础练习题及答案

时间:2024-11-28 09:34:24 晓丽 试题 我要投稿

2024年计算机二级《C语言》基础练习题及答案

  在日常学习和工作生活中,我们很多时候都不得不用到练习题,只有认真完成作业,积极地发挥每一道习题特殊的功能和作用,才能有效地提高我们的思维能力,深化我们对知识的理解。大家知道什么样的习题才是规范的吗?下面是小编精心整理的2024年计算机二级《C语言》基础练习题及答案,欢迎阅读,希望大家能够喜欢。

  计算机二级《C语言》基础练习题及答案 1

  1[单选题] 以下叙述中正确的是( )。

  A.用C语言编写的程序只能放在一个程序文件中

  B.C程序书写格式严格,要求一行内只能写一个语句

  C.C程序中的注释只能出现在程序的开始位置和语句的后面

  D.C程序书写格式自由,一个语句可以写在多行上

  参考答案:D

  参考解析:C语言编写的程序可以放置于多个程序文件中,所以A错误。C程序中的一行可以有多条语句,所以B错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C错误。

  2[单选题] 以下选项中,能用作数据常量的是( )。

  A.115LB.0118C.1.5el.5D.0115

  参考答案:A

  参考解析:A选项中l15L表示ll5是长整型数据,合法。B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B错误。c选项中e后面应该是整数不能是小数l.5,所以c错误。D选项中八进制常量应该是数字…0开始,而不是字母…O开始。

  3[单选题] 对于一个正常运行的C程序,以下叙述中正确的是( )。

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

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

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

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

  参考答案:C

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

  4[单选题] 有以下程序:

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

  A.1 2B.1 4C.123 4D.123 456

  参考答案:D

  参考解析:fprintf()函数向文本文件输出数据,将输出的内容按格式输出翻硬盘的文本文件中。执行两次fprintf后。文件中的.内容为。l23 456”,所以D选项正确。

  5[单选题] 有以下程序:

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

  A.1,2,1,2,2,4

  B.1,2,6,6,7,8

  C.1,2,2,4,2,4

  D.1,2,6,6,2,4

  参考答案:A

  参考解析:全局变量与函数体内局部变量同名时,局部变量会覆盖全局变量,因此在subl()函数内,全局变量m,n是不可见的,在函数suhl()对m,n操作的是局部变量,对全局变量不产生影响。但在sub2()函数内,由于没有和全局变量变量重名,因此在此函数内,m,n是可见的。因此,第一个pfinff()打印的是全局变量m,n,故打印的是l,2,第二个pfinff(),调用suhl(),没有修改全局变量m,n.故打印的是l,2,第三个一村(),之前调用了sub2(),修改了全局变量m,n。因此,打印的是2,4。故答案为A选项。

  6[单选题] 软件测试的目的是( )。

  A.评估软件可靠性

  B.发现并改正程序中的错误

  C.改正程序中的错误

  D.发现程序中的错误

  参考答案:D

  参考解析:软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能。不是为了评估软件或改正错误。

  7[单选题] 有以下程序:

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

  A.321B.12300C.1D.123

  参考答案:D

  参考解析:程序首先将数组a[10]中的元素l、2.3分别写入了文件dl。dat文件中,然后又将dl.dat文件中的数据123,整体写入到了变量n的空间中,所以打印n时输出的 数据为123。

  8[单选题] 有以下程序:

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

  A.2B.3C.7D.0

  参考答案:A

  参考解析:因为fun(int x)是一个递归函数,所以主函数中fun(7)经过3次递归调用,其过程可以描述为“fun(7)=7一fun(5)=7一(5一fun(3))=7一(5一(3一fun(1)))=7一(5一(3—3))=7—5=2”,所以最后输出结果为2。因此.A选项正确。

  9[单选题] 有以下程序:

  执行时输入:2<回车>,则输出结果是( )。

  A.1 23 4B.5 431C.1235D.32 1 4

  参考答案:C

  参考解析:第一个for循环初始化数组a,分别为l,3,5,随机数,形成了基本有序的序列,再将输入的数字插入到数组a,使他们形成有序序列。因此可以分析出,打印的结果为1,2,3,5。故答案为c选项。

  10[简答题]学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数:

  注意:部分源程序在文件PROGl.C中。

  请勿改动主函数main和其他函数中的任何内容,仅在函数flm的花括号中填入你编写的若干语句。

  参考解析:

  【考点分析】

  本题考查:查找结构体数组中的最小数据,需要通过for循环语句和if条件语句来完成。

  【解题思路】

  本题中第一个循环语句的作用是遍历数组求出最低分数,第二个循环语句的作用是将数组中的元素与最低分比较,查找是否存在与最低分相等的成绩。

  计算机二级《C语言》基础练习题及答案 2

  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语言》基础练习题及答案 3

  (1)算法的时间复杂度是指_______。

  A)执行算法程序所需要的时间

  B)算法程序的长度

  C)算法执行过程中所需要的基本运算次数

  D)算法程序中的指令条数

  答案:C

  评析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。

  (2)下列叙述中正确的是________。

  A)线性表是线性结构B)栈与队列是非线性结构

  C)线性链表是非线性结构D)二叉树是线性结构

  答案:A

  评析:一般将数据结构分为两大类型:线性结构与非线性结构。线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。

  (3)下面关于完全二叉树的叙述中,错误的是_________。

  A)除了最后一层外,每一层上的结点数均达到最大值

  B)可能缺少若干个左右叶子结点

  C)完全二叉树一般不是满二叉树

  D)具有结点的完全二叉树的深度为[log2n]+1

  答案:B

  评析:满二叉树指除最后一层外每一层上所有结点都有两个子结点的.二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。

  计算机二级《C语言》基础练习题及答案 4

  (1)结构化程序设计主要强调的是_________。

  A)程序的规模B)程序的易读性

  C)程序的执行效率D)程序的可移植性

  答案:B

  评析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。

  (2)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是________。

  A)概要设计B)详细设计C)可行性分析D)需求分析

  答案:D

  评析:需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。

  (3)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的'图符不属于数据流图合法图符的是_________。

  A)控制流B)加工C)数据存储D)源和潭

  答案:A

  评析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。

  (4)软件需求分析一般应确定的是用户对软件的__________。

  A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求

  答案:D

  评析:软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,是用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。

  计算机二级《C语言》基础练习题及答案 5

  (1)下述关于数据库系统的叙述中正确的是________。

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

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

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

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

  答案:A

  评析:由数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值。

  (2)关系表中的每一横行称为一个________。

  A)元组B)字段C)属性D)码

  答案:A

  评析:在关系数据库中,关系模型采用二维表来表示,简称“表”。二维表是由表框架及表元组组成。在表框架中,按行可以存放数据,每行数据称为元组。

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

  A)概念设计和逻辑设计B)模式设计和内模式设计

  C)内模式设计和物理设计D)结构特性设计和行为特性设计

  答案:A

  评析:数据库设计可分为概念设计与逻辑设计。概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。逻辑设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。

  (4)请读程序:

  #include

  main

  {

  int a;float b,c;

  scanf(“%2d%3P%4f’,&a,&b,&C);

  printf(” a=%d,b=%ec。%f ”,a,b,C);

  }

  若运行时从键盘上输入9876543210l,则上面程序的输出结果是________。

  A)a=98,b=765,c=432 1

  B)a=1 0,b=432,c=8765

  C)a=98,b=765.000000,c=432 1.000000

  D)a=98,b=765.0,c=432 1.0

  答案:C

  评析:scanf把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。

  (5)一个良好的算法由下面的基本结构组成,但不包括__________。

  A)顺序结构B)选择结构C)循环结构D)跳转结构

  答案:D

  评析:1966年,Bohra和Jacopini提出了以下三种基本结构,用这三种基本结构作为表示一个良好算法的基本单元:1、顺序结构;2、选择结构;3、循环结构。

  (6)请选出以下程序的输出结果________。

  #include

  sub(x,y,z)

  int x,y,星符号z:

  {星符号z变化,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12,在sub(a,b,&C)后,c的值发生变化,其值为-12-(-5)=-7。

  (7)下面程序在屏幕上的输出是________。

  main

  {

  printf(”ab c”);

  }

  A)ab c B)a c C)abc D)ab c

  答案:B

  评析:c语言中允许使用一种特殊形式的字符常量,、就是以一个“”开头的字符序列,这样的字符称为“转义字符”。常用的转义字符有:,换行;,水平制表;,退格;,回车。

  (8)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是_______。

  A)pb=&x; B)pb=x; C)星符号pb=星符号、/)还包括自增自减运算符(++、–),在c语言解析表达式时,它总是进行贪婪咀嚼,这样,该表达式就被解析为i++ ++ +i,显然该表达式不合c语言语法。

  (10)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元

  int星符号int) D)(int星符号)

  答案:D

  评析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型+)。

  (11)下面程序输出的结果是__________。

  main

  {

  int i=5,J=9,x;

  x=(I==j?i:(j=7));

  printf(” %d,%d”,I,J);

  }

  A)5,7 B)5,5 C)语法错误D)7,5

  答案:A

  评析:条件表达式的一般形式为:表达式I?表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式l的值为假,则求解表达式3。本题中先判断i==j,不等,执行j=7;然后执行x=7。故本题为A。

【计算机二级《C语言》基础练习题及答案】相关文章:

计算机二级《C语言》基础练习题及答案10-10

计算机二级《C语言》基础练习题及答案10-13

2016年计算机二级《C语言》基础练习题及答案08-03

计算机二级《C语言》练习题及答案11-27

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

2017计算机二级C语言基础习题及答案08-26

计算机二级C语言练习题及答案201707-26

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

2017计算机二级C++基础练习题及答案08-07