问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> void fun(char*a, int n) main() char s[81]; int n; printf("Enter a string:/n"); gets(s); printf("Enter n:"); scanf("%d",&n); fun(s, n); printf("The string after deleted:/n"); puts(s);
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所 指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学 生的数据不变。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename, STU n)
{ FILE *fp;
fp = fopen(__1__, "rb+");
fseek(__2__, -1L*sizeof(STU), SEEK_END);
fwrite(
fclose(fp);
}
main()
{ STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88},
{10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87},
{10005,"ZhangSan", 95, 80, 88}};
STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N];
int i,j; FILE *fp;
fp = fopen("student.dat", "wb");
fwrite(t, sizeof(STU), N, fp);
fclose(fp);
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
printf("\nThe original data :\n\n");
for (j=0; j
问答题假定输入的字符串中只包含字母和“*”号。请编写函数fun,它的功能是:使字符串中尾部的“*”号不得多于n个;若多于n个,则删除多余的“*’号;若少于或等于n个,则什么也不做,字符串中间和前面的“*’号不删除。
例如,字符串中的内容为:****A*BC*DEF*G******,若n的值为4,删除后,字符串中的内容应当是:
****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G******。n的值在主函数中输入。
在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
voici fun (char *a,int n)
{
}
main()
{char s[81]; int n;
void NONO ();
printf ("Enter a string:/n");
gets (s);
printf ("Enter n:");scanf("%d", &n);
fun (s,n);
printf( "The string after deleted:
/n");puts(s);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函
数,输出数据,关闭文件。 */
FILE *in, *out ;
int i, n ; char sl81];
in= fopen ("in.dat","r");
out = fopen ("out.dat","w");
for (i= 0 ; i < 10 ; i++) {
fscanf (in, "%s",s);
fscanf (in, "%d",&n);
fun (s,n);
fprintf (out, "%s/n",s) ;
}
fclose (in);
fclose (out);
}
问答题下列给定程序中,函数fun的功能是:按以下递归公式求函数的值。例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>/**********found**********/fun(n){intc;/**********found**********/if(n=1)c=10;elsec=fun(n-1)+2;return(c);}main(){intn;printf("Entern;");seanf("%d",printf("Theresult:%d/n/n",fun(n));}
问答题已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdlib.h >#include < stdio.h >#include < string.h >#include < conio.h >#define N 10typedeistruct ss/*定义结构体*/{ char hum[10]; int s;}STU;fun(STU a[],STU*s){}void main(){ STU a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A0 7",79},{"A08",61},{"A0 9",80},{"A10",71)},m; int i; system("CLS"); print("/****The originaldata****"); for(i=0;i < N;i++) printf ("No=%s Hark=%d/n",a[i].num,a[i].s); fun(a,&m); printf,"***THE RESULT****/n"); printf("The top:%s,%d/n",m.num,m.s);}
问答题请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#define M 4#include < stdio.h >int fun(int a[][M]){}void main(){ int arr[2][M]={5,8,3,45,7 6,一4,12,82}; printf("max=%d/n",fun (arr));}
问答题下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>int fun(int m){ int i,k; for(i=m+1;;i++) { for(k=2;k<i;k++)/*********found*********/ if(i%k!=0) break;/*********found*********/ if(k<i) return(i); }}void main(){int n; system("CLS"); printf("\nPlease enter n:"); scanf("%d",&n); print;f('%d\n',fun(n));}
问答题给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
typedef struct aa
{ int data;
struct aa *next;
} NODE;
NODE *Creatlink(int n, int m)
{NODE *h=NULL, *p, *s;
int i;
/********** found***********/
p=(NODE)malloc(sizeof(NODE));
h=p;
p->next=NULL;
for(i=l; idata=rand() %m;
s->next=p-> next;
p->next=s; p=p->next;
}
/********** found***********/
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;
}
printf("/n");}
main()
{NODE *head;
head=Creatlink(8,22);
outlink(head); }
问答题请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“一1234”,则函数把它转换为整数值一1234。 注意:部分源程序给出如下。 请勿改动主函数maln和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >#include < string.h >long fun(char*p){}void main(){ char s[6]; long n; printf("Enter a string:/n"); gets(s); n=fun(s); printf("%ld/n",n);}
问答题下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回一1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.C中。不得增行或删行,也不得更改程序的结构!
#include
#include #define N 5 #define M 8 int fun(char(*ss)[M],char*t) {int i: /**********found**********/ for(i=0;i<【1】;i++) /**********found**********/ if(strcmp(ss[i],t)==0)return【2】; return一1: } main() {char ch[N][M]={''if,''while'',''switch'',''int'',''for''},t[M]; int n,i; printf(''\nnThe original string\n\n''); for(i=0;i<N;i++)puts(ch[i]); printf(''\n''); printf(''\nEnter a string for search:'');gets(t); n=fun(ch,t); /**********found**********/ if(n==【3】printf(''\nDon't found!\n''); else printf(''\nThe position is%d\n'',n); }
问答题给定程序MODI1. C中函数fun的功能是:将长整型数s中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为:87653142时,t中的数为:8642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio. h>
void fun (long s, long *t)
{ int d;
long s1=1;
*t=0;
while(s>0)
{ d=s%10;
/************found************/
if(d%2=0)
{ *t=d* s1+ *t;
s1 *=10;
}
/************found************/
s/=10;
}
}
main( )
{long s, t;
printf("/nPlease enter s:");
scanf("%1d",
fun(s,
printf("The result is: %1d/n", t);
}
问答题给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。
例如,以下3×3的矩阵就是一个“幻方”:
4 9 2
3 5 7
8 1 6
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#define N 3
int fun(int (*a) [N] )
{ int i,j,m1,ra2,row,colum;
ml=m2=0;
for(i=0; i
问答题给定程序MODI1.C中函数 fun 的功能是:实现两个整数的交换。
例如给a和b分别输入:60 和 65,输出为:a = 65 b = 60
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
/**********found**********/
void fun ( int a, b )
{ int t;
/**********found**********/
t = b; b = a ; a = t;
}
main ( )
{ int a, b;
printf ( "Enter a , b : "); scanf ( "%d,%d",
fun (
printf (" a = %d b = %d/n ", a, b );
}
问答题给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是"幻方",若是,函数返回值为1;若不是,函数返回值为0。"幻方"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。
例如,以下3×3的矩阵就是一个"幻方":
4 9 2
3 5 7
8 1 6
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BIANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<Stdio.h>
2 #define N 3
3 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];
8 m2+=a[i][j];}
9 if(m1!=m2)return 0;
10 for(i=0;i<N;i++){
11 /*********found*********/
12 row=colum=
【1】
;
13 for(j=0;j<N;j++)
14 {row+=a[i][j];
15 colum+=a[j][i];)
16 /*********found*********/
17 if((row!=colum)
【2】
(row!=m1))
18 return 0 ;
19 }
20 /*********found*********/
21 return
【3】
;
22 }
23 main()
24 { int x[N][N],i,j; .
25 printf("Enter number for array:\n");
26 for(i=0;i<N ;i++)
27 for(j=0;j<N;j++)
28 scanf("%d",&x[i][j]);
29 printf("Array:\n");
30 for(i=0;i<N;i++)
31 { for(j=0;j<N;j++)
32 printf("%3d",x[i][j]);
33 printf("\n");
34 }
35 if(fun(x))
36 printf("The Array is amagic square.\n");
37 else
38 printf("The Array isn'ta magic square.\n");
39 }
问答题下列给定程序中,函数fun的功能是:计算如下公式直到,并且把计算结果作为函数值返回。例如,若形参e的值为le-3,则函数返回值为0.551690。请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>doublefun(doublee){inti,k;doubles,t,x;s=0;k=1;i=2;/**********found**********/x=___(1)___/4;/**********found**********/while(x___(2)___e){s=s+k*x;k=k*(-1);t=2*i;/**********found**********/x=___(3)___/(t*t);i++;}returns;}main(){doublee=le-3;printf(/nTheresultis:%f/n,fun(e));}
问答题编写函数fun(),其功能是将M行、N列的二维数组中的数据按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。 例如,二维数组中的数据如下: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 33 33 33 44 44 44 44 55 55 55 55。 #include<stdio.h> void fun(int(*s)[10],int*b,int*n,int mm,int nn) main() int w[10][10]=33,33,33,33,44,44,44,44,55,55,55,55,id; int a[100]=0,n=0;void NONO(); printf("The matrix:/n"); for(i=0;i<3;i++) for(j=0;j<4;j++)printf("%3d",w[i][j]); printf("/n"); fun(w,a, printf("The A array:/n"); for(i=0;i<n;i++)printf("%3d",a[i]);printf("/a/n");
问答题编写函数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,55},aver; aver=fun(score,5); printf("\nAveracje score is:%5.2 f\n",aver),}
问答题请编写函数proc(),其功能是:计算并输出下列多项式值。
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函数从键盘给n输入20后,则输出为S=0.680803。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
double proc(int n)
{
}
void main()
{
int n;
double sum;
printf("/nInput n:");
scanf("%d",
sum=proc(n);
printf("/ns=%f/n",sum);
}
问答题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#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},{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},{"GA011",77},{"GA017",64},{"GA018",64},{"GA016",72}};
STREC h[N];
int i,n;FILE *out;
n=fun(s,h);
printf("The %d highest score:/n",n);
for(i=0;i<n;i++)
printf("%s %4d/n",h[i].num,h[i].s);
printf("/n");
out=fopen("out.dat","w");
fprintf(out,"%d/n",n);
for(i=0;i<n;i++)
fprintf(out,"%4d/n",h[i].s);
fclose(out);
}
问答题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。
例如,若输入17,5,则应输出19、23、29、31、37。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
void fun(int m,int k,int xx[])
{
}
void main()
{
int m,n,zz[1000];
system("CLS");
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");
}