问答题学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:把分数最高的学生数据放入b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#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'',91},{''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);
printf(''%s%4d\n'',h[i].num,h[i].s);
printf(''1\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);
}
问答题编写函数int fun(int lim, int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#define MAX 100
int fun(int lim, int se[MAX])
{
}
main()
{
int limit,i,sum;
int aa[MAX];
clrscr();
printf("输入一个整数");
scanf("%d",
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0
printf("%5d ",aa[i]);
}
}
问答题请编写函数void fun (int x,int pp[],int *n),它的功能是求出能整除x且不是奇数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为24,则有6个数符合要求,它们是2, 4, 6, 8, 12, 24。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> 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",&X); fun(x,aa,&n); for(i=0;i<n;i++) printf("%d",aa[i]); printf("/n");
问答题给定程序MODI1. C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为:7654321时,t中的数为:7531。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio. h>
/************found************/
void fun(long s, long t)
{long s1=10;
*t=s%10;
while(s>0)
{ s=s/100;
*t=s%10 *s1+ *t;
/************found************/
s1=s1 *100;
}
}
main( )
{long s, t;
printf("/nPlease enter s:");
scanf("%ld",
fun(s,
printf("The result is: %id/n", t);
}
问答题下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include <conio.h> #include <stdio.h > #include <string.h> char* fun (char tt[]) int i; for (i=0; tt[i]; i++) /********** found********** / if ((tt[i]>='a') ||(tt[i]<='z')) /********** found********** / tt[i]+=32; return (tt); main () char tt[81]; printf ("/nPlease enter a string: "); gets (tt); printf ("/nThe result string is: /n% s", fun(tt));
问答题给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长<N。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20
void fun(char(*ss)[N])
{ int i, j, n, len=0;
for(i=0; i<M; i++)
{len=strlen(ss[i]);
if(i==0)n=len;
if(len>n)n=len;
}
for(i=0; i<M; i++){
/**********found**********/
n=strlen(______);
for(j=0; j<len-n; j++)
/**********found**********/
ss[i][______]="*";
/**********found**********/
ss[i][n+j+______]="/0";
}
}
main()
{char ss[M][N]={"shanghai", "guangzhou", "beijing", "tianjing", "cchongqing"};
int i;
printf("The original strings are:/n");
for(i=0; i<M; i++)printf("%s/n", ss[i]);
printf("/n");
fun(ss);
printf("The result is:/n");
for(i=0; i<M; i++)printf("%s/n", ss[i]);
}
问答题编写函数fun,其功能是:实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。例如,输入下面的矩阵: 其转置矩阵为: 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9程序输出: 2 6 10 6 10 14 10 14 18注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include < stdio.h >#include < conio.h >#include < stdlib.h >void fun(int a[3][3],int b[3][3]){}void main(){ int e13][3]=f{1,2,3},{4,5,6},{7,8,9)},t[3][3]; int i,j; system("CLS"); fun(a,t), for(i=0;i < 3;i++) { for(j=0;j < 3;j++) printf("%7 d",t[i][j]); printf("/n"); }}
问答题请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。 注意:要求n的值不大于100。 部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 double fun(int n)3 {45 }6 NONO()7 {/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/8 FILE *rf *wf;int n,i;double s;9 rf=fopen(''in.dat'',''r'');10 wf=fopen(''out.dat'',''w'');11 for(i=0;i<10 ; i++) {12 fscanf(rf,''%d'',&n);13 s=fun(n);14 fprintf(wf,''%if\n'',s);15 }16 fclose(rf);fclose(wf);17 }18 main()19 { int n;double s;20 printf(''\nInput n:'');scanf(''%d'',&n);21 s=fun(n);22 printf(''\n\ns=%f\n'',s);23 NONO();}
问答题编写一个函数,其功能是:从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标识)。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char*fun(char(*a)[81],int num,char*max)
{
}
void main()
{
char ss[10][81],*ps;
int n,i=0;
system("CLS");
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
/*用4个星号作为结束输入的标志*/
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
ps=fun(ss,n,ps);
printf("/nmax=%s/n",ps);
}
问答题函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;其余以此类推。例如:若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 9
/**********found**********/
void fun(int ______,int n)
{ int i,j,max,min,px,pn,t;
/**********found**********/
for(i=0;i<n-1;i+=______)
{ max=min=a[i];
px=pn=i;
/**********found**********/
for(j=______;j<n;j++)
{ if(max<a[j])
{ max=a[j];px=j;}
if(min>a[j])
{ min=a[j];pn=j;}
}
if(px!=i)
{ t=a[i];a[i]=max;a[px]=t;
if(pn==i) pn=px;
}
if(pn!=i+1)
{ t=a[i+1];a[i+1]=min;a[pn]=t;}
}
}
main()
{ int b[N]={1,4,2,3,9,6,5,8,7},i;
printf("/nThe original data:/n");
for(i=0;i<N;i++) printf("%4d",b[i]);
printf("/n");
fun(b,N);
printf("/nThe data after moving:/n");
for(i=0;i<N;i++) printf("%4d",b[i]);
printf("/n");
}
问答题下列给定程序中,函数fun的功能是:将形参a所指数组中的前半部分元素中的值与后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。 例如,若a所指数组中的数据为:1,2,3,4,S,6,7,8,9,则调换后为:6,7,8,9,5,1,2,3,4。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #incIude<stdio.h> #define N 9 void fun[int a[],int n) int i,t,p; /********found********/ p=(n%2==0)?n/2;n/2+ (1) ; for(i=0;i<n/2;i++) f=a[i]; /********fodnd********/ a[i]=a[p+ (2) ]; /********found********/ (3) =t; maln() int b[N]=1,2,3,4,5,6,7,8,9,i; printf("/nThe original data:/n"); for(i=0;i<N;i++) printf("%4D,b[i]); printf("/n"); fun(b,N); printf("/nThe daca after moving:/n"); for(i=0;i<N;i++) printf("%4d",b[i]); printf("/n");
问答题下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9',则将'0'转换成'9', '1'转换成'8','2'转换成'7',……,'9'转换成'0';若是其他字符则保持不变;并将转换后的结果作为函数值返回。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构! 试题程序: #include <stdio.h > /**********found********** / (1) fun (char ch) /**********found********** / if(ch>'0' && (2) ) /**********found********** / return '9'-(ch- (3) ); return ch; main () char c1, c2; printf ("/nThe result :/n"); c1='2'; c2=fun (c1); printf ("c1=% c c2=% c/n", c1, c2); c1='8'; c2=fun (c1); printf ("c1=% c c2=% c/n", c1, c2); c1='a'; c2=fun (c1); printf ("c1=% c c2=% c/n", c1, c2);
问答题给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<stdlib.h>3 typedef struct aa4 { int data;5 struct aa *next;6 } NODE;7 int fun(NODE *h)8 { int max=-1;9 NODE *p;10 /**********found**********/11 p=h;12 while(p)13 { if(p->data>max)14 max=p->data;15 /**********found**********/16 p=h->next;17 }18 return max;19 }20 outresult(int s,FILE *pf)21 { fprintf(pf,''\nThe max in link:%d\n'',s);}22 NODE *creatlink(int n,int m)23 { NODE *h,*p,*s;24 int i;25 h=p=(NODE*)malloc(sizeof(NODE));h->data=9999;26 for(i=1;i<=n;i++)27 {s=(NODE *)malloc(sizeof(NODE));28 s->data=rand()%m;s->next=p->next;29 p->next=s;p=p->next;30 }31 p->next=NULL;32 return h;33 }34 outlink(NODE *h,FILE *pf)35 { NODE *p;36 p=h->next;37 fprintf(pf,''\nTHE LIST:\n\n HEAD'');38 while(p)39 {fprintf(pf,''->%d'',p->data);p=p->next;}40 fprintf(pf,''\n'');41 }42 main()43 { NODE *head;int m;44 head=creatlink(12,100);45 outlink(head,stdout);46 m=fun(head);47 printf(''\nTHE RESULT:\n''); outresult(m,stdout);48 }
问答题请编写函数fun(),它的功能是计算下列级数和,和值由函数值返回。 S=1-x+x2/2!-x3/3!+…+(-1*x)n/n! 例如,当n=15,x=0.5时,函数值为0.606531。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> #include<math.h> double fun(double x, int n) { } main() { clrscr(); printf("%f ",fun (0.5,15)); }
问答题给定程序MODI1.C中函数fun的功能是: 给一维数组a输入任意4个整数, 并按下例的规律输出。例如输入1、2、3、4, 程序运行后将输出以下方阵。
4 1 2 3
3 4 1 2
2 3 4 1
1 2 3 4
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#define M 4
/**************found**************/
void fun(int a)
{ int i,j,k,m;
printf("Enter 4 number : ");
for(i=0; i
printf("/n/nThe result :/n/n");
for(i=M;i>0;i--)
{ k=a[M-1];
for(j=M-1;j>0;j--)
/**************found**************/
aa[j]=a[j-1];
a[0]=k;
for(m=0; mprintf("/n");
}
}
main()
{ int a[M];
fun(a); printf("/n/n");
}
问答题给定程序中,函数fun的功能是:将N×N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵
1 2 3
4 5 6
7 8 9
计算结果为
3 1 2
6 4 5
9 7 8
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 4
void fun(int (*t)[N])
{ int i, j, x;
/**********found**********/
for(i=0; i=1; j--)
t[i][j]=t[i][j-1];
/**********found**********/
t[i][___3___]=x;
}
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;
printf("The original array:/n");
for(i=0; i
{ for(j=0; jprintf("/n");
}
fun(t);
printf("/nThe result is:/n");
for(i=0; i
{ for(j=0; jprintf("/n");
}
}
问答题编写函数fun,其功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。例如,m=12,n=8时,运行结果为495.000000。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>floatfun(intm,intn){}main()/*主函数*/{printf("P=%f/n",fun(12,8));}
问答题请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。
注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#define N 50
#define M 11
void fun(int *a,int*b)
{
}
double rnd()
{
static t=29,c=217,m=1024,r=0;
r=(r*t+c)%m;
return((double)r/m);
}
void main()
{
FILE *wf;
int age[N],i,d[M];
int b[N]={32,45,15,12,86,49,97,3,44,52,17,95,63};
for(i=0;i<N;i++)
age[i]=(int)(115*rnd());
/*产生一个随机的年龄数组*/
printf("The original data:/n");
for(i=0;i<N;i++)
printf((i+1)%10==0?"%4d/n":"%4d",age[i]);/*每行输出10个数*/
printf("/n/n");
fun(age,d);
for(i=0;i<10;i++)
printf("%4d---%4d:%4d/n",i*10,i*10+9,d[i]);
printf("Over 100:%4d/n",d[10]);
/*****************/
wf=fopen("out.dat","w");
fun(b,d);
for(i=0;i<10;i++)
fprintf(wf,"%4d—%4d:%4d/n",i*10,i*10+9,d[i]);
fprintf(wf,"Over 100:%4d",d[10]);
fclose(wf);
/*****************/
}
问答题给定程序MODI1.C中函数 fun 的功能是: 将十进制正整数m转换成k(2≤k≤9)进制数, 并按高位到低位顺序输出。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
请改正 fun 函数中的错误,使它能得出正确的结果。
注意:不要改动 main 函数。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
void fun( int m, int k )
{
int aa[20], i;
for( i = 0; m; i++ )
{
/**********found**********/
aa[i] = m/k;
m /= k;
}
for( ; i; i-- )
/**********found**********/
printf( "%d", aa[ i ] );
}
main()
{
int b, n;
printf( "/nPlease enter a number and a base:/n" );
scanf( "%d %d",
fun( n, b );
printf("/n");
}
问答题编写一个函数,其功能是:从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标识)。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char*fun(char(*a)[81],int num,char*max)
{
}
void main()
{
FILE*wf;
char ss[10][81],*ps=NULL;
char s[3][81]={"abcd","deg","diegns"},*p=NULL;
int i=0,n;
system("CLS");
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)/*用4个星号作为结束输入的标志*/
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
ps=fun(ss,n,ps);
printf("/nmax=%s/n",ps);
/******************/
wf=fopen("out.dat","w");
p=fun(s,3,p);
fprintf(wf,"%s",p);
fclose(wf);
/******************/
}
