问答题编写一个函数fun,它的功能是实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。
例如,分别输入下面两个字符串。
FirstString--
SecondString
程序输出:
FirstString--SecondString
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下。
#include<stdio.h>
void fun(char p1[],char p2[])
{
}
main()
{ char s1[80],s2[40];
printf("Enter s1 and s2:/n");
scanf("%s%s",s1,s2);
printf("s1=%s/n",s1);
printf("s2=%s/n",s2);
printf("Invoke fun(s1,s2):/n");
fun(s1,s2);
printf("After invoking:/n");
printf("%s/n",s1);
}
问答题下列给定程序中,函数fun的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。
例如,当S所指字符串为“ABCD”时,t所指字符串中的内容应为“ABCDDCBA”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
/********found********/
void fun(char s,char t)
{
int i,d;
d=strlen(s);
for(i=0;i<d;i++)
t[i]=s[i];
for(i=0;i<d;i++)
t[d+i]=s[d-1-i];
/********found********/
t[2*d-1]="/0";
}
main()
{
char s[100],t[100];
printf("/nPlease enter string S:");scanf("%s",s);
fun(s,t);
printf("/nThe result is:%s/n",t);
}
问答题请编写函数fun(),该函数的功能是:计算并输出 S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5) 例如,若主函数从键盘给n输入20后,则输出为 s=534.188884。 注意;部分源程序给出如下。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 试题程序: #include <math. h> #include <stdio. h> double fun(int n) main() int n; double s; printf("/n/nInput n: "); scanf ("%d", s=fun (n) printf ("/n/ns=%f/n/n", s);
问答题请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。
例如:若有5门课程的成绩是:90.5、72、80、61.5、55,
则函数的值为:71.80。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入要编写的若干语句。
#include<stdio.h>
float fun(float*a,int n)
{
}
main()
{float score[30]={90.5,72,80,61.5,55),aver;
void NONO();
aver=fun(score,5);
printf("/nAverage score is:%5.2f/n",aver);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*fp,*wf;
int i,j;
float aver,score[5];
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
for(j=0;j<5;j++)fscanf(fp,"%f,",
aver=fun(score,5);
fprintf(wf,"%5.2f/n",aver);
}
fclose(fp);
fclose(wf);
}
问答题编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 例如,假定输入的字符串为"asd asasdfgasd as zx67 asd mklo”,子字符串为”as”,则应当输出6。 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> #include<string.h> #include<stdlib.h> int fun(char *str.char *substr) { } void main() { FILE *wf; char str[81],substr[3];int n; system("CLS"); printf("输入主字符串:"); gets(str); printf("输入子字符串:"); gets(substr); puts(str);puts(substr); n=fun(str,substr); printf("n=%d\n",n); /************/ wf=fopen("out.dat","w"); n=fun(,"asd asasdfg asd as zx67 asdmklo","as"); fprintf(wf,"%d",n); fclose(wf); /************/ }
问答题请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。 例如:主函数从键盘给输入n的值为56,则输出为 sum=1113。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> long fun(int n) main() int n; long sum; printf("Input n:"); scanf("%d",&n); sum=fun(n); printf("sum=%ld/n",sum);
问答题给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为:7654321时,t中的数为:7531。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/************found************/
void fun (long s, long t)
{ long sl=10;
*t = s % 10;
while (s > 0)
{ s = s/100;
*t = s%10 * s1 + *t;
/************ found************/
sl = sl*100;
}
}
main ()
{ long s, t;
printf("/nPlease enter s:");
scanf("%ld",
fun(s,
printf("The result is: %ld/n",t);
}
问答题请编写函数,判断一字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样的字符串。
问答题下列给定程序中,函数fun()的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。
例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(char*str, char*substr)
{ int i, j, k, num=0;
//****found****
for(i=0, str[i], i++)
for(j=i, k=0;
substr[k]==str[j];
k++, j++)
//****found****
If(substr[k+1]=="/0")
{ num++;
break;
}
return nnm;
}
void main()
{
char str[80], substr[80];
printf("Input a string:");
gets(str);
printf("Input a substring:");
gets (substr);
printf("%d/n", fun(str, substr));
}
问答题下列给定程序中,函数fun()的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(int a, int b)
int r, t;
if(a<b)
//****found****
{t=a; b=a; a=t; }
r=a%b;
while(r!=0)
{a=b; b=r; r=a%b; }
//****found****
return(a);
}
void main()
{
int num1 num2, a;
printf("Input num1 num2: ");
scanf("%d%d",
printf("num1=%d num2=%d/n/n", num1, num2);
a=fun(num1, num2);
printf("The maximun common divisor is%d/n/n", a);
}
问答题编写函数fun,它的功能是计算:s=s作为函数值返回。在C语言中可调用log(n)函数求In(n)。log函数的引用说明是:doublelog(doublex)。例如,若m的值为:20,fun函数值为:6.506583。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#includedoublefun(intm){}main(){voidNONO();printf("%f/n",fun(20));NONO();}voidNONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti,n;doubles;fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i
问答题请编写函数fun,其功能是:计算并输出给定10个数的方差。S=[((Xχ—x')2/10]0.5其中:S=((Xχ一x')2)/10例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,则输出为S=11.730729。注意:请勿改动主main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<math.h>#include<stdio.h>doublefun(doublex[10]){}voidmain(){FILE*wf;doubles,x[10]={95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0};inti;printf("Theoriginaldatais:\n");for(i=0;i<10;i++)printf("%6.1f",x[i]);printf("\n");s=fun(x);printf("s=%f\n",s);/************/wf=fopen("out.dat","w");fprintf(wf,"%f",s);fclose(wf);/************/}
问答题给定程序MODI1.C中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
void fun(int a,int *b,int *c)
{ int i,j,d,y;
for(2=3;i<=a/2;2=2+2){
/*************found*************/
Y=1;
for(j=2;j<=sqrt((double)i);
j++)
if(i%j==0)y=0;
if(y==1) {
/*************found*************/
d==a—i;
for(j=2;j<=sqrt((double)d);
j++)
if(d%j==0)y=0;
if(y==1)
{*b=i;*c=d;}
}
}
}
main()
{ int a,b,c;
do
{printf("/nInput a: "); scanf
("%d",&a);}
while(a%2);
fun(a,&b,&c);
printf("/n/n%d=%d+%d/n",a,b,c);
}
问答题请编写函数 fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
例如:二维数组中的值为
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0
则函数值为 61。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#define M 4
#define N 5
int fun ( int a[M][N] )
{
}
main( )
{ int aa[M][N]={{1,3,5,7,9},
{2,9,9,9,4},
{6,9,9,9,8},
{1,3,5,7,0}};
int i, j, y;
clrscr();
printf ( "The original data is : /n" );
for ( i=0; i
{ for ( j =0; j
printf ("/n");
}
y = fun ( aa );
printf( "/nThe sum: %d/n" , y );
printf("/n");
NONO( );
}
问答题给定程序MODI1.C中函数fun的功能是:计算正整数Rum的各位上的数字之积。
例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
long fun(10ngnum)
{
/**********found**********/
long k;
do
{k*num%10;
/**********found**********/
num/=10;
}while(num);
return(k);
}
main()
{long n;
printf("/nPlease enter a number:");scanf("%1d",
printf("/n%1d/n",fun(n));
}
问答题给定程序中,函数fun的功能是:
将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:123543asdfghdf。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < string.h >
#include < stdlib.h >
#include < ctype.h >
char*fun(char *s)
{int i,j,k,n;char*p,*t;
n=strien(s)+1;
t=(char*)mailoc(n*sizeof
(char));
P=(char*)malloc(n*sizeof
(char));
j=0;k=0;
for(i=0;i < n;i++)
{if(isdigit(S[i])){
/*********found*********/
p[
【1】
]=s[i];j++;)
else
{t[k]:s[i];k++;)
}
/*********found*********/
for(i=0;i <
【2】
;i++)
p[j+i]=t[i];
p[j+k]=0;
/*********found*********/
return
【3】
;
}
main()
{char s[80];
printf("Please input:");
scar1f("%s",s);
printf("/nThe result is:%s/n",
fun(s));
}
问答题请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
char*fun(char*s,char*t)
{
}
main()
{char a[20],b[20];
printf("Input 1th string:");
gets(a);
printf("Input 2th string:");
gets(b);
printf("%s/n",fun(a,b));
}
问答题给定程序MODI1.C中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的迭代公式如下:例如,a为2时,平方根值为:1.414214。请改正程序中的错误,使它能得出正确结果。注意:不要改动mam函数,不得增行或删行,也不得更改程序的结构。#include#include/**********found**********/doublefun(doublea,dounlex0){doublex1,y;x1=(x0+a/x0)/2.0;/**********found**********/if(fabs(x1—x0)>0.00001)y=fun(a,x1);elsey=x1;returny;}main(){doublex;printf("Enterx:");scanfprintf("Thesquarerootof%1fis%lf/n",x,fun(x,1.0));}
问答题请编写一个函数void fun (char a[],char b[],int n),其功能是:删除一个字符串中指定下标的字符。其中, a指向原字符串, 删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。
例如,输入一个字符串: World,然后输入3,则调用该函数后的结果为: Word。
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
#define LEN 20
void fun (char a[], char b[], int n)
{
}
main( )
{ char str1[LEN], str2[LEN] ;
int n ;
printf("Enter the string:/n") ;
gets(str1) ;
printf("Enter the position of the string deleted:") ;
scanf("%d",
fun(str1, str2, n) ;
printf("The new string is: %s/n", str2) ;
NONO() ;
}
问答题给定程序MODI1.C中函数fun()的功能是:求出s所指字符串中最后一次出现t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。 例如,当字符串中的内容为”abcdabfabcdx”,t中的内容为”ab”时,输出结果应是abcdx。当字符串中的内容为”abcdabfabcdx”,t中的内容为”abd”时,则程序输出未找到信息not be found!。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 #include <stdio.h> #include <string.h> char *fun(char *s, char *t) char *p, *r, *a; /**********found**********/ a=Null; while (*s) p=s;r=t; while (*r) /**********found**********/ if (r==p) r++;p++; else break; if (*r=='/0')a=s; s++; return a; main() char s[100], t[100], *p; printf("/nPlease enter string S:"); scanf(%s",s); printf("/nPlease enter substring t:"); scanf("%s",t); p=fun(s,t); if(p) printf(/nThe result is:%sha",p); else printf("/nNot found !/a");
