问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun( char *a )
{
}
main()
{ char s[81];
printf("Enter a string:/n");gets(s);
fun( s );
printf("The string after deleted:/n");puts(s);
NONO();
}
问答题
请编写函数fun,其功能是:判断t所指字符串中的字母是否由连续递增字母序列组成(字符串长度大于等于2)。例如字符串:uvwxyz满足要求;而字符串:uvxwyz不满足要求。
注意:部分源程序存放在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。
试题程序:
1 #include<stdio.h>
2 #include<string.h>
3 void NONO();
4 int fun(char *t)
5 {
6
7 }
8 main()
9 { char s[26];
10 printf("请输入一个字母组成的字符串;");gets(s);
11 if(fun(s))printf("%s是由连续字母组成的字符串./n",s);
12 else printf("%s不是由连续字母组成的字符串!/n",s);
13 NONO();
14 }
15 void NONO()
16 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
17 FILE*fp,*wf;
18 int i;
19 char s[26],*P;
20 fp=fopen("c://test//in.
dat","r");
21 wf=fopen("c;//test//out.
dat"."w");
22 for(i=0;i<10;i++){
23 fgets(s,26,fp);
24 P=strchr(s,"/n");
25 if(P)*p=0;
26 if(fun(s))fprintf(wf,"%
s/n",s+2);
27 else fprintf(wf,"%s/n",
strrev(s));
28 }
29 fclose(fp);
30 fclose(wf);
31 }
问答题下列给定程序中函数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=Str1en(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("inPlease enter string s:"); scanf("%s",s); fun(s,t); printf("/nTbe result is:%skn",t);}
问答题给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动mam函数,不得增行和删行,也不得更改程序的结构!
#include
#define N 20
void fun(int a[],int n)
{ int i,j,t,p;
for (j = 0 ;j < n—1;j++) {
/*********found**********/
p=j
for(i=j;i
问答题请编写函数proc(),其功能是:计算并输出给定10个数的方差。其中例如,给定的10个数为88.0,89.5,54.0,78.5,89.0,63.0,85.7,83.0,77.0,83.0,则输出为S=11.195271。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:#include<math.h>#include<stdio.h>doubleproc(doublex[10]){}voidmain(){doubles,x[10]={88.0,89.5,54.0,78.5,89.0,63.0,85.7,83.0,77.0,83.0};inti;printf("/nTheoriginaldatais:/n");for(i=0;i<10;i++)printf("%6.1f",x[i]);printf("/n/n");s=proc(x);printf("s=%f/n/n",s);}
问答题下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。 例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> intfun(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",&num1,&num2); printf("num1=%d num2=%&n/n",num1,num2); a=fun(num1,num2); printf("The maximun common divisor is%d/n/n",a);
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后, 字符串中的内容应当是:****ABCDEFG。
注意: 部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun( char *a )
{
/* 以下代码仅供参考 */
int i=0,k;
while(a[i]=='*') i++;
k=i+1;
while(a[i]!='/0') /* 以下程序段实现非*字符前移 */
{
}
a[i+1]='/0';
}
main()
{ char s[81];
printf("Enter a string:/n");gets(s);
fun( s );
printf("The string after deleted:/n");puts(s);
NONO();
}
问答题main( )
{ int a[5]={2,4,6,8,10},*P,* *k;
p=a; k=
printf("%d,",*(p++));
printf("%d\n",* *k); }
程序的输出结果是__________。
问答题下列给定程序中,函数proc()的功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,…
例如,若给n输入8,该项的斐波拉契级数值为21。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
long proc(int g)
{
//****found****
switch(g);
{
case 0: return 0;
//****found****
case 1; case 2: return 1;
}
return(proc(g-1)+proc(g-2));
}
void main()
{
long fib; int n;
printf("Input n:"); scanf("%d",
printf("n=%d/n", n);
fib=proc(n);
printf("fib=%d/n/n", fib);
}
问答题给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
void fun(char *s)
{ int i, n, k; char c;
n=0;
for(i=0; s[i]!="/0"; i++) n++;
/**********found**********/
if(n%2==0)k=n-______;
else k=n-2;
/**********found**********/
c=______;
for(i=k-2; i>=1; i=i-2) s[i+2]=s[i];
/**********found**********/
s[1]=______;
}
main()
{char s[80]="abcdefgh";
printf("/nThe original string is:%s/n", s);
fun(s);
printf("/nThe result is:%s/n", s);
}
问答题下列给定程序中,函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码值升序排序后输出。例如,若输入"edcba",则应输出'abcde'。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<string.h>#include<stdio.h>void fun(char t[]){ char c; int i,j;/*********found*********/ for(i=strlen(t);i;i--) for(j=0;j<i;j++)/*********found*********/ if(t[j]<t[j+1]) { C=t[j]; t[j]=t[j+1]; t[j+1]=c; }}main(){ char s[81]; printf("\nPlease enter a character string:"); gets(s); print("\n\nBefore sorting:\n%s",s);fun(s);printf("\nAfter sorting decendingly:\n%s",s);}
问答题给定程序MODI1.C中函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
给定源程序:
#include
fun( int *b )
{ int k,a1,a2,i=0;
for(k=10; k<=55; k++) {
/************found************/
a2=k/1O;
a1=k-a2*10;
if((k%3==0 i++; }
}
/************found************/
return k;
}
main( )
{ int a[100],k,m;
m=fun( a );
printf("The result is :/n");
for(k=0; k
}
问答题下列给定程序中,函数fun的功能是:计算如下公式前n项的和,并作为函数值返回。例如,当形参n的值为10时,函数返回值为9.612558。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>doublefun(intn){inti;doubles,t;/*********found*********/s=【1】;/*********found*********/for(i=1;i<=【2】;i++){t=2.0*i;【1】S=s+(2.0*i一1)*(2.0*i+1)/【3】;}retuens;}voidmain(){intr1=一1;while(n<0){printf("Pleaseinput:(n>0):");scanf("%d",&n);}printf("/nTheresultis:%f/n",fun(n));}
问答题请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,主函数中输出“YES”;否则返回0,主函数中输出“NO”。回文是指顺读和倒读都一样的字符串。
例如,字符串LEVEL是回文,而字符串123312就不是回文。
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#define N 80
int fun(char *str)
{
}
main()
{
char s[N];
char *test[]={"1234321","123421","123321","abcdCBA"};
int i;
printf("Enter a string:"};
gets(s);
printf("/n/n");
puts(s);
if(fun(s))
printf("YES/n");
else
printf("NO/n");
}
问答题下列给定程序中,函数proc()的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
int proc()
{
int i, j, k, sum=0;
printf("/nThe result: /n/n");
//****found****
for(i=0; i<=3; i++)
{
for(j=1; j<=5; j++)
{
k=8-i-j;
//****found****
if(k>=1
printf("red: %4d white: %4d
black: %4d/n", i, j, k);
}
}
}
return sum;
}
void main()
{
int sum;
sum=proc();
printf("sum=%d/n/n", sum);
}
问答题请编写函数fun,其功能是:判断t所指字符串中的字母是否由连续递增字母序列组成(字符串长度大于等于2)。例如字符串:uvwxyz满足要求;而字符串:uvxwyz不满足要求。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<string.h>
void NONO();
int fun(char*t)
{
}
main()
{char s[26];
printf("请输入一个字母组成的字符串:");gets(s);
if(fun(s))printf("%s是由连续字母组成的字符串./n",s);
else printf("%s不是由连续字母组成的字符串!/n",s);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*fp,*wf;
int i;
char s[26],*p;
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fgets(s,26,fp);
p=strchr(s,"/n");
if(p)*p=0;
if(fun(s))fprintf(wf,"%s/n",s+2);
else fprintf(wf,"%s/n",strrev(s));
}
fclose(fp);
fclose(wf);
}
问答题下列给定程序中函数fun的功能是:逐个比较P、q所指两个字符串对应位置上的字符,并把ASCⅡ值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abed”,则c中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构! #include<stdio.h> #include<string.h> void fun(char*P,char*q,char*c) { /***********found***********/ int k=1; /***********found***********/ while(*P!=*q) {if(*P<*q)c[k]=*q; else c[k]=*P; if(*P)P++; if(*q) q++; k++: } } main() { char a[10]=“aBCDeFgH”,b[10]=“ABcd”,c[80]={'0'}; fun(a,b,c); prinff(“The string a:”);puts(a); printf(“The string b:”);puts(b); prinff(“The result:”);puts(c); }
问答题编写函数fun,其功能是:根据以下公式求P的值,结果由函数值返回。m与n为两个正整数且要求m>n。例如:m=12,n=8时,运行结果为495.000000。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include<stdio.h>floatfun(intm,intn){}main()/*主函数*/{printf("P=%f/n",fun(12,8));}
问答题给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。
例如,有下列矩阵:
1 2 13 4
7 8 10 6
3 5 9 7
程序执行结果为:find:a[2][2]=9
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 3
#define N 4
void fun(int(*a)[N])
{int i=0,j,find=0,rmax,c,k;
while((i<M)&&(!find))
{Emax=a[i][0]; c=0;
for(j=1;j<N;j++)
if(Emax<a[i][j]){
/*********found*********/
rmax=a[i][j];c=
【1】
;
find=1;k=0;
while(k<M&&find){
/*********found*********/
if(k!=i&&a[k][c]<=Emax)
find=
【2】
;
k++;
}
if(find)
printf("find:a[%d][%d]=%d\n",i,c,a[i][c]);
/*********found*********/
【3】
;
}
if(!find)
printf("not found!\n");
}
main()
{ int x[M][N],i,j;
printf("Enter number for array:\n");
for(i=0;i<M;i++)
for(j=0;j<N; j++)
scanf("%d",&x[i][j]);
printf("The array:\n");
for(i=0;i<M;i++)
{for(j=0;j<N;j++)
printf("%3 d",x[i][j]);
printf("\n\n");
}
fun(x);
}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#define N 16
typedef struct
{ char num[10];
int s;
} STREC;
int fun( STREC *a, STREC *b )
{
}
main()
{ STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
/TAB /TAB {"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},
/TAB /TAB {"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
/TAB /TAB {"GA011",91},{"GA017",64},{"GA018",64},{"GA016",72}};
STREC h[N];
int i,n;FILE *out ;
n=fun( s,h );
printf("The %d lowest score :/n",n);
for(i=0;i
printf("%s M/n",h[i].num,h[i].s);
printf("/n");
out = fopen("c://test//out.dat","w") ;
fprintf(out, "%d/n",n);
for(i=0;i
fprintf(out, "M/n",h[i].s);
fclose(out);
}