试题

计算机二级C语言模拟试题及答案

时间:2024-07-04 17:00:27 试题 我要投稿

计算机二级C语言模拟试题及答案

  3月26-29日将举行全国计算机等级考试,在此之前,小编为大家整理了二级c语言的笔试试题,希望对大家有所帮助!

计算机二级C语言模拟试题及答案

  (1)以下数据结构属于非线性数据结构的是________。

  A)队列 B)线性表 C)二叉树 D)栈

  (2)C

  知识点:栈和队列的定义;栈和队列的顺序存储结构及其基本运算

  评 析:线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚插入的元素。所以栈又称后进先出表(Last In First Out)。队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。因此队列又称先进先出表(First In First Out)。二叉树的数据结构是树型结构,结构中数据元素之间存在着一对多的关系,因此它是一种非线性数据结构。

  2)下面叙述正确的是________。

  A)算法的执行效率与数据的存储结构无关

  B)算法的空间复杂度是指算法程序中指令(或语句)的条数

  C)算法的有穷性是指算法必须能在执行有限个步骤之后终止

  D)算法的时间复杂度是指执行算法程序所需要的时间

  2)C

  知识点:算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)

  评 析:算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。数据结构和算法是计算机科学的两个重要支柱。它们是一个不可分割的整体。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限的步骤以后结束。算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数。

  (3)在一棵二叉树上第8层的结点数最多是________。

  A)8 B)16 C)128 D)256

  (3)C

  知识点:二叉树的定义及其存储结构

  评 析:根据二叉树的性质:二叉树第i(I>1)层上至多有2i-1个结点。得到第8层的结点数最多是128。

  (4)下面描述中,不符合结构化程序设计风格的是________。

  A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑

  B)自顶向下

  C)注重提高程序的执行效率

  D)限制使用goto语句

  (4)C

  知识点:结构化程序设计

  评 析:结构化程序设计方法的四条原则是:1.自顶向下:2.逐步求精;3.模块化;4.限制使用goto语句。“自顶向下”是说,程序设计时,应先考虑总体,后考虑细节,先考虑全局目标,后考虑局部目标;“逐步求精’’是说,对复杂问题,应设计一些子目标作过渡,逐步细节化;“模块化”是说,一个复杂问题肯定是由若干稍简单的问题构成,解决这个复杂问题的程序,也应对应若干稍简单的问题,分解成若干稍小的部分。

  (5)下面概念中,不属于面向对象方法的是________。

  A)对象、消息 B)继承、多态 C)类、封装 D)过程调用

  (5)D

  知识点:面向对象的程序设计方法、对象、方法、属性及继承与多态性

  评 析:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。

  (6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是________。

  A)可行性分析 B)需求分析 C)详细设计 D)程序编码

  (6)B

  知识点:结构化设计方法

  评 析:软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流程图和数据字典。

  (7)软件生命周期中所花费用最多的阶段是________。

  A)详细设计 B)软件编码 C)软件测试 D)软件维护

  (7)D

  知识点:软件工程基本概念,软件生命周期概念,软件工具与软件开发环境

  评 析:软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。本题中详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。

  (8)数据库系统的核心是________。

  A)数据模型 B)DBMS C)软件工具 D)数据库

  (8)B

  知识点:数据库的基本概念:数据库,数据库管理系统,数据库系统

  评 析:数据库管理系统DBMS是数据库系统的核心。DBMS是负责数据库的建立、使用和维护的软件。DBMS建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。另外,DBMS还承担着数据库的安全保护工作,按照DBA所规定的要求,保证数据库的完整性和安全性。

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

  A)数据处理是将信息转化为数据的过程

  B)数据库设计是指设计数据库管理系统

  C)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键

  字,则称其为本关系的外关键字

  D)关系中的每列称为元组,一个元组就是一个字段

  (9)C

  知识点:数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型

  评 析:数据处理是指将数据转换成信息的过程,故选项A叙述错误;设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型,故选项B叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性。对应存储文件中的字段,故D选项叙述错误。

  (10)下列模式中,_______是用户模式。

  A)内模式 B)外模式 C)概念模式 D)逻辑模式

  (10)B

  知识点:数据库的基本概念:数据库,数据库管理系统,数据库系统

  评 析:数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式,或称子模式,或称用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一部分。内模式,或称存储模式,或称物理模式,是指数据在数据库系统内的存储介质上的表示。即对数据的物理结构和存取方式的描述。

  (11)C语言规定,程序中各函数之间_______。

  A)既允许直接递归调用也允许间接递归调用

  B)不允许直接递归调用也不允许间接递归调用

  C)允许直接递归调用不允许间接递归调用

  D)不允许直接递归调用允许间接递归调用

  (11)A

  知识点:函数的递归调用

  评 析:c语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。

  (12)C语言中下列叙述正确的是_______。

  A)不能使用do-while语句构成的循环

  B)do-while语句构成的循环,必须用break语句才能退出

  C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

  D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环

  (12)D

  知识点:do-while语句

  评 析:选项A是错误的,c语言支持do-while语句;选项B是错误的,do-while构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项C也是错误的。

  (13)以下选项中属于C语言的数据类型是_______。

  A)复数型 B)逻辑型 C)双精度型 D)集合型

  (13)C

  知识点:c语言的数据类型

  评 析:c语言的数据类型分为基本类型、构造类型、指针类型、空类型四大类。其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种类型。

  (14)在C语言中,不正确的int类型的常数是_______。

  A)32768 B)0 C)037 D)0xAF

  (14)A

  知识点:int类型的范围

  评 析: c语言中int类型的常数的范围是:-32768~32767。c整常数可用三种形式表示:十进制整数,八进制整数,十六进制整数。选项A超出范围,不正确。

  (15)下列描述中不正确的是_______。

  A)字符型数组中可以存放字符串

  B)可以对字符型数组进行整体输入、输出

  C)可以对整型数组进行整体输入、输出

  D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值

  (15)C

  知识点:对数组的理解

  评 析: c语言规定只能逐个引用数组元素而不能一次引用整个数组。字符数组的输入、输出可以将整个字符串一次输入或输出。所以,选项C的说法是不正确的。

  (16)以下程序的输出结果是_______。

  main()

  { int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p。&x[1][1];

  for(i=0;i<4;i+=2)printf("%d",p[i]];

  }

  A)5 2 B)5 1 C)5 3 D)9 7

  (16)C

  知识点:通过指针引用数组元素

  评 析:题中*p=&x[1][1];是指将数组x的数组元素x[1][1]的地址赋值给指针变量p,使p指向x[l][l]这个数组元素,那么p[0]即为指针变量p当前所指向的数组元素x[l][1]的值。具体执行时如下所示:

  i=0时,输出p[0],也就是x[1][1],输出是5:

  i=2时,输出p[2],即p[2+0],也就是x[2][0],输出是3。

  (17)以下程序的运行结果是_______。

  #include "stdio.h"

  main()

  {

  int a[]={1,2,3,4,5,6,7,8,9,10,11,12};

  int*p=a十5,*q=NULL;

  *q=*(p+5);

  printf("%d %d ",*p,*q);

  }

  A)运行后报错 B)6 6

  C)6 12 D)5 5

  (17)A

  知识点:通过指针引用数组

  评 析:题目中没有给q分配存储单元,只是简单地给它赋了一个值,所以程序的运行结果是6 ll NULL pointer assignment,也就是运行后报错。

  (18)以下说法中正确的是________。

  A)c语言程序总是从第一个函数开始执行

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

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

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

  (18)C

  知识点: C程序的运行顺序

  评 析:c语言的程序是由主函数main()开始运行,由主函数来调用其他函数,所以选项A错误;c语言中定义的函数必须是并列的,不能在一个函数中定义其他函数,选项B错误;函数必须先定义后使用,在调用函数之前要定义函数,而mmn()函数不一定要放在程序的开始部分,故选项D错误。

  (19)能正确表示a和b同时为正或同时为负的逻辑表达式是________。

  A)(a>=0l lb>=0)&&(a<0I lb<0) a="">=0&&b>--0)&&(a<0&&b

  C)(a+b>0) &&(a+b<=0) b="">0

  (19)D

  知识点:对逻辑表达式的判断

  评 析:逻辑表达式是指用逻辑运算符将关系表达式或逻辑量连接起来。

  选项A中,表达式表示的是a,b为异号;

  选项B中,表达式表示的是0,因为没有满足条件的值;

  选项C中,表达式表示的是0,因为没有满足条件的值;

  选项D表示的是a和b为同号。

  (20)若己定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[l]地址的表达式是________。

  A)p+l B)a+l C)a++ D)++p

  (20)C

  知识点:数组地址的表示

  评 析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常量“移动”,指向数组的其他元素。

  (21)以下程序的输出结果是________。

  main()

  { int a=-l,b=l,k;

  if((++a<0)&&!(b--<=0))

  printf("%d %d ",a,b);

  else

  printf("%d %d ”,b,a);

  }

  A)-l l B)0 1

  C)1 0 D)0 0

  (21)C

  知识点:if条件的判断

  评析:逻辑运算符的优先次序如下:!(非)→&&(与)→||(或),但本题需特别注意的是短路的概念:对于&&运算符,其两边表达式的值只要有一边为假,则整个与运算表达式的值即为假,系统在执行时,先运算&&左边的表达式,若为假,则系统不会再判断&&运算符右边的表达式了,直接运用短路原理得整个与运算表达式的值为0。由于++a是先运算后使用,b--是先使用后运算。所以本题在执行++a后,a值为0,不满足条件,所以a为l,根据短路原理,b仍为0,接下去执行else语句,输出l 0。

  (22)以下选项中,能定义s为合法的结构体变量的是________。

  A) typedef struct abc

  { double a;

  char b[10];

  }s;

  B ) struct

  { double a;

  char b[10];

  }s;

  C) struct ABC

  { double a;

  char b[10];

  }

  ABC s;

  D ) typedef ABC

  { double a;

  char b[10];

  }

  ABC s:

  (22)B

  知识点:结构体变量的定义

  评析:定义一个结构体类型的变量,可采用三种方法:

  ①先定义结构体类型,再定义变量名;

  ②在定义类型的同时定义变量;

  ③直接定义结构类型变量,即不出现结构体名。

  选项B符合第三种定义方法。

  (23)请读程序:

  #include

  #include

  main()

  {

  char*sl="AbCdEf",*s2="aB";

  s1++;s2++;

  printf("%d ",strcmp(s1,s2));

  }

  上面程序的输出结果是_______。

  A)正数 B)负数 C)零 D)不确定的值

  (23)A

  知识点:字符串比较函数strcmp()的应用

  评析:strcmp(X1,X2)是串比较函数,当X1>X2时返回值为正数,当X1

  本题中“sl”、“s2”分别表示这两个串中第一个字符的地址,s1++和s2++是将指针指向串的第二个字符,则*sl为“bCdEf',,*s2为“B”。而在字符串比较中。大小的确定是由各个字符串相应位置字符的ASCII码值的大小决定的。“B”的ASCII码值为66,”b”的ASCII码值为98,所以sl>s2,返回值为正数。

  (24)请读程序:

  #include

  func(int a,int b){

  int c:

  c=a+b:

  return C:

  }

  main(){

  int x=6,y=7,z=8,r;

  r=func((x--,y++,x+y),z--);

  printf("%d ",r);

  }

  上面程序的输出结果是________。

  A)11 B)20 C)2l D)31

  (24)C

  知识点:自增、自减运算

  评析:函数func()的作用是返回两个形参的和,第一个形参是x、y分别自减和自增后的和,其中(x--,y++,x+y)是一个逗号表达式,它的值应该等于x+y,所以整个表达式(x--,y++,x+y)的值为13,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所以fune()的返回值为13+8=21。

  (25)请读程序:

  #include

  main()

  {

  int a,b;

  for(a=1,b=l;a<=100;a++){

  if(b>=20)break;

  if(b%3==1){b+=3;continue;}

  b_=5:

  }

  printf("%d ",a);

  }

  上面程序的输出结果是________。

  A)7 B)8 C)9 D)10

  (25)B

  知识点:break语句和continue语句

  评析:break语句的作用是用于跳出循环体,继续执行循环体下面的语句;而continue语句的作用是用于跳出本次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。“%”是求余运算符,执行第一次循环时,条件(b%3==1)为真,b=4,继续下一次循环,如此反复,当b=22时,条件(b>=20)为假,跳出循环,此时共循环8次,即a=8。

  (26)请读程序片段(字符串内没有空格字符):

  printf("%d ",strlen("ATS 0l2l"));

  上面程序片段的输出结果是_______。

  A)l1 B)10 C)9 D)8

  (26)C

  知识点:字符串的长度

  评析:这个语句的目的是输出“ATS 0121”这个串的长度,在串中“”代表一个“”,为了和printf()函数中的转义字符区分开来,在语法上使用了两个反斜杠代替了一个反斜杠,所以它仅仅为一个字符,而”l”代表数字l,也占一个字符,“ ”是回车换行符,也占一个字符,加上A、T、s、0、1、2,一共是9个字符。

  (27)请选出可用作C语言用户标识符的一组标识符_______。

  A)Void B)a3_b3 C)For D)2a

  define _123 _abc DO

  WORD IF case sizeof

  (27)B

  知识点:C语言的标识符

  评析:c语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。

  选项A中的void和define都和c语言的关键字重名,不合法;

  选项C中的case和c语言的关键字重名,不合法;

  选项D中的2a是数字打头而且sizeof和c语言的关键字重名,不合法。

  (28)请选出以下程序的输出结果_______。

  #include

  sub(int*s,int y)

  { static int t=3;

  y=s[t];t--;

  }

  main()

  { int a[]={1,2,3,4},i,x=0;

  for(i=0;i<4;i++){

  sub(a,x);printf("%d",x);}

  printf(" ");

  }

  A)1234 B)432l C)0000 D)4444

  (28)C

  知识点:函数的形参和实参的关系

  评析:x作为函数sub()的实参时,函数对x值的改变没有返回主函数,并不能使得x的值变化,所以在打印时,x的值是始终不变的,即为O。

  (29)若有以下说明和语句,请选出哪个是对c数组元素的正确引用_______。

  int c[4][5],(*cp)[5];

  cp=c;

  A)cp+l B)*(cp+3) C)*(cp+1)+3 D)*(*cp+2)

  (29)D

  知识点:数组元素的引用

  评析:cp=c这个语句是将数组第0行的地址赋给了cp。cp+l使指针指向二维数组c的第一行;*(cp+3)是数组c的第三行的第0列的地址值;+(cp+1)+3是数组c的第一行第三列的地址值。

  (30)设有以下语句

  char a=3,b=6,c;

  c=a^b<<2:

  则c的二进制值是_______。

  A)00011011 B)00010100 C)000ll 100 D)00011000

  (30)A

  知识点:位运算

  评析:“<<”是c语言中规定的左移运算符,例如,a=a<<2,这个语句即是将a的二进制数左移两位,左移一位相当于该数乘以2,左移两位相当于该数乘以2的2次方;,^是异或运算符,所以,c的二进制值应为0001101l。

  (31)设有

  static char str[]="Beijing";

  则执行

  printf("%d ",strlen(strcpy(str, "China")));

  后的输出结果为_______。

  A)5 B)7 C)12 D)14

  (31)A

  知识点:字符串的长度

  评析:在执行printf()函数前,数组str的长度是7,但是当使用strcpy()函数将新的值赋给str后,strlen()函数返回的应当是现在的str字符串的字符个数,即是5。

  (32)以下程序的输出结果是_______。

  #include

  main()

  { int i;

  for(i=1;i<5;i++){

  if(i%2)printf("*");

  else continue;

  printf("#");

  }

  print"$ ");

  }

  A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$

  (32)C

  知识点:if语句的判断

  评析:当i不可以整除2时打印”*”,然后打印“#”,不能整除2则执行continue,跳过printf(“#”);语句,结束本次循环,返回到循环的起始点。当循环结束后,打印“$”。

  (33)有以下程序

  #include

  main()

  { int c;

  while((c=get))!=‘ ’){

  switch(C-‘2’){

  case O:case 1:putc+4);

  case 2:putc+4);break;

  case 3:putc+3);

  default:putc十2);break;}

  }

  }

  从第一列开始输入以下数据,↙代表一个回车符。

  2473↙

  程序的输出结果是_______。

  A)668977 B)668966 C)66778777 D)6688766

  (33)A

  知识点:switch()语句

  评析:get)函数是从键盘接受一个字符输入;当用户键入的字符不是回车符时,会进入一个多分支选择语句,根据表达式c-‘2’的值进行分支选择:put)是在屏幕上打印一个字符,最后的结果应当为668977。

  (34)以下程序的输出结果是________。

  main()

  { int w=5;fun(w);printf(" ");}

  fun(int k)

  { if(k>O) fun(k_1);

  printf("%d",k);

  }

  A)5 4 3 2 l B)0 1 2 3 4 5

  C)1 2 3 4 5 D)5 4 3 2 1 0

  (34)B

  知识点:函数的递归调用

  评析:函数的递归调用就是在调用一个函数的过程中又出现直接或间接地调用该函数本身。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(O)。其中fun(5)是main函数调用的,其余是在fun函数中调用的。

  (35)若fp是指向某文件的指针,且已读到此文件的末尾,则函数feof(f1))的返回值是_________ 。

  A)EOF B)0 C)非零值 D)NULL

  (35)C

  知识点:文件结束符的返回值

  评析:函数feof是用来判断文件是否已读到末尾,如果己读到末尾则返回非零值,否则返回O。

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

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

  B)算法程序的长度

  

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

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

  (36)C

  知识点:算法复杂度的概念和意义(时问复杂度与空间复杂度)

  评析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。

  (37)下列叙述中正确的是_______。

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

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

  (37)A

  知识点:线性结构与非线性结构的概念

  评析:根据数据结构中各数据元素之间相关联关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。

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

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

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

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

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

  (38)B

  知识点:二叉树的定义及其存储结构

  评析:这里考察完全二又树与满二叉树的定义及二叉树的性质。满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。因此选项A是正确的,而选项B是错误的。由定义可知,满二叉树肯定是完全二又树,而完全二又树一般不是满二叉树,因此选项c是正确的叙述。选项D即二又树性质(5),也是正确的。

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

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

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

  (39)B

  知识点:结构化程序设计

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

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

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

  (40)D

  知识点:软件工程基本概念,软件生命周期概念,软件工具与软件开发环境

  评析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。软件生命周期的主要活动阶段为:

  ① 可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成开发任务的实施计划。

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

  ③软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。

  ④软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。

  ⑤软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。

  ⑥运行和维护。将已交付的软件投入运行,并存运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。

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

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

  (41)A

  知识点:结构化分析方法,数据流图,数据字典,软件需求规格说明书

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

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

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

  (42)D

  知识点:结构化设计方法

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

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

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

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

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

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

  (43)A

  知识点:数据库的基本概念:数据库,数据库管理系统,数据库系统

  评析:由于数据的集成性使得数据可为多个应JH=j所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身义可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一个数据在系统的不同拷贝处有不同的值。

  (44)关系表中的每一横行称为一个_______。

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

  (44)A

  知识点:数据库的基本概念:数据库.数据库管理系统,数据库系统

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

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

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

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

  (45)A

  知识点:数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略

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

  (46)请读程序:

  #include

  main()

  {

  int a;float b,c;

  scanf("%2d%3f%4f",&a,&b,&c);

  printf(" a=%d,b=%Cc=%f ",a,b,c);

  }

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

  A)a=98,b=765,c=4321

  B)a=10,b=432,c=8765

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

  D)a=98,b=765.0,c=4321.0

  (46)C

  知识点:格式输入、输出函数

  评析:scanf()把刚户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,由于“f”是以小数形式输出单、双精度数。隐含输出6位小数,所以b=4321.000000;把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。这时变量fd、b、c的值分别为:98、765.000000、432 1.000000。

  (47)请选出以下程序的输出结果_______。

  #include

  sub(x,y,z)

  int x,y,*z:

  {*z=y-x;}

  main(){

  int a,b,c;

  sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

  printf("%d,%d,%d ",a,b,c);

  }

  A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7

  (47)B

  知识点:函数的调用

  评析:sub()函数的作脂是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&a)中,10和5膈于值传递,直接将数值j0和5分别传递给了变量x和y,而对于a是属于地址传递,也就是a与z指向了蚓一个存储单元,在执行函数后,a的值随*z变化,但b,c值并不改变,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(7,a,&b)后,b的值发生变化,其值为-5-7=-12,住sub(a,b,&c)后,c的值发生变化,其值为-12-(-5)=-7。

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

  A)pb=&x; B)pb=x; C)*pb=&x; D)*pb=*x

  (48)A

  知识点:赋值表达式

  评析:选项A是将变量x的地址赋给指钳‘变量pb,使pb指向x,故为正确的赋值表达式。

  选项B是将x的值当作地址赋给指针pb,pb指¨一个地址等于x值的内存单元。

  选项C足将x的地址赋给指针pb指向的那个地址等于x值的内存单元。

  选项D是不正确的语句。

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

  int *p;

  p=_______malloc(sizeof(int));

  则应填入_______。

  A)int B)ira* C)(*int) D)(int*)

  (49)D

  知识点:强制类型转换

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

  (50)若执行下面程序时从键盘上输入5,

  main()

  {

  int x;

  scanf("%d",&x);

  if(x++>5)printf("%d ",x);

  else printf("%d ",x--);

  }

  则输出是_______。

  A)7 B)6 C)5 D)4

  (50)B

  知识点:if条件的判断

  评析:根据c语言的语法,x+十是在使用x之后,再将x的值加1,在if语句中,x的值为5,条件不成立,执行else后面的语句,因为x的值已经加1,为6,所以打印结果为6。

【计算机二级C语言模拟试题及答案】相关文章:

C语言模拟试题及答案03-28

2015年计算机二级C语言模拟试题及答案03-12

2017年计算机二级模拟试题及答案(C语言)12-06

计算机二级C++模拟试题及答案02-06

计算机二级《C语言》试题及答案201611-21

2024年12月计算机二级C语言模拟试题及答案10-25

2017计算机二级《C语言》操作试题及答案03-24

计算机二级《C语言》操作试题与答案201603-11

2015年计算机二级考试C语言模拟试题(四)附答案03-31