2004上半年程序员考试真题及答案-下午卷.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2004上半年程序员考试真题及答案-下午卷.doc》由会员分享,可在线阅读,更多相关《2004上半年程序员考试真题及答案-下午卷.doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2004上半年程序员考试真题及答案-下午卷试题一是必答题试题一阅读下列说明、流程图和算法,将应填入_(n)_处的字句写在答题纸的对应栏内流程图说明下面的流程图用NS盒图形式描述了数组A中的元素被划分的过程其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动当划分结束时,基准数定位于Ai,并且数组中下标小于i的元素的值均小于基准数,下标大子i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:流程图算法说明将上述划分的思想进一步用于被划分出
2、的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A,int low,int high)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A,iht L,int H)的功能是实现数组A中元素的递增排序。算法void sort(int A,iht l,int H)if ( L H ) k=p(A,L,R);/p()返回基准数在数组A中的下标sort(_ (4)_; /小于基准数的元素排序sortl_ (5)_);/大于基准数的元素排序 从下列的2道试题(试题二至试题三)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效
3、。试题二阅读下列函数说明和C函数,将应填入_(n)_处的字句写在答题纸的对应栏内。函数2.1说明函数palindrome(chars)的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。函数2.1int palindrome(char S) char*pi,*pj;piS;pjs+strlen(S)-1:while ( pipj & _(1)_)pi+; pj-;if(_ (2)_)return-1;else return 0;函数2.2说明函数f(char *st
4、r,char del)的功能是;将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。例如若str的值为“33123333435”,del的值为3,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。函数2.2void f(char*str,char del) int i,j,len;len = strlen(str);i = 0;while(ielem = (int *)matloc(n * sizeof(int);if (S-elem = NULL) return -1;S-max = n;_(1)_= 0;return 0;int Push(Stack*
5、S,int item)/* 将整数item压入栈顶 */ if(S-top = S-max) printf(Stack is full!n);return -1;_(2)_;item;return 0;int StackEmpty(Stack S) return(!S.top) ? 1;0;)/* 判断栈是否为空 */int Pop(Stack*S)/* 栈顶元素出栈 */ if (!S-top) printf(Pop an empty stack!n);return -1;)return _(3)_;void MultibaseOutput(long n,int B) int m;Stack
6、 S;if (init Stack(&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(Kd,m);/* 小于10,输出数字 */else printf(%c,m + 55); /* 大于或等于10,输出相应的字符 */printf(n); 试题五阅读以下应用说明及Visual Basic程序代码,将应填
7、入_(n)_处的字句写在答题纸的对应栏内。应用说明5.1本应用程序的窗体中有一个下拉式列表框(名称为Combol)和两个文本框(名称分别为Txtl和Txt2)。运行时,用户从Combol的列表中进行选择,程序就会将选中条目的内容以及编号(从0开始)分别在文本框 Txt1 和 Txt2 中显示出来。程序代码5.1Private Sub Combol_C1ick()Txtl.Text = Combol._(1)_Txt2.Text = Combol._(2)_End Sub(注:可供(2)处选择的选项:List,Index,Listlndex,ListCount,Number)应用说明5.2本应用
8、程序的运行窗口如下图所示: 当用户在输入框(名为Txtln)中输入数值数据,并从下拉式列表框(名为CmbOp)中选择所需的运算后,输出框(名为TxtOut)中就会显示运算的结果。用户单击“清除”按钮(名为CmdClear)后,输入框和输出框都清空。开发该应用的部分程序代码如下:程序代码5.2Private Sub CmbOp_Click()Dim DataIn As Double,DataOut as DoubleDataIn = _(3)_Select Case _(4)_Case 取整数部分DataOut = Int(Dataln)Case 求平方根If Dataln next | !Lb
9、-next | lennext; prep = La;while (p & p-key != keyl)/* 查找表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-key != key2)/* 查找表B中键值为key2的结点
10、 */pres = s; s = s-next;if (!s)return -1;/* 表B中不存在键值为key2的结点 */_(4)_q-next;/* 将表A中的len个结点删除 */q-next:_(5)_pres-next = p;/* 将len个结点移至表B */return 0; 试题七阅读以下应用说明、属性设置及VisualBasic程序代码,将应填入_(n)_处的字句写在答题纸的对应栏内。应用说明7本应用程序的运行窗口如下图所示: 只要用户单击“闪烁”按钮,文字“欢迎光临”就会以0.3秒消失、0.3秒显示反复进行闪烁;单击“停止”按钮时,闪烁停止,恢复图示的初态。在开发过程中,
11、需要设置的属性如下:属性设置7 对象对象名属性名属性值窗体Frm1Caption闪烁显示演示标签Labe1Caption欢迎光临命令按钮CmdFCaption闪烁命令按钮CmdTCaption停止定时器Timer1Enabled_(1)_Interval_(2)_在开发过程中,需要编写的程序代码如下;程序代码7Private Sub CmdF Click()Timerl._(3)_ = TrueLabel.Visible = FalseEnd SubPrivate Sub Timerl_ Timer()_(4)_ = not Label.VisibleEnd SubPrivate Sub Cm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2004 上半年 程序员 考试 答案 下午
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内