问答题请编写一个函数,用来删除字符串中的所有*。
例如,输入abc*de*f*gh,则输出为abcdefgh。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#inciude<ctype.h>
#include<conio.h>
#include<stdlib.h>
void proc(char*str)
{
}
void main()
{
char str[81];
system("CLS");
printf("Input a string:");
gets(str);
puts(str);
proc(str);
printf("***str:%s/n",str);
}
问答题学生的记录由学号和成绩组成,N名学生的数据已存放在主函数的结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 [注意] 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的花括号中填入所编写的若干语句。 [试题源程序] #include<stdio.h> #define N 8 typedef struct char num[10]; double s; STREC; double fun(STREC *a, STREC *b, int *n) void main() STREC s[N]="GA05", 85, "GA03", 76, "GA02", 69, "GA04", 85, "GA01", 91, "GA07", 72, "GA08", 64, "GA06", 87; STREC h[N], t; FILE *out; int i, j, n; double ave; ave=fun(s, h, &n); printf("The %d student data which is lower than %7.3 f:/n", n, ave); for(i=0; i<n; i++) printf("%s %4.1f/n", h[i]. num, h[i].s); printf("/n"); out=fopen("out.dat", "W"); fprintf(out, "%d/n%7.3f/n", n, ave); for(i=0; 2<n-1; i++) for(j=i+1; j<n; j++) if(h[i]. s>h[j].s) t=h[i]; h[i]=h[j]; h[j]=t; for(i=0; 2<n; i++) fprintf(out, "%4.1f/n", h[i].s); fclose(out);
问答题给定程序MODI1.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 void fun(char *s,int num[5])3 { int k,2=5;4 for(k=0;k<i;k++)5 /**********found**********/6 num[i]=0;7 for(;*s;s++)8 { i=-1 ;9 /**********found**********/10 switch(s)11 {case 'a':case 'A':{i=0;break;}12 case'e':case'E':{i=1;break;}13 case 'i':case 'T':{i=2;break;}14 case 'o':case'0':{i=3;break;}15 case'u':case'U':{i=4;break;}16 }17 if(>=0)18 num[i]++;19 }20 }21 main()22 { char s1[81];int num1[5],i;23 printf(''\nPlease enter a string:'');gets(s1);24 fun(s1,num1);25 for(i=0;i<5;i++)printf(''%d'',num1[i]);printf(''\n'');26 }
问答题编写函数fun,其功能是计算:s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:doublelog(doublex)。例如,若m的值为20,则fun函数值为6.506583。注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<math.h>doublefun(intm){inti;doubles=0.0;for(i=1;i<=m;i++)s=s+log(i);/*计算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/returnsqrt(s);/*对s求平方根并返回*/}voidmain(){system("CLS");printf("%f/n",fun(20));}
问答题
编写一个函数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所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。 例如,形参s所指的字符串为:abedefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<string.h>#define N 80void fun(char*s,int n,char*t){ int len,i,j=0; len=strlen(s);/******found******/ if(n>=len)strepy(____1____); else { for(i=len—n;i<=len一1;i++)/******found******/ t[j++]=__2__;/******found******/ t[i]=____3____; }}main(){ char s[N],t[N];int n; printf(“Enter a string:”); gets(s); printf(“Enter n:”); seanf(“%d”,&n); fun(s,n,t); printf(“The string t:”); puts(t);
问答题下列给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。
例如,若s所指字符串为“baaeda”,c中的字符为a,执行后s所指字符串为“baaaacdaa”。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(char*s,char c)
{ int i,j,n;
/*********found*********/
for(i=0;s[i]!=
【1】
;i++)
if(S[i]==c)
{
/*********found*********/
n=
【2】
;
while(s[i+1+n]!='\0')
n++;
for(j=i+n+1 ; j>i;
j--)
s[j+1]=s[j];
/*********found*********/
s[j+1]=
【3】
;
i=i+1;
}
}
main()
{ char s[80]="baaccla",c;
printf("\nThe string:%s\n",s);
printf("\nInput a character:");
scanf("%c",&c);
fun(s,c);
printf("\nThe result is:%s\n",s);
}
问答题给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下3×3的矩阵就是一个“幻方”: 4 9 2 3 5 7 8 1 6 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行前删行.也不得更改程序的结构!1 #include<stdio.h>2 #define N 33 int fun(int(*a)[N])4 { int i,j,m1,m2,row,colum;5 m1=m2=0;6 for(i=0;i<N;i++)7 {j=N-i-1;m1+=a[i][i]; m2+=a[i][j];}8 if(m1!=m2)return 0;9 for(i=0 ; i<N;i++){10 /**********found**********/11 row=colum=__1___;12 for(j=0;j<N;j++)13 { row+=a[i][j];colum+=a[j][i];}14 /**********found**********/15 if((row!=colum) __2__ (row!=m1)) return 0;16 }17 /**********found**********/18 return __3__;19 }20 main()21 { int x[N][N],i,j;22 printf(''Enter number for array:\n'');23 for(i=0;i<N;i++)24 for(j=0;j<N;j++)scanf(''%d'',&x[i][j]);25 printf(''Array:\n'');26 for(2=0;i<N;i++)27 {for(j=0;j<N;j++) printf(''%3d'',x[i][j]);28 printf(''\n'');29 }30 if(fun(x))printf(''The Array isa magic square.\n'');31 else printf(''The Array isn't a magic square.\n'');32 }
问答题请编写一个函数unsigned fun (unsigned w),w 是一个大于 10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后 n-1位的数作为函数值返回。 例如:w值为5923,则函数返回923;若w值为923,则函数返回23。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 试题程序: #include<conio. h> #include<stdio. h> unsigned fun(unsigned w) main() unsigned x; clrscr (); printf("Enter a unsigned integer number: "); scanf ("%u", printf("The original data is:%u/n",x); if (x<10) printf ("Data error! "); else printf ("The result :%u/n", fun(x) );
问答题
给定程序MODI1.C中函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。
例如,输入的数为:55 12 34,输出结果应当是:a=55.0,b=34.0,c=12.0。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
void fun(float *a,float *b,float *c)
{
/**********found**********/
float *k;
if(*a<*b)
{ k=*a;*a=*b;*b=k;}
/**********found**********/
if(*a>*c)
{ k=*c;*c=*a;*a=k;}
if(*b<*c)
{ k=*b;*b=*c;*c=k;}
}
main()
{ float a,b,c;
printf("Input a b c:");scanf("%f%f%f",
printf("a=%4.1f,b=%4.1f,c=%4.1f/n/n",a,b,c);
fun(
printf("a=%4.1f,b=%4.1f,c=%4.1f/n/n",a,b,c);
}
问答题请编写函数fun,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数中输出:YES;否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。
例如,字符串LEVEL是回文,而字符串123312就不是回文。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#2nclude
#define N 8 0
int fun(char。str)
{
}
main()
{ char s[N];void NONi();
printf("Enter a siririg:");gets(s);
printf("/n/n");puts(s);
if(fun(s))printf(”YES/n”);
else printf("NO/n");
NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
FILE*rf, *wf;
int i ; char s[N];
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0; i<1 0; i++) {
fsCanf(rf,"%s",s);
if(fun(s))fprintf(wf,"%s
YES/n",s);
else fprintf(wf,"%s NO/n",s);
}
fclose(rf); fclose(wf);
}
问答题给定程序MODIl.C中函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include<stdio.h> int fun(int*b) { int k,a1,a2,i=0; for(k=10;k<=55;k++){ /**********found**********/ a2=k/10; a1=k-a2/10: if((k%3==0&&a2==5)‖(k%3==0&&a1==5)) { b[i]=k;i++;} } /**********found**********/ return k: } main() {int a[100],k,m: m=fun(a); printf("The result is:\n"); for(k=0;k<m;k++)printf("%4d",a[k]);printf("\n"); }
问答题函数fun的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG123456”,其中字符A的ASCII码值为奇数,因此应当删除:其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除:而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:”246”。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入要编写的若干语句。
#include<stdio.h>
#include<string.h>
void fun(char*s,char t[])
{
}
main()
{
char s[100],t[100];
void NONO();
printf("/nPlease enter string S:");scanf("%s",s);
fun(s,t);
printf("/nThe result is:%s/n",t);
NONO();
}
voidNONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
char s[100],t[100];
FILE*rf,*wf;
int i;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%s",s);
fun(s,t);
fprintf(wf,"%s/n",t);
}
fclose(rf);
fclose(wf);
}
问答题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
int fun(int score[],int m,int below[])
{
}
void main()
{
int i,n,below[9];
int score[9]={10,20,30,40,50,60,70,80,90};
system("CLS");
n=fun(score,9,below);
printf("/nBelow the average score are:");
for(i=0;i<n;i++)
printf("%d",below[i]);
}
问答题给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如,当形参n的值为10时,函数返回:-0.204491。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>doublefun(intn){inti,k;doubles,t;s=0;/**********found**********/k=___________(1);for(i=1;i<=n;i++){/**********found**********/t=___________(2);s=s+k*(2*i一1)*(2*i+1)/(t*t);/**********found**********/k=k*___________(3);}returns;}main(){intn=-1:while(n<0){printf("Pleaseinput(n>0):");scanf("%d",&n);}printf("\nTheresultis:%f\n",fun(n));}
问答题给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m—l的值。
请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。
注意:不要改动mam函数,不得增行或删行,也不得更改程序的结构!
#include
#include
typedef struct aa
{ int data;
struct aa *nextf
} NODE;
NODE *Creatlink(int n,int m)
{NODE *h=NULLr *p,*s;
int i;
p= (NODE) malloc (sizeof (NODE)) ;
h=p;
p—>next=NULL;
for (i=1; idata=rand () %m; s—>next=p—>
next;
p—>next=s; p=p—>next;
}
return p;
}
outlink(NODE *h)
{NODE *p;
p=h—>next;
printf ("/n/nTHE LIST :/n/n HEAD ") ;
while (p)
{ printf ("—>%d ",p—>data) ;
p=p—>next;
}
main ()
{NODE *head;
head=Creatlink{8,22) ;
outlink (head) ;
}
问答题请编写函数fun(),其功能是;计算井输出下列多项式值。 S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n) 例如,若主函数从键盘给n输入8后,则输出为 S-0.662872。 注意;部分源程序给出如下。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 试题程序; # include<stdio. h> double fun(int n) main () int n; double s; printf("/nInput n: "); scanf ("%d", s=fun (n); printf ("/ns=%f/n ", s);
问答题给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长<N。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<string.h>3 #define M 54 #define N 205 int fun(char(*ss)[N],int *n)6 { int i,k=0,len=N;7 /**********found**********/8 for(i=0;i< __1__;i++)9 {len=strlen(ss[i]);10 if(i==0) *n=len;11 /**********found**********/12 if(len __2__ *n)13 {* n=len;14 k=i ;15 }16 }17 /**********found**********/18 return(__3__);19 }20 main()21 { char ss[M][N]={''shanghai'',''guangzhou'',''beijing'',''tianjing'',''chongqing''};22 int n,k,i;23 printf(''\nThe original strings are:\n'');24 for(i=0;i<M;i++)puts(ss[i]);25 k=fun(ss,&n);26 printf(''\nThe length of shortest string is:%d\n'',n);27 printf(''\nThe shortest string is:%s\n'',ss[k]);28 }
问答题给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。
例如,有下列矩阵:
1 2 13 4
7 8 10 6
3 5 9 7
程序执行结果为:find: a[2][2]=9
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define M 3
#define N 4
void fun(int (*a)[N])
{ int i=0,j,find=0,rmax,c,k;
while( (i
{ rmax=a[i][0]; c=0;
for(j=1; j
if(rmax
/**********found**********/
rmax=a[i][j]; c= __1__ ; }
find=1; k=0;
while(k
/**********found**********/
if (k!=i
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
for(j=0; j
printf("The array:/n");
for(i=0; i
{ for(j=0; jprintf("/n/n");
}
fun(x);
}
问答题下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。 t=1/2-1/3-…-1/m 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include <stdlib.h> #include<conio.h> #include <stdio.h> double fun(int m) double t=1.0; int i; for(i=2; i<=m; i++) /******************found*******************/ t=1.0-1/i; /******************found*******************/ ; void main() int m; printf("/nPlease enter 1 integer number:/n"); scanf("%d", &m); printf("/n/nThe result is %1f/n", fun(m));
