首页 - 网校 - 题库 - 直播 - 雄鹰 - 团购 - 书城 - 模考 - 学习通 - 导航 - 510 -
首页考试吧网校题库直播雄鹰510团购书城模考论坛实用文档作文大全宝宝起名
2015中考
法律硕士
2015高考
MBA考试
2015考研
MPA考试
在职研
中科院
考研培训
专升本
自学考试 成人高考
四 六 级
GRE考试
攻硕英语
零起点日语
职称英语
口译笔译
申硕英语
零起点韩语
商务英语
日语等级
GMAT考试
公共英语
职称日语
新概念英语
专四专八
博思考试
零起点英语
托福考试
托业考试
零起点法语
雅思考试
成人英语三级
零起点德语
等级考试
华为认证
水平考试
Java认证
职称计算机 微软认证 思科认证 Oracle认证 Linux认证
公 务 员
导游考试
物 流 师
出版资格
单 证 员
报 关 员
外 销 员
价格鉴证
网络编辑
驾 驶 员
报检员
法律顾问
管理咨询
企业培训
社会工作者
银行从业
教师资格
营养师
保险从业
普 通 话
证券从业
跟 单 员
秘书资格
电子商务
期货考试
国际商务
心理咨询
营 销 师
司法考试
国际货运代理人
人力资源管理师
广告师职业水平
卫生资格 执业医师 执业药师 执业护士
会计从业资格
基金从业资格
统计从业资格
经济师
精算师
统计师
会计职称
法律顾问
ACCA考试
注册会计师
资产评估师
高级经济师
审计师考试
高级会计师
注册税务师
国际内审师
理财规划师
美国注册会计师
一级建造师
安全工程师
设备监理师
公路监理师
公路造价师
二级建造师
招标师考试
物业管理师
电气工程师
建筑师考试
造价工程师
注册测绘师
质量工程师
岩土工程师
注册给排水
造价员考试
注册计量师
环保工程师
化工工程师
暖通工程师
咨询工程师
结构工程师
城市规划师
材料员考试
消防工程师
监理工程师
房地产估价
土地估价师
安全评价师
房地产经纪人
投资项目管理师
环境影响评价师
土地登记代理人
宝宝起名
缤纷校园
实用文档
入党申请
英语学习
思想汇报
作文大全
工作总结
求职招聘 论文下载 直播课堂
您现在的位置: 考试吧 > 软件水平考试 > 模拟试题 > 程序员 > 正文

2014下半年软考程序员考前最后冲刺题及答案解析(3)

