首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 例如,输入beijing shanghai(为回车键),函数将返回shangha
请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 例如,输入beijing shanghai(为回车键),函数将返回shangha
admin
2020-07-28
76
问题
请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
例如,输入beijing
shanghai
(
为回车键),函数将返回shanghai。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数maln和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
char *fun (char *s,char *t)
{
}
main()
{char a[20],b[20];
void NONO ();
printf ("Input 1th string:");
gets (a);
printf ("Input 2th string:");
gets (b);
printf ("%s\n",fun (a, b));
NONO ();
}
void NONO ()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp,*wf ;
int i ;
char a[20],b[20] ;
fp= fopen("in.dat","r");
wf= fopen ("out.dat"f "w");
for(i = 0 ; i < 10 ,i++) {
fscanf (fp, "%s %s", a, b);
fprintf (wf, "%s\n", fun (a,b));
}
fclose( fp);
fclose (wf); }
选项
答案
1 int i; 2 char *p=sr * q=t; 3 int n=0,m=0; 4 {while(* p)//计算串s的长度n,其中p为临时指针 5 {n++; 6 p++; 7 } 8 n while(* q)//计算串t的长度m,其中q为临时指针 9 {m++; 10 q++; 11 } 12 if(n>=m) //比较m和n的值,设置p指向较大的指针 13 p=s; 14 else 15 p=t; 16 return p;
解析
该程序功能是比较两个字符串的长度。解题过程是首先分别求得两个字符串的长度,然后对这两个值进行判断,实现两个字符串长度的比较。
进入fun函数,根据前面的分析:
(1)首先求得字符串的长度,设变量n和m分别用来求字符串的长度,初值设为0,把字符串中的字符逐个访问,每访问一个字符,n和m分别加1,直到字符串结束;
(2)使用两个临时指针变量p、q分别作为访问字符串的变量;
(3)根据m和n的值返回串,设置指针p,指向返回串的开始地址。
字符数组和字符串、指针作为函数的参数。
转载请注明原文地址:https://www.kaotiyun.com/show/bF3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面不属于软件需求分析阶段工作的是
下面属于整数类I实例的是
构成计算机软件的是
若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是
若有以下程序#include<stdio.h>main(){charc1,c2;c1=’C’+’8’-’3’;c2=’9’-’0’;printf("%c%d\n",c1,c2);}则程序的输出结果是
有以下程序main(){unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf("%d\n",d);}程序运行后的输出结果是
以下叙述中错误的是
随机试题
“库吉”“克缺”“乌马什”依次是()的饮食。
设二维随机变量(X,Y)的分布律为则c=________.
在试算平衡表中,如果试算平衡()。
AshehasbeeninAmericafor3yearsnow,HongLiangis______forChina.
最可能的诊断是抗生素首选
A、内分泌失调B、残根残冠刺激C、机体抵抗力下降D、舔唇不良习惯E、消化不良创伤性溃疡的病因是
宜采用“十”字切开法治疗的疾病是()。
《中国证券登记结算有限责任公司证券登记规则》规定,股票发行人申请办理股票首次公开发行、增发、配股登记时,应当提供的申请材料有( )。
根据支付结算法律制度的规定,下列关于填写票据的表述中,正确的有()。(2015年)
南宋学者郑樵所著的(),是一部记述典章制度的通史,与唐杜佑、元马端临的作品合称“三通”。
最新回复
(
0
)