2019年上半年程序员考试应用技术下午真题.docVIP

2019年上半年程序员考试应用技术下午真题.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2019年上半年程序员考试应用技术下午真题 (总分:95.00,做题时间:150分钟) 一、案例分析题(总题数:6,分数:95.00) 1.【说明】 如果n位数(n≥2)是回文数(从左到右读与从右到左读所得结果一致),且前半部分的数字递增(非减)、后半部分的数字将递减(非增),则称该数为拱形回文数。例如, 12235753221就是一个拱形回文数。显然,拱形回文数中不含数字0。 下面的流程图用于判断给定的n位数(各位数字依次存放在数组的各个元素A[i]中,i=1,2, ...,n)是不是拱形回文数。流程图中,变量T动态地存放当前位之前一位的数字。当n是奇数时,还需要特别注意中间一位数字的处理。 【流程图】 注1: “循环开始”框内给出循环控制变量的初值、终值和增值(默认为1),格式为: 循环控制变量=初值,终值[,增值] 注2: 函数int(x)为取x的整数部分,即不超过x的最大整数。 阅读上述说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。(分数:20.00) __________________________________________________________________________________________ 正确答案:( (1)n-i+1 (2)TA[i]!=0或 TA[i]0 (3)T (4)n (5)T或A[n/2]或A[(n-1)/2] ) 解析: 1)跟A[i]对称的后半部分元素下标是n-i+1; 2)T动态地存放当前位之前一位的数字,所以这里A[i]大于前一项T值。且在拱形回文数中,不含数字0,所以再加上一个条件A[i]!=0 3)比较完后,将A[i]值赋给T,T进行动态地存放当前位之前一位的数字。 4、5)判断元素个数是偶数还是奇数,如果是奇数,则还需要进行判断最中间的元素,所以4空这里填n,5空填的是为奇数个时最中间元素的前一项元素的表示。 2.【说明】 函数bubbleSort(int arr[], int n, int (*compare)(int,int))的功能是根据调用时传递的比较函数compare对数组arr的前n个元素进行排序。 【C代码】 #define swap(a, b) { a = a^b; b = a^b; a = a^b;} //交换a与b的值 int less(int x,int y) { return ((xy) ? 1 : 0); } int larger(int x, int y) { return ((xy) ? 1 : 0); } void bubbleSort(int arr[ ], int n, int (*compare)(int,int)) { int i,j; int swapped = 1; for( i=0; swapped; i++) { swapped = 0; for(j=0; jn-l-i; j++) if ( compare( arr[j+1], arr[j])) { swap( arr[j+1], arr[j]); swapped =1; } } } ?阅读以下说明和C代码,回答问题,将解答写入答题纸的对应栏内。 设有如下数组定义: int data1[ ] = {4, 2, 6, 3, 1}; int data2[ ] = {4, 2, 6, 3, 1}; int data3[ ] = {4, 2, 6, 3, 1}; 请分别给出下面的函数调用执行后,数组data1、data2和data3各自的元素序列。 (1)bubbleSort(data1, 5, less); (2) bubbleSort(data2, 5, larger); (3) bubbleSort(data3, 3, larger);(分数:15.00) __________________________________________________________________________________________ 正确答案:( (1){1,2,3,4,6} (2){6,4,3,2,1} (3){6,4,2,3,1} ) 解析: swap函数是将两元素值进行相互交换。 less函数是判断x和y的关系,如果x?large函数是判断x和y的关系,如果xy,则函数值为真。 在bubbleSort函数中,第二个参数表示进行比较元素的个数,第三个参数表示进行排序的方式,如果传入less函数,则是从小到大排序;如果传入large函数,则是从大到小排序。 3.【说明】 某市根据每天早上5点测得的雾霾指数(pm2.5值)决定是否对车辆进行限行。规则如下: (1)限行时间为周内(即周一到周五),周六周日不限行; (2)根据车牌号的尾

文档评论(0)

vipguyue + 关注
实名认证
文档贡献者

专注分享

1亿VIP精品文档

相关文档