问答题请编写一个函数fun,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传送给m的值为50,则程序输出:
7 11 14 21 22 28 33 35 42 44 49
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#define M 100
void fun(int m,int*a,int*n)
{
}
main()
{int aa[M],n,k;
fun(50,aa,
for(k=0;k<n;k++)
if((k+1)%20==0)printf("/n");
else printf("%4d",aa[k]);
printf("/n");
}
问答题给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
int fun(char *fname )
{ FILE *fp; int i,n; float x;
if((fp=fopen(fname, "w"))==NULL) return 0;
for(i=1;i<=10;i++)
/**********found**********/
fprintf(___1___,"%d %f/n",i,sqrt((double)i));
printf("/nSucceed!!/n");
/**********found**********/
___2___;
printf("/nThe data in file :/n");
/**********found**********/
if((fp=fopen(___3___,"r"))==NULL)
return 0;
fscanf(fp,"%d%f",
while(!feof(fp))
{ printf("%d %f/n",n,x); fscanf(fp,"%d%f", }
fclose(fp);
return 1;
}
main()
{ char fname[]="myfile3.txt";
fun(fname);
}
问答题给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵 1 2 3 4 5 6 7 8 9 程序执行结果为 0 0 l 0 0 4 0 0 7 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 void fun(int(*t)[N],int m)4 { int i,j;5 /**********found**********/6 for(i=0;i<N;__1__ )7 { for(j=N-1-m;j>=0;j--)8 /**********found**********/9 t[i][j+__2___]=t[i][j];10 /**********found**********/11 for(j=0;j<__3__;j++)12 t[i][j]=0;13 }1415 main()16 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i, j, m;17 printf(''\nThe original array:\n'');18 for(i=0; i<N; i++)19 { for(j=0;j<N;j++)20 printf(''%2d'',t[i][j]);21 printf(''\n'');22 }23 printf(''Input m(m<=%d) :'',N);scanf(''%d'',25 printf(''\nThe result is:\n'');26 for(2=0;i<N;i++)27 { for(j=0;j<N;j++)28 printf(''%2d'',t[i][j]);29 printf(''\n'');30 }31 }
问答题编写函数void fun(char*tt,int PP[]),统计在tt所指的字符串中“a”到“z”26个小写字母各自出现的次数,并依次放在PP所指的数组中。
例如,当输入字符串“abcdefgabcdeabc”后,程序的输出结果应该是:
3 3 3 2 2 1 1 0000000000000000000
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<sfdio.h>
#include<string.h>
void fun(char*tt,int pp[])
{
}
main()
{
char aa[1000];
int bb[26],k;
printf("/nPlease enter a char string:");
scanf("%s",aa);
funiaa,bb);
for(k=0;k<26;k++)
printf("%d",bb[k]);
printf("/n");
}
问答题请编写函数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,76,一4,12,82); printf("max=%d\n",fun(arr));}
问答题假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。
例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
void proc(char*str)
{
}
void main()
{
char str[81];
printf("Enter a string:/n");
gets(str);
proc(str);
printf("The string after deleted:/n");
puts(str);}
问答题给定程序MODI1.C中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#define SIZE 20
fun(double *s, double *w)
{ int k,i; double sum;
for(k=2,i=0;i
问答题给定程序中,函数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)b++;/**********found**********/【3】;*px=a;*py=b;}main(){intx,y;fun(&x,&y);printf("x=%d y=%d\n",x,y);}
问答题请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<stdlib.h>#define M14void NONO();void fun(char(*t)[M],int*a,int*c){}void get(char(*s)[M]){int i,j;for(i=0;i<M;i++){for(j=0;J<M;j++){s[i][j]=65+rand()%12;printf("%c",s[i][j]);}printf("\n");}}main(){char a[M][M];int x,y;get(a);fun(a,&x,&y);printf("A=%d C=%d\n",x,y);NONO();}void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;int i,j,x,y;char a[M][M];fp=fopen("c:\test\in.dat","r");wf=fopen("c:\test\out.dat","w");for(i=0;i<M;i++){for(j=0;j<M;j++){fscanf(fp,"%c",&a[i][j]);}}fun(a,&x,&y);fprintf(wf,"A=%d\n",X);fprintf(wf,"C=%d\n",y);felose(fp);felose(wf);
问答题(补充每对/**/A间的程序段,完成题目的要求)
问答题给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
void fun(long s,long *t)
{ int d;
long sl=1;
/************found************/
t=0;
while(s>0)
{ d=s%10;
/************found************/
if(d%2==0)
{ *t=d*sl+*t;
sl*=10;
}
s/=10;
}
}
main()
{ long s,t;
printf("/nPlease enter s:");scanf("%ld",
fun(s,
printf("The result is:%ld/n",t);
}
问答题规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“ABCDEFG”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> void fun(char*a) voidmain() char s[81]; printf("Enter a string:/n"); gets(s); fun(s); printf("The string after delete&/n"); puts(s);
问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依此类推。
例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7;则按规则移动后,数据排列为:1,9,2,8,3,7,4,6,5。形参n中存放a所指数组中数据的个数。
规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 9
void fun(int a[],int n)
{ int i,j,max,min,px,pn,;
for(i=0;i<n-1;i+=2)
{
/*********found*********/
max=min=
【1】
;
px=pn=i;
for(j=i+1;j<n;j++) {
/*********found*********/
if(max<
【2】
)
{max=a[j];px=j;)
/*********found*********/
if(min>
【3】
)
{ min=a[j];pn=j;}
}
if(pn!=i)
{t=a[i];a[i]=rain;a[pn]=t;
if(px==i)px=pn;
}
if(px!=i+1)
{ t=a[i+1],a[i+1]=max;
a[px]=t;)
}
}
void main()
( int b[N]={9,1,4,2,3,6,5,8,7),i;
printf("\nThe original data:\n");
for(i=0;i<N;i++)
printf("%4 d",b[i]);
printf("\n");
fun(b,N);
printf("\nThe data aftermoving:\n");
for(i=0;i<N;i++)
printf("%4 d",b[i]);
printf("\n");
}
问答题学生的记录由学号和成绩组成,N名学生的数据己在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
注意:部分源程序在文件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},{"GA
06",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,h[i] .s) ;
fclose(out);
}
问答题给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x、值为27时,各位数字之和为27的整数是:999。只有1个。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
int fun(int x)
{ int n, s1, s2, s3, t;
n=0;
t=100;
/**********found**********/
while(t0):");
scanf("%d",}
printf("/nThe result is: %d/n",
fun(x) ) ;
z}
问答题下面的fun函数用以判断n是否是素数,fun函数中有逻辑错,请调试改正。
int fun(int n)
{ int k, yes;
for(k=2; k<=n/2; k++)
if(n%k==0) yes=0;
else yes=1;
return yes;
}
问答题请编写一个函数fun(),它的功能是:求出一个4×M整型二维数组中最小元素的值,并将此值返回调用函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仪在函数fun的花括号中填入所编写的若干语句。
试题程序:
#define M 4
#include <stdio.h>
fun (int a[])[M])
{
}
main()
{
int arr[4][M]={11,3,9,35,42,-4,24,32,6,48,-32,7,23,34,12,-7);
printf("min=%d/n",fun(arr));
}
问答题给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:47、30、32、40、6、17、45、15、48、26,其平均值为30. 500000。
移动后的输出为:30、6、17、15、26、47、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*********/
av+=
【1】
;
for(i=j=0;i < N;i++)
if(x[i] < av){
y[j]=x[i];x[i]=一1;
/*********found*********/
【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];
printf ("/n") ;
printf ("/nThe average is: %f/n",
printf ("/nThe result :/n",fun (x)) ;
printf ("% 5.Of ",x[i]) ;
printf ("/n");
}
问答题请编写函数fun, 函数的功能是: 移动一维数组中的内容; 若数组中有n个整数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。
例如, 一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10; p的值为3。移动后, 一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#define N 80
void fun(int *w, int p, int n)
{
}
main()
{ int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i,p,n=15;
printf("The original data:\n");
for(i=0; i
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 53 typedef struct student{4 long sno;5 char name[10];6 float score[3];7 } STU;8 void fun(char *filename,STU n)9 {FILE*fp;10 /**********found**********/11 fp=fopen(__1__,''rb+'');12 /**********found**********/13 fseek(__2__,-(long)sizeof(STU),SEEK_END);14 /**********found**********/15 fwrite(&n, sizeof(STU), 1,__3__);16 fclose(fp);17 }18 main()19 { 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}};20 STU n={10006,''ZhaoSi'',55,70,68},ss[N];21 int i,j;FILE *fp;22 fp=fopen(''student.dat'',''wb'');23 fwrite(t,sizeof(STU),N,fp);24 fclose(fp);25 fp=fopen(''student.dat'',''rb'');26 fread(ss,sizeof(STU),N,fp);27 fclose(fp);28 printf(''\nThe original data:\n\n'');29 for(j=0;j<N;j++)30 { printf(''\nNo:%1d Name:%-8s Scores:'',ss[j].sno,ss[j].name);31 for(i=0;i<3;i++) printf(''%6.2f'',ss[j].score[i]);32 printf(''\n'');33 }34 fun(''student.dat'',n);35 printf(''\nThe data after modifing:\n\n'');36 fp=fopen(''student.dat'',''rb'');37 fread(ss,sizeof(STU),N,fp);38 fclose(fp);39 for(j=0;j<N;j++)40 { printf(''\nNo:%1d Name:%-8s Scores:'',ss[j].sno,ss[j].name);41 for(i=0;i<3;i++)printf(''%6.2f'',ss[j].score[i]);42 printf(''\n'');43 }44 }
