问答题编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。
例如,若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
float fun(float *a,int n)
{
}
void main()
{
float score[30]={90.5,72,80,61.5,5,5},aver;
aver*fun(score,5);
printf("/nAverage score is:%5.2f/n", aver);
}
问答题函数fun的功能是:将S所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若S所指字符串中的内容为:''ABCDEFGl23456'',其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:''246 ''。 注意:部分源程序存在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #include<string.h>3 void fun(char *s,char t[])4 {5 }6 main()7 {8 char s[100],t[100];9 void NONO();10 printf("\nPlease enter stringS:'');scanf(''%s'',s);11 fun(s,t);12 printf(''\nThe result is:%s\n'',t);13 NONO();}14 void NONO()15 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */16 char s[100],t[100];17 FILE *rf,*wf;18 int i;19 rf=fopen(''in.dat'',''r'');20 wf=fopen(''out.dat'',''w'');21 for(i=0;i<10;i++){22 fscanf(rf,''%s'',s);23 fun(s,t);24 fprintf(wf,''%s\n'',t);25 }26 fclose(rf);27 fclose(wf);}
问答题
请编写函数fun,函数的功能是:移动一维数组中的内容:若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。
例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10:p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#inolude<stdio.h>
#define N 80
void fun(int *w, int p, int n)
{
}
main()
{int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
int i, p, n=15; void NONO();
printf("The original data:/n");
for(i=0; i<n; i++)printf("%3d", a[i]);
printf("/n/nEnter p:"); scanf("%d",
fun(a, p, n);
printf("/nThe data after moving:/n");
for(i=0; i<n; i++)printf("%3d", a[i]);
printf("/n/n");
NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
FILE *rf, *wf; int a[N], i, j, p, n;
rf=fopen("in.dat", "r");
wf=fopen("out.dat", "w");
for(i=0; i<5; i++) {
fscanf(rf, "%d %d",
for(j=0; j<n; j++)fscanf(rf, "%d",
fun(a, p, n);
for(j=0; j<n; j++)fprintf(wf, "%3d", a[j]); fprintf(wf, "/n");
}
fclose(rf); fclose(wf);
}
问答题编写函数int fun(int lim,int aa [MAX]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回所求出的素数的个数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#define MAX 100
int fun(int lim,int aa[MAX])
{
}
void main()
{
int limit,i,Sum;
int aa[MAX];
system("CLS");
printf("输入一个整数");
scanf("%d",
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0
printf("%5d",aa[i]);
}
}
问答题请编写一个函数void fun(int m, int k, int xx[]),该函数的功能是将大于整数m且紧靠m的k个非素数存入所指的数组中。
例如,若输入15,5,则应输出16,18,20,21,22。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
void fun(int m,int k,int xx[])
{
}
main()
{
int m,n,zz[1000];
clrscr();
printf("/nPlease enter two integers:");
scanf("%d%d",&m,&n);
fun(m,n,zz);
for(m=0;m<n;m++)
printf("%d",zz[m]);
printf("/n");
}
问答题给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。
例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun(char *s, char *p)
{ int i, j, n, x, t;
n=0;
for(i=0; s[i]!='/0'; i++) n++;
for(i=1; i
/**********found**********/
___1___;
/**********found**********/
for(j=___2___+2 ; j
if(s[t]>s[j]) t=j;
if(t!=i)
{ x=s[i]; s[i]=s[t]; s[t]=x; }
}
for(i=1,j=0; i
/**********found**********/
p[j]=___3___;
}
main()
{ char s[80]="baawrskjghzlicda", p[50];
printf("/nThe original string is : %s/n",s);
fun(s,p);
printf("/nThe result is : %s/n",p);
}
问答题给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:7654321时,t中的数为:7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:
问答题给定程序MODi1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。例如:当输入100时,输出:100=9+10+11+12+13+14+15+16100=18+19+20+21+22请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>void fun(int n){int j,b,c,m,flag=0;for(b=1,b<n/2;b++){/**********found**********/n=m;c=b;while(m!=0&&m>=c)/**********found**********/m=m一c;c++}/**********found**********/if(m!=0){printf(''%d='',n);for(j=b;j<c一1;j++)printf(''%d+'',j);printf(''%d\n'',j);flag=1;}}if(flag==0)printf(''不能分解\n'');}main(){int n:printf(''请输入一个整数:'');scanf(''%dt'',&n);fun(n);}
问答题下列给定程序中,函数proc()的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串中,例如,把2个字符串abc、CD串联起来,结果是abcCD。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
//****found****
int proc(char str[][10], int m, char *pt)
{ int k, q, i, j=0;
for(k=0; k<m; k++)
{q=strlen(str[k]);
j+=q;
for(i=0; i<q; i++)
//****found****
pt[i]=str[k, i];
pt+=q;
pt[0]=0;
}
pt-=j;
}
void main()
{ int m, h;
char str[10][10], p[120];
system("CLS");
printf("/nPlease enter m: ");
scanf("%d", gets(str[0]);
printf("/nPlease enter %d string: /n", m);
for(h=0; h<m; h++) gets(str[h]);
proc(str, m, p);
printf("/nThe result is: %s/n", p);
}
问答题请编写函数fun,其功能是:找出一维整型数组元素中最大的值所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。 主函数中x是数组名。n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<time.h> #include<stdlib.h> #include<stdio.h> void fun(int a[],int n,int*max,int*d) int i; *max=a[0]; *d=0; for(i=0;i<n;i++)/*将最大的 元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/ if(*max<a[i]) (*max=a[i];*d=i; void main() int i,x[20],max,index,n=10; scanf((unsigned) time (NULL)); for(i=0;i<=n;i++) x[i]=rand()%50; printf("%4d",x[i]); /*输出一个随机数组*/ printf("/n"); fun(x,n,&max,&index); printf("Max=%5d,Index=%4d/n",max,index);
问答题假定输入的字符串中只包含字母和*号。请编写函数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);
}
