[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷27及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷27及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷27及答案与解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 27 及答案与解析 1 阅读以下说明和流程图,将应填入 (n)处的字句写在对应栏内。 【说明】 在一个矩阵中,如果其零元素的个数远远多于其非零元素的个数时,称这样的矩阵为稀疏矩阵。稀疏矩阵通常采用三元组数组表示。每个非零元素用一个三元组来表示,即非零元素的行号、列号和它的值。然后按某种顺序将全部非零元素的三元组存于一个数组中。例如,对于以下二维数组: int x34=1, 0, 0, 0, 0, 5, 0,0), 0, 0, 7, 2; 可用以下数组 a来表示 : int a3=3, 4, 4, 0, 0,1, 1, 1, 5), 2, 2,
2、 7, 2, 3, 2; 其中三元数组 a的第 1行元素的值分别存储稀疏矩阵 的行数、列数和非零元素的个数。 下面的流程图描述了稀疏矩阵转换的过程。 【流程图】 2 阅读以下函数说明和 C语言函数,将应填入 (n)处的字句写在对应栏内。 【程序 2.1说明】 求所有满足如下条件的三位数:它除以 11得的商等于它各位数字的平方和。例如 550,除以 11商为 50, 50=52+52+02。 【程序 2.1】 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) pri
3、ntf(“%dt“,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(“%sn“,s); 3 阅读以下说明和 C语言程序,将应填入 (n)处的字句写在对应栏内。 【说明】 设有 3n+2个球互连,将自然数 1 3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列 1, 2, , 3n+1中的各数,如下图所示: 其中填自然数的思想如下; (1)先自左向右,第 1列中
4、间 1个填数,然后第 2列上、下 2个填数,每次 2列;但若 n为偶数,最后 1次 只排第 1列中间一个数。 (2)自右向左,先右第 1列中间填数;若 n是奇数,再右第 2列中间填数。然后依次右第 1列上、下 2个填数,再右第 2列中间 1个填数,直到左第 2列为止。 【程序】 #include stdio.h #define size 10 int a3size; void main() int i,k,m,n; printf(“imput the n:“); scanf(“%d“, k=1; for(i=0; i =n/2; i+) a12*i=k; k+; if(i=n/2) k+; (
5、2) k+; if(n%2=1) (3) k+; m=n; else (4) for(i=0; i n/2; i+) a1m-2*i=k; k+; (5) k+; a2m-2*i-1=k; k+; a11=k; printf(“n“); printf(“ “); for(i=1; i =n; i+) printf(“%6d“,a0i); printf(“nn“); for(i=0; i =n+1; i+) printf(“%6d“,a1i); printf(“nn“); printf(“ “); for(i=1; i =n; i+) printf(“%6d“,a2i); printf(“n“)
6、; 4 阅读以下说明和 C语言程序,将应填入 (n)处的字句写在对应栏内。 【说明】 计算 n的合数。一个整数 n可以有多种划分,使其划分的一列整数之和为 n。例如,整数 5的划分为: 5 4 1 3 2 3 1 1 2 2 1 2 1 1 1 1 1 1 1 1 共有 7种划分。这种划分的程序如下所示。 【程序】 #include stdio.h int n1000,m,k; void output sum() int j; for(j=0;nj!=0;j+) printf(“%dt“,nj); printf(“n“); void sum(int i) if(m-ni ni) m=m-ni;
7、 (1) i+; ni+1=0; else (2) m-=ni; i+; if(m!=ni) sum(i); else output_sum(); if(ni 1) ni-; (3) else while(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; 5 阅读以下说明和 C+程序,将应填入 (n)处的字句写在对应栏内。 【说明】 字符串在程序设计中扮演着重要角色。现需要设计字符串基类
8、string,包含设置字 符串、返回字符串长度及内容等功能。另有一个具有编辑功能的串类edlt_string,派生于 string,在其中设置一个光标,使其能支持在光标处的插入、删除操作。 【程序】 #include iostream.h #include stdio.h #include string.h class string int length; char *data; public: int get_length() return length; char *get_data() return data; string() delete data; int set data(int
9、 in_length, char *in_data); int set_data(char *data); void print() cout data endl; ; class edit_string: public string int cursor; public: int get_cursor() return cursor; void move_cursor(int dis) cursor=dis; int add_data(string *new_data); void delete_data(int num); ; int string:set_data(int in_leng
10、th,char *in_data) length=in_length; if(!data) delete data; (1) strcpy(data,in_data); return length; int string:set data(char *in_data) (2) if(!data) delete data; (1) strcpy(data,in_data); return length; int edit_string:add_data(string *new_data) int n,k,m; char *cp,*pt; n=new_data- get_length(); pt=
11、new_data- get_data(); cp=this- get_data(); m=this- get_length(); char *news=new charn+m+1; for(int i=0; i cursor; i+) newsi=cpi; k=i; for(int j=0; j n; i+,j+) newsi=ptj; cursor=i; for(j=k; j m; j+,i+) (3) newsi=0; (4) delete news; return cursor; void edit string:delete_data( int num) int m; char *cp
12、; cp=this- get_data(); m=this- get_length(); for(int i=cursor; i m; i+) (5) cpi=0; 6 阅读以下说明和 Java代码,将应填入 (n)处的语句写在对应栏内。 【说明】 进行两个整数之间的比较,由考生通过输入窗口分别输入两个整数,程序比较出结果。例如:先后输入的两个数分别为 25和 36。 比较结果显示: 25!=36 25 36 25 =36 【 Java代码】 import javax.swing.JOptionPane; public class Java3 public static void main(S
13、tring args) String (1) / 用户输入第 1个字符串 secondNumber, / 用户输入第 2个字符串 result; / 包含输出 int number1, / 比较的第 1个数 number2; / 比较的第 2个数 / 用户输入的第 1个 字符串 firstNumber = JOptionPane. (2) (“Enter first integer:“); /读用户输入的第 2个字符串 secondNumber = JOptionPane.showlnputDialog(“Enter second integer:“); 将字符串类型转换成整数类型 numbe
14、r1= Integer. (3) (firstNumber); number2= Integer.parselnt(secondNumber); result= “: if (4) result=number1+“=“+number2; if (number1 != number2) result=number1+“!=“+number2; if (number1 number2) result=result+“n“+number1+“ “+ number2; if (number1 number2) result=result+“n“+number1+“ “+number2; if (num
15、ber1 =number2) result=result+“n“+number1+“ =“+number2; if (numbed =number2) result=result+“n“+number1+“ =“+number2; /显示结果 JOptionPane.(5).( null, result, “Comparison Results“, JOptionPane. INFORMATION_MESSAGE); /程序正常退出 System.exit(0); 软件水平考试(初级)程序员下午(应用技术)模拟试卷 27 答案与解析 1 【正确答案】 (1)a02=W; (2)xij0; (3
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 27 答案 解析 DOC
