国家二级计算机考试真题

时间:
管理员
分享
标签: 真题 二级

管理员

摘要:

国家二级计算机考试真题(精选12套)  各位考生,这里为大家带来国家二级计算机考试真题。真题可帮助你熟悉考试题型与难度,了解考查重点。利用好这些真题,进行有针对性的复习,为考试做好充分准备。愿你在国家二级计算机考试中发挥出色,取得优异成绩。  国家二级计算机……

国家二级计算机考试真题(精选12套)

  各位考生,这里为大家带来国家二级计算机考试真题。真题可帮助你熟悉考试题型与难度,了解考查重点。利用好这些真题,进行有针对性的复习,为考试做好充分准备。愿你在国家二级计算机考试中发挥出色,取得优异成绩。

  国家二级计算机考试真题 1

  一、选择题

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

  A)程序执行的效率与数据的存储结构密切相关

  B)程序执行的效率只取决于程序的控制结构

  C)程序执行的效率只取决于所处理的数据量

  D)以上说法均错误

  2.下列与队列结构有关联的是( )。

  A)函数的递归调用

  B)数组元素的引用

  C)多重循环的执行;

  D)先到先服务的作业调度

  3.对下列二叉树进行前序遍历的结果是( )。  

  A)DYBEAFCZX

  B)YDEBFZXCA

  C)ABDYECFXZ

  D)ABCDEFXYZ

  4.一个栈的初始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是( )。

  A)1,2,3,A,B,C

  B)C,B,A,1,2,3

  C)C,B,A,3,2,1

  D)1,2,3,C,B,A

  5.下面属于自盒测试方法的是(1)。

  A)等价类划分法

  B)逻辑覆盖

  C)边界值分析法

  D)错误推测法

  6.下面对对象概念描述正确的`是( )。

  A)对象间的通信靠消息传递

  B)对象是名字和方法的封装体

  C)任何对象必须有继承性

  D)对象的多态性是指一个对象有多个操作

  7.软件设计中模块划分应遵循的准则是( )。

  A)低内聚低耦合

  B)高耦合高内聚

  C)高内聚低耦合

  D)以上说法均错误

  国家二级计算机考试真题 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

  国家二级计算机考试真题 3

  1[单选题] 要使标签中的文本靠右显示,应将其Aligment属性设置为

  A.0-LeftJustifyB.1-RightJustifyC.2-CenterD.3

  参考答案:B

  参考解析:0-LeftJustify:文本靠左显示;l-RightJustify:文本靠右显示;2-Center:文本居中显示。

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

  A.评估软件可靠性

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

  C.改正程序中的错误

  D.发现程序中的错误

  参考答案:D

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

  3[单选题] 软件设计中划分模块的一个准则是(  )。

  A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合

  参考答案:B

  参考解析:一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

  4[单选题] 有如下数据定义语句:Dim X,Y As Integer以上语句表明(  )。

  A.x、Y均是整型变量

  B.x是整型变量,Y是变体类型变量

  C.X是变体类型变量,Y是整型变量

  D.x是整型变量,Y是字符型变量

  参考答案:C

  5[单选题] 在软件开发中,需求分析阶段可以使用的工具是(  )。

  A.N—s图B.DFD图C.PAD图D.程序流程图

  参考答案:B

  参考解析:在需求分析阶段可以使用的工具有数据流图(DFD图),数据字典(DD),判定树与判定表,所以选择B。

  6[单选题] 耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。

  A.提高耦合性降低内聚性有利于提高模块的独立性

  B.降低耦合性提高内聚性有利于提高模块的独立性

  C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度

  D.内聚性是指模块间互相连接的紧密程度

  参考答案:B

  参考解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的.联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块问互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。

  7[单选题] 设:a=2,b=8,c=6,d=3,表达式a>bAndNot(C>D.Ord>c的值是

  A.1B.OC.TrueD.False

  参考答案:D

  参考解析:本题中包含的两种运算符的优先级别由高到低依次为:比较运算符、逻辑运算符。其中,逻辑运算符的优先级为:Not(非)→And(与)→Or(或)。And前面表达式的值为False,And后面表达式的值为False,Or后面表达式的值也为False,所以最后输出的也是False。因此,答案为D.。

  参考解析:用Dim可同时定义多个变量,但变量要l分别声明其数据类型,如果不声明数据类型,默认是Variant变I体型变量。l本题中,变量x定义时没声明数据类型,所以为Variant型I变量,变量Y是整型变量。故c选项正确。

  8[单选题] 当文本框中的内容发生改变时所触发的事件是(  )。

  A.KeyUpB.ChangeC.LostFocus D.GotFocus

  参考答案:B

  参考解析:文本框中内容有变化时,触发Change事件。故B选项正确。当在文本框中输人数据,松开键盘时触发它的KeyUp事件;文本框失去焦点触发LostFocus事件:获得焦点。触发Got—1%eus事件0

  9[单选题]下面程序的执行结果是(  )。

  Private Sub Commandl—Click(  )a=0

  k=1Do While k<4

  X=k+kk=k+1

  Prim X;

  LoopEnd Sub

  A.1 4 27B.1 1 1C.1 4 9 D.0 0 0

  参考答案:B

  参考解析:本题主要考查算术运算符中的幂运算,在程序中x的值为k的k次方的a次方,k的值每次循环都加1,但a的值不变总为0,除0以外的任何数的0次方都是l,因此,在k的值变为4之前会输出三个l。

  10[单选题] 设变量X的值是845,则下面语句的输出是

  Printx、100+(xMod100)10+x

  Mod10

  A.17B.548C.845D.485

  参考答案:A

  参考解析:整除运算(、)的结果是商的整数部分。例如,72表示整除,商为3.5,结果取整数部分3,不进行四舍五入。如果参加整除的操作数是浮点数,则先按四舍五人的原则将它们变成整数,然后再执行整除运算。例如,对于8.5、2,先将8.5变成9再进行整除,商为3.5,结果为4。取余运算(MoD.是求两个整数相除后的余数。如果参加取余运算的操作数是浮点数,则先按四舍五人的原则将它们变成整数,然后再执行取余运算。例如,对于8.52.1,先将8.5变成9,2.1变成2,然后9除以2与1,因此取余结果为1。

  算术运算符的优先级:先乘除,后加减;乘方优先于乘除;函数优先于乘方;Mod次于乘除而优先于加减;括号最优先本题中,x100结果为8,(xModl00)10结果为4,xModt0结果为5,所以输出为l7,选项A.正确。

  国家二级计算机考试真题 4

  1.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。

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

  A、10

  B、9

  C、6

  D、5

  先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].

  a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]

  a[9]对应下面数组中的元素为6. 因此a[9]即为6

  2.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )

  A、2

  B、3

  C、4

  D、3 6 9

  二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

  3.对二维数组的正确定义是(C )

  详见教材P149~152,二维数组的定义、初始化

  类型符 数组名 [常量表达式][常量表达式]

  二维数组可以看做是矩阵

  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。

  一维数组初始化时可以省略数组长度

  二维数组初始化时可以省略行数,但不能省略列数

  选项A,B,都省略了列数

  选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中

  A、int a[ ][ ]={1,2,3,4,5,6};

  B、int a[2] []={1,2,3,4,5,6};

  C、int a[ ] [3]={1,2,3,4,5,6};

  D、int a[2,3]={1,2,3,4,5,6};

  4.已知int a[3][4];则对数组元素引用正确的是__C___

  A、a[2][4]

  B、a[1,3]

  C、a[2][0]

  D、a(2)(1)

  5.C语言中函数返回值的类型是由 A 决定的

  A、函数定义时指定的类型

  B、 return语句中的表达式类型

  C、 调用该函数时的实参的数据类型

  D、形参的数据类型

  6. 在C语言中,函数的数据类型是指(A )

  A、 函数返回值的数据类型

  B、 函数形参的数据类型

  C、 调用该函数时的实参的数据类型

  D、任意指定的数据类型

  7.在函数调用时,以下说法正确的是( B )

  A、函数调用后必须带回返回值

  B、实际参数和形式参数可以同名

  C、函数间的数据传递不可以使用全局变量

  D、主调函数和被调函数总是在同一个文件里

  8. 在C语言中,表示静态存储类别的关键字是: ( C )

  A、 auto

  B、 register

  C、static

  D、extern

  9.未指定存储类别的变量,其隐含的存储类别为(A )。

  A、auto

  B、static

  C、extern

  D、register

  10. 若有以下说明语句:

  struct student

  { int num;

  char name[ ];

  float score;

  }stu;

  则下面的叙述不正确的是: (D )

  A、 struct是结构体类型的关键字

  B、 struct student 是用户定义的结构体类型

  C、 num, score都是结构体成员名

  D、 stu是用户定义的结构体类型名

  11.若有以下说明语句:

  struct date

  { int year;

  int month;

  int day;

  }brithday;

  则下面的叙述不正确的是__C___.

  A、 struct是声明结构体类型时用的关键字

  B、 struct date 是用户定义的结构体类型名

  C、 brithday是用户定义的结构体类型名

  D、year,day 都是结构体成员名

  12. 以下对结构变量stul中成员age的非法引用是 B

  struct student

  { int age;

  int num;

  }stu1,*p;

  p=&stu1;

  A、 stu1.age

  B、 student.age

  C、 p->age

  D、(*p).age

  13.设有如下定义:

  struck sk

  { int a;

  float b;

  }data;

  int *p;

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

  A、 p=&a;

  B、 p=datA、a;

  C、p=&datA、a;

  D、*p=datA、a;

  14.设有以下说明语句:

  typedef struct stu

  { int a;

  float b;

  } stutype;

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

  A、struct是结构类型的关键字

  B、struct stu是用户定义的结构类型

  C、a和b都是结构成员名

  D、stutype是用户定义的结构体变量名

  15.语句int *p;说明了 C 。

  A、p是指向一维数组的指针

  B、p是指向函数的指针,该函数返回一int型数据

  C、p是指向int型数据的指针

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

  16、以下语句的输出结果是( D)。

  int a=-1,b=4,k;

  k=(+ +a<0)&&!(b - -<=0);

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

  A. 1,0,4

  B. 1,0,3

  C. 0,0,3

  D. 0,0,4

  17、下列程序的输出结果是(D )。

  char *p1="abcd", *p2="ABCD", str[50]="xyz";

  strcpy(str+2,strcat(p1+2,p2+1));

  printf("%s",str);

  A. xyabcAB

  B. abcABz

  C. ABabcz

  D. xycdBCD

  18、执行下面的程序后,a的值是(B )。

  #define SQR(X) X*X

  main( )

  { int a=10,k=2,m=1;

  a/=SQR(k+m)/SQR(k+m);

  printf("%d",a); }

  A. 10

  B. 1

  C. 9

  D. 0

  19、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( B)。

  A.P+i*2

  B. P+(i-1)*2

  C. P+(i-1)

  D. P+i

  20、下列程序执行后输出的结果是( A)。

  int d=1;

  fun (int p)

  { int d=5;

  d + =p + +;

  printf("%d,",d); }

  main( )

  { int a=3;

  fun(a);

  d + = a + +;

  printf("%d",d); }

  A. 8, 4

  B. 9, 6

  C. 9, 4

  D. 8, 5

  21、表达式:10!=9的值是(D )。

  A. true

  B. 非零值

  C. 0

  D. 1

  22、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( B)。

  A. i= *p;

  B. *p=*&j;

  C. i=&j;

  D. i=* *p;

  23、不能把字符串:Hello!赋给数组b的语句是( B)。

  A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};

  B. char b[10]; b="Hello!";

  C. char b[10]; strcpy(b,"Hello!");

  D.char b[10]="Hello!";

  24、在C程序中有如下语句:char *func(int x,int y); 它是(C )。

  A. 对函数func的定义。

  B. 对函数func的调用。

  C.对函数func的原型说明。

  D. 不合法的。

  25、以下程序的输出结果是( D)。

  char str[15]=”hello!”;

  printf(“%d”,strlen(str));

  A. 15

  B. 14

  C. 7

  D. 6

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

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

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

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

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

  参考答案:B

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

  27[单选题] 以下关于C语言数据类型使用的叙述中错误的是( )。

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

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

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

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

  参考答案:C

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

  28[单选题] 下面选项中关于编译预处理的叙述正确的是

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

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

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

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

  参考答案:B

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

  29[单选题] 有以下程序

  程序的输出结果是

  A.0B.1C.9D.10

  参考答案:B

  参考解析:本题考查宏定义,宏定义只是做个简单的替换。执行SQR(k+m)/SQR(k+m)=k+m*k+m/k+m}k+m=15/2,a/=SQR(k+m)/SQR(k+1TI)的结果为1,选项B正确。

  30[单选题] 设--X树共有150个结点,其中度为l的结点有l0个,则该---X树中的叶子结点数为( )。

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

  参考答案:D

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

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

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

  A.2.3B.1,3C.1,4D.1,2

  参考答案:B

  参考解析:在f(int+P,int 4 q)函数中,执行P=P+1是将P所对应的地址加1,而0 q=+q+1是将q所指向的n的地址所对应的值加1,所以m的得知所对应的值没有变,而n的值则为3了。因此B选项正确。

  32[单选题] 以下选项中,能用作用户标识符的是( )。

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

  参考答案:A

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

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

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

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

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

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

  参考答案:A

  参考解析:

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

  国家二级计算机考试真题 5

  1.在待排序的元素序列基本有序的前提下,效率最高的排序方法是(C)

  A)冒泡排序

  B)选择排序

  C)快速排序

  D)归并排序

  2.非空的循环单链表head的尾结点(由p所指向),满足(A)

  A)p->next==NULL

  B)p==NULL

  C)p->next=head

  D)p=head

  3.线性表的顺序存储结构和线性表的链式存储结构分别是(C)

  A)顺序存取的存储结构、顺序存取的存储结构

  B)随机存取的存储结构、顺序存取的存储结构

  C)随机存取的存储结构、随机存取的存储结构

  D)任意存取的'存储结构、任意存取的存储结构

  4.结构化程序设计所规定的三种基本控制结构是(D)

  A)输入、处理、输出

  B)树形、网形、环形

  C)顺序、选择、循环

  D)主程序、子程序、函数

  5.下列不属于软件调试技术的是(D)

  A)强行排错法

  B)集成测试法

  C)回溯法

  D)原因排除法

  6.软件生命周期中花费时间最多的阶段是(B)

  A)详细设计

  B)软件编码

  C)软件测试

  D)软件维护

  7.软件设计中,有利于提高模块独立性的一个准则是(A)

  A)低内聚低耦合

  B)低内聚高耦合

  C)高内聚低耦合

  D)高内聚高耦合

  8.数据库的故障恢复一般是由(D)

  A)数据流图完成的

  B)数据字典完成的

  C)DBA完成的

  D)PAD图完成的

  9.下列关系运算的叙述中,正确的是(B)

  A)投影、选择、连接是从二维表行的方向进行的运算

  B)并、交、差是从二维表的列的方向来进行运算

  C)投影、选择、连接是从二维表列的方向进行的运算

  D)以上3种说法都不对

  10.在关系数据库中,对一个关系做投影操作后,新关系的元组个数将(A)

  A)等于原来关系中的元组个数

  B)大于原来关系中的元组个数

  C)小于原来关系中的元组个数

  D)不能确定元组个数

  11.以下不具有Picture属性的对象是(B)

  A)窗体

  B)图片框

  C)图像框

  D)文本框

  12.双击窗体中的对象后,Visual Basic将显示的窗口是(D)

  A)项目(工程)窗口

  B)工具箱

  C)代码窗口

  D)属性窗口

  13.若要将窗体从内存中卸载,其实现的方法是(A)

  A)Show

  B)UnLoad

  C)Load

  D)Hide

  14.要使目录列表框(名称为Dirl)中的目录随着驱动器列表框(名称为Drivel)中所选

  择的当前驱动器的不同而同时发生变化,则应:(A)

  A)在Dirl中的Change事件中,书写语句 Dirl.Drive=Drivel.Drive

  B)在Dirl中的Change事件中,书写语句 Dirl.Path=Drivel.Drive

  C)在Drivel中的Change事件中,书写语句 Dirl.Path=Drivel.Drive

  D)在Drivel中的Change事件中,书写语句 Dirl.Drive=Drivel.Drive

  15.设有如下声明:

  Dim x As Integer

  如果Sgn(x)的值为-1,则表示x的值是(A)

  A)整数

  B)大于0的整数

  C)等于0的整数

  D)小于0的数

  国家二级计算机考试真题 6

  1.假设某台式计算机的内存储器容量为256MB,硬盘容量为20GB。硬盘的容量是内存容量的( )。

  A)40倍

  B)60倍

  C)80倍

  D)100倍

  2.一个字长为8位的无符号二进制整数能表示的十进制数值范围是( )。

  A)0~256

  B)0~255

  C)1~256

  D)1~255

  3.已知三个字符为:a、X和5,按它们的ASCII码值升序排序,结果是( )。

  A)5,a,X

  B)a,5,X

  C)X,a,5

  D)5,X,a

  4.已知一汉字的国标码是5E38,其内码应是( )。

  A)DEB8

  B)DE38

  C)5EB8

  D)7E58

  5.已知三个字符为:a、Z和8,按它们的ASCII码值升序排序,结果是( )。

  A)8、a、Z

  B)a、8、Z

  C)a、Z、8

  D)8、Z、a

  6.计算机技术中,下列度量存储器容量的单位中,最大的单位是( )。

  A)KB

  B)MB

  C)Byte

  D)GB

  7.下列编码中,正确的汉字机内码是( )。

  A)6EF6H

  B)FB6FH

  C)A3A3H

  D)C97CH

  8.无符号二进制整数1000110转换成十进制数是( )。

  A)68

  B)70

  C)72

  D)74

  9.根据汉字国标GB2312-80的规定,1KB的存储容量能存储的汉字内码的个数是( )。

  A)128

  B)256

  C)512

  D)1024

  10.十进制数111转换成无符号二进制整数是( )。

  A)01100101

  B)01101001

  C)01100111

  D)01101111

  11.字长为6位的无符号二进制整数最大能表示的十进制整数是( )。

  A)64

  B)63

  C)32

  D)31

  12.根据国标GB2312-80的规定,总计有各类符号和一、二级汉字编码( )。

  A)7145个

  B)7445个

  C)3008个

  D)3755个

  13.二进制数1001001转换成十进制数是( )。

  A)72

  B)71

  C)75

  D)73

  14.十进制数90转换成无符号二进制数是( )。

  A)1011010

  B)1101010

  C)1011110

  D)1011100

  15.标准ASCII码用7位二进制位表示一个字符的编码,其不同的编码共有( )。

  A)127个

  B)128个

  C)256个

  D)254个

  16.已知英文字母m的ASCII码值为109,那么英文字母p的ASCII码值是( )。

  A)112

  B)113

  C)111

  D)114

  17.在数制的转换中,正确的叙述是( )。

  A)对于相同的十进制整数(>1),其转换结果的位数的变化趋势随着基数R的增大而减少

  B)对于相同的十进制整数(>1),其转换结果的位数的变化趋势随着基数R的增大而增加

  C)不同数制的数字符是各不相同的,没有一个数字符是一样的

  D)对于同一个整数值的二进制数表示的位数一定大于十进制数字的位数

  18.下列叙述中,正确的`是( )。

  A)一个字符的标准ASCII码占一个字节的存储量,其最高位二进制总为0

  B)大写英文字母的ASCII码值大于小写英文字母的ASCII码值

  C)同一个英文字母(如字母A)的ASCII码和它在汉字系统下的全角内码是相同的

  D)标准ASCII码表的每一个ASCII码都能在屏幕上显示成一个相应的字符

  19.无符号二进制整数111111转换成十进制数是( )。

  A)71

  B)65

  C)63

  D)62

  20.十进制数100转换成无符号二进制整数是( )。

  A)0110101

  B)01101000

  C)01100100

  D)01100110

  21.当前流行的Pentium 4 CPU的字长是( )。

  A)8bit

  B)16bit

  C)32bit

  D)64bit

  22.按照数的进位制概念,下列各个数中正确的八进制数是( )。

  A)1101

  B)7081

  C)1109

  D)B03A

  23.全拼或简拼汉字输入法的编码属于( )。

  A)音码

  B)形声码

  C)区位码

  D)形码

  24.已知汉字"中"的区位码是5448,则其国标码是( )。

  A)7468D

  B)3630H

  C)6862H

  D)5650H

  25.一个汉字的内码与它的国标码之间的差是( )。

  A)2020H

  B)4040H

  C)8080H

  D)A0A0H

  26.1KB的准确数值是( )。

  A)1024Bytes

  B)1000Bytes

  C)1024bits

  D)1000bits

  27.十进制数55转换成无符号二进制数等于( )。

  A)111111

  B)110111

  C)111001

  D)111011

  28.二进制数110001转换成十进制数是( )。

  A)47

  B)48

  C)49

  D)51

  29.假设某台式计算机内存储器的容量为1KB,其最后一个字节的地址是( )。

  A)1023H

  B)1024H

  C)0400H

  D)03FFH

  30.已知英文字母m的ASCII码值为6DH,那么字母q的ASCII码值是( )。

  A)70H

  B)71H

  C)72H

  D)6FH

  计算机二级必考选择题答案

  1.C

  2.B

  3.D

  4.A

  5.D

  6.D

  7.C

  8.B

  9.C

  10.A

  11.B

  12.B

  13.D

  14.A

  15.B

  16.A

  17.A

  18.A

  19.C

  20.C

  21.C

  22.A

  23.A

  24.D

  25.C

  26.A

  27.B

  28.C

  29.B

  30.B

  国家二级计算机考试真题 7

  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选项。

  国家二级计算机考试真题 8

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

  A. 循环队列是队列的一种链式存储结构

  B. 循环队列是一种逻辑结构

  C. 循环队列是队列的一种顺序存储结构

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

  【答案】C

  【解析】线性表常用存储结构为:①顺序存储结构,物理上连续存储,空间位置隐含逻辑位置,②链式存储结构,存储上不连续,通过指针相连。循环队列是指用一段地址连续的存储单元存储数据元素,定义两个游标:指向队头的游标(front)、指向队尾的游标(rear)。

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

  A. 栈是一种先进先出的线性表

  B. 队列是一种后进先出的线性表

  C. 栈与队列都是非线性结构

  D. 以上三种说法都不对

  【答案】D

  【解析】栈和队列都是操作受限的线性表:栈只能在栈顶插入和删除元素,按照先进后出的原则组织数据;队列只能在队头删除元素,在队尾插入元素,按照先进先出的原则组织数据。对于每一个节点都有一个前件和一个后件,属于线性结构。

  3. 一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为( )。

  A. 16

  B. 10

  C. 6

  D. 4

  【答案】A

  【解析】二叉树中,度为0的结点(即叶子结点)比度为二的结点多1个,而度为0、1、2的结点相加等于总结点数25,所以度为1的结点数为25-5-(5-1)=16。

  4. 在下列模式中,能够给出数据库物理存储结构与物理存取方法的.是( )。

  A. 外模式

  B. 内模式

  C. 概念模式

  D. 逻辑模式

  【答案】B

  【解析】数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。答案选择B选项。

  5. 在满足实体完整性约束的条件下( )。

  A. 一个关系中应该有一个或多个候选关键字

  B. 一个关系中只能有一个候选关键字

  C. 一个关系中必须有多个候选关键字

  D. 一个关系中可以没有候选关键字

  【答案】A

  【解析】在关系R中如记录完全函数依赖于属性(组)X,则称X为关系R中的一个候选关键字。候选关键字的性质有①在一个关系中,候选关键字可以有多个,②任何两条记录候选关键字值都是不相同的;③关键字由一个属性构成,也可能由多个属性构成;④在任何关系中至少有一个关键字。所以,在满足实体完整性约束的条件下,一个关系中应该有一个或多个候选关键字。答案选择A选项。

  6. 一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。

  A. 123456ABCDE

  B. EDCBA54321

  C. ABCDE12345

  D. 54321EDCBA

  【答案】B

  【解析】栈是按照“先进后出”的原则组织数据的,入栈的顺序为12345ABCDE,则依次出栈的顺序应为其逆序,即EDCBA54321。答案选择B选项。

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

  A. 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

  B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

  C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

  D. 循环队列中元素的个数是由队头指针和队尾指针共同决定

  【答案】D

  【解析】D项正确,从队头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。A项错误,循环队列是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环形空间,其存储结构依然是顺序的BC两项错误,在循环队列中,每进行一次入队运算,队尾指针就进一,每进行一次出队运算,队头指针就进一,可见由队头指针和队尾指针一起反映队列中元素的动态变化情况。

  8. 在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。

  A. 0(n)

  B. O(n2)

  C. O (log2n)

  D. O(nlog2n)

  【答案】C

  【解析】二分查找的最坏情况是不断的二分直至无法再分时,仍然没有查找成功。对于有序的线性表,二分查找法只需比较log2n次。答案选择C选项。

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

  A. 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

  B. 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

  C. 顺序存储结构能存储有序表,链式存储结构不能存储有序表

  D. 链式存储结构比顺序存储结构节省存储空间

  【答案】A

  【解析】A项正确,在顺序存储结构中所有元素所占的存储空间是连续的,而在链式存储结构中,存储数据结构的存储空间可以不连续。

  10. 数据流图中带有箭头的线段表示的是( )。

  A. 控制流

  B. 事件驱动

  C. 模块调用

  D. 数据流

  【答案】D

  【解析】数据流图基本符号的含义:①矩形表示数据的外部实体,②圆角的矩形表示变换数据的处理逻辑;③缺少右半边的矩形表示数据的存储;④箭头表示数据流。答案选择D选项。

  国家二级计算机考试真题 9

  1[单选题] 若查询的设计如下,则查询的功能是(  )。

  A.设计尚未完成,无法进行统计

  B.统计班级信息仅含Null(空)值的记录个数

  C.统计班级信息不包括Null(空)值的记录个数

  D.统计班级信息包括Null(空)值全部记录个数

  参考答案:C

  参考解析:从图中可以看出要统计的字段是“学生表”中的“班级”字段,采用的统计函数是计数函数,目的是对班级(不为空)进行计数统计。所以选项C正确。

  2[单选题] 在SQL语言的SELECT语句中,用于指明检索结果排序的子句是( )。

  A.FROMB.WHILEC.GROUP BY D.ORDER BY

  参考答案:D

  参考解析:SQL查询的SeleCt语句是功能最强,也是最为复杂的SQL语句。SELECT语句的.结构是:SELECT[ALL I DISTINCT]别名FROM表名[WHERE查询条件][GROUP BY要分组的别名[HAVING分组条件]][ORDER BY要排序的别名[ASC I DSC]]所以选项D正确。

  3[单选题] 要使窗体上的按钮运行时不可见,需要设置的属性是( )。

  A.EnableB.VisibleC.Default D.Caned

  参考答案:B

  参考解析:控件的Enable属性是设置控件是否可用;Visible属性是设置控件是否可见;Default属性指定某个命令按钮是否为窗体的默认按钮;CanCel属性可以指定窗体上的命令按钮是否为“取消”按钮。所以答案为B。

  4[单选题] 有三个关系R、s和T如下:

  

  则由关系R和s得到关系T的操作是( )。

  A.自然连接B.交C.投影D.并

  参考答案:A

  参考解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和s做的是自然连接操作。

  5[单选题] 在窗体中添加一个名称为Commandl的命令按钮.然后编写如下事件代码.

  窗体打开运行后,单击命令按钮,则消息框的输出结果是(  )。

  A.2B.4C.6D.8

  参考答案:C

  参考解析:题目中命令按钮的单击事件是使用Msg-Box显示过程f的值。在过程f中有两层D0循环,传人参数m=24,n=18,由于m>n所以执行in=in-n=24-18=6,内层第l个D0循环结束后Ill=6,n=18;此时In小于n,所以再执行n…n inl8—6=12,此时nl=6,n=12;再执行n=tl-ill后In=n=6;nl<>n条件满足,退出循环,然后执行f=m的赋值语句,即为f=m=6。

  6[单选题]对于循环队列,下列叙述中正确的是( )。

  A.队头指针是固定不变的

  B.队头指针一定大于队尾指针

  C.队头指针一定小于队尾指针

  D.队头指针可以大于队尾指针,也可以小于队尾指针

  参考答案:D

  参考解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针。

  7[单选题] 函数MsgBox返回值的类型是

  A.数值B.字符串C.变体D.是/否

  参考答案:A

  8[单选题] 在黑盒测试方法中,设计测试用例的主要根据是( )。

  A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图

  参考答案:B

  参考解析:黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明,所以本题选择B。

  9[单选题]下列关于栈叙述正确的是( )。

  A.栈顶元素最先能被删除

  B.栈顶元素最后才能被删除

  C.栈底元素永远不能被删除

  D.栈底元素最先被删除

  参考答案:A

  参考解析:栈是先进后出的数据结构,所以栈顶元素最后人栈却最先被删除。栈底元素最先人栈却最后被删除。所以选择A。

  10[单选题] 在Access中,参照完整性规则不包括( )。

  A.查询规则B.更新规则C.删除规则D.插入规则

  参考答案:A

  参考解析:表问的参照完整性规则包括更新规则、删除规则、插入规则。故选项A为正确答案。

  国家二级计算机考试真题 10

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

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

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

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

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

  【答案】D

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

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

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

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

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

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

  【答案】A

  【解析】A项错误,注释语句不会被翻译成二进制的机器指令。C源程序经过C编译程序编译之后生成后缀为的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把文件与各种库函数连接起来生成一个后缀为的可执行文件。答案选择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项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。

  答案选择D选项。

  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选项。

  国家二级计算机考试真题 11

  1[简答题]本题中,在下画线上填写代码,指定变量b为字节型,变量f为单精度实型,变量l为64位整型。

  public class javal{public static void main(String[-]args){b=49;f=8.9f;l=0xfedl;

  System.out.println(""b=""+b);

  System.out.println(""f=""+f):

  System.OUt.println(""l=""+1);}}

  参考解析:

  第1处:byte

  第2处:float

  第3处:long

  【解析】本题考查的是数据类型。byte为字节型;float为单精度实型;long为长整型。

  2[单选题] 请阅读下面程序

  

  程序运行结果中在”length=”后输出的值是(  )。

  A.10B.4C.20D.30

  参考答案:B

  参考解析:本题对StringBuffer(String str)构造方法,用str给出字符串的初始值,并分配16个字符的缓存。因此,字符串sb的初始值是”test”,并且包含l6个字符的缓存。length(  )方法用来获得字符串长度,不包含缓存。故程序运行结果中在”length-”后输出的值应该是字符串sb的长度,即4。

  3[单选题] 为使下列代码正常运行,应该在下画线处填入的选项是(  )。

  ObjectInputStream In=new (new FilelnputStream(""employee.doc""));

  Employee[]newstaff=(Employee[])in.readObject( );

  In.close( );

  A.Reader B.InputStreamC.ObjectlnputD.ObjectlnputStream

  参考答案:D

  参考解析:ObjectlnputStream类和ObjectOutputStream类分列是InputStream类和OutputStream类的子类。ObjectlnputStream类和ObjectOutputStream类创建的对象被称为对象输入流和对象输出流。对象输入流使用readObject( )方法读取一个对象到程序中。

  4[单选题] 为使下列代码正常运行,应该在下画线处填入的选项是(  )。

  abstract class person{public Person(String n){name=n:}

  Public String getDescription( );

  public String getName( ){return name;}

  private string name;}

  A.static B.privateC.abstractD.final

  参考答案:C

  参考解析:抽象类中的抽象方法可以只声明,定义延迟到其子类。

  5[单选题] Java对文件类提供了许多操作方法,能获得文件对象父路径名的方法是(  )。

  A.getAbsolutePath(  )

  B.getParentFile(  )

  C.getAbsoluteFile(  )

  D.getName(  )

  参考答案:B

  参考解析:本题考查File类的基本知识。File类是通过文件名列表来描述一个文件对象的属性,通过File类提供的方法,可以获得文件的名称、长度、所有路径等信息,还可以改变文件的名称、删除文件等。

  6[单选题] 下列关于域名和IP地址的叙述中,不正确的是(  )。

  A.在Internet中访问一台主机必须使用它的主机名

  B.200.201.202.203是一个C类I P地址

  C.I P地址采用的是分层结构

  D.主机名与I P地址是一一对应的

  参考答案:A

  参考解析:每台直接连接到Internet上的计算机、路由器都必须有唯一的IP地址。IP地址是Internet赖以工作的基础。Internet中的计算机与路由器的IP地址采用分层结构,它是由网络地址与主机地址两部分组成。对于C类地址,其网络地址空间长度为21位,主机地址空间长度为8位,C类I P地址范围从:l92.0.0.0~223.255.255.255。主机名与它的IP地址一一对应,因此在Internet上访问一台主机既可以使用它的主机名,也可以使用它的I P地址。

  7[单选题] 下列关于链式存储结构的叙述中,不正确的是(  )。

  A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构

  B.逻辑上相邻的结点物理上不必相邻

  C.可以通过计算确定第i个结点的存储地址

  D.插人、删除运算操作方便,不必移动结点

  参考答案:C

  参考解析:链式存储结构的主要特点有:①结点中除自身信息外,还有表示链接信息的指针域,因此存储密度小、存储空间利用率低;②逻辑上相邻的结点物理上不必相邻;③插入、删除操作灵活方便。线性存储结构可以通过计算确定第i个结点的存储地址,但链式存储结构不能。

  8[填空题]FileInputStream是字节流;BufferedWriter是字符流;ObjectOutputStream是   。

  参考解析:对象流或对象输出流

  9[单选题] 下列叙述中,错误的是(  )。

  A.Applet的默认布局管理器是FlowLayout

  B.JApplet中增加构件是加到JApplet的内容面板上,不是直接加到JApplet中

  C.JApplet的.内容面板的默认布局管理器是Border-Layout

  D.JApplet的内容面板的默认布局管理器是FlowLayout

  参考答案:D

  参考解析:FlowLayout布局管理器是Panel类和Applet类默认的布局管理器。向JApplet中增加构件,是把构件添加到Japplet的内容面板中,而不是直接添加到JAp—plet中。JApplet的内容面板的默认布局管理器是Border—Layout,而Applet默认的布局管理器是FlowLayout。

  10[单选题] 软件设计中模块划分应遵循的准则是(  )。

  A.低内聚低耦合

  B.高内聚低耦合

  C.低内聚高耦合

  D.高内聚高耦合

  参考答案:B

  参考解析:耦合性和内聚性是模块独立性的两个定性标准,软件设计应该遵循高内聚低耦合的准则。

  国家二级计算机考试真题 12

  1.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。

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

  A、10

  B、9

  C、6

  D、5

  先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].

  a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]

  a[9]对应下面数组中的元素为6. 因此a[9]即为6

  2.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )

  A、2

  B、3

  C、4

  D、无确定值

  5 7

  D、3 6 9

  二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

  3.对二维数组的正确定义是(C )

  详见教材P149~152,二维数组的定义、初始化

  类型符 数组名 [常量表达式][常量表达式]

  二维数组可以看做是矩阵

  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。

  一维数组初始化时可以省略数组长度

  二维数组初始化时可以省略行数,但不能省略列数

  选项A,B,都省略了列数

  选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中

  A、int a[ ][ ]={1,2,3,4,5,6};

  B、int a[2] []={1,2,3,4,5,6};

  C、int a[ ] [3]={1,2,3,4,5,6};

  D、int a[2,3]={1,2,3,4,5,6};

  4.已知int a[3][4];则对数组元素引用正确的是__C___

  A、a[2][4]

  B、a[1,3]

  C、a[2][0]

  D、a(2)(1)

  详见教材P150,数组元素的引用

  数组名[下标] [下标]

  引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

  第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。

  本题图示详见P149图6.7

  因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;

  选项A,列逻辑地址下标超过范围

  选项B,D,的引用形式不正确。

  5.C语言中函数返回值的类型是由 A 决定的

  A、函数定义时指定的类型

  B、 return语句中的表达式类型

  C、 调用该函数时的实参的数据类型

  D、形参的数据类型

  6. 在C语言中,函数的数据类型是指(A )

  A、 函数返回值的数据类型

  B、 函数形参的数据类型

  C、 调用该函数时的实参的数据类型

  D、任意指定的数据类型

  7.在函数调用时,以下说法正确的是( B )

  A、函数调用后必须带回返回值

  B、实际参数和形式参数可以同名

  C、函数间的数据传递不可以使用全局变量

  D、主调函数和被调函数总是在同一个文件里

  8. 在C语言中,表示静态存储类别的关键字是: ( C )

  A、 auto

  B、 register

  C、static

  D、extern

  9.未指定存储类别的变量,其隐含的存储类别为(A )。

  A、auto

  B、static

  C、extern

  D、register

  10. 若有以下说明语句:

  struct student

  { int num;

  char name[ ];

  float score;

  }stu;

  则下面的叙述不正确的是: (D )

  A、 struct是结构体类型的关键字

  B、 struct student 是用户定义的结构体类型

  C、 num, score都是结构体成员名

  D、 stu是用户定义的结构体类型名

  11.若有以下说明语句:

  struct date

  { int year;

  int month;

  int day;

  }brithday;

  则下面的'叙述不正确的是__C___.

  A、 struct是声明结构体类型时用的关键字

  B、 struct date 是用户定义的结构体类型名

  C、 brithday是用户定义的结构体类型名

  D、year,day 都是结构体成员名

  12. 以下对结构变量stul中成员age的非法引用是 B

  struct student

  { int age;

  int num;

  }stu1,*p;

  p=&stu1;

  A、 stu1.age

  B、 student.age

  C、 p->age

  D、(*p).age

  13.设有如下定义:

  struck sk

  { int a;

  float b;

  }data;

  int *p;

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

  A、 p=&a;

  B、 p=datA、a;

  C、p=&datA、a;

  D、*p=datA、a;

  14.设有以下说明语句:

  typedef struct stu

  { int a;

  float b;

  } stutype;

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

  A、struct是结构类型的关键字

  B、struct stu是用户定义的结构类型

  C、a和b都是结构成员名

  D、stutype是用户定义的结构体变量名

  15.语句int *p;说明了 C 。

  A、p是指向一维数组的指针

  B、p是指向函数的指针,该函数返回一int型数据

  C、p是指向int型数据的指针

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

  16.C语言中,关系表达式和逻辑表达式的值是( B ) 。

  A、0

  B、 0或1

  C、 1

  D、‘T’或’F’

  17. 下面( D )表达式的值为4.

  A、 11/3

  B、 11.0/3

  C、 (float)11/3

  D、 (int)(11.0/3+0.5)

  【解析】(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。

  (2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。

  选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.

  选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666

  选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同

  选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4

  18.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B )

  A、b=1.0/a

  B、b=(float)(1/A、

  C、b=1/(float)a

  D、b=1/(a*1.0)

  19. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)

  A、1

  B、4

  C、4.333333

  D、4.6

  【解析】“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为1

  20. 以下对一维数组a的正确说明是: D

  A、char a(10);

  B、 int a[];

  C、int k=5,a[k];

  D、char a[3]={‘a’,’b’,’c’};

  【解析】详见教材P143~144,一维数组的定义、初始化

  类型符 数组名 [常量表达式]

  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。

  选项A,常量表达式只能放在中括号 [ ]中

  选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。

  选项C,常量表达式不能为变量。

  21.以下能对一维数组a进行初始化的语句是:( C )

  A、int a[5]=(0,1,2,3,4,)

  B、 inta(5)={}

  C、 int a[3]={0,1,2}

  D、 int a{5}={10*1}

  【解析】详见教材P145,一维数组的定义、初始化

  选项B,D,常量表达式只能放在中括号 [ ]中

  选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了( ).

  22.在C语言中对一维整型数组的正确定义为 D 。

  A、int a(10);

  B、int n=10,a[n];

  C、int n;a[n];

  D、#define N 10

  23、已知:int a[10]; 则对a数组元素的正确引用是( D )。

  A、a[10]

  B、a[3.5]

  C、a(5)

  D、a[0]

  【解析】详见教材P144,数组元素的引用

  数组名[下标]

  引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

  int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素; a[1] 表示组中第2个元素; a[2] 表示组中第3个元素; ......;a[9] 表示组中第10个元素.

  选项A,超过了数组a的逻辑地址下标范围;

  选项B,逻辑地址下标只能为整数

  选项C,逻辑地址下标只能放在[ ]中

  24.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。

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

  A、10

  B、9

  C、6

  D、5

  【解析】先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].

  a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]

  a[9]对应下面数组中的元素为6. 因此a[9]即为6

  25.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )

  A、2

  B、3

  C、4

  D、无确定值

  【解析】二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

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

  A、函数

  B、过程

  C、子程序

  D、子例程

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

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

  B、 程序中第一个函数

  C、 程序中的main函数

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

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

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

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

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

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

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

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

  B、 C语言不区分大小写。

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

  D、C程序从main函数开始执行

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

  A、-a1

  B、a[i]

  C、a2_i

  D、int t

  5~8题为相同类型题

  考点:标识符的命名规则

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

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

  关键字不能作为标识符

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

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

  A、3ax

  B、x

  C、case

  D、-e2 E)union

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

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

  A、 %x

  B、a+b

  C、a123

  D、123

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

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

  A、print _3d db8 aBc

  B、Iam one_half start$it 3pai

  C、str_1 Cpp pow while

  D、Pxq My->book line# His.age

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

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

  A、整型、实型、逻辑型

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

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

  D、整型、实型、字符型

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

  A、2.5

  B、2

  C、1

  D、3

  %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

  /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2