云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 2016年下半年下午 程序员 试题及答案与解析-软考考试真题-案例分析

2016年下半年下午 程序员 试题及答案与解析-软考考试真题-案例分析

  • 62 次阅读
  • 3 次下载
  • 2025/12/7 19:06:57

全国计算机技术与软件专业技术资格(水平)、考试库

china_nejcer

2016年下半年下午 程序员 考试试题-

案例分析-答案与解析

试题一(共15分)

阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】

设有整数数组A[1:N](N>1),其元素有正有负。下面的流程图在该数组中寻找连续排列的若干个元素,使其和达到最大值,并输出其起始下标K、元素个数L以及最大的和值M。

例如,若数组元素依次为3,-6,2,4,-2,3,-1,则输出K=3,L=4,M=7。该流程图中考察了A[1:N]中所有从下标i到下标j(j≥i)的各元素之和S,并动态地记录其最大值M。

【流程图】

注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1,格式为:循环控制变量=初值,终值

2016年下半年下午-程序员-下午试题及答案与解析(软考真题-案例分析) 1 / 16

全国计算机技术与软件专业技术资格(水平)、考试库

china_nejcer

【参考答案】 1、i,N 2、S+A[j] 3、S 4、j-i+1 5、S

【答案解析】

要想在数组中寻找连续排列的若干个元素,使其和达到最大值,并输出其起始下标K、元素个数L以及最大的和值M。

那么,会将数组从第一个元素出发,依次比较A[1],A[1] +A[2],A[1] +A[2]+A[3],……,A[1] +A[2]+…+A[N],然后再比较A[2], A[2] +A[3],A[2] +A[3]+A[4],……,A[2] +A[3]+…+A[N],然后再比较A[3] +A[4],A[3] +A[4]+A[5],……,A[3] +A[4]+…+A[N],直到最后一个元素A[N].

按照这种逻辑,要使用两个循环,且要保存之前求和项。一个是i循环,从1到N递增,另一个是j循环,j表示的是求和项的最大下标值,那么j从i开始,且要小于N。 S+A[j]—>S不断保留A[i]+ A[i+1]+…A[j]的值,直到j循环结束。并将S的值与之前保存的M的值进行比较,如果S>M,则将S的值赋给M,并求出L值,在这里,i是最小下标值,j是最大下标值,那么L=j-i+1。如果S

试题二(共15分)

阅读以下代码,回答问题:1至问题3 ,将解答填入答题纸的对应栏内。 【代码1】

#include void swap(int x, int y) {

int tmp =x; x= y; y= tmp; }

int maim() {

int a= 3, b= 7;

printf(\Swap( a, b);

Printf(\”,a,b); return 0; }

2016年下半年下午-程序员-下午试题及答案与解析(软考真题-案例分析) 2 / 16

全国计算机技术与软件专业技术资格(水平)、考试库

【代码2】 #include

#define SPACE ¨ //空格字符 Int main() {

char str[128] =”Nothing is impossible! “; int i,num =0,wordMark=0;

for(i=0;str[i];i++)

If(str[i]=SPACE)

WordMark=0; else

If(wordMark=0){

wordMark=1; Mun++; }

Printf(“%d/n”,num) retun 0;

}

【代码3】 #include

#define SPACE “//空格字符

int countStrs(char *); int main() {

char str[128] = \Printf(‘%d/n,(1)(str)) retum 0; }

int countStrs(char *p) {

int num=0, wordMark= 0;

for(;(2);p++) {

2016年下半年下午-程序员-下午试题及答案与解析(软考真题-案例分析) china_nejcer

3 / 16

全国计算机技术与软件专业技术资格(水平)、考试库

china_nejcer

If((3)=SPACE)

wordMark= 0; else

if( !wordMark ) {

wordMark = 1; ++num }

} return(4) }

【问题1】(4分)

写出代码1运行后的输出结果。 【参考答案】

a1=3 b1=7 a2=3 b2=7

【问题2】(3分)

写出代码2运行后的输出结果。 【参考答案】 3

【问题3】(8分)

代码3的功能与代码2完全相同,请补充3中的空缺,将解答写入答题纸的对应栏内。 【参考答案】 1、CountStr 2、*p 3、*p 4、num

【答案解析】

此题考查C语言程序设计能力,要求掌握形参与实参,值传递与引用传递的区别 1、 本题考查函数中值传递与引用传递,在实参与形参传递过程中可以是值传递,值传递时,形参的改变不会影响实参,引用传递是地址的传递,实参将地址传递给形参时,形参的改变会影响实参的改变。在本题中的第一次输出a,b变量的值时,结果是直接输出,所以

2016年下半年下午-程序员-下午试题及答案与解析(软考真题-案例分析) 4 / 16

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

全国计算机技术与软件专业技术资格(水平)、考试库 china_nejcer 2016年下半年下午 程序员 考试试题- 案例分析-答案与解析 试题一(共15分) 阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】 设有整数数组A[1:N](N>1),其元素有正有负。下面的流程图在该数组中寻找连续排列的若干个元素,使其和达到最大值,并输出其起始下标K、元素个数L以及最大的和值M。 例如,若数组元素依次为3,-6,2,4,-2,3,-1,则输出K=3,L=4,M=7。该流程图中考察了A[1:N]中所有从下标i到下标j(j≥i)的各元素之和S,并动态地记录其最大值M。 【流程图】 注:循环开始框内应给

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com