[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷6及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷6及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷6及答案与解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 6及答案与解析 1 阅读下列函数说明和 C函数,将应填入 (n)处的字句写在对应栏内。 【函数 2.1说明】 函数 palindrome(char s)的功能是,判断字符串 s是否为回文字符串,若是,则返回 0,否则返回 -1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如: “LEVEL”是回文字符串,而 “LEVAL”不是。 【函数 2.1】 int palindrome( char s ) char * pi, * pj; pi=s; pj=s+strlen(s)-1; while( pi pjpj - if(2)retu
2、rn -1; else return 0; 【函数 2.2说明】 函数 f(char * str, char del)的功能是:将非空字符串 str分割成若干个子字符串并输出, del表示分割时的标志字符。 例如若 str的值为 “33123333435”, del的 值为 “3”,调用此函数后,将输出 3个子字符串,分别为 “12”、 “4”和 “5”。 【函数 2.2】 void f( char * str, char del) int i ,j ,len; len = strlen (str) i=0; while(i len) while(3)i+; /*忽略连续的标志字符 */ /*
3、寻找从 stri开始直到标志字符出现的一个子字符串 */ j=i+1; while(strj != del /*给找到的字符序列置字符串结束标志 */ printf(“%st“, (5); 2 阅读下列函数说明和 C代码,将应填入 (n)处的字句写在对应栏内。 【说明】 设有一个带表头结点的双向循环链表 L,每个结点有 4个数据成员:指向前驱结点的 指针 prior、指向后继结点的指针 next、存放数据的成员 data和访问频度freq。所有结点的 freq初始时都为 0。每当在链表上进行一次 L.Locate(x)操作时,令元素值 x的结点的访问频度 freq加 1,并将该结点前移,链接到
4、现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。 【函数】 void Locate( int while(p!=frist if(p! =first) /*链表中存在 x*/ (2); 结点类型说明 * current = P; /*从链表中摘下这个结点 */ Current - prior - next = current - next; Current - next - prior = current - prior; P = current - prior; /*寻找重新插入的位置 */ While(p! =first Cur
5、rent- next =(4); /*插入在 P之后 *? Current - prior = P; P - next - prior = current; P- next=(5); else printf(“Sorry. Not find! n“); /*没找到 */ 3 阅读下列函数说明和 C代码,将应填入 (n)处的字句写在对应栏内。 【说明】 函数 QuickSort是在一维数组 An上进行快速排序的递归算法。 【函数】 void QuickSort( int A ,int s,int t) int i=s,j=t+1,temp; int x=As; do do i + ;while
6、(1); do j - ;while(Aj x); if(i j)temp=Ai;(2);(3); while(i j); Aa =Aj;Aj =x; if(s i-1) (4); if(j+1 t) (5); 4 阅读以下程序说明和 C程序,将应填入 (n)处的子句,写在对应栏内。 【程序说明】 函数 int commstr(char * str1, char * str2, int * sublen)从两已知字符串 str1和 str2中,找出它们的所有最长的公共子串。如果最长公共子串不止 1个,函数将把它们全部找出并输出。约定空串不作为公共子串。 函数将最长公共子串的长度送入由参数 su
7、blen所指的变量中,并返回字符串 str1和 str2的最长公共子串的个数。如果字符串 str1和 str2没有公共子串,约定最长公共子串的个数和最长公共子串的长度均为 0。 【程序】 int strlen(char * s) char *t=s; while( * +); return t-s-1; int commstr(char) *str1,char *str2,int *sublen char*s1, *s2; int count=0,len1 ,len2,k,j,i,p; len1:=strlen(str1) len2 = strlen(str2); if(len1 len2)
8、s1=str1 ;s2=str2; else len2 = len1;s1 = str2;s2 = str1; for(j=len2;j 0;j-) /*从可能最长子串开始寻找 */ for(k=0;(1) :len2;k+) /*k为子串 s2的开始位置 */ for(i=0;s1(2)!=0;i+;) /*i为子串 s1的开始位置 */ /*s1的子串与 s2的子串比较 */ for (p=0;p j)p+); if (4) /*如果两子串相同 */ for(p=0);p j;p+ /*输出子串 */ printf (“%c“,s2k+p); printf (“n“); count+;/*
9、计数增 1 */ if (count 0) break; *sublen=(count 0)?(5):0; return count; 5 阅读以下说明及 Visual Basic 程序代码,将应填入 (n)处的字句写在对应栏内。 说明 本程序求 3 100之间的所有素数 (质数 )并统计个数;同 时将这些素数从小到大依次写入顺序文件 E: dataout.txt;素数的个数显示在窗体 Form1上。 Visual Basic 代码 Private Sub Command1_ Click ( ) Dim count as integer, flag as Boolean Dim t1 as I
10、nteger, t2 as Integer (1) Count=0 For t1=3 to 100 Flag=Tree For t2=2 to Int( Sqr ( t1 ) ) If (2) Then flag=False Next t2 (3) count=(4) write #1, t1 End if Next t1 (5) Close #1 End Sub 6 阅读以下说明及 Visual Basic 程序代码,将应填入 (n)处的字句写在对应栏内。 说明 以下是一账号和密码输入的检 验程序。对输入的账号和密码规定如下所述。 (1)账号为不超过 6位的数字,密码为 4位字符,在本题中,
11、密码假定为 “Pass”。 (2)密码输入时在屏幕上不显示输入的字符,而以 “*”代替。 (3)当输入不正确,如账号为非数字字符或密码不正确时,显示有关信息。 (4)当输入正确时,关闭密码窗口,显示记事本窗口。 按要求完成有关控件的其他属性的设置,编写确定按钮的单击事件过程。相关界面如下: (可能要用到的单词: MultiLlne, ScrollBars, PasswordChar,MaxLength)密码窗口 frmPass控件设置如下表所示。 记事本窗口 frmNotepad 控件设置如下表所示。 在密码窗口的属性窗口,对密码文本框设置属性 MuniLine 为 False。 Visual
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 答案 解析 DOC
