【计算机类职业资格】二级C++-97及答案解析.doc

上传人:rimleave225 文档编号:1324174 上传时间:2019-10-17 格式:DOC 页数:17 大小:74KB
下载 相关 举报
【计算机类职业资格】二级C++-97及答案解析.doc_第1页
第1页 / 共17页
【计算机类职业资格】二级C++-97及答案解析.doc_第2页
第2页 / 共17页
【计算机类职业资格】二级C++-97及答案解析.doc_第3页
第3页 / 共17页
【计算机类职业资格】二级C++-97及答案解析.doc_第4页
第4页 / 共17页
【计算机类职业资格】二级C++-97及答案解析.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、二级 C+-97 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.下列描述中,不属于面向对象思想主要特征的是_。(分数:2.00)A.封装性B.跨平台性C.继承性D.多态性2.下列字符串中,正确的 C+标识符是_。(分数:2.00)A.foo-1B.2bC.newD._2563.下列符号中可以用作 C+标识符的是_。(分数:2.00)A._radiusB.foobarC.elseD.3room4.下列符号中,正确的 C+标识符是_。(分数:2.00)A.enumB.100bitC.s-1D._int5.下列字符串中,不可以用作 C+标识符

2、的是_。(分数:2.00)A.y_2006B._TEST_HC.ReturnD.switch6.下列符号中能够作为 C+标识符的是_。(分数:2.00)A.constB.2aC._shapeD.-count7.下列字符串中不能作为 C+标识符使用的是_。(分数:2.00)A.WHILEB.userC._1varD.9stars8.下列字符串中可以用作 C+标识符的是_。(分数:2.00)A.2009varB.gotoC.test-2009D._1239.在下列字符中,不允许作为 C+标识符的是_。(分数:2.00)A.bB.BC._D.210.下列选项中,正确的 C+标识符是_。(分数:2.0

3、0)A.6_groupB.group6C.age+3D._group_611.下列选项可以做 C+标识符的是_。(分数:2.00)A._256B.fat/pigC.deleteD.5char12.下列符号中不属于 C+关键字的是_。(分数:2.00)A.friendB.namespaceC.continueD.byte13.下列选项中,不是 C+关键字的是_。(分数:2.00)A.classB.functionC.friendD.virtual14.下列关于 C+函数的叙述中,正确的是_。(分数:2.00)A.每个函数至少要具有一个参数B.每个函数都必须返回一个值C.函数在被调用之前必须先声明

