【计算机类职业资格】初级程序员下午试题-48及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-48及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-48及答案解析.doc(11页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-48 及答案解析(总分:90.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)1.【说明】计算三角函数 sinx给定精度 e和 n,若第 k步后的结果为 sin1,第 k+1步后的结果为 sin2,若|sin1sin2|e,则返回sin1的值。若没有达到精度 e,但是步骤达到 n步,则返回第 n步后的值。其流程图如下所示:(分数:15.00)_二、试题二(总题数:1,分数:15.00)2.【程序 2.1说明】求所有满足如下条件的三位数:它除以 11得的商等于它各位数字的平方和。例如 550,除以 11商为50,50=5 2+52+02。【程序 2.1】
2、void main()int i, j,n,s;for(i=100;i=999;i+)n=i;j=n/11;s=0;while( (1) )(2) n/=10;if( (3) )printf(“%d/t“,i);【程序 2.2说明】本程序输入一字符串,将其中的大写字母改变成小写字母。【程序 2.2】void main()int i=0;char s120;scanf(“%s“,s);while( (4) )if( (5) )si=si- A+a;i+;printf(“%s/n“,s);(分数:15.00)_三、试题三(总题数:1,分数:15.00)3.【说明】设有 3n+2个球互连,将自然数
3、13n+2 分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,3n+1 中的各数,如下图所示:(分数:15.00)_四、试题四(总题数:1,分数:15.00)4.【说明】计算 n的合数。一个整数 n可以有多种划分,使其划分的一列整数之和为 n。例如,整数 5的划分为:54 13 23 1 12 2 12 1 1 11 1 1 1 1共有 7种划分。这种划分的程序如下所示。【程序】#include stdio.hint n1000,m,k; void output sum()int j;for(j=0;nj!=0;j+)printf(“%d/t“,nj);printf(“/n“);
4、void sum(int i)if(m-nini)m=m-ni;(1) i+;ni+1=0;else(2) m-=ni;i+;if(m!=ni)sum(i);elseoutput_sum();if(ni1)ni-;(3) elsewhile(ni=1)(4) if(i!=0)(5) sum(i);void main()int i;scanf(“%d“,m=k=n0;for(i=1;i=k;i+)ni=0;while(n0!=1)n0-;i=0;sum(0);m=k;(分数:15.00)_五、试题五(总题数:1,分数:15.00)5.【说明】本程序用于评选优秀教师和学生。当输入一系列教师或学生的
5、记录后,将优秀学生及教师的姓名列出来。其类结构如下图所示:(分数:15.00)_六、试题六(总题数:1,分数:15.00)6.【说明】本程序输出 10000之内的所有完全数。完全数是指等于其所有因子和(包括 1,但不包括这个数本身)的数。例如:6=123,6=1+2+3,则 6是一个完全数。【程序】public class PerfectNumPublic static void main(String args)int count=1;for(int i=1; i10000; i+)int y=0;for(int j=1; ji; j+)if( (1) )y= (2) if( (3) )Sy
6、stem.out.print( (4) +String.valueOf(/t);(5) If(count%3=0)System.out.printin();(分数:15.00)_初级程序员下午试题-48 答案解析(总分:90.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)1.【说明】计算三角函数 sinx给定精度 e和 n,若第 k步后的结果为 sin1,第 k+1步后的结果为 sin2,若|sin1sin2|e,则返回sin1的值。若没有达到精度 e,但是步骤达到 n步,则返回第 n步后的值。其流程图如下所示:(分数:15.00)_正确答案:(1)i=n for(i=
7、100;i=999;i+)n=i;j=n/11;s=0;while( (1) )(2) n/=10;if( (3) )printf(“%d/t“,i);【程序 2.2说明】本程序输入一字符串,将其中的大写字母改变成小写字母。【程序 2.2】void main()int i=0;char s120;scanf(“%s“,s);while( (4) )if( (5) )si=si- A+a;i+;printf(“%s/n“,s);(分数:15.00)_正确答案:(1)n (2)s=s+(n%10)*(n%10); (3)j=s(4)si (5)si=A (3)a1n+1=k;(4)m=n+1; (
8、5)a0m-2*i-1=k;)解析:分析本题考查 C语言中具体算法的实现。题目中要求将 3n+2个球互连,并用自然数 13n+2 分别为这些球编号,使相连的两球编号之差的绝对值正好是数列 1,2,3n+1 中的各数。题目中还给出了具体的填自然数的思想。我们要完成的工作就是用 C语言描述出题目中给出的思想。首先我们需要对其思想有个正确的认识,这是关键所在。下面,我们来分析代码。结合整段程序代码,我们可以分析出,二维数组 a用来存放我们要填的数字,第一维表示行数,总行数应该是 3。第二维表示列数,总列数应该是 n+2。其中的第(1)空所在的位置是表示一个条件判断语句的条件,在这之前已经对第 1列的
9、中间 1个进行了填数,那么根据“先自左向右,第 1列中间 1个填数,然后第 2列上、下 2个填数,每次 2列”的思想,再结合下面的填数程序语句,我们可以知道,此语句就是用来实现在先第 1列中间 1个填数后,对第 2列上、下 2个进行填数,每次 2列这个思想的。因此,第(2)空的答案就出来了,是对第 2列下(第 3行)进行填数,因此,答案为“a22*i+1=k”。因为条件判断语句下面是进行了 2次填数,因此可以判断 n应该是个奇数,因为若 n为偶数,最后1次只排第 1列中间一个数,就不需要这个操作了。因此,第(1)空的作用应该是用来判断 n是奇数,所以此空答案为 (n%2=1)。第(3)空所在的
10、位置在条件 n%2=1成立的情况下才执行,条件 n%2=1成立表明 n 是奇数,根据若 n是奇数,再右第 2列中间填数的思想,我们可以知道,此处应该是对右第 2列中间填数,因此,答案为 a1n+1=k。第(4)空所在的位置是条件 n%2=1不成立的情况下才执行,在上面我们知道 n%2=1 是用来判断 n是否为奇数,如果 n不是奇数,我们不做什么,但为了方便后面的操作,应该将 n+1的值保存起来,因此,此空的答案为 m=n+1。根据思想:若 n是奇数,再右第 2列中间填数。然后依次右第 1列上、下 2个填数,再右第 2列中间 1个填数,直到左第 2列为止。在前面程序中,我们已经完成了前面部分,第
11、(5)空所在的循环体就是用来完成后面部分的,在循环体中已经实现了对中、下进行填数,缺一个对上进行填数的代码,因此,第(5)空要完成的任务就是对上行进行填数,因此,答案为 a0m-2*i-1=k。四、试题四(总题数:1,分数:15.00)4.【说明】计算 n的合数。一个整数 n可以有多种划分,使其划分的一列整数之和为 n。例如,整数 5的划分为:54 13 23 1 12 2 12 1 1 11 1 1 1 1共有 7种划分。这种划分的程序如下所示。【程序】#include stdio.hint n1000,m,k; void output sum()int j;for(j=0;nj!=0;j+
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 48 答案 解析 DOC
