第1题:
●试题四
请补充函数fun(),该函数的功能是将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入"Are you come from Sichuan?",则输入"are you come from sichuan?"。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char *fun(char tt[])
{
int i;
for(i=0;tt[i];i++)
{
if((tt[i]>=′A′)&&( (1) ))
(2) ;
}
return ( (3) ) ;
}
main()
{
char tt[81];
printf("\nPlease enter a string:");
gets(tt);
printf("\nThe result string is: \n%s",
fun(tt));
}
●试题四
【答案】(1)p && p->data !=e 或 p && (*p).data !=e(2)p->Lchild 或 (*p).Lchild
(3)s->Rchild 或 (*s).Rchild(4)p->Lchild 或 (*p).Lchild
(5)p==pp->Lchild 或 p (*pp).Lchild
【解析】(1)程序的第一条语句是变量的声明及赋初值,p指向二叉查找树的根。接下来从while循环的注释部分可以看出,该循环的功能是查找键值为e的结点。当循环的判断条件e<p->data时,进入左子树查找,否则到右子树查找。程序中没有关于找到结点的处理代码,即循环内部只处理了没找到结点的情况,所以循环条件应该是当找到键值为e的结点时退出循环。另外,应注意一个隐含的限制条件"p=NULL"时,表示已经查找完毕,无需进入循环。通过分析,(1)应填p && p->data!=e。(2)if程序段是处理第三种情况的,由循环中的语句"s=s->Rchild;"可看出,s用于要删结点的左子树中查找键值最大的结点,所以s的初值应是要删除结点的左子结点。可见,(2)应填写p->Lchild。(3)根据前面所述的二叉树规则可知,要找的结点s应是左子树中查找键值最大的结点,所以s的初值应是要删除结点的左子结点。可见,(3)应填p->Rchild。本题把①、②结合在一起进行处理,所以引入了一个中间变量c,用c来存储用于替换p的结点。现在的关键问题是什么条件可以使这两种情况和在一起,因为若删除的结点为叶子结点时,p->Rchild与p->Lchild都为NULL;若删除的结点有一个子结点时,如果有左子结点,则p->Rchild为p->Rchild;如果有右子结点,则p->Lchild为NULL。当p->Lchild不为NULL时,说明是第二种情况,p结点含左子结点,所以c=p->Lchild;当p->Lchild为NULL时,说明有两种可能:
第一:p->Rchild也为NULL,则p是叶子结点。
第二:p->Rchild不为NULL,则p是有右子结点的结点。
这两种情况都可以用c=p->Rchild,因为当p是叶子结点的时候用NULL代替p的位置即可,所以第(4)应填p->Lchild。在程序中很多地方都出现了变量pp,其实只要仔细看一下前面的程序就知道,pp一直指向的是p结点的前一个结点,即p的父结点,所以(5)的作用是判断p是其父结点的左子结点还是右子结点,(5)应填pp->Lchild=p。
第2题:
公务员面试题有一道题“最难忘的一件事”,怎么回答
这是属于自我认知类的题目,考官不会很在意你哪件事难忘,崇拜哪个人等,而是要通过你的回答,考察你的世界观、人生观、价值观以及个人爱好、性格、特长的载体。考察你对某个观点或者哲理的看法,检测考生的个性特点是否符合担任公务员。这种题目没什么正确答案,你自己编好就行。
答题要点
1说出令你难忘的事情,鲜明地说出自己难忘的缘由。
2谈具体的事件经过,要说的简明扼要
3谈时间给你的影响,启示,帮助
第3题:
试题8
以下程序运行后的输出结果是_____。
#include <stdio.h>
main()
{ int i, j;
for(i=6; i>3; i--) j=i;
printf(“%d%d\n”,i, j );
}
第4题:
第5题:
第6题:
第7题:
第8题:
层次属性反映试题所考查的是哪些鉴定要素,刻划了一道试题所考查内容的目标
第9题:
参加考试的共80人,一道题目中答对的20人,该试题难度()。
第10题:
简答式试题属于试题类型的选答型试题。
第11题:
仅仅Ⅰ
仅仅Ⅱ
仅仅Ⅲ
仅仅Ⅰ和Ⅲ
第12题:
第13题:
A. 0.83
B. 0.58
C. 0.50
D. 0.32
第14题:
试题四(共15 分)
阅读下列说明和C代码,回答问题 1 至问题3,将解答写在答题纸的对应栏内。
【说明】
某应用中需要对100000 个整数元素进行排序,每个元素的取值在 0~5 之间。排序算法的基本思想是:对每一个元素 x,确定小于等于 x的元素个数(记为m),将 x放在输出元素序列的第m 个位置。对于元素值重复的情况,依次放入第 m-l、m-2、…个位置。例如,如果元素值小于等于4 的元素个数有 10 个,其中元素值等于 4 的元素个数有3个,则 4 应该在输出元素序列的第10 个位置、第 9 个位置和第8 个位置上。
算法具体的步骤为:
步骤1:统计每个元素值的个数。
步骤2:统计小于等于每个元素值的个数。
步骤3:将输入元素序列中的每个元素放入有序的输出元素序列。
【C代码】
下面是该排序算法的C语言实现。
(1)常量和变量说明
R:常量,定义元素取值范围中的取值个数,如上述应用中 R值应取6i:循环变量
n:待排序元素个数
a:输入数组,长度为n
b:输出数组,长度为n
c:辅助数组,长度为R,其中每个元素表示小于等于下标所对应的元素值的个数。
(2)函数sort
1 void sort(int n,int a[ ],intb[ ]){
2 int c[R],i;
3 for (i=0;i< (1) ;i++){
4 c[i]=0;
5 }
6 for(i=0;i<n;i++){
7 c[a[i]] = (2) ;
8 }
9 for(i=1;i<R;i++){
10 c[i]= (3) ;
11 }
12 for(i=0;i<n;i++){
13 b[c[a[i]]-1]= (4) ;
14 c[a[i]]=c[a[i] ]-1;
15 }
16 }
【问题1】(8 分)
根据说明和C代码,填充 C代码中的空缺(1)~(4)。
【问题2】(4 分)
根据C代码,函数的时间复杂度和空间复杂度分别为 (5) 和 (6) (用 O符号
表示)。
【问题3】(3 分)
根据以上C代码,分析该排序算法是否稳定。若稳定,请简要说明(不超过 100 字);
若不稳定,请修改其中代码使其稳定(给出要修改的行号和修改后的代码)。
从下列的2 道试题(试题五和试题六)中任选 1 道解答。
如果解答的试题数超过 道,则题号小的 道解答有效。
第15题:
试题12
有以下程序
#include <stdio.h>
main()
{ int c[3]={0}, k, i;
while((k=getchar())!=’\n’)
c[k-‘A’]++;
for(i=0; i<3; i++) printf(“%d”, c[i]); printf(“\n”);
}
若程序运行时从键盘输入ABCACC<回车>, 则输出结果为______.
第16题:
第17题:
第18题:
第19题:
关于考生考试规范作答,说法正确的是()
第20题:
老师出了两道题,全班40人中,第一题有30人对,第2题有12人未做对,两题都做对的有20人。第2题对第1题不对的有()个人。
第21题:
如果一道试题有75%的解答人都答不对,说明这道试题()
第22题:
在多个选择项中,有且只有一个正确答案的试题称为单选题,至少有一个但也可以有一个以上正确答案的称为多选题。对于一道严格的单选试题来说,作为答案的选项一定满足两个条件:第一,正确性;第二,唯一性。所谓正确性是指,答案是对问题的正确回答;所谓唯一性是指,不存在其他选项是对问题的正确回答。因此,如果对同一道单选试题,我们感觉两个或两个以上的选项都满足正确性,那么一定是遇到了干扰项,即似乎成立但实际上不成立的选项。如果上述断定为真,那么以下哪项一定是真的?()I.一道严格的单选试题的选项,如果满足正确性,则一定满足唯一性II.一道严格的多选试题的选项,如果满足正确性,则一定不满足唯一性III.—道不严格的单选试题,至少存在一个选项,满足正确性,但不满足唯一性
第23题:
对
错