《专项程序员考试专题测练习题及答案-下午卷(考练园地)》由会员分享,可在线阅读,更多相关《专项程序员考试专题测练习题及答案-下午卷(考练园地)(12页珍藏版)》请在金锄头文库上搜索。
1、温故而知新,下笔如有神近2上半年程序员考试专项习题训练及答案-下午卷试题一是必答题试题一阅读下列说明、流程图和算法,将应填入_(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
3、道,则题号小的1道解答有效。试题二阅读下列函数说明和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说
4、明函数f(char *str,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;in
5、t Push(Stack*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
6、) int m;Stack 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
7、Basic程序代码,将应填入_(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,Numb
8、er)应用说明5.2本应用程序的运行窗口如下图所示: 当用户在输入框(名为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-next | lennext; prep = La;while (p & p-key != keyl)/* 查找表A中键值为key1的结点 */prep = p; p = p-nex