软考程序员考前模拟题练习及答案Word文件下载.docx

上传人:b****2 文档编号:1383059 上传时间:2023-04-30 格式:DOCX 页数:10 大小:18.89KB
下载 相关 举报
软考程序员考前模拟题练习及答案Word文件下载.docx_第1页
第1页 / 共10页
软考程序员考前模拟题练习及答案Word文件下载.docx_第2页
第2页 / 共10页
软考程序员考前模拟题练习及答案Word文件下载.docx_第3页
第3页 / 共10页
软考程序员考前模拟题练习及答案Word文件下载.docx_第4页
第4页 / 共10页
软考程序员考前模拟题练习及答案Word文件下载.docx_第5页
第5页 / 共10页
软考程序员考前模拟题练习及答案Word文件下载.docx_第6页
第6页 / 共10页
软考程序员考前模拟题练习及答案Word文件下载.docx_第7页
第7页 / 共10页
软考程序员考前模拟题练习及答案Word文件下载.docx_第8页
第8页 / 共10页
软考程序员考前模拟题练习及答案Word文件下载.docx_第9页
第9页 / 共10页
软考程序员考前模拟题练习及答案Word文件下载.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软考程序员考前模拟题练习及答案Word文件下载.docx

《软考程序员考前模拟题练习及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《软考程序员考前模拟题练习及答案Word文件下载.docx(10页珍藏版)》请在冰点文库上搜索。

软考程序员考前模拟题练习及答案Word文件下载.docx

  B.C=7+b++=a+7

  C.a=(7+b,b++,a+7)

  D.a=7+b,c=a+7

  【解析】赋值运算符是运算符之一,赋值运算也可以出现在一般表达式中。

赋值运算时,出现在赋值运算符左边的表达式应该是引用一个存储对象,例如变量。

不可以是一个数值计算表达式。

如表达式a=7+b+c=a+7因算术运算符比赋值运算符的优先级高,要把a+7的结果赋给7+b+c,这是错误的。

同样理由,表达式a=7+b++=a+7也是错误的。

而表达式a=(7+b,b++,a+7)就是正确的赋值表达式,它是先计算赋值号左边的括号内的表达式,括号表达式内是一个逗号表达式,远号表达式要求顺序逐一计算各子表达式,并以最后一个子表达式的值作为远号表达式的结果,最后将该结果赋给变量a。

而表达式a=7+b,c=a+7则不是一个赋值表达式,而是一个逗号表达式,它由两个赋值子表达式组成。

所以解答是C。

  4.若有以下定义:

chara;

intb;

floatc;

doubled;

则表达式a*b+d-c值的类型为()

  A.float

  B.int

  C.char

  D.double

  【解析】基本类型的数据可以混合运算,但运算时,对要求运算分量类型相同的运算来说,如运算分量的类型不是全相同,则会有自动类型转换发生。

类型自动转换规则规定类型低(简单)的向类型高(复杂)的转换。

各类型由高到低的排列顺序是:

longdouble、float、unsignedlong、long、unsignedint、int这样,若有定义:

intb;

doubled;

则表达式a*b+d-c的值的类型是double的。

首先计算a*b,得到int类型的值,接着计算a*b+d,得到double类型的值,最后计算a*b+d-c,得到double类型的值。

所以解答是D。

  【参考答案】D

  5.表达式“9!

=7”的值是()

  A.true

  B.非0值

  C.0

  D.1

  【解析】关系运算的结果只有0和1,若关系成立,则结果为1;

若关系不成立,则结果为0。

因关系式9!

=7成立,所以表达式的结果为1。

虽然1也是非0值,在供选择的答案中有1,所以最确切的解答是D。

  6.用十进制数表示表达式“12|012”的运算结果是()

  A.1

  B.0

  C.14

  D.16

  【解析】按位运算将运算分量视作二进位的位申信息,对两运算分量的对应位进行运算,产生H进位的位串信息结果。

整数12最低8位二进位是00001100,整数012是八进制数,它的最低8位二进位是00001010。

这两个二进位位串信息按位或运算,得到结果是00001110,对应十进制数14,八进制数是016。

  7.设字符型变量a=3,b=6,计算表达式C=(a^b)<

<

2后C的二进制值是()

  A.00011100

  B.00000111

  C.00000001

  D.00010100

  【解析】a的值为3,写成8位二进制数形式是00000011,b的值为6,写成8位二进制数形式是00000110。

表达式c=(a^b)<

2,先计算a与b的按位加,得到结果00000101,将这结果向左移2位,得到二进位的位串信息是00010100。

  8.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是()

  A.’a’&

b’

  B.a<

=b

  C.a||b+c&

b-c

  D.!

((a<

p>

  【解析】对于表达式’a’&

’b,两个非O运算分量的逻辑与结果为1。

对于表达式a<

=b,由于关系式成立,结果也为此又由于变量a为非0,表达式a||b+c&

b-c的结果也为1。

对于表达式!

  9.设Ch是Char型变量,其值为’A’,则下面表达式的值是()

  ch=(ch>

=’A’&

ch<

=’Z’)?

(ch+32):

ch

  A.’A’

  B.’a’

  C.’Z’

  D.’z’

  【解析】由于字符型变量ch的值为’A’,计算表达式ch=h>

=’A’&

=’Z’)?

(ch+32):

ch,先计算其中条件表达式,由于条件(ch>

=’A&

h<

=’Z’)成立,该条件表达式以ch+32=97为结果,将该值赋给变量ch,以字符表达这个值为’a’。

所以解答是B。

  【参考答案】B

  10.设有无符号短整型变量i、j、k,i值为013,j值为OX13。

计算表达式“k=~i|j>

>

3”后,k的值是()

  A.06

  B.0177776

  C.066

  D.0177766

  【解析】将变量i的八进制数值013写成二进制形式为00001011,将变量j的十六进制值oxl3写成二进制数形式为00010011。

表达式k=~i|j>

3的计算过程是先求~i,结果用八进制代码表示为0177764;

接着计算j>

3,结果为02。

对它们进行按位或运算结果为0177766。

  11.设a=3,b=4执厅‘printf(”%d,%d’,(a,b)(b,a));

”的输出是()

  A.3,4

  B.4,3

  C.3,3

  D.4,4

  【解析】在调用格式输出函数的语句中,其中每个格式符对应一个输出项,格式符d要求输出项内容以十进制整数形式输出。

第一个输出项(a,b)是一个逗号表达式,该表达式的值是b的值,输出4。

接着输出字符逗号。

第二个输出项(b,a)的值是a的值,输出3。

所以语句执行将输出4,3。

  12.使用“Scanf("

X=%f,y=%f"

,&

x,&

y)”,要使X,y均为1.25,正确的输入是()

  A.1.25,1.25

  B.1.251.25

  C.x=1.25,y=1.25

  D.X=1.25y=1.25

  【解析】格式输入函数的格式字符串中的字符可以分成三类:

空格类字符、其它普通字符和格式转换说明。

其中空格类字符用来跳过一个空格类字符序列,直至下一个非空格类字符。

普通字符要求输入字符与其完全相同。

格式转换说明对输入字符列按格式转换说明进行转换,得到内部值存储到对应输入项所指定的存储位置中。

函数调用scanf(“x=%f,y=%f,&

y)以普通字符X=开头,输入时也要先输入X=。

接着是一个浮点数输入格式,所有能构成一个浮点数1.25的字符序列都能满足要求。

接着是普通字符列“,y=”,在输入的浮点数之后也要有字符列“,y=”。

最后又是浮点数输入格式,同样所有能构成一个浮点数1.25的字符序列都能满足要求。

问题给出的供选择答案中只有x=1.25,y=1.25是能满足上述要求的。

所以正确选择是C。

  13.设有inti=010,j=10;

则执行“printf("

%d,%d\n"

,++i,j--);

  A.ll,10

  B.9,10

  C.010,9

  D.10,9

  【解析】变量i和j的初值分别为八进制数010和十进制数10,函数调用Printf(“%d,%d\n”,++i,j--)中,++i的值是变量i增1后的值,原来值是八进制数010,等于十进制数8,输出9。

j--的值是变量j减1之前的值,输出10。

格式字符申中的逗号是普通字符照原样输出。

所以问题给出的格式输出函数调用将输出9,10。

正确的解答是B。

  14.设a,b为字符型变量,执行"

scanf("

a=%c,b=%c"

a,&

b)"

后使a为'

A'

,b为'

B'

,从键盘上的正确输入是()

  A.’A”B’

  B.’A’,’B’

  C.A=A,B=B

  D.a=Ab=B

  【解析】函数调用scanf("

c=%c,b=%c"

c,&

b)中,普通字符必须按格式字符串要求照原样输入,c格式对紧接的任何字符都输入。

所以实现问题的要求,输入字符列应为“a=A,b=B”。

另外要特别指出,在程序中,为表示字符常量,字符前后需加单引号。

但用字符格式输入字符时,在要输入字符前后不必另键人单引号。

若键人单引号,则这个单引号也将作为字符被输入。

正确的解答是D。

  15.设X、y、Z、t均为int型变量,则执行以下语句后,t的值为()

  x=y=z=1;

t=++x||++y&

++z;

  A.不定值

  C.l

  D.0

  【解析】语句序列“x=y=z=l;

”使变量x的值为1,变量t是赋一个逻辑表达式的值。

在C语言中,由逻辑与和逻辑或构成的逻辑表达式有特别的计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑表达式的结果时,就立即结束逻辑表达式的计算,不再计算后继逻辑子表达式。

本题的逻辑表达式是两个运算分量的逻辑或,而且左运算分量++X的值为非0,立即得到逻辑或运算的结果为1,并将1赋给变量t,所以变量t的值为1。

正确解答为C。

  16.设x、y、z均为int型变量,则执行以下语句后,x、y,z的值为()

  X=1;

y=0;

Z=2;

y++&

++Z||++X;

  A.2、l、3

  B.2、0、3

  C.2、l、3

  D.2、1、2

  【解析】语句序列“x=l;

y=0;

z=2;

++z||++x;

”先使变量x的值为1,变量y的值为0,变量Z的值为2。

由逻辑与和逻辑或构成的逻辑表达式的特别计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑子表达式的结果时,就立即结束逻辑子表达式的计算,不再计算该逻辑子表达式。

计算y++因y的值为0,使y++&

++z的结果为0,立即去计算++X,这次计算使变量y的值变成1,而变量Z的值本改变。

接着计算++X,使X的值变为2。

所以经上述语句执行后,X、y、Z的值依次为2、1、Z。

确解答为D。

  17.假定所有变量均已正确定义,下列程序段运行后X的值是()

  a=b=c=0;

x=35;

  if(!

a)x--;

elseif(b);

if(c)x=3;

elsex=4;

  A.34

  B.4

  C.35

  D.3

  【解析】以变量a,b,c的值均为0,变量x的值为35,语句:

elseif(b);

  由两个证语句组成。

首先执行前一个if语句“if(!

”,因变量a的值为0,条件!

a成立,执行x--使x的值变为34。

接着执行后继的if语句“if(c)x=3;

elseX=4;

”,因变量c的值为0,条件不成立而执行X=4,最终使变量X的值为4。

正确解答是B。

  注意前一个if语句的else部分的成分语句只有“if(b);

”,这是一个单分支if语句,且其成分语句为空语句。

  18.下面的程序段所表示的数学函数关系是()

  y=-l;

  if(x!

=0)if(x>

0)y=l;

elsey=0;

  1(x<

0)

  A.y={0(x=0)

  B.y={-l(X=0)

  1(X>

0)0(X>

  o(X<

0)-l(X<

0)

  C.y={-1(x=0)

  D.y={1(X=0)

0)0(X>

  【解析】程序段首先置变量y的值为一l,接着按变量x值的不同情况重置变量y的值。

重置的首要条件是x!

=0,若变量x的值为0,则不再重置变量y的值,所以在X值为0情况下,y的值是-l。

在变量X的值不等于0的条件下,若X的值大于0,重置变量y的值为1;

若变量X的值小于0,重置变量y的值为0。

所以程序段实现当变量x的值为0时,变量y的值为-1;

当变量X的值大于0时,置变量y的值为1;

当变量X的值小于0时,置变量y的值为0。

  19.下列语句中,句法错误的是(不考虑语义)()

  A.while(x=y)5;

  B.dox++while(x==10);

  C.while(0);

  D.do2;

while(a==b);

  【解析】while语句的一般形式是:

  while(表达式)语句

  这里的表达式可以是任何合理的表达式,语句可以是任何语句,包括空语句,或表达式语句。

可能书写的while语句没有任何意义,如供选择的A.while(x=y)5;

和C.while(0);

,但这两个语句的句法没有任何错误。

do-While语句的一般形式是:

  do语句while(表达式);

  其中的成分语句也可以是任何语句,但供选择答案B.dox++while(x==10);

中的代码x++是一个表达式,不是语句,所以是错误的。

  20.若i、j已定义为int类型,则以下程序段中的内循环体的执行次数是()

  for(i=5;

i;

i--)

  for(j=0;

j<

4;

j++){……}

  A.20

  B.24

  C.25

  D.30

  【解析】问题所给的程序段的外循环是一个阶循环语句,它的初始化部分置变量i的初值为5,循环条件简写成i,即i!

=0,每次循环后变量i的值减1。

所以外循环共控制5次循环。

内循环也是一个for循环语句,它的初始化部分置变量j的初值为0,循环条件是j<

4,每次循环后变量j的值增1。

所以内循环共控制4次循环。

这样,如内循环的体内未曾对变量i和j有修改,在内、外循环一起控制下,内循环的体共被重复执行20次。

正确解答是A。

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2