[计算机类试卷]2004年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc
《[计算机类试卷]2004年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2004年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc(8页珍藏版)》请在麦多课文档分享上搜索。
1、2004年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析 1 阅读下列说明、流程图和算法,将应填入 _处。 流程图说明 下面的流程图用 N-S盒图形式描述了数组 A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,大于基准数的元素向高下标端移动。当划分结束时,基准数定位于 Ai,并且数组中下标小于 i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组 A的下界为 low,上界为 high,数组中的元素互不相同。例 如,对数组 (4, 2, 8, 3, 6),以 4为基准数的划分过程如下: 流程图 算法说
2、明 将上述划分的思想进一步用于被划分出的数组的 2部分,就可以对整个数组实现递增排序。设函数 int p(intA, int low, int high)实现了上述流程图的划分过程并返回基准数在数组 A中的下标。递归函数 void sort(int A, int L, int H)的功能是实现数组 A中元素的递增排序。 算法 void sort(int A, int L, int H) if(L H) k=p(A, L, H); /*p()返回基准数所在数组 A中的下标 */ sort( (4) ); /*小于基准数的元素排序 */ sort( (5) ); /*大于基准数的元素排序 */ ;
3、 2 阅读下列函数说明和 C函数,将应填入 _处的语句写在答题纸的对应栏内。 函数 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 pj& (1) ) pi+; pj-; if( (2) ) return-1; else return 0; 函数
4、 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+; /* 忽略连续的标志字符 */ /* 寻找从 stri开始直到标志字符出现的一个子字符串 */
5、 j i+1; while(strj!=del &strj!0)j+; (4) =0; /* 给找到的字符序列置字符串结束标志 */ printf(“%st“, &stri); (5); 3 阅读下列函数说明和 C函数,将应填入 _处的语句写在答题纸的对应栏内。 函数 6说明 函数 DelA_InsB(LinkedList La, LinkedList Lb, int key1, int key2, int len)的功能是:将线性表 A中关键码为 key1 的结点开始的 len个结点,按原顺序移至线性表 B中关键码为 key2的结点之前,若移动成功,则返回 0;否则返回 -1。线性表的存储结
6、构为带头结点的单链 表,La为表 A的头指针, Lb为表 B的头指针。单链表结点的类型定义为: typedef struct node int key; struct node * next; * LinkedList; 函数 6 int DelA InsB(LinkedList La, LinkedList Lb, int key1, int key2, int len) LinkedListp, q, s, prep, pres; int k; if(! La- next! Lb- next- nextlen 0)return 1; p=La- next; prep=La; while(p
7、&p- key!=key1) / * 查找表 A中键值为 key1的结点 * / prep=p; p=p- next; if(! p)return -1; / * 表 A中不存在键值为 key1 的结点 * / q p; k=1; while(q& (1) ) / * 在表 A中找出待删除的 len个结点 * / (2); k+; if(! q)return-1: / * 表 A中不存在要被删除的 len个结点 * / s=Lb- next; (3); while(s s & s- key!=key2) / * 查找表 B中键值为 key2的结点 * / pres=s; s=s- next;
8、if(! s)return-1; / * 表 B中不存在键值为 key2的结点 * / (4)=q- next; / * 将表 A中的 len个结点删除 * / q- next=(5); pres- next=p; / * 将 len个结点移至表 B * / return 0; 4 阅读以下说明和 C程序代码,将应填入 _处的语句写在答题纸的对应栏内。 说明 函数 MultibaseOutput(long n, int B)的功能是:将一个无符号十进制整数 n转换成 B(2B16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把 B进制数从栈中输出。有关栈操作的诸函数功能见
9、相应函数中的注释。 C代码中的符号常量及栈的类型定义如下: # define MAXSIZE 32 typedef struct int * elem; /* 栈的存储区 */ int max; /* 栈的容量,即栈中最多能存放的元素个数 */ int top; /* 栈顶指针 */ Stack; C代码 int InitStack(Stack * S, int n) / * 创建容量为 n的空栈 */ S- elem=(int *)malloc(n * sizeof(int); if(S- elem=NULL)return-1; S- max=n; (1)=O; return 0; int
10、Push(Stack * S, int item) / * 将整数 item压入栈顶 * / if(S- top=S- max) printf(“Stack is full! n”); return-1; (2)=item; return 0; int StackEmpty(StackS) return (! S.top)? 1: 0; / * 判断栈是否为空 * / int Pop(Stack *S ) / * 栈顶元素出栈 * / if(! S- top)printf(“Pop an empty stack! n”); return-1; return (3); void Multibas
11、eOutput(long n, int B) int m; StackS; if (InitStack(&S, MAXSIZE)printf(“Failure! n”); return; do if(Push(&S, (4) )printf(“Failure! n”); return; n=(5); while(n!=0); while(! StackEmpty(S) / * 输出 B进制的数 * / m=Pop(&S); if(m 10)printf(“%d”, m); / * 小于 10,输出数字 * / else printf(“%c”, m+55); / * 大于或等于 10,输出相应
12、的字符 * / printf(“n”); 5 阅读以下应用说明及 Visual Basic程序代码,将应真入 _处的语句写在答题纸的对应栏内。 应用说明 5.1 应用程序的窗体中有 1个下拉式列表框 (名称为 Combol)和 2个文本框 (名称分别为 Txt1和 Txt2)。运行时,用户从 Combo1 的列表中进行选择,程序就会将选中条目的内容及编号 (从 0开始 )分别在文本框 Txt1和 Txt2中显示出来。 程序代码 5.1 Private Sub Combol_Click() Txt1, Text=Combol. (1) Txt2 Text=Combol. (2) End Sub
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2004 上半年 软件 水平 考试 初级 程序员 下午 应用技术 试题 答案 解析 DOC

链接地址:http://www.mydoc123.com/p-492461.html