问答题下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。 例如:若high的值为100,则函数的返回值为1060。 请改正程序中的错误,使它能得到正确结果。 [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。 [试题源程序] #include <conio.h> #include <stdio.h> #include<math.h> int fun(int high) int sum=0, n=0, j, yes; while(high>=2) yes=1; for(j=2;j<=high/2; j++) **********************found**********************/ ifhigh%j==0 yes=0; break; /**********************found**********************/ if(yes==0) sum+=high; n++; high--; return sum; main() clrscr(); printf("%d/n", fun(100));
问答题给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指的数组的尾部。例如,当a所指字符串中的内容为”abedefg”,b所指字符串中的内容为"1234"时,C所指数组中的内容应为"a4b3c2dlefg";而当a所指字符串中的内容为"1234",b所指字符串的内容为"abcdefg"时,c所指数组中的内容应该为"1g2f3e4dcba"。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MOD11.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdio.h >#include < string.h >void fun(char * a,char*b,char * c ){ int i,j;char ch; i=0;j=str1en(b)一1;/*********found*********/ while(i >j) {ch=b[i];b[i] =b[j]; b[j]=ch; i++; j一一; } while(*a|| *b){/*********found*********/ If( *a) { *c = *a ; c++;a++; ) if(*b) { *c =* b;c++; b++;) } *c=0;}main(){ char s1[100],s2[100],t[200]; printf("/nEnter s1 string:"); scanf("%s",s1); print:f("/nEnter s2 strincj:"); scanf("%s",s2); fun(s1,s2,t); printf("/nThe result is:%s/n",t);}
问答题下列给定程序中,函数proc()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之积。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
void proc()
{
int arr[3][3], mul;
int i, j;
mul=1;
printf("please input an 3*3 array: /n");
for(i=0; i<3; i++)
{
//****found****
for(i=0; j<3; j++)
scanf("%d",
}
for(i=0; i<3; i++)
//****found****
mul=mul*arr[i][j];
printf("Mul=%d/n", mul);
}
void main()
{
proc();
}
问答题假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun的功能是:删除数列中值为x的元素,变量n中存放数列中元素的个数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#define N 2 0fun(int*a,int n,int x){ int p=0,i; a[n]=x; while(x!=a[P]) P=P+1;/*********found*********/ if(P==n) return-1; else { for(i=P;i<n;i++)/*********found*********/ a[i+1]=a[i]; return n-1; }}void main(){ int w[N]={-3,0,1,5,7,99,10,15,30,90),x,n,i ; n=10; printf("The original data:\n"); for(i=0;i<n;i++) printf("%5d",w[i]); printf("\nInput x(to delere):"); scanf("%d",&x); printf("Delete:%d\n",x); n=fun(w,n,x); if(n==-1) printf("***No be found!***\n\n"); else { printf("The data after deleted:\n"); for(i=0 ; i<n;i++) printf("%5d",w[i]); printf("\n\n"); }}
问答题编写程序,输入一位学生的生日(年:y0、月:m0、日:d0),并输入当前的日期(年:y1、月:m1、日:d1),输出该生的实际年龄。
问答题下列给定程序中,函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCⅡ值小或相等的字符依次存放到c所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abcd”,则c中的字符串应为“ABCDeFgH”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MOD11.C中,不得增行或删行,也不得更改程序的结构!#include<stdio.h> #include<string.h>void fun(char*P,char*q,char*c){/**********found**********/int k=l;/**********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);printf(''The string a:'');puts(a);printf(''The string b:'');puts(b);printf(''The result:'');puts(c);
问答题请编写函数fun,其功能是:将组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)。
例如,若输入9.9 8.5 7.6 8.5 9.3 9.5 8.9 7.8 8.6 8.4十个得分,则输出结果为:8.687500。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
void NONO();
double fun(double a[],int n)
{
}
main()
{double b[10],r;int i;
printf("输入10个分数放入b数组中:");
for(i=0;i<10;i++)
scanf("%lf",
printf("输入的10个分数是:");
for(i=0;i<10;i++)
printf("%4.1lf",b[i]);
printf("/n");
r=fun(b,10);
printf("去掉最高分和最低分后的平均分:%f/n",r);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE*fp,*wf;
int i,j;
double b[10],r;
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
for(j=0;j<10;j++){
fscanf(fp,"%lf",
}
r=fun(b,10);
fprintf(wf,"%f/n",r);
}
fclose(fp);
fclose(wf);
}
问答题给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。
例如,形参s所指的字符串为:This is a C language program.,函数的返回值为6。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(char*S)
{ int n=0,flag=0;
while(*S!='\0')
{if(*S!=''&&flag==0){
/*********found*********/
【1】
;flag=1;)
/*********found*********/
if(*S=='')flag=
【2】
;
/*********found*********/
【3】
;
}
return n;
}
main()
{char str[81];int n;
printf("\nEnter a line text:\n");
gets(str);
n=fun(str);
printf("\nThere are%d words in this text.\n\n",n);
}
问答题下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>void fun(long s,long*t){ int d; long s1=1;/*********found*********/ t=0; while(s>0) { d=s%10;/*********found*********/ if(d%2==0) { *t=d*s1+*t; s1*=10; } s/=10; }}void main(){ long s,t; system("CLS"); printf("\nPlease enter s:"); scanf("%ld",&s); fun(s,&t), printf ("The result is:%id\n",t);}
问答题给定程序MODI1.C中函数 fun 的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如,若输入 8 名学生的成绩:80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为: 4 (平均分为:75.5625 )。
请改正程序中的错误,使它能统计出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 20
int fun ( float *s, int n, float *aver )
{ float ave, t = 0.0 ;
int count = 0, k, i ;
for ( k = 0 ; k < n ; k++ )
/**************found**************/
t = s[k] ;
ave = t / n ;
for ( i = 0 ; i < n ; i++ )
if ( s[ i ] < ave ) count++ ;
/**************found**************/
*aver = Ave ;
return count ;
}
main()
{ float s[30], aver ;
int m, i ;
printf ( "/nPlease enter m: " ) ; scanf ("%d",
printf ( "/nPlease enter %d mark :/n ", m ) ;
for( i = 0 ; i < m ; i++ ) scanf ( "%f", s + i ) ;
printf( "/nThe number of students : %d /n" , fun ( s, m,
printf( "Ave = %f/n", aver ) ;
}
问答题给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7。输出结果为:4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 void fun(char *s,int *t)3 { int i,n;4 n=0;5 /**********found**********/6 for(i=0; __1__ !=0;i++)7 /**********found**********/8 if(s[i]>='0' &&s[i]<=__2__)n++;9 /**********found**********/10 __3__;11 }12 main()13 {char s[80]=''abcdef35adgh3kjsdf7'';14 int t;15 printf(''\nThe original string is:%s\n'',s);16 fun(s,&t)'17 printf(''\nThe result is:%d\n'',t);}
问答题给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7。输出结果为:4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 void fun(char *s,int *t)3 { int i,n;4 n=0;5 /**********found**********/6 for(i=0; __1__ !=0;i++)7 /**********found**********/8 if(s[i]>='0' &&s[i]<=__2__)n++;9 /**********found**********/10 __3__;11 }12 main()13 {char s[80]=''abcdef35adgh3kjsdf7'';14 int t;15 printf(''\nThe original string is:%s\n'',s);16 fun(s,&t)'17 printf(''\nThe result is:%d\n'',t);}
问答题下列给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(mc=N)值,将每行元素中的值均向右移动m个位置,左位置为O。例如,N=3,m=2,有下列矩阵: 1 2 3 …… 4 5 6 …… 7 8 9 程序执行结果为: 0 0 1 …… 0 0 4 …… 0 0 7 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> #define N 4 void fun(inf(*f)[N].int m) int i,j; /********found********/ for(i=0;i<N; (1) ) for(j=N-1-m;j>=0;j--) /********found********/ t[i][j+ (2) ]=[i][j]; /********found********/ for(j=0;j< (3) ;j++) t[i][j]=0; main() int t[][N]=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j,m; printf("/nThe original array:/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%2d",t[i][j]); printf("/n"); printf("Input m(m<=%d):"N); scanf("%d", fun(t,m); printf("/nThe result is:/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%2d",f[i][j]); printf("/n");
问答题main ( )
{ int a , b ;
scanf ( “input a ,b:”,a , b );
printf (“a=%d, b=%d”,a,b); }
问答题下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < string.h >
#define M 5
#define N 20
int fun(char(*ss)[N],int*n)
{ int i,k=0,fen=N;
/*********found*********/
for(i=0;i <
【1】
;i++)
{ fen=str1en(ss[i]);
if(i==0) *n=1en;
/*********found*********/
if(fen
【2】
*n)
{*n=fen;
k=i;
}
}
/*********found*********/
return(
【3】
);
}
main()
{char ss[M][N]={"shang
hai","guangzhou","beijing","
tianjirig”,”chongqing”);
int n,k,i ;
printf("/nThe original
strings aEe:/n");
for(i=0;i < M;i++)puts(ss
[i]);
k=fun(ss,&n);
printf("/nThe length of
shortest string is:%d/n",n);
printf("/nThe shortest
string is:%s/n",ss[k]);
}
问答题输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符'0'的个数,用下标为1的元素统计字符'1'的个数……
问答题给定程序MODI1.C中函数fun的功能是:将长整型数s中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:87653142时,t中的数为:8642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 void fun(long s,long *t)3 { int d;4 long s1=1;5 *t=0;6 while(s>0)7 {d=s%10;8 /**********found**********/9 if(d%2=0)10 {*t=d *s1+*t;11 s1 *=10;12 }13 /**********found**********/14 s\=10;15 }}16 main()17 {long s,t;18 printf(''\nPlease enter s:''); scanf(''%1d'',&s);19 fun(s,21 }
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
例如,输入的分数是60 69, 则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh中。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#define N 16
typedef struct
{ char num[10];
int s;
} STREC;
int fun( STREC *a,STREC *b,int l, int h )
{
}
main()
{ STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},
{"GA001",96},{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91},
{"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}};
STREC h[N],tt;FILE *out ;
int i,j,n,low,heigh,t;
printf("Enter 2 integer number low
scanf("%d%d",
if ( heighh[j].s) {tt=h[i] ;h[i]=h[j]; h[j]=tt;}
for(i=0;i
fprintf(out,"M/n",h[i].s);
fprintf(out,"/n");
fclose(out);
}
问答题给定程序MODI1.C中函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 80
int fun(char *s, char *t)
{ int n;
char *p , *r;
n=0;
while (*s)
{ p=s;
/*********found**********/
r=p;
while(*r)
if(*r==*p) {r++; p++; }
else break;
/*********found**********/
if(*r= 0)
n++;
s++;
}
return n;
}
main ()
{ char a[N],b[N]; int m;
printf("/nPlease enter string
a : "); gets(a);
printf("/nPlease enter substring
b : "); gets(b);
m=fun(a, b);
printf("/nThe result is : m
= %d/n",m);
}
问答题下列给定程序中,函数fun的功能是:求出如下分数序列的前n项之和,并将该值通过函数值返回。请改正程序中的错误,使其得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>/**********found**********/fun(intn)inta=2,b=1,c,k;doubles=0.0;for(k=1;k<=n;k++)/**********found**********/s=s+(Double)a/b;c=a;a=a+b;b=c;return(s);voidmain()intn=5;system("CLS");printf("/nThevalueoffunctionis:%if/n",fun(n));