考试吧整理“2014下半年软考程序员考前最后冲刺题及答案解析(3)”供考生参考,更多2014年软考备考资料请关注考试吧软件水平考试网。

  查看汇总2014下半年软考程序员考前最后冲刺题及答案解析汇总

  1.假定a和b为int型变量,则执行以下语句后b的值为( )

  a=1; b=10;

  do b-=a; a++;

  }while<(b--<0);

  A.9

  B.-2

  C.-1

  D.8

  【解析】在这个程序段中,循环开始前变量a的值为1,b的值为10,每次循环从变量b减去a,并让a增1,并在循环条件判定时,又让b减去1。第一次循环后,变量b的值变成9,变量a的值变为2,循环判断时,因b的值大于0,循环条件不成立,结束循环。但在循环判断时,让b减去了1,所以循环结束时,变量b的值为8。正确的解答是D。

  【参考答案】D

  2.设x和y为int型变量,则执行下面的循环后,y的值为( )

  for(y=l, x=l; y<=50; y++){

  if(x>=10) break;

  if(x%2==1){ x+=5; continue;}

  X -= 3;

  }

  A.2

  B.4

  C.6

  D.8

  【解析】 for循环语句的初始化部分置变量x和y的初值为1,循环条件是(y<=50),每次循环后变量y的值增1,控制循环最多执行50次。循环体有三个语句:首先在发现变量X的值大于等于10时,结束循环;接着是当变量X除2的余数为1(即变量X是奇数)时,让变量X值增5,让X变成偶数,并直接进入下一轮循环;如变量X是偶数,则从变量X减去3,让变量X变成奇数。由上述分析知,每两次循环使变量X的值增加2.第一次循环后,变量X的值变成6。第二次循环后,变量X的值变成3。第三次循环后,变量X的位变成8。第四次循环后,变量X的值变成5。第五次循环后,变量X的值变成 10。第六次循环时,因变量X的位大于等于 10,直接跳出循环,这次循环是非正常结束,对变量y的修正只执行了5次。所以循环结束后,变量y的值增至6。正确的解答是C。

  【参考答案】C

  3.在C语言中,下列说法中正确的是( )

  A.不能使用“do语句while(条件)”的循环

  B.“do语句While(条件)”的循环中必须使用“break”语句退出循环

  C.“do语句while(条件)”的循环中,当条件非0时将结束循环

  D.“do语句while(条件)”的循环中,当条件为0时将结束循环

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

  do语句

  while(表达式);

  其语义是重复执行其成分语句,直至表示条件的表达式值为0时结束。do-while语句是正常使用的一种循环结构之一。do-while语句的循环结束条件由while后的表达式值为0所控制,并不一定要有break语句跳出循环来结束循环。do-while语句在条件值非0时,将继续循环,而不是结束循环。条件值为0时,才结束循环。所以正确的选择是D。

  【参考答案】D

  4.若有以下程序段,W和k都是整型变量,则不能与该程序段等价的循环语句是( )

  W= k;

  LB: if(w==0) gotO LE;

  w - -;

  printf("*");

  goto LB;

  LE:

  A. for(w=k;w!=0;W--)printf("*");

  B. w= k;

  While(W--!=0) Prinif(”* ”);

  C. w= k;

  do{w--; prinif(“*”);

  } while( W!= 0);

  D. for(w=k;W;--W) printf("*");

  【解析】问题所给出的程序段用goto语句构造一个循环控制结构,该循环结构的初值是让变量W的值为k的值,循环结束条件是W的情等于0,循环体是让变量W的值减1,并输出一个字符* 。上述循环控制过程用for循环可描述如下:

  for=(w=k;W!=0; W--) printh("*");

  或写成:

  for(w=k ;w;--w) printf("*");

  若用while语句,可描述如下:

  W=k;

  while(w--!=0)printf("*");

  w++;/*在w等于0时,也执行了一次 w--,这里是对w最后减1的补尝*/

  或更直观地写成:

  W=k;

  while(w!=0){ w--;Printf("*");}

  若用do-while语句,可描述如下:

  W=k;

  if(W)

  do{

  w--; prinif("*");

  } while(w);

  若写成:

  W=k;

  do{

  W--; printf("*");

  } while(w!=0);

  是不正确的,因为原代码当k的值为0时,不输出字符*,而上面的改写,当k的值为0时,将输出许许多多的字符*。所以解答应是C。

  【参考答案】C

  5. 若有下列说明,则数值为4的表达式是( )

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

  char c='a',d, g;

  A.a[g-c]

  B.a[4]

  C.a['d'-'c']

  D.a['d'-c]

  【解析】数组元素的下标自0开始顺序编号,值为4的元素是a[3]。所以只有下标表达式的值为3的才是正确的。下标表达式g-C中的的变量g和c的值是还未被设定的,其值不确定。a[4]的值为5,下标为4是不对的。'd'-'c'的值为1,a[l]的值是2,所以也是不对的。变量c的值为'a' ,'d'-c=3,所以正确解答是D。

  【参考答案】D

  6.设有定义:"char s[12]={"string"};" 则printf("%d\n",strlen(s));的输出是( )

  A. 6

  B. 7

  C.11

  D.12

  【解析】在C语言中,字符串是指在有效字符之后有字符率结束标记符的字符列,并约定字符串的长度是指字符率中有效字符个数,不包括字符串的结束标记符。存放于字符数组s中的字符串是“string”,该字符串的长度为6,所以输出该字符串的长度应是6。正确的解答是A。

  【参考答案】A

  7.下列语句中,正确的是( )

  A.char a[3][]={'abc",'1'};

  B.char a[][3]={'abc','l'};

  C.char a[3][]={'a',"1"};

  D.char a[][3]={"a","1"};

  【解析】如定义数组时有初始化,其最高维的长度可以省缺,由系统根据初始化时的初值个数确定,而其它维的长度是不可以缺省的。对二维字符数组的初始化,可以按行用字符串对其初始化,也可以按二维数组元素的存储顺序逐一用字符对其元素初始化。在供选择解答A.和C.中,有不是最高维的长度被缺省,所以是错误的。在供选择解答A.和B.中,还将字符串常量写作'abc',这也是错误的。只有D.,用字符率按行给二维字符数组初始化,这才是正确的。正确构解答是D。

  【参考答案】D

  8.合法的数组定义是( )

  A.int a[]={"string"}

  B.int a[5]={0,1,2,3,4,5};

  C.char a={"string"}

  D.char a[]={0,1,2,3,4,5};

  【解析】A.错误的原因是整数数组不可以用字符串对其初始化。B.错误的原因是,数组初始化时,初始化指定的值的个数多于数组的元素个数。C.错误的原因是,能用字符串初始化的只;有字符指针变量,或字符数组。字符率不能对其它类型的变量初始化,包括字符变量。D是正确的,因为字符数组可以用小整数(作为字符的ASCII代码值)对其元素初始化。

  【参考答案】D

  9.语句"printf("%d\n"strlen("ats\nol2\1\\"));"的输出结果是( )

  A.11

  B.10

  C. 9

  D. 8

  【解析】字符串中的字符可以是一般的普通字符,也可以是由反斜杠字符开头的转义字符。在字符串"abs\no12\11\\" 中,有三个转义字符,它们是\n、\1、\\,所以该字符串的有效字符个数是9。所以正确的回答是C。

  【参考答案】C

  10.函数调用“strcat(strcpy(strl,str2),str3)”的功能是( )

  A.将字符串strl复制到字符串str2中后再连接到字符串str3之后

  B.将字符串strl连接到字符串str2中后再复制到字符率str3之后

  C.将字符串str2复制到字符串strl中后再将字符串str3连接到字符串strl之后

  D.将字符串str2连接到字符率strl之后再将字符串strl复制到字符串str3中

  【解析】函数调用strcat(s1,s2)是将s2字符串复制连接到s1字符串之后,使s1字符串变得更长。函数调用strcpy(s1,s2)是将s2字符串复制到s1,使s1字符串的内容与s2字符串的内容相同。函数调用strcat(strcpy(strl,str2) ,str3) 是先执行strcpy(strl,str2),然后再执行strcat(strl,str3),所以其功能是将字符串str2复制到字符串strl中,然后再将字符串str3复制连接到字符串strl之后。正确的选择是C。

  【参考答案】C

  相关推荐:

  2014年软件水平考试《程序员》考试讲义汇总

  2014年软件水平考试程序员考前练习题及答案汇总

  2014计算机软考程序员考试全真模拟题及答案汇总

文章搜索
软件水平考试栏目导航
版权声明:如果软件水平考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本软件水平考试网内容,请注明出处。
Copyright © 2004- 考试吧软件水平考试网 All Rights Reserved 
中国科学院研究生院权威支持(北京) 电 话:010-62168566 传 真:010-62192699