22计算机二级测试试题(网友回忆版)含答案

以下程序输出结果是 include main ( ){int i=0,a=0; while ( i<2 0 ){for(;;){if ((i

以下程序输出结果是 #include <stdio.h> main ( ) { int i=0,a=0; while ( i<2 0 ) { for(;;) { if ((i%10) ==0) break; else i--; } i+=11; a+=i; } print f ( "%d\n" , a); }

A.21

B.32

C.33

D.11


正确答案:B
解析:break语句只能在循环体和switch语句体内使用。本题程序为在while循环中嵌套for循环。先看内层for循环,该循环的3个表达式全部省略,循环条件始终为真,但循环体内的break语句为终止循环的条件。首先,由初始条件判断外层循坏while括号内表达式的值,该值为真,执行本次while循环,即执行循环体内的订语句,判断该表达式后面括号里表达式的值为真,执行break语句,跳出内层循环,执行下面的语句,此时i和a的值均变为11;回到外层循环,判断表达式“i20”仍为真,执行内层循环语句,此时if条件不满足,执行else语句,i的值为10,继续内层循环,if语句条件满足,执行break语句,跳出内层循环,执行下面的语句后,i和a的值分别是21和32。再判断外层循环的条件为假,结束循环.所以,4个选项中B为所选。

如果A为整数且,|A|>=10,则打印“OK”,否则打印“Error”,表示这个条件的单行格式If语句是( )。

A.If Int(A)=A And Sqr(A)>=10 Then Print"OK"Else Print "Error"

B.If Fix(A)=a And Abs(A)>=-10 Then Print"OK"Else Print "Error"

C.If Int(A)=A And(A>=10,A<-10) Then Print"OK"Else Print "Error"

D.If Fix(A)=A And A>=10,And A<=-10 Then Print"OK" Else Print "Error"


正确答案:B
解析:解答本题考生需了解题中用到的3个函数的作用,Int和Fix都会删除参数的小数部分而返回剩下的整数。Abs函数返回参数的绝对值,其类型和参数相同。而Int和Fix的不同之处在于,如果参数为负数,则Int返回小于或等于参数的第一个负整数,而Fix则会返回大于或等于参数的第一个负整数。

public class X {  public static void main(String [] args) {  try {  badMethod();  System.out.print(“A”);  }  catch (Exception ex) {  System.out.print(“C”);  }  finally {  System.out.print(“B”);  }  System.out.print(“D”);  }  public static void badMethod() {  throw new Error();  }  }  What is the result?()  

  • A、 ABCD
  • B、 Compilation fails.
  • C、 C is printed before exiting with an error message.
  • D、 BC is printed before exiting with an error message.
  • E、 BCD is printed before exiting with an error message.

正确答案:B

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为: number=1 number=10 number=100 注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在//******error******的下面。 试题程序: include<iostream.h> classTC { public: TC(inti) { number=i; } voidSetNumber(intm) { number=m; } intGetNumberconst { returnnumber; } voidPrintconst { cout<<"number="<<number<<endl; } private: intnumber; }; voidmain { //********error******** TCobjl; objl.Print; TCobj2(3); //********error******** objl.number=10; //********error*‰****** TC.SetNumber(100); objl.Print; obj2.Print; }


正确答案:
(1)应改为“TCobjl(1);”。
(2)应改为“0bj1.SetNumber(10);”。
(3)应改为“0bj2.SelNumber(100);”。
【解析】本题第1处的“TCobjl;”语句是声明TC类的对象0bj1,根据TC类构造函数的定义TC(inti),存在整型参数,并且题目要求第一个输出结果两1,所以补全参数1,即第1处的“TCobjl(1);”。第2处处的“objl.number=10;”应该是调用成员函数SetNumber赋值。在C++中成员函数的使用形式应该是:对象名.成员函数,所以修改为“obj1.SetNumber(10);”。类是对象的抽象,而对象是类的具体实例。第3处“TC.SetNumber(100);”语句中的TC为类,并不是对象,这里应该使用定义的对象,即obj2,所以将语句修改为“obj2.SetNumber(100);”。

单选题
public class X {  public static void main(String [] args) {  try {  badMethod();  System.out.print(“A”);  }  catch (Exception ex) {  System.out.print(“C”);  }  finally {  System.out.print(“B”);  }  System.out.print(“D”);  }  public static void badMethod() {  throw new Error();  }  }  What is the result?()
A

 ABCD

B

 Compilation fails.

C

 C is printed before exiting with an error message.

D

 BC is printed before exiting with an error message.

E

 BCD is printed before exiting with an error message.


正确答案: E
解析: The correct answer is : B is printed and then an error message is printed. The exception catch can not catch an Error because this class does not extend Exception but it implements throwable. 

下列语句输出结果为 。public class A{public static void main(String[]args){byte b=0xa;System.out.println(b);}}()

A.0xa

B.a

C.1

D.10


参考答案:D

执行下列语句后,输出结果是______。

s$="ABCDEFG"

Print lnStr(s$,"efg")

Print LCase$(s$)


正确答案:0CR>abcdefg
0CR>abcdefg 解析: 本题考查了字符串函数的应用。lnStr函数是字符串匹配函数,它的格式为:InStr([首字符位置,]字符串1,字符串2[,n])。它的功能是在字符串1中查找字符串2,如果找到了,则返回字符串2的第一个字符在字符串1中的位置。注意:字符串的第一个字符的位置为1。

语句Print(a=2)And(b=-2)的输出结果是()

  • A、True
  • B、结果不确定
  • C、-1
  • D、False

正确答案:D

(7)执行下列语句后,输出结果是。 s$="ABCDEFG" Print InStr(s$,"efg") Print LCase$(s$)


正确答案:0abcdefg
【解析】本题考查了字符串函数的应用。InStr函数是字符串匹配函数,它的格式为:InStr([首字符位置,]字符串1,字符串2[,n])。它的功能是在字符串1中查找字符串2,如果找到了,则返回字符串2的第一个字符在字符串1中的位置。注意:字符串的第一个字符的位置为1。
  LCase$函数是字母大小写转换函数,它的格式为:LCase$(字符串)。它可以将字符串中的大写字母转换为小写字母。
UCase$函数也是字母大小写转换函数,它的格式为:UCase$(字符串)。它可以将字符串中的小写字母转换为大写字母。

下面程序段的输出结果是:int a = 2;System.out.print( a++);System.out.print( a);System.out.print(++a);

A.333

B.334

C.234

D.233


正确答案:C

执行下列语句后,输出结果为______。

s$="ABCDEFG"

Print InStr(s$,"efg")

Print LCase$(s$)


正确答案:0CR>abcdefg
0CR>abcdefg 解析:本题考查了字符串函数的应用。InStr函数是字符串匹配函数,它的格式为:InStr([首字符位置,]字符串1,字符串2[,n])。它的功能是在字符串1中查找字符串2,如果找到了,则返回字符串2的第一个字符在字符串1中的位置。注意:字符串的第一个字符的位置为1。
LCase$函数是字母大小写转换函数,它的格式为:LCase$(字符串)。它可以将字符串中的大写字母转换为小写字母。
UCase$函数也是字母大小写转换函数,它的格式为:UCase$(字符串)。它可以将字符串中的小写字母转换为大写字母。

如果x为整数且|x|>=100,则打印“OK”,否则打印“Error”,表示这个条件的单行格式 If语句是

A.If Int((x)=x And Sqr(x)>=100 Then Print "OK" Else Print "Error"

B.If Fix(x)=x And Abs(x)>=100 Then Print"OK"Else Print"Error"

C.If Int(x)=x And (x>=100,x<=-100)Then Print"OK"Else Print"Error"

D.If Fix(x)=x And x>=100 And x<=-100 Then Print "OK" Else Print "Error"


正确答案:B
解析:绝对值函数为Abs,而取整函数为Fix或者Int。本题中,选项A使用了平方根函数;选项C书写错误;选项D的条件语句错误,x>=100Andx=-100这个条件永远不成立,应该为(x>=100Orx=-100)。正确答案为选项B。

语句Print “123”+45的输出结果是“12345” 。


正确答案:错误

(19)如果A为整数且|A|>=10,则打印“OK”,否则打印“Error”,表示这个条件的单行格式If语句是 A.If Int(A)=A And Sqr(A)>=10 Then Print“OK”Else Print “Error” B.If Fix(a)=A And Abs(a)>=10 Then Print“OK”Else Print “Error” C.If Int(A)=A And (A>=10 ,A=-10) Then Print“OK”Else Print “Error” D.If Fix(A)=A And A>=10, Abs A<=-10 Then Print“OK”Else Print “Error


正确答案:B
【解析】解答本题考生需了解题中用到的3个函数的作用,Int和Fix都会删除参数的小数部分而返回剩下的整数。Abs函数返回参数的绝对值,其类型和参数相同。而Int和Fix的不同之处在于,如果参数为负数,则Int返回小于或等于参数的第一个负整数,而Fix则会返回大于或等于参数的第一个负整数。

语句:print sgn(-6^2)+Abs(-6^2)+int(-6^2)的输出结果是( )

A.-36B.1C.-1D.-72

52967.以下语句

a=sqr(3)

print format(a,"####.###")

的输出结果是( )

A.1.732

B. 0001.732

C.###1.732

D. 1.7320


正确答案:C

无参函数的调用格式为()

  • A、函数名
  • B、函数名()
  • C、函数名();
  • D、返回值类型函数名();

正确答案:C

下列不是函数重载所要求的条件是()

  • A、函数名相同
  • B、参数个数不同
  • C、参数类型不同
  • D、函数返回值类型不同

正确答案:D

程序在调用重载函数时,根据()区分到底要调用哪个函数。

  • A、函数名
  • B、返回值类型
  • C、参数个数和类型
  • D、以上都可以

正确答案:C

关于函数知识下列描述说法不正确的是()

  • A、函数值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。
  • B、函数的值通过return语句返回主调函数
  • C、有返回值函数的定义格式为:返回值类型函数名(参数列表);{函数体}
  • D、无返回值函数的定义格式为:void函数名(参数列表);{函数体}

正确答案:C,D

返回值函数的定义格式正确的是()

  • A、返回值类型函数名(形式参数列表){语句;return表达式;}
  • B、void函数名(形式参数列表){语句;return表达式;}
  • C、返回值类型函数名(实参数列表){语句;return表达式;}
  • D、void函数名(实参数列表){语句;return表达式;}

正确答案:A

下列属于函数的基本格式的是()。

  • A、函数名[参数序列]
  • B、函数名“参数序列”
  • C、函数名{参数序列}
  • D、函数名(参数序列)

正确答案:D

在函数说明时,下列不必要的是( )项。

A.函数参数的类型

B.函数参数名字

C.函数的名字

D.返回值表达式


正确答案:B
解析:在函数说明时,函数参数的名字可以省略,但在函数实现时,需指明。

多选题
以下关于函数下列说法正确的是()。
A

函数不调用也是可以执行的

B

函数的命名能以数字开头

C

函数的三要素:函数名,参数,返回值

D

参数和返回值是可省略的


正确答案: D,B
解析: 暂无解析

下列对于虚函数和重载函数的叙述,正确的是( )。

A.虚函数要求函数名、返回值类型和参数序列完全相同

B.重载函数要求函数有相同的返回值类型和函数名称,并有不同的参数序列

C.虚函数是根据对象的不同去调用不同类的虚函数

D.虚函数和重载函数都是在运行时表现出多态功能


正确答案:D

要实现多态性,派生类中的虚函数必须( )。

A.函数名、参数及返回值必须与基类中对应的虚函数完全相同

B.参数个数不必与基类中对应的虚函数的函数名完全相同

C.参数类型不必与基类中对应的虚函数的函数名完全相同

D.返回值类型不必与基类中对应的虚函数的函数名完全相同


正确答案:A
解析:函数名、参数及返回值必须与基类中对应的虚函数完全相同。

单选题
下列不是函数重载所要求的条件是()
A

函数名相同

B

参数个数不同

C

参数类型不同

D

函数返回值类型不同


正确答案: B
解析: 暂无解析

如何区分多个构造函数?() 

  • A、  利用不同的返回值区分
  • B、  利用不同的参数名区分
  • C、  利用不同的函数名区分
  • D、  利用参数类型,参数数量,参数排列顺序区分

正确答案:D

单选题
下列属于函数的基本格式的是()。
A

函数名[参数序列]

B

函数名“参数序列”

C

函数名{参数序列}

D

函数名(参数序列)


正确答案: D
解析: 函数的基本格式是:函数名(参数序列)。参数序列是用于限定函数运算的各个参数,这些参数除中文外都必须使用英文半角字符。

以下关于函数下列说法正确的是()。

  • A、函数不调用也是可以执行的
  • B、函数的命名能以数字开头
  • C、函数的三要素:函数名,参数,返回值
  • D、参数和返回值是可省略的

正确答案:C,D

回值函数的定义格式正确的是()

  • A、返回值类型函数名(形式参数列表){语句;return表达式;}
  • B、void函数名(形式参数列表){语句;return表达式;}
  • C、返回值类型函数名(实参数列表){语句;return表达式;}
  • D、void函数名(实参数列表){语句;return表达式;}

正确答案:A

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为: number=1 number=10 number=100 注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在//******error******的下面。 试题程序: include<iostream.h> classTC { public: TC(inti) { number=i; } voidSetNumber(intm) { number=m; } intGetNumberconst { returnnumber; } voidPrintconst { cout<<"number="<<number<<endl; } private: intnumber; }; voidmain { //********error******** TCobjl; objl.Print; TCobj2(3); //********error******** objl.number=10; //********error*‰****** TC.SetNumber(100); objl.Print; obj2.Print; }


正确答案:
(1)应改为“TCobjl(1);”。
(2)应改为“0bj1.SetNumber(10);”。
(3)应改为“0bj2.SelNumber(100);”。
【解析】本题第1处的“TCobjl;”语句是声明TC类的对象0bj1,根据TC类构造函数的定义TC(inti),存在整型参数,并且题目要求第一个输出结果两1,所以补全参数1,即第1处的“TCobjl(1);”。第2处处的“objl.number=10;”应该是调用成员函数SetNumber赋值。在C++中成员函数的使用形式应该是:对象名.成员函数,所以修改为“obj1.SetNumber(10);”。类是对象的抽象,而对象是类的具体实例。第3处“TC.SetNumber(100);”语句中的TC为类,并不是对象,这里应该使用定义的对象,即obj2,所以将语句修改为“obj2.SetNumber(100);”。

如果x为整数且|x|>=100,则打印“OK”,否则打印“Error”,表示这个条件的单行格式 If语句是

A.If Int((x)=x And Sqr(x)>=100 Then Print "OK" Else Print "Error"

B.If Fix(x)=x And Abs(x)>=100 Then Print"OK"Else Print"Error"

C.If Int(x)=x And (x>=100,x<=-100)Then Print"OK"Else Print"Error"

D.If Fix(x)=x And x>=100 And x<=-100 Then Print "OK" Else Print "Error"


正确答案:B
解析:绝对值函数为Abs,而取整函数为Fix或者Int。本题中,选项A使用了平方根函数;选项C书写错误;选项D的条件语句错误,x>=100Andx=-100这个条件永远不成立,应该为(x>=100Orx=-100)。正确答案为选项B。

语句Print “123”+45的输出结果是“12345” 。


正确答案:错误

执行下列语句后,输出结果是______。

s$="ABCDEFG"

Print lnStr(s$,"efg")

Print LCase$(s$)


正确答案:0CR>abcdefg
0CR>abcdefg 解析: 本题考查了字符串函数的应用。lnStr函数是字符串匹配函数,它的格式为:InStr([首字符位置,]字符串1,字符串2[,n])。它的功能是在字符串1中查找字符串2,如果找到了,则返回字符串2的第一个字符在字符串1中的位置。注意:字符串的第一个字符的位置为1。

以下程序输出结果是 include main ( ){int i=0,a=0; while ( i<2 0 ){for(;;){if ((i

以下程序输出结果是 #include <stdio.h> main ( ) { int i=0,a=0; while ( i<2 0 ) { for(;;) { if ((i%10) ==0) break; else i--; } i+=11; a+=i; } print f ( "%d\n" , a); }

A.21

B.32

C.33

D.11


正确答案:B
解析:break语句只能在循环体和switch语句体内使用。本题程序为在while循环中嵌套for循环。先看内层for循环,该循环的3个表达式全部省略,循环条件始终为真,但循环体内的break语句为终止循环的条件。首先,由初始条件判断外层循坏while括号内表达式的值,该值为真,执行本次while循环,即执行循环体内的订语句,判断该表达式后面括号里表达式的值为真,执行break语句,跳出内层循环,执行下面的语句,此时i和a的值均变为11;回到外层循环,判断表达式“i20”仍为真,执行内层循环语句,此时if条件不满足,执行else语句,i的值为10,继续内层循环,if语句条件满足,执行break语句,跳出内层循环,执行下面的语句后,i和a的值分别是21和32。再判断外层循环的条件为假,结束循环.所以,4个选项中B为所选。

如果A为整数且,|A|>=10,则打印“OK”,否则打印“Error”,表示这个条件的单行格式If语句是( )。

A.If Int(A)=A And Sqr(A)>=10 Then Print"OK"Else Print "Error"

B.If Fix(A)=a And Abs(A)>=-10 Then Print"OK"Else Print "Error"

C.If Int(A)=A And(A>=10,A<-10) Then Print"OK"Else Print "Error"

D.If Fix(A)=A And A>=10,And A<=-10 Then Print"OK" Else Print "Error"


正确答案:B
解析:解答本题考生需了解题中用到的3个函数的作用,Int和Fix都会删除参数的小数部分而返回剩下的整数。Abs函数返回参数的绝对值,其类型和参数相同。而Int和Fix的不同之处在于,如果参数为负数,则Int返回小于或等于参数的第一个负整数,而Fix则会返回大于或等于参数的第一个负整数。

public class X {  public static void main(String [] args) {  try {  badMethod();  System.out.print(“A”);  }  catch (Exception ex) {  System.out.print(“C”);  }  finally {  System.out.print(“B”);  }  System.out.print(“D”);  }  public static void badMethod() {  throw new Error();  }  }  What is the result?()  

  • A、 ABCD
  • B、 Compilation fails.
  • C、 C is printed before exiting with an error message.
  • D、 BC is printed before exiting with an error message.
  • E、 BCD is printed before exiting with an error message.

正确答案:B

单选题
public class X {  public static void main(String [] args) {  try {  badMethod();  System.out.print(“A”);  }  catch (Exception ex) {  System.out.print(“C”);  }  finally {  System.out.print(“B”);  }  System.out.print(“D”);  }  public static void badMethod() {  throw new Error();  }  }  What is the result?()
A

 ABCD

B

 Compilation fails.

C

 C is printed before exiting with an error message.

D

 BC is printed before exiting with an error message.

E

 BCD is printed before exiting with an error message.


正确答案: E
解析: The correct answer is : B is printed and then an error message is printed. The exception catch can not catch an Error because this class does not extend Exception but it implements throwable. 

(7)执行下列语句后,输出结果是。 s$="ABCDEFG" Print InStr(s$,"efg") Print LCase$(s$)


正确答案:0abcdefg
【解析】本题考查了字符串函数的应用。InStr函数是字符串匹配函数,它的格式为:InStr([首字符位置,]字符串1,字符串2[,n])。它的功能是在字符串1中查找字符串2,如果找到了,则返回字符串2的第一个字符在字符串1中的位置。注意:字符串的第一个字符的位置为1。
  LCase$函数是字母大小写转换函数,它的格式为:LCase$(字符串)。它可以将字符串中的大写字母转换为小写字母。
UCase$函数也是字母大小写转换函数,它的格式为:UCase$(字符串)。它可以将字符串中的小写字母转换为大写字母。

执行下列语句后,输出结果为______。

s$="ABCDEFG"

Print InStr(s$,"efg")

Print LCase$(s$)


正确答案:0CR>abcdefg
0CR>abcdefg 解析:本题考查了字符串函数的应用。InStr函数是字符串匹配函数,它的格式为:InStr([首字符位置,]字符串1,字符串2[,n])。它的功能是在字符串1中查找字符串2,如果找到了,则返回字符串2的第一个字符在字符串1中的位置。注意:字符串的第一个字符的位置为1。
LCase$函数是字母大小写转换函数,它的格式为:LCase$(字符串)。它可以将字符串中的大写字母转换为小写字母。
UCase$函数也是字母大小写转换函数,它的格式为:UCase$(字符串)。它可以将字符串中的小写字母转换为大写字母。

下列语句输出结果为 。public class A{public static void main(String[]args){byte b=0xa;System.out.println(b);}}()

A.0xa

B.a

C.1

D.10


参考答案:D

语句:print sgn(-6^2)+Abs(-6^2)+int(-6^2)的输出结果是( )

A.-36B.1C.-1D.-72

52967.以下语句

a=sqr(3)

print format(a,"####.###")

的输出结果是( )

A.1.732

B. 0001.732

C.###1.732

D. 1.7320


正确答案:C

(19)如果A为整数且|A|>=10,则打印“OK”,否则打印“Error”,表示这个条件的单行格式If语句是 A.If Int(A)=A And Sqr(A)>=10 Then Print“OK”Else Print “Error” B.If Fix(a)=A And Abs(a)>=10 Then Print“OK”Else Print “Error” C.If Int(A)=A And (A>=10 ,A=-10) Then Print“OK”Else Print “Error” D.If Fix(A)=A And A>=10, Abs A<=-10 Then Print“OK”Else Print “Error


正确答案:B
【解析】解答本题考生需了解题中用到的3个函数的作用,Int和Fix都会删除参数的小数部分而返回剩下的整数。Abs函数返回参数的绝对值,其类型和参数相同。而Int和Fix的不同之处在于,如果参数为负数,则Int返回小于或等于参数的第一个负整数,而Fix则会返回大于或等于参数的第一个负整数。

语句Print(a=2)And(b=-2)的输出结果是()

  • A、True
  • B、结果不确定
  • C、-1
  • D、False

正确答案:D

下面程序段的输出结果是:int a = 2;System.out.print( a++);System.out.print( a);System.out.print(++a);

A.333

B.334

C.234

D.233


正确答案:C


相关考题: