问答题给定程序MODll.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第l门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第l门课程的平均分是:76.125000请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
问答题下列给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为O。 例如,若N=3,有下列矩阵: 1 2 3 …… 4 5 6 …… 7 8 9 计算后结果为: 1 0 0 …… 6 5 0 …… 10 14 9 请在下划线处填人正确的内容并把下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<scdio.h> #define N 4 /********found********/ void fun(int(*t) (1) ) int i,j; for(i=l;i<N;i++) for(j=0;j<i=j++) /********found********/ (2) =t[i][j]+t[j][i]; /********found********/ (3) =0; main() int t[][N]=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j; printf("/nThe original array:/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%2d",t[i][j]; printf("/n"); fun(t); printf("/nThe result is:/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%2d",t[i][j])= printf("/n");
问答题请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次存放到一维数组中。函数fun中给出的语句仅供参考。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 文件PROG1.C内容如下: #include<stdio.h> void fun(int(*s)[10],int *b,int *n,int mm,int nn) /*以下代码仅供参考*/ int i,j,np=0; /*np用作b数组的下标*/ void main( ) int w[10][10]=33,33,33,33,44,44,44,44,55,55,55,55,i,j; int a[100]=0,n=0; 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,&n,3,4); printf("The A array: /n"); for(i=0;i<n;i++)printf("%3d",a[i]); printf("/n/n");
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:“******A*BC*DEF*G*******”,删除后,字符串中的内容应当是:“****ABCDEFG”。注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include<stdio.h> void fun(char*a) { } main() {char s[81];void NONO(); printf(“Enter a string:\n”);gets(s); fun(s); prinff(“The string after deleted:\n”);puts(s); NONO(); } void NONO() {/*本函数用于打开文件,输人数据,调用函数,输出数据,关闭文件。*/ FILE,*in,*out; int i;char s[81]; in=fopen(“in.dat”,“r”); out=fopen(“out.dat”,“W”); for(i=0;i<10;i++) { fscanf(in,“%s”,s); fun(s); fprintf(out,“%s\n”,s); } fclose(in); fclose(out); }
问答题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#define N 16
typedef struct
{ char num[10];
int s;
}STREC;
void fun(STREC a[])
{
STREC tmp;
int i, j;
for(i=0; i<N; i++)
for(j=i+1; j<N; j++)
{ /*请按题目要求完成以下代码*/
}
}
main()
{ STREC s[N]={{"GA005", 85}, {"GA003", 76},
{"GA002", 69}, {"GA004", 85}, {"GA001", 91),
{"GA007", 72}, {"GA008", 64}, {"GA006", 87},
{"GA015", 85}, {"GA013", 91}, {"GA012", 64),
{"GA014", 91}, {"GA011", 66}, {"GA017", 64},
{"GA018", 64}, {"GA016", 72}};
int i; FILE*out;
fun(s);
printf("The data after sorted:/n");
for(i=0; i<N; i++)
{ if((i)%4==0)printf("/n");
printf("%s %4d", s[i].num, s[i].s);
}
printf("/n");
out=fopen("c://test//out.dat", "w");
for(i=0; i<N; i++)
{ if((i)%4==0
fprintf(out, "%4d", s[i].s);
}
fprintf(out, "/n");
fclose(out);
}
问答题给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:30 6 17 15 26 46 32 40 45 48 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include<stdlib.h>#include<stdio.h>#define N 10 double fun(double *x){ int i,j;double av,y[N]; av=0; /**********found**********/ for(i=0; i<N; i++) av +=【1】; for(i=j=0;i<N;i++) if(x[i]<av){ /**********found**********/ y[j]=x[i];x[i]=一1; 【2】;} i=0; while(i<N) { if(x[i]!=一1)y[j++]=x[i]; /**********found**********/ 【3】; } for(i=0;i<N;i++)x[i]=y[i]; return av; } main() { int i;double x[N]; for(i=0;i<N;i++){x[i]=rand()%50;printf("%4.0f",x[i]);} printf("\n"); printf("\nThe average is:%f\n",fun(x)); printf("\nThe result:\n",fun(x)); for(i=0;i<N;i++)printf("%5.0f",x[i]); printf("\n");}
问答题编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
fun(char (*a) [81], int num, char *max)
{
}
main ()
{
char ss[l0] [81],*ps;
int n, i=0;
clrscr();
prlntf("输入若干个字符串");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i], "****")==0)
/*用****作为结束输入的标志*/
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
ps=fun(ss,n,
print~("/nmax=%s/n",ps);
}
问答题printf("max=%6.1f/n ",max);
问答题请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 例如,若二维数组中的数据为 W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSH.WSH。 注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include<stdio.h>#define M 3#define N 4void fun(char(*s)[N],char*b){}void main(){ FILE*wf; char a[100],W[M][N]={{‘w’,‘w’,‘w’,‘w’},{‘S’,‘S’,‘S’,‘S’},{‘H’,‘H’,‘H’,‘H’}}; int i,j; prinff(“The matrix:\n”); for(i=0;i<M;i++) { for(j=0;j<N;j++) pfinff(“%3c”,w[i][j]); printf(“\n”); } fun(w,a); prinff(“The A string:\n”); puts(a); prinff(“\n”);/******************/ wf=fopen(“out.dat”,“w”); fprintf(wf,“%s”,a); fclose(wf);/******************/}
问答题函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。 例如,当a=45,b=12时,调用该函数后,c=5142。 注意:部分源程序存在文件PROG1.c中。数据文件in.dat中的数据不得修改。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int a,int b,long *c]3 {45 }6 main()7 { int a,b;long c;8 void NONO();9 printf(''Input a,b:'');10 scanf(''%d,%d'',14 }15 void NONO()16 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */17 FILE *rf,*wf;18 int i,a,b ; long c;19 rf=fopen(''in.dat'',''r'');20 wf=fopen(''out.dat'',''w'');21 for(i=0 ; i<10;i++) {22 fscanf(rf,''%d,%d'', &a, &b);23 fun(a,b,&c);24 fprintf(wf,''a=%d,b=%d,c=%1d\n”,a,b,c);25 }26 fclose(rf);27 fclose(wf);28 }
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#define N 12
typedef struct
{char num[10];
double s;
}STREC;
double fun(STREC*a,STREC*b,int*n)
{
}
main()
{STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},
{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},
{"GA09",60},{"GA11",79},{"GA12",73},{"GA10",90}};
STREC h[N],t;FILE*out;
int i,j,n;double ave;
ave=fun(s,h,
printf("The %d student data which is higherthan %7.3f:/n",n,ave);
for(i=0;i<n;i++)
printf("%s %4.1f/n",h[i].num,h[i].s);
printf("/n");
out=fopen("c://test//out.dat","w");
fprintf(out,"%d/n%7.3f/n",n,ave);
for(i=0;i<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;i<n;i++)
fprintf(out,"%4.1f/n",h[i].s);
fclose(out);
}
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。
例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、" ZhangSan "、95、80、88,修改后输出t中的数据应为:10002、"LiSi "、96、81、89。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
struct student {
long sno;
char name[10];
float score[3];
};
/**********found**********/
__1__ fun(struct student *a)
{ int i;
a->sno = 10002;
strcpy(a->name, "LiSi");
/**********found**********/
for (i=0; isno, t->name);
for (i=0; iscore[i]);
printf("/n");
}
问答题请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为:33 33 33 3344 44 44 4455 55 55 55则一维数组中的内容应该是:33 33 33 33 44 44 44 44 55 55 55 55。注意:部分源程序在文件PROG1.C中。请勿改动mmn函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序: #include<stdio.h> void fun(int(*s)[10],int*b, int*n,int mm,int nn) { } void main() { FILE*wf; int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j, int a[100]={0},n=0; printf("The matrix:\n")j for(i=0;i<3;i++) (for(j=0;j<4;j++) printf("%3 d",w[i][j]); printf("\n"); } fun(w,a,&n,3,4); printf("The A array:\n"); for(i=0;i<n;i++) printf("%3d",a[i]); printf("\n\n");/******************/ wf=fopen("out.dat","w"); for(i=0;i<n;i++) fprintf(wf,"%3d",a[i]); fclose(wf);/******************/}
问答题请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:876 675 896 101 301 401980 431 451 777。
则输出结果为:6,980。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(int*s,int t,int*k)
{
}
main()
{
int a[10]=(876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,
printf("%d,%d/n",k,a[k]);
}
问答题# include “stdio.h”
main( )
{ int a[]={8,2,9,4,1}, *p;
p=a;
*(p+2)+=2;
printf(“%d, %d ”, *p, *(p+2));}
该程序的运行结果是___________________________________。
问答题给定程序MOD11.C中,函数fun的功能是判断整数n是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数”。
例如:6的因子包括l、2、3,而6=1+2+3,所以6是完数。如果是完数,函数返回值为1,否则函数返回值为0。数组a中存放的是找到的因子,变量k中存放的是因子的个数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
int fun (int n,int a[],int *k)
{int m=0,1,t;
t=n;
/***********found***********/
for(i=0;i
问答题编程题
请编写函数void fun (int x, int pp[], int *n),它的功能是:求出能整除x且不是奇数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为24,则有6个数符合要求,它们是2,4,6,8,12,24。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
#include
void fun (int x, int pp[], int *n)
{
}
main ()
{
int x,aa[1000], n, i ;
clrscr() ;
printf("/nPlease enter an integer number : /n ") ;
scanf ("%d",
fun (x, aa,
for (i=0 ; i
问答题下列给定程序中,函数fun的功能是:先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODI1.C中,不要改动mam函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdio.h >void fun (){int a[3] [3] , sum;int i, j ;/*********found*********/ sum = 1 ;sum=sum+a[i][i]; printf ("Sum = % d/n", sum) ;}void main (){fun ();}
问答题给定程序MODI1.C中函数fun的功能是: 将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A, z转换为a),其它字符不变。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
void fun (char *s)
{
/**********found***********/
while(*s!='@')
{ if(*s>='A'
else if(*s=='z') *s='a';
else *s += 1;
}
/**********found***********/
(*s)++;
}
}
main()
{ char s[80];
printf("/n Enter a string with length < 80. :/n/n "); gets(s);
printf("/n The string : /n/n "); puts(s);
fun ( s );
printf ("/n/n The Cords :/n/n "); puts(s);
}
问答题下列给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。例如,当字符串中的内容为“abcdabfabcdx”,t中内容为“ab”时,输出结果应是“abedx”。当字符串中的内容为“abcdabfabcdx”,t中内容为“abd”时,则程序输出未找到信息“not be found!”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#include<string.h>char *fun(char*s,char*t){ char*p,*r,*a;/*********found*********/ a=Null; while(*s) { p=s;r=t; while(*r)/*********found*********/ if(r==P) {r++,P++,} else break; if(*r=='\0')a=s; s++;} return a;}void main(){ char s[100],t[100],*P; system("CLS"); printf("\nPlease enter string s:"); scanf("%s",s); printf("\nPlease enter substring t:"); scanf("%s",t); p=fun(s,t); if(p) printf("\nThe result is:%s\n",p); else printf("\nNot found!\n");}