●试题四 请补充函数fun(),该函数的功能是将字符串tt中的大写字母都改为对应的小写字母,其他字符
●试题四
请补充函数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。
在理解法拉第电磁感应定律E=n△∅△t及改写形势E=nS△B△t,E=nB△S△t的基础上(线圈平 其他 2020-05-13 …
T/TREIMBURSEMENTSARENOTALLOWED什么意思我司给客户开出信用证,信用证上 其他 2020-06-17 …
1、照样子,把句子写具体.例:小雨滋润大地.一场淅淅沥沥的小雨滋润干渴的大地.微风吹拂柳枝.2、人 语文 2020-06-28 …
f(x)=1/3x^3-x-1.f(x)在t≤x≤t+3上最大值为M(t),最小值为m(t)记g( 数学 2020-07-13 …
sourceinsight中各种颜色符合代表什么意思?图中红色的#符号、黄色的#符号、绿色的M符号 其他 2020-07-20 …
由不等式组围成的三角形区域内有一个内切圆,向该区域内随机投一个点,该点落在圆内的概率是关于t的函数 数学 2020-07-30 …
星期天晚饭后,小红从家里出去散步,如图描述了她散步过程中离家的距离s(米)与散步所用时间t(分)之间 数学 2020-10-30 …
实验表明,某种气体的体积V随着温度t的改变而改变,它的体积可用公式V=pt+q计算.以测得当t=0时 数学 2020-11-03 …
如图所示实线是一列简谐横波在t1=0时刻的波形,虚线是这列波在t2=0.5s时刻的波形.求:(1)若 其他 2020-12-15 …
已知函数y=sin(πx/3)在区间(0,t)上至少取得2次最大值,则正整数t的最小值是区间(0,t 数学 2021-02-04 …