问答题给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdlib.h>#include<stdio.h>#define N 20void fun(int* a){ int i,x,n=0; x=rand()%20:/******found******/ while(n<__1__) for(1=0;1<n;i++/******found******/ if(X==a[i]) ___2___;/******found******/ if(==___2___) j a[n]==x;n++; x=rand()%20:}main.(){ int x[N]=}0},i; fun(x);pfinff(“The result:\n”);for(i=0;i<N;i++){ printf(“%4d”,x[i]); if((i+1)%5==0)pfinff(“\n”); } pfinff(“、n”);}
问答题综合应用
请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。
注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#define M 14
void NONO();
void fun( char (*t)[M], int *a ,int *c)
{
}
void get( char (*s)[M] )
{ int i, j;
for( i=0; i
问答题
给定程序MODI1.C中函数劬的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如,若输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为:4(平均分为:75.5625)。
请改正程序中的错误,使它能统计出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#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的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。
请改正函数fun中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#include
typedef struct且aa
{ int data;
struct aa*next;
}NODE;
int fun(NODE*h)
{ int sum=0;
NODE*p;
p=h->next;
/*************found**************/
while(P->next)
{if(P->data%2==0)
sum+=P->data;
/*************found**************/
P=h->next;
}
return sum;
}
NODE*creatlink(int n)
{
NODE*h,*p,*s;
int i;
h=P=(NODE*)malloc(sizeof(NODE));
for(i=1;i<n;i++)
{
s=(NODE*)malloc(sizeof(NODE));
8->data=rand()%16;
S->next=P->next:
P->next=s:
p=p->next:
}
p->next=NULL;
retum h;
}
outlink(NODE*h)
{ NODE*p;
P=h->next;
printf("\n\n The LIST:\n\n HEAD");
while(P)
{printf("->%d",P->data);
P=P->next;}
printf("\n");
}
void main()
{ NODE*head;int sum;
system("CLS");
head=creatlink(10);
outlink(head);
sum=fun(head);
printf("\nSUM=%d",sunl);
}
问答题给定程序MODI1.C中函数fhn的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#include
#define N 10
typedef struct ss
{ char num[10];
int s; }
STU;
STU *fun(STU a[], int m)
{STU b[N], *t;
int i,j,k;
/**********found**********/
t=(STU *)calloc(sizeof(STU),m)
for(i=0; i b[j] .s) j=i;
/**********found**********/
t(k)=b(j);
b[j].s=0;
}
return t;
}
outresult(STU a[], FILE *pf)
{ int i;
for(i=0; i10)
{ printf ("/nGive the number of the
students who have better score: ") ;
scanf("%d",
}
pOrder=fun(a,m);
printf("***** THE RESULT
***** /n");
printf("The top :/n");
for(i=0; i
问答题下列给定程序中,函数fun的功能是:在有n名学生、2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是76.125000 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>typedef struet{ char num[8]; double score[2];}STU;double fun(STU std[],int n){ int i;/******found******/ double sum;/******found******/ for(i=0;i<2;i++)/******found******/ 8am+=std[i].8core[1]; return sum/n;}main(){ STU std[]={“N1001”,76.5,82.0,“N1002”,66.5,73.0,“N1005”,80.5,66.0,“N1006”,81.0,56.0}; printf(”第1门课程的平均分是:%lf\n”,fun(std,4));}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其他*号全部删除。形参P已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为****A*BC*DEF*G**********,删除后,字符串中的内容应当是ABCDEFG******* 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#nclude<stdio.h>void fun(char*a,char*P){}main(){ char S[81],*t; void NONO(); printf(“Enter a string:\n”); gets(S); t=S; while(*t)t++; t一一; while(*t==‘*’)t一一; fun(s,t); prinff(“The string after deleted:\n”); puts(s); NONO();}void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/{ FILE*in,* out; int i;char S[81],*t; in=fopen(“in.dat”,“r”); out=fopen(“out.dat”,“w”); for(i=0;i<10;i++) { fscanf(in,“%s”,S); t=s: while(* t)t++; t一一: while(*t==‘*’)t一一; fun(s,t); fprinLf(out,“%s\n”,s); } fclose(in); felose(out);}
问答题下列给定程序中,函数fun的功能是:计算正整数num各位上的数字之积。 注意:不要改动maln函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include <stdio.h > #include <conio.h> long fun (long num) /********** found********** / long k; do k*=num% 10; /********** found********** / num/=10; while (num); return (k); main () long n; printf ("/ n please enter a num- ber: "); scanf("% 1d", printf("/n% 1d/n", fun(n));
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如, 字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG*******。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h>void fun(char *a, char *p){}main (){ char s[81],*t;void NONO ();printf("Enter a string:/n");gets (s);t=s;while(*t)t++;t-;while(*t=='*')t--;fun(s , t);printf("The string after deleted: /n");puts (s); NONO();}void NONO() {/*本函数用于打开文件,输入数据,调 用函数,输出数据,关闭文件。 */FILE *in, *out ; int i ; char s[81],*t ; in = fopen("in.dat","r"); out = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i++) {fscanf(in, "%s", s);t=s;while(*t)t++;t--;while (*t=='*') t--;fun(s,t);fprintf(out, "%s/n", s) ;}fclose(in);fclose(out); }
问答题函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 void fun(int a[],int n)3 { int i,t;4 /**********found**********/5 for(2=0 ; i<__1__; i++)6 {7 t=a[i];8 /**********found**********/9 a[i]=a[n-1- __2__];10 /**********found**********/11 __3__=t;12 }13 }14 main()15 {int b[9]={1,2,3,4,5,6,7,8,9},i ;16 printf(''\nThe original data:\n'');17 for(i=0;i<9;i++)18 printf(''%4 d'',b[i]);19 printf(''\n'');20 fun(b,9);21 printf(''\nThe data after invert:\n'');22 for(2=0;i<9;i++)23 printf(''%4d'',b[i]);24 printf(''\n'');25 }
问答题给定程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量c来统计小于0的个数,当输入0时结束输入,并通过形参pa和pb把统计的数据传回主函数进行输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include<stdio.h>void fun(int *px,int *py){/**********found**********/int 【1】 ;scanf("%d",&k);/**********found**********/while 【2】{if(k>0)a++; if(k<0)c++;/**********found**********/ 【3】 ;} *px=a;*py=c;}main(){int x,y; fun(&x,&y); printf("x=%d y=%d\n",x,y);}
问答题给定程序中,函数fun的功能是将带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为: 10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < stdlib.h >
#define N 6
typedef struct node {
int data;
struct node * next;
} NODE;
void fun (NODE *h)
{ NODE *p, *q; int t;
/*********found*********/
p=
【1】
;
while (p) {
/*********found*********/
q=
【2】
;
while (q) {
/*********found*********/
if (p 一 > data
【3】
q 一 > data)
{ t = p 一 >data;
p 一 > data = q 一 > data;
q 一 > data =t; }
q = q 一 > next;
}
p = p 一 >next;
}
}
NODE * creatlist (int a[])
{ NODE *h, *p, *q; int if
h = (NODE * ) malloc (sizeof
(NODE));
h 一 >next = NULL;
for(i=0;i < N;i++)
{ q = (NODE *) malloc (sizeof
(NODE));
q 一 >data =a[i];
q 一 >next = NULL;
if (h 一 >next == NULL)
h 一 >next = p = q;
else { p 一 >next = q, p = q; }
}
return h;
}
void outlist (NODE * h)
{ NODE *p;
p = h 一 >next;
if (p==NULL)
printf ("The list is NULL ! /n") ;
else
{ printf ("/nHead ") ;
do
{ printf (" 一 >%d", p 一 >data) ;
p =p 一 > next; }
while (p ! = NULL) ;
printf (" 一 >End/n") ;
}
}
main ()
{ NODE * head;
int a[N] = {0, 10, 4, 2, 8, 6 };
head = creatlist (a) ;
printf ("/nThe original list:/n") ;
outlist (head) ;
fun (head) ;
printf ( "/nThe list after soroutlist (head) ;
}
问答题给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。 例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 long fun(long num)3 {4 /**********found**********/5 long k;6 do7 { k*=num%10;8 /**********found**********/9 num\=10;10 }while(num);11 return(k);12 }13 main()14 {long n;15 printf(''\nPlease enter a number:'') scanf(''%1d'',&n);16 printf(''\n%1d\n'',fun(n);}
问答题下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N],intin),该函数的功能是使数组右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为:则返回主程序后a数组中的值应为:注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:1#include<conio.h>2#include<stdio.h>3#include<stdlib.h>4#include<string.h>5#defitieN56voidfun(inta[][N],intm)7{89}10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<N;i++)16{for(j=0;j<N;j++)17{a[i][j]=rand()%20;18printf("%4d",a[i][j]);19}20printf("\n");21}22m=rand()%4;23printf("m=%4d\n",m);24fun(a,m);25printf("THERESULT\n");26for(i=0;i<N;i++)27{for(j=0;j<N;j++)28printf("%4d",a[i][j]);29printf("\n");30}31/*********found*********/32out=fopen("out.dat","w");33for(i=0;i<N;i++)34for(j=0;j<N;j++)35a[i][j]=i*j;36fun(a,8);37for(i=0;i<N;i++)38{for(j=0;j<N;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found*********/44}
问答题请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。注意:部分源程序在文件PROG1.C中。请勿改动mmn函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#define N 50#define M 11void fun(int*a,int;*b){}double rnd(){ static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return((doubZe)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);/******************/}
问答题下列给定程序中,函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码值为偶数的字符依次放入t所指数组中。例如,字符串中的数据为“AABBCCDDEFFF”,则输出应当是“ABBCDDEFF”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>#include<string.h>#define N 80void fun(char*s,char t[]){ int i,j=0; for(i=0;i<(int)strlen(s);i++)/*********found*********/ if(i%2&&s[i]%2==0) t[j++]=s[i];/*********found*********/ t[i]='\0';}main(){ char s[N],t[N]; printf("\nplease enther string s:"); gets(s); fun(s,t); printf("\nThe result is:%s\n",t);}
问答题请编写函数fun,它的功能是:求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int *a,int *n)3 {5 }6 main()7 { int aa[1000],n,k;8 void NONO();9 fun(aa,&n);10 for (k=0; k<n; k++)11 if((k+1)%10==0)printf(''\n'');12 else printf(''%5d'',aa[k]);13 NONO();}15 void NONO()16 {/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/17 int aa[1000],n,k;18 FILE *fp;19 fp=fopen(''out.dat'',''w'');20 fun(aa,&n);21 for(k=0;k<n;k++)22 if((k+1)%10==0)fprintf(fp,''\n'');23 else fprintf(fp,''%5d'',aa[k]);24 fclose(fp);}
问答题给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。
例如,从主函数输入一个整数:27638496,函数返回值为:26846。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
unsigned long fun (unsigned long n)
{ unsigned long x=0, s, i; int t;
s=n;
/********** found**********/
i=【l】;
/********** found**********/
while (【2】)
{ t=s%10;
if(t%2==0){
/********** found***********/
x=x+t*i; i=【3】;
}
s=s/10;
}
return x;
}
main ()
{ unsigned long n=-l;
while(n>99999999||n<0)
{printf("Please input:(0
问答题下列给定程序中,函数fun的功能是:求S的值。例如,当k为10时,函数的值应为1.533852。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODIl,C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<math.h>/*********found*********/fun(intk){intn;floats,w,p,q;n=1;s=1.0;while(n<=k){w=2.0,lcn;p=w一1.0;q=w+1.0;s=s*w*w/p/q;n++;}/*********found*********/returns}voidmain(){system("CLS");printf("%f/n",fun(10));}
问答题给定程序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);
}