4、D.函数不能自己调用自己15.必须用一对大括号括起来的程序段是_。(分数:2.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体16.Windows 环境下,由 C+源程序文件编译而成的目标文件的扩展名是_。(分数:2.00)A.cppB.exeC.objD.lik17.在开发一个 C+程序的整个过程中,第 3 个步骤为_。(分数:2.00)A.链接B.运行C.编辑D.编译18.下列各组类型声明符中,含义相同的一组是_。(分数:2.00)A.unsigned long int 和 longB.signed short int 和 sho

5、rtC.unsigned short 和 shortD.short int 和 int19.字面常量 42、4.2、42L 的数据类型分别是_。(分数:2.00)A.long,double,intB.long,float,intC.int,double,longD.int,float,long20.下列叙述中,错误的是_。(分数:2.00)A.false 是一个逻辑型常量B.“b“是一个字符型常量C.365 是一个 int 常量D.3.1415926 是一个 double 常量21.关键字 unsigned 不能修饰的类型是_。(分数:2.00)A.charB.intC.floatD.long

6、 int22.已知枚举类型定义语句为: enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10; 则下列叙述中错误的是_。(分数:2.00)A.枚举常量 NAME 的值为 1B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 1023.已知枚举类型声明语句为: enum COLORWHITE,YELLOW,GREEN=5,RED,BLACK=10; 则下列说法中错误的是_。(分数:2.00)A.枚举常量 YELLOW 的值为 1B.枚举常量 RED 的值为 6C.枚举常量 BLACK 的值为 10D.枚举常

7、量 WHITE 的值为 124.下列枚举类型的定义中,包含枚举值 3 的是_。(分数:2.00)A.enum testRED,YELLOW,BLUE,BLACK;B.enum testRED,YELLOW=4,BLUE,BLACK;C.enum testRED=-1,YELLOW,BLUE,BLACK;D.enum testRED,YELLOW=6,BLUE,BLACK;25.下列语句中,错误的是_。(分数:2.00)A.const int buffer=256;B.const int temp;C.const double *point;D.const double *rt=new doub

8、le(5.5);26.在函数中,可以用 auto、extern、register 和 static 这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是_。(分数:2.00)A.autoB.externC.registerD.static27.下列语句中错误的是_。(分数:2.00)A.const int a;B.const int a=10;C.const int*point=0;D.const int*point=new int(10);28.有如下程序段: int i=4;int j=1; int main() int i=8,j=i; coutijendl;

9、 运行时的输出结果是_。(分数:2.00)A.44B.41C.88D.8129.下列选项中,正确的 C+表达式是_。(分数:2.00)A.counter+3B.element3+C.a+=bD.“a“=b30.若有定义语句“int i=2,j=3;”,则表达式 i/j 的结果是_。(分数:2.00)A.0B.0.7C.0.66667D.0.6666666731.若有定义“int x=4,y=5;”,则表达式“yx+?x-:y+”的值为_。(分数:2.00)A.3B.4C.5D.632.有如下程序: #includeiostream using namespace std; int main()

10、 char str100,*p; cout“Please input a string:“; cin;str; p=str; for(int i=0;*p!=“/0“;p+,i+); cout“i“endl; return 0; 运行这个程序时,若输入字符串为: abcdefg abcd 则输出结果是_。(分数:2.00)A.7B.12C.13D.10033.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1else语句 2 关于上面的语法格式,下列表述中错误的是_。(分数:2.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0) )

11、 B.语句部分可以是一个 if 语句,例如 if()if() C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while() 34.若 x 和 y 是程序中的两个整型变量,则下列 if 语句中正确的是_。(分数:2.00)A.if(x=0) y=1; else y=2;B.if(x=0) then y=1 else y=2;C.if(x=0) y=1 else y=2;D.if(x=0) y=1; else y=2;35.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是_。(分数:2.00)A.

12、if(a=b)n=0;B.if(ab)|(bc)n=1;else n=0;C.if(ab)if(bc)n=1;else n=0;else n=0;D.if(ab)n=1;else if(b=c)n=1;else if(bc)n=1;else n=0;36.有如下程序 #includeiostream using namespace std; int main() char a; cina; if(a=“*“) cout“*“endl; else cout“#“endl; return 0; 输入字符+时,程序的运行结果是_。(分数:2.00)A.*B.#C.*#D.无输出37.执行语句序列_。

