问答题编写函数int fun(int lim,int aa[MAX]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回求出的素数的个数。 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> #include<stdlib.h> #define MAX 100 int fun(int lim,int aa[MAX]) { } void main() { FILE *wf; int limit,i,sum; int aa[MAX]; system("CLS"); printf("输入一个整数:"); scanf("%d", for(i=0;i<sum;i++) { if(i%10==0&&i!=0)/*每行输出10个数*/ printf("\n"); printf("%5d",aa[i]); } /************/ wf=fopen("out.dat","w"); sum=fun(15,aa); for(i=0;i<sum;i++) { if(i%10==0&&i!=0)/*每行输出10个数*/ fprintf(wf,"\n"); fprintf(wf,"%5d",aa[i]); } fclose(wf); /************/ }
问答题下列给定程序中,函数fun的功能是:先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:1 #include<Stdio.h>2 void fun()3 {4 int a[3][3],sum;5 int i,j;6 /*********found*********/7 sum=1;8 for(i=0;i<3;i++)9 { for(j=0;j<3;j++)10 /*********found*********/11 scanf("%d",a[i][j]);12 }13 for(i=0;i<3;i++)14 sum=sum+a[i][i];15 printf("Sum=%d\n",sum);16 }17 void main()18 {19 fun();20 }
问答题给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 5
#define M 10
int fun(char (*ss)[M], int k)
{ int i,j=0,len;
/**********found**********/
for(i=0; i< __1__ ; i++)
{ len=strlen(ss[i]);
/**********found**********/
if(len<= __2__)
/**********found**********/
strcpy(ss[j++],__3__);
}
return j;
}
main()
{ char x[N][M]={"Beijing","Shanghai","Tianjing","Nanjing","Wuhan"};
int i,f;
printf("/nThe original string/n/n");
for(i=0;i
f=fun(x,7);
printf("The string witch length is less than or equal to 7 :/n");
for(i=0; i
}
问答题给定程序中,函数fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#inclucte<stdio.h>
void fun(char*s,int a,double f)
{
/*********found*********/
【1】
fp;
char ch;
fp=fopen("filel.txt","w");
fprintf(fp,"%s%d%f\n",s,a,f);
fclose(fp);
fp=fopen("filel.txt","r");
printf("\nThe result:\n\n");
ch=fgetc(fp);
/*********found*********/
while(!feof(
【2】
)){
/*********found*********/
putchar(
【3】
);ch=fgetc(fp);)
putchar('\n');
fclose(fP);
}
main()
{ char a[10]="Hello!";
int b=12345;
double c=98.76;
fun(a,b,c);
}
问答题N名学生的成绩己在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun(),它的功能是:求出平均分,由函数值返回。 例如,若学生的成绩是85,76,69,91,72,64,87,则平均分应当是78.625。 注童:部分源程序给出如下. 请勿改动主函数main和其他函数中的任何内容,仅在函数6m的花括号中填入所编写的若干语句。 试题程序: #include<stdlib.h> #include<stdio. h> #define N 8 struct slist double s; struct slist *next; ; typedef struct slist STREC; double fun(STREC *h) STREC *creat(double *s) /*创建链表*/ STREC *h,*p, *q; int i=0; h=p= ( STREC*)malloc (sizeof (STREC)); p->s=0; while (i<N) q= ( STREC*)malloc (sizeof (STREC)); q->s=s Ii]; i++;p->next=q;p=q; p->next=0; return h; outlist (STREC *h) STREC *p; p=h->next; printf ("head "); do printf ("->%4. if ",p->s); p=p->next; /*输出各成绩*/ while (p !=0) main () double s [N] = 85,76, 69, 85, 91,72, 64, 87,ave; STREC *h; h=creat (s); outlist (h); ave=fun (h); printf ("ave=%6.3f/n ", ave);
问答题编写函数int fun( int lim,int aa [MAX]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回所求出的素数的个数。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio .h >#include < stdlib .h >#define MAX 100int fun (int lim, int aa[MAX]){}void main (){ FILE *wf; int limit,i, sum; int aa[MAX] ; system ("CLS") ; printf "输入_个整数: " ) : scanf ( "% d" , &limit) ; sum = fun (limit,aa) ; for (i =0;i < sum;i++) { if (1% 10 ==0&&i!=0)/ *每行输出10个数 * / printf ("/n ") ; printf ("% 5d ",aa[i] ) : }/*********found*********/ wf = fopen ("out.dat", "w") ; sum = fun (15, aa) ; for (i =0;i < sum;i ++) { if (1% 10 ==0&&11=0)/*每行输出 10个数* / fprintf (wf, "/n") ; fprintf (wf, "%5d ",aa[i] ) ;} fclose (wf) ;/*********found*********/}
问答题给定程序中,函数fun的作用是:统计整型变量m中各数字出现的次数,并存放到数组a中,其中:a[0]存放0出现的次数,a[1]存放1出现的次数,……a[9]存放9出现的次数。
例如,若m为14579233,则输出结果应为:0,1,1,2,1,1,0,1,0,1,
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#inclucte<stdio.h>
void fun(int m,int a[10])
{ int i;
for(i=0;i<10;i++)
/*********found*********/
【1】
=0;
while(m>0)
{
/*********found*********/
i=
【2】
;
a[i]++;
/*********found*********/
m=
【3】
;
}
}
main()
{ int m,a[10],i ;
printf("请输入一个整数:");
scanf("%d",&m);
fun(m,a);
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
}
问答题给定程序MOD11.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。
例如,主函数中给出了4名学生的数据,则程序运行的结果为:
第1门课程的平均分是:
76.125000
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include .
typedef struct
{ char num[8];
double score L2] ;
} STU;
double fun(STU std[],int n)
{int i;
double sum ;
sum += std [i] .score [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,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入"abc4Efg",则应输出"aBc4EFg"。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void fun(char*ss)
{
}
void main()
{
FILE * wf;
char tt[81],s[81]="abc4Efg";
system("CLS");
printf("/nPlease enter an string within 80 characters:/n");
gets(tt);
printf("/n/nAfter changing,the string/n%s",tt);
fun(tt);
printf("/nbecomes/n%s/n",tt);
/*****************/
wf=fopen("out.dat","w");
fun(s);
fprintf(wf,"%s",s);
fclose(wf);
/*****************/
}
问答题
请编写一个函数void fun(char *tt, int pp[]),统计在tt所指字符串中"a"到"z" 26个小写字母各自出现的次数,并依次放在pp所指数组中。
例如,当输入字符串:abcdefgabcdeabc后,程序的输出结果应该是:
3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<string.h>
void fun(char *tt, int pp[])
{
}
main()
{char aa[1000];
int bb[26], k;
void NONO();
printf("/nPlease enter a char string:"); scazf("%s", aa);
fun(aa, bb);
for(k=0; k<26; k++)printf("%d", bb[k]);
printf("/n");
NONO();
}
void NONO()
{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
char as[1000];
int bb[26], k, i;
FILE *rf, *wf;
rf=fopen("in.dat", "r");
wf=fopen("out.dat", "w");
for(i=0; i<10; i++) {
fscanf(rf, "%s", aa);
fun(aa, bb);
for(k=0; k<26; k++)fprintf(wf, "%d", bb[k]);
fprintf(wf, "/n");
}
fclose(rf);
fclose(wf);
}
问答题
给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。
例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
long fun (long num)
{
/************found************/
long k;
do
{ k*=num%10;
/************found************/
num/=10;
} while (num);
return (k);
}
main ______
{ long n;
printf("/nPlease enter a number:");scanf("%ld",
printf("/n%ld/n", fun (n));
}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:函数返回指定学号的学生数据,指定的序号在主函数中输入。若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<stdio. h> #inctude<stdlib. h> #define N 16 typedef struct char num[10]; int s; STREC; STREC fun(STREC *a, char *b) 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", 77 , "GA017", 64 , "GA018", 64 , "GA016", 72 ; STREC h; char re[10]; int i, n; FILE *out; printf ("The original data: /n"); for (i=0; i<N; i++) if (i%4==0) printf ("In"); /*每行输出4个学生记录*/ printf("%s %3d" ,s[i] num, s[i] s); printf("/n/nEnter the number: "); gets (m); h=fun (s,m); printf ("The data: "); printf("/n%s %4d/n",h.num, h.s); printf ("/n"); out=fopen ("out80. dat", "w"); h=fun (s, "GA013"); fprintf(out, "%s %4d/n",h.num, h.s); fclose (out);
问答题例如,若q的值为: 50.0,则函数值为: 49.394948。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun( double q )
{ int n; double s,t;
n = 2;
s = 2.0;
while (s<=q)
{
t=s;
/************found************/
s=s+(n+1)/n;
n++;
}
printf("n=%d/n",n);
/************found************/
return s;
}
main ( )
{
printf("%f/n", fun(50));
}
问答题给定程序modi1.c的主函数中,将a、b、c三个节点链成一个单向链表,并给各节点的数据域赋值,函数fun()的作用是:累加链表节点数据域中的数据作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
问答题给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在__2__处使fa指向函数f1,在__3__处使fb指向函数f2。当调用正确时,程序输出: x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 double f1(double x)3 { return x *x;}4 double f2(double x,double y)5 { return x*y;)6 double fun(double a,double b)7 {8 /**********found**********/9 __1__(*f)();10 double r1,r2;11 /**********found**********/12 f=__2__;/* point fountion f1 */13 r1=f(a);14 /**********found**********/15 f=__3__;/* point fountion f2 */16 r2=(*f)(a,b);17 return r1+r2;18 }19 main()20 {double x1=5,x2=3,r;21 r=fun(x1,x2);22 printf(''\nx1=%f,x2=%f,x1*x1+ x1*x2=%f\n'',x1,x2,r);23 }
问答题给定程序MODI1.C中函数 fun 的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确的结果。
注意: 不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define MAXLINE 20
fun ( char *pstr[6])
{ int i, j ;
char *p ;
for (i = 0 ; i 0)
{
p = *(pstr + i) ;
/**************found**************/
*(pstr + i) = pstr + j ;
*(pstr + j) = p ;
}
}
}
}
main( )
{ int i ;
char *pstr[6], str[6][MAXLINE] ;
for(i = 0; i < 6 ; i++) pstr[i] = str[i] ;
printf( "/nEnter 6 string(1 string at each line): /n" ) ;
for(i = 0 ; i < 6 ; i++) scanf("%s", pstr[i]) ;
fun(pstr) ;
printf("The strings after sorting:/n") ;
for(i = 0 ; i < 6 ; i++) printf("%s/n", pstr[i]) ;
}
问答题给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域中值之和作为函数值返回。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 8
typedef struct list
{ int data;
struct list *next;
} SLIST;
SLIST *creatlist(int *);
void outlist(SLIST *);
int fun( SLIST *h)
{ SLIST *p; int s=0;
p=h->next;
while(p)
{
/**********found**********/
s+= p->___1___;
/**********found**********/
p=p->___2___;
}
return s;
}
main()
{ SLIST *head;
int a[N]={12,87,45,32,91,16,20,48};
head=creatlist(a); outlist(head);
/**********found**********/
printf("/nsum=%d/n", fun(___3___));
}
SLIST *creatlist(int a[])
{ SLIST *h,*p,*q; int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i
{ q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i]; p->next=q; p=q;
}
p->next=0;
return h;
}
void outlist(SLIST *h)
{ SLIST *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");
}
}
问答题给定程序MODI1.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
源程序如下:
#include<stdio.h>
int fun(unsigned n, int*zero)
{ int count=0, max=0, t;
do
{t=n%10;
/********found********/
if(t=0)
count++;
if(max<t)max=t;
n=n/10;
}while(n);
/********found********/
zero=count;
return max;
}
main()
{unsigned n; int zero, max;
printf("/nInput n(unsigned): "); scanf("%d",
max=fun(n,
printf("/nThe result: max=%d zero=%d/n", max, zero);
问答题下列给定程序中,函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>#defineM10inta[M][M]={0};/*********found*********/voidfun(int**a,intm){intj,k;for(j=0;j<m;j++)for(k=0;k<m;k++)/*********found*********/a[j][k]=k*j;}main(){inti,j,n;printf("Entern:");scanf("%d",&n);fun(a,n);for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%4d",a[i][j]);printf("\n");}}
问答题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#define N 8
typedef struct
{
char num[10];
int year,month,day;
}STU;
/*********found*********/
【1】
fun(STU*std,char*num)
{
int i;
STU a={"",9999,99,99);
for(i=0;i<N;i++)
/*********found*********/
if(strcrnp(
【2】
,num)==0)
/*********found*********/
return(
【3】
);
return a;
}
main()
{
STU std[N]={{"111111",1984,2,15},{"222222",1983,9,21},{"333333",1984,9,1},{"444444",1983,7,15),
{"555555",1984,9,28},{"666666",1983,11,15},{"777777",1983,6,22},
{"888888",1984,8,19}};
STU P;
char n[10]="666666";
P=fun(std,n);
if(p.num[0]==0)
{
printf("\nNot found!\n");
}
else
{
printf("\nSucceed!\n");
printf("%S%d-%d-%d\n",p.num,p.year,p.month,p.day);
}
}