13、 int i=0; while(i25)i+=3; couti; 输出结果是(分数:2.00)A.24B.25C.27D.2838.有如下程序: int x=3; do x-=2; coutx; while(!(-x); 执行这个程序的输出结果是_。(分数:2.00)A.1B.30C.1-2D.死循环39.执行下列语句段后,输出字符“*”的个数是_。 for(int i=50;i1:-i)cout“*“;(分数:3.00)A.48B.49C.50D.5140.执行下列语句段后,输出字符“*”的个数是_。 for(int i=50;i1;I-=2)cout“*“;(分数:3.00)A.24B.2

14、5C.26D.5041.有如下程序: #includeiostream using namespace std; int main() int sum; for(int i=0;i6;i+=3) sum=i; for(int j=i;j6;j+)sum+=j; coutsumendl; return 0; 运行时的输出结果是_。(分数:3.00)A.3B.10C.12D.1542.有如下程序段: int i=5; while(int i=0)cout“*“;i-; 运行时输出“*”的个数是_。(分数:3.00)A.0B.1C.5D.无穷43.有如下程序段: int i=1; while(1)

15、i+; if(i=10) break; if(i%2=0) cout“*“; 执行这个程序段输出字符*的个数是_。(分数:3.00)A.10B.3C.4D.544.下列循环语句中有语法错误的是_。(分数:3.00)A.int i;for(i=1;i10;i+)cout“*“;B.int i,j;for(i=1,j=0;i10;i+,j+)cout“*“;C.int i=0;for(;i10;i+)cout“*“;D.for(1)cout“*“;45.有如下程序: #includeiostream using namespace std; intmain() int f,f1=0,f2=1; f

16、or(int i=3;i=6;i+) f=f1+f2; f1=f2;f2=f; coutfendl; return 0; 运行时的输出结果是_。(分数:3.00)A.2B.3C.5D.846.有如下程序: #includeiostream using namespace std; int main() int a6=23,15,64,33,40,58; int S1,s2; s1=s2=a0; for(int* p=a+1;pa+6;p+) if(s1*p)s1=*p; if(s2*P)s2=*p; couts1+s2endl; return 0; 运行时的输出结果是_。(分数:3.00)A.

17、23B.58C.64D.79二级 C+-97 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.下列描述中,不属于面向对象思想主要特征的是_。(分数:2.00)A.封装性B.跨平台性 C.继承性D.多态性解析:解析 封装性、继承性和多态性是面向对象程序设计的三个基本特征。跨平台性不是面向对象程序设计的特征。2.下列字符串中,正确的 C+标识符是_。(分数:2.00)A.foo-1B.2bC.newD._256 解析:解析 此题考查的是 C+语言中标识符的定义。标识符由字母、数字或下划线构成,但第一个字符必须是字母或下划线;标识符中大小写字母是

18、不同的;用户定义标识符时,不允许采用系统的关键字。3.下列符号中可以用作 C+标识符的是_。(分数:2.00)A._radius B.foobarC.elseD.3room解析:解析 此题考查的是 C+语言中标识符的定义。标识符有字母、数字和下划线构成,其第一个字母必须是字母或下划线;定义标识符时,不要采用系统的保留字。4.下列符号中,正确的 C+标识符是_。(分数:2.00)A.enumB.100bitC.s-1D._int 解析:解析 此题考查的是 C+语言中标识符的概念。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系

19、统的限制一般不超过 31 个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。5.下列字符串中,不可以用作 C+标识符的是_。(分数:2.00)A.y_2006B._TEST_HC.ReturnD.switch 解析:解析 此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31 个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。6.下列符号中能够作为 C+标识符的是_。(分数:2.00)A.constB.2aC._shape D.-count解析

20、:解析 此题考查的是 C+标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31 个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。7.下列字符串中不能作为 C+标识符使用的是_。(分数:2.00)A.WHILEB.userC._1varD.9stars 解析:解析 在 C+中变量名的命名必须遵循一定的原则,其中之一即是第一个字符必须是字母或者下划线。8.下列字符串中可以用作 C+标识符的是_。(分数:2.00)A.2009varB.gotoC.test-2009D._123

21、解析:解析 标识符是用户为程序中各种需要命名的“元素”所起的名字。标识符的组成要符合一定的规则: 标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串。 标识符不能与任意一个关键字同名。 标识符中的字母区分大小写。 标识符不宣过长。C+语言一般设定一个标识符的有效长度为 32 个字符。 由这四条规则可知,选项 D 为正确答案。9.在下列字符中,不允许作为 C+标识符的是_。(分数:2.00)A.bB.BC._D.2 解析:解析 C+的标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串。10.下列选项中,正确的 C+标识符是_。(分数:2.00)A.6_groupB

22、.group6C.age+3D._group_6 解析:解析 C+中标识符的命名遵循如下规则:不能是 C+关键字,第一个字母必须是字母或下划线,中间不能有空格,变量名中不能包括“.”、“;”、“,”、“”、“”+-之类的特殊符号。总之标识符中除了能使用 26 个英文大小写字母和数字外,只能使用下划线“_”。11.下列选项可以做 C+标识符的是_。(分数:2.00)A._256 B.fat/pigC.deleteD.5char解析:解析 标识符的命名规则:所有标识符必须由一个字母(az 或 Az)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(09)组成;大小写字母表示不同意义,即

23、代表不同的标识符,如 cout 和 Cout。12.下列符号中不属于 C+关键字的是_。(分数:2.00)A.friendB.namespaceC.continueD.byte 解析:解析 此题考查的是 C+语言的关键字。Friend 是声明友元函数或友元类时用到的关键字;namespace 是定义或使用名字空间时用到的关键字;continue 是终止本次循环直接开始下一次循环所用到的关键字;byte 是字节的意思,它不是 C+语言中的关键字。13.下列选项中,不是 C+关键字的是_。(分数:2.00)A.classB.function C.friendD.virtual解析:解析 class

24、、friend、virtual 都是 C+的关键字,而 funtion 是 VB 的关键字。14.下列关于 C+函数的叙述中,正确的是_。(分数:2.00)A.每个函数至少要具有一个参数B.每个函数都必须返回一个值C.函数在被调用之前必须先声明 D.函数不能自己调用自己解析:解析 此题考查的是函数的性质。当调用无参函数时主函数并不将数据传送给被调函数,且可以带回或不带回函数值。函数的递归调用就是直接或间接的调用自己。15.必须用一对大括号括起来的程序段是_。(分数:2.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体 解析:解析 此题

25、考查的是语句块和函数。if 语句的分支和循环语句的循环体可以是一条语句也可以使一个语句块,所以不是必须用一个大括号括起来;switch 语句中的 case 标号语句可以是一系列语句,也可以包含语句块,也不是必须用一对大括号括起来;函数的函数体必须用一对大括号括起来。16.Windows 环境下,由 C+源程序文件编译而成的目标文件的扩展名是_。(分数:2.00)A.cppB.exeC.obj D.lik解析:解析 在 VC6.0 集成开发环境下,用户可以使用编译(compile)命令将一个.cpp 为扩展名的 C+源程序文件转换成一个以.obj 为扩展名的目标文件。17.在开发一个 C+程序的

26、整个过程中,第 3 个步骤为_。(分数:2.00)A.链接 B.运行C.编辑D.编译解析:解析 C+程序的开发过程是编辑、编译、链接、运行和调试。18.下列各组类型声明符中,含义相同的一组是_。(分数:2.00)A.unsigned long int 和 longB.signed short int 和 short C.unsigned short 和 shortD.short int 和 int解析:解析 此题考查的是基本类型和派生型。C+语言中,基本类型的字长及其取值范围可以放大和缩小,改变后的类型就叫做基本类型和派生类型。本题 A 选项中,unsigned long int 的省略形式为

27、unsigned long;选项 B 中,signed short int 的省略形式是 short;选项 C 中,unsigned short 的省略形式是 unsigned short;选项 D 中,short int 的省略形式是 short。19.字面常量 42、4.2、42L 的数据类型分别是_。(分数:2.00)A.long,double,intB.long,float,intC.int,double,long D.int,float,long解析:解析 此题考查的知识点是字面常量。对于整型字面常量,只要没有超过 C+中整数所能表示的范围,C+将自动按整数来存储此数,也可以通过在整

28、型字面常量后添加 u 或 1 来指定无符号整数或长整数来存储;对于实型字面常量,C+将自动按照双精度数来存储,也可以通过在实型字面常量后添加 f 来指定按单精度数存储。20.下列叙述中,错误的是_。(分数:2.00)A.false 是一个逻辑型常量B.“b“是一个字符型常量 C.365 是一个 int 常量D.3.1415926 是一个 double 常量解析:解析 字符常量简称字符,它以单引号作为起止符号,中间有一个或若干个字符。或者以“/”开头的包括多个字符的字符序列也符合规定的字符常量。21.关键字 unsigned 不能修饰的类型是_。(分数:2.00)A.charB.intC.flo

29、at D.long int解析:解析 实型常量指的是 float 和 double 两种数据类型,而 signed 和 unsigned 只对整型数起作用,用于确定它们的数据范围(例如 16 位系统中,一个 signed int 是-3276832767,而 unsigned int 是065535)。unsigned 对浮点数是无意义的。22.已知枚举类型定义语句为: enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10; 则下列叙述中错误的是_。(分数:2.00)A.枚举常量 NAME 的值为 1 B.枚举常量 NUMBER 的值为 1C.枚举常量 MIN

30、US 的值为 6D.枚举常量 PRINT 的值为 10解析:解析 此题考查的是 C+语言的数据类型。第一个枚举常量的值为 0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量默认时,在前一枚举常量值的基础上以此增 1。23.已知枚举类型声明语句为: enum COLORWHITE,YELLOW,GREEN=5,RED,BLACK=10; 则下列说法中错误的是_。(分数:2.00)A.枚举常量 YELLOW 的值为 1B.枚举常量 RED 的值为 6C.枚举常量 BLACK 的值为 10D.枚举常量 WHITE 的值为 1 解析:解析 此题考查的是枚举类型的声明。声明枚举类型的语法形式为

31、:enum 类型名枚举值表。需注意的是:当 n 个枚举值全部未赋常量值时,它们自左至右分别与整数 0、1、2、3.n-1 对应;若第 i个枚举值赋常量值为 m,则其未赋常量值的后续枚举值分别与整数 m+1、m+2.对应,直到下一个赋了值的枚举值或结束。24.下列枚举类型的定义中,包含枚举值 3 的是_。(分数:2.00)A.enum testRED,YELLOW,BLUE,BLACK; B.enum testRED,YELLOW=4,BLUE,BLACK;C.enum testRED=-1,YELLOW,BLUE,BLACK;D.enum testRED,YELLOW=6,BLUE,BLACK

32、;解析:解析 声明枚举类型的语法格式为:enum类型名枚举值表;枚举值表包含多个枚举值,它们用逗号隔开,每个枚举值就是一个枚举常量。枚举值有两种定义形式:一是值名;二是值名=整型常量。关于枚举类型有以下 4 点说明: 一个 enum 类型实际上是 int 类型的一个子集,其每一个枚举值代表一个整数。 n 个枚举值全部未赋常量值时,它们自左至右分别与整数 0,1,n-1 对应。 若第 i 个枚举值赋常量值为 m,则其未赋常量值的后续枚举值分别与整数 m+1,m+2对应,直到下一个赋了值的枚举值或结束。因此,为枚举值赋的整型常量值应从左到右递增。 枚举类型的声明也可作为组声明若干整型符号常量的方法

33、。也就是说,把每个要声明的符号常量作为一个枚举值,将各个枚举值合在一起定义成一个枚举类型。 对于本题来说,在选项 A 中,对 4 个枚举值没有赋常量值,所以它们从左到右与整数 0,1,2,3 相对应。因而选项 A 为正确选项。25.下列语句中,错误的是_。(分数:2.00)A.const int buffer=256;B.const int temp; C.const double *point;D.const double *rt=new double(5.5);解析:解析 此题考查的是符号常量的概念。符号常量必须在声明的同时赋初值,故选项 B 错误;选项C 定义的是一个指向常量的指针变量,

34、即通过指针不能改变它所指向的内容,而它自己的内容是可以改变的,C 选项正确。26.在函数中,可以用 auto、extern、register 和 static 这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是_。(分数:2.00)A.auto B.externC.registerD.static解析:解析 此题考查的是存储类型。C+语言变量的存储类型分为如下几种类型:auto-函数内部的局部变量;static-静态存储分配;extern-全局变量;register-变量存储在硬件寄存器中。27.下列语句中错误的是_。(分数:2.00)A.const int a;

35、 B.const int a=10;C.const int*point=0;D.const int*point=new int(10);解析:解析 由关键字 const 声明符号常量的同时必须为其赋初值。28.有如下程序段: int i=4;int j=1; int main() int i=8,j=i; coutijendl; 运行时的输出结果是_。(分数:2.00)A.44B.41C.88 D.81解析:解析 这个程序定义了全局整型对象 i 和 j,其值分别等于 4 和 1。而在主函数中定义了局部整型对象 i 和 j,i 值赋予 8,再把 i 值赋给 j,接着输出 i 和 j 的值,所以其

36、结果为 88。这个题目要注意的一点是,全局整型对象 i 和 j 和主函数中定义了局部整型对象 i 和 j,在计算机内存中表示的是不同的存储单元。它们的值是独自存放的,互相不同。29.下列选项中,正确的 C+表达式是_。(分数:2.00)A.counter+3B.element3+C.a+=b D.“a“=b解析:解析 在 C+中由一个或多个操作数与操作符连接而成的有效运算式称为表达式。选项 C 是 C+的合法表达式。30.若有定义语句“int i=2,j=3;”,则表达式 i/j 的结果是_。(分数:2.00)A.0 B.0.7C.0.66667D.0.66666667解析:解析 由于变量 i

37、、j 都是整型变量,所以两者相除所得的商也是整型数据。31.若有定义“int x=4,y=5;”,则表达式“yx+?x-:y+”的值为_。(分数:2.00)A.3B.4C.5 D.6解析:解析 在表达式“yx+?x-:y+”中,由于自加(+)运行符的优前级高于比较运算符(),所以首先进行自加运算,即变量 x 的值前自加 1,等于 5,此时表达式 yx 不成立,所以整个表达式的值等于 y+的值,由于 y+是后自加运算,所以其值等于 5。32.有如下程序: #includeiostream using namespace std; int main() char str100,*p; cout“P

38、lease input a string:“; cin;str; p=str; for(int i=0;*p!=“/0“;p+,i+); cout“i“endl; return 0; 运行这个程序时,若输入字符串为: abcdefg abcd 则输出结果是_。(分数:2.00)A.7 B.12C.13D.100解析:解析 此题考查的是默认输入格式。本题输入数据类型为 char,因此输入的数据是“从第一个非空白字符开始到下一个空白字符结束”,而输入数据为 abcdefg abcd,其中 abcdefg 后有空格。所以输入后 str 中的字符串为“abcdefg”;主函数中接下来 for 语句的作

39、用是计算字符串 P 的长度,故最终输出字符串“abcdefg”的长度 7。33.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1else语句 2 关于上面的语法格式,下列表述中错误的是_。(分数:2.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0) ) B.语句部分可以是一个 if 语句,例如 if()if() C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while() 解析:解析 此题考查的是 if 语句。If 语句的条件部分是一个表达式而不是语句

40、,因此选项 A 叙述错误。34.若 x 和 y 是程序中的两个整型变量,则下列 if 语句中正确的是_。(分数:2.00)A.if(x=0) y=1; else y=2; B.if(x=0) then y=1 else y=2;C.if(x=0) y=1 else y=2;D.if(x=0) y=1; else y=2;解析:解析 if else 语句的形式为: if(条件) 语句 1else语句 2 所以符合以上形式的 if else 语句为选项 A。35.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是_。(分数:2.00)A.if(a=b)n=0;B.if(ab)

41、|(bc)n=1;else n=0;C.if(ab)if(bc)n=1;else n=0;else n=0; D.if(ab)n=1;else if(b=c)n=1;else if(bc)n=1;else n=0;解析:解析 条件表达式(ab?(bc?1:0):0)的含义是,如果 ab 成立,则此表达式的值等于条件表达式(bc?1:0)的值,否则其值等于 0。而条件表达式(bc?1:0)的含义是,如果 bc 成立,其值等于1,否则其值等于 0。36.有如下程序 #includeiostream using namespace std; int main() char a; cina; if(a

42、=“*“) cout“*“endl; else cout“#“endl; return 0; 输入字符+时,程序的运行结果是_。(分数:2.00)A.* B.#C.*#D.无输出解析:解析 本题的考点是双分支选择语句的执行流程,答题的关键点在于选择条件的判定。双分支选择语句的执行流程是首先计算 if 后表达式的值,如果表达式的值为非零,则执行 if 后面的分支,否则执行与其匹配的 else 后面的分支。本题执行时虽然输入变量 a 的值为+,但是在执行 if 后括号内表达式(a=“*“)的时,由于此表达式为赋值表达式,因此表达式的值为赋值号右边的值“*“,其 ASCII 码的值非零,执行 if

43、后面的输出语句“*”后回车。37.执行语句序列_。 int i=0; while(i25)i+=3; couti; 输出结果是(分数:2.00)A.24B.25C.27 D.28解析:解析 此题考查的是循环语句 while 的使用。i 为 3 的倍数,当 i=24 时,i25,执行 while 的循环体 i+=3,则 i=27,不满足 i25 的条件,结束循环。38.有如下程序: int x=3; do x-=2; coutx; while(!(-x); 执行这个程序的输出结果是_。(分数:2.00)A.1B.30C.1-2 D.死循环解析:解析 此题考查的是 do-while 循环语句。do

44、-while 循环首先执行 do 语句中的循环体,再判断是否需要继续执行循环。题目中 do 语句“x-=2”,while 语句中“-x”即 x 为 0,取反为非 0,循环继续执行;执行“x-=2”和“-x”取反后,循环结束程序退出。39.执行下列语句段后,输出字符“*”的个数是_。 for(int i=50;i1:-i)cout“*“;(分数:3.00)A.48B.49 C.50D.51解析:解析 此题考查的是 for 循环语句。For 循环中 i 从 50 开始逐渐递减,直到 i=1 时退出,而此时没有机会执行到循环体,因此一共执行了 49 次循环体,所以最终输出的是 49 个字符*。40.

45、执行下列语句段后,输出字符“*”的个数是_。 for(int i=50;i1;I-=2)cout“*“;(分数:3.00)A.24B.25 C.26D.50解析:解析 此题考查的是 for 循环语句。执行循环语句,变量 i 从 50 递减,每次减 2,所以循环会执行 25 次,输出 25 个*。41.有如下程序: #includeiostream using namespace std; int main() int sum; for(int i=0;i6;i+=3) sum=i; for(int j=i;j6;j+)sum+=j; coutsumendl; return 0; 运行时的输出结

46、果是_。(分数:3.00)A.3B.10C.12D.15 解析:解析 由题干可以知道,外层循环会进行两次,且第一次的结果我们可以不去理会和计算,读者仔细观察能发现,在第一次的循环以后 sum 和 j 都会被重新赋值,所以外层第二次循环如下: 此时 i=3,sum=3 内层循环开始如下:j=3,j6,sum=6;j=4,j6,sum=10,j=5,j6,sum=15,j=6 退出内层循环。得到 sum=15。42.有如下程序段: int i=5; while(int i=0)cout“*“;i-; 运行时输出“*”的个数是_。(分数:3.00)A.0 B.1C.5D.无穷解析:解析 因为 while 循环中,因为 i 的值等于 0,所以 while 循环体一次也不执行。因而运行时输出“*”的个数是 0。43.有如下程序段: int i=1; while(1) i+; if(i=10) break; if(i%2=0) cout

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1