问答题下列给定程序的功能是调用fun函数建立班级通信录。通信录中记录每位学生的编号、姓名和电话号码。班级人数和学生信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#ir1clude < stdio.h >
#iticlude < stdlib.h >
#define N 5
typedef struct
{ int num;
char name[10];
char tel[10];
}STYPE;
void check();
/*********found*********/
int fun(
【1】
*std)
{
/*********found*********/
【2】
*fp; int i;
if((fp=fopen("myfile5.
dat","wb"))==NULL)
retuEr1(0);
printf("/nOutput data to file!/n");
for(i=0;i < N;i++)
/*********found*********/
fwrite(&std[i],sizeof
(STYPE),1,
【3】
);
fclose(fp);
return(1);
}
main()
{ STYPE s[10]=({1,"aaaaa", "111111"},
{1," bbbbb", "222222"},
{ 1, "ccccc", "333 33 3"},
{1,"ddddd", "4 4 4 4 4 4"},
{ 1," eeeee ", "555555")};
int k;
k=fun(s);
if(k==1)
{printf("Succeed!");
check();}
else
printf("Fail!");
}
V01d cheCk()
{ FILE*fp;int i;
STYPE S[10];
if((fp=fopen("myfil e5.dat","rb"))==NULL)
{printf("Fail!/n");exit(0);}
printf ("/nRead file and output to screen:/n");
printf("/n num name tel/n");
for(i=0 ;i < N;i++)
{ fread(&s[i],si zeof
(STYPE),1,fp);
printf("%6d%s%s/n",
s[i].num,s[i].name,s[i].tel);
}
fclose(fp);
}
问答题给定程序MODI1.C中函数fun的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下:请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<math.h>/************found************/f(doublex)}if(x==0.0||x==2.0)return0.0;elseif(x<0.0)return(x-1)/(x-2);elsereturn(x+1)/(x-2);}doublefun(intn){inti;doubles=0.0,y;for(i=-n;i<=n;i++){y=f(1.0*i);s+=y;}/************found************/returns}main(){printf("%f/n",fun(5));}
问答题给定程序MODl1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。 例如,若字符串为abcd,则应输出:dcba。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 /**********found**********/3 fun(char a)4 { if (*a)5 { fun(a+1);6 /**********found**********/7 printf(''%c''*a);8 }9 }10 main()11 { char s[10]=''abcd'';12 printf(''处理前字符串=%s\n处理后字符串='',s);13 fun(s);printf(''\n'');14 }
问答题请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 例如,当n=10,x=0.3时,函数值为1.349859。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio.h >#include < math.h >#include < stdlib.h >double fun(double x,int n){}void main(){ FILE*wf; system("CLS"); printf("%f",fun(0.3,10));/******************/ wf=fopen("out.dat","w"); fprintf(wf,"%f",fun(0.3,10)); fclose(wf);/******************/}
问答题下列程序定义了MM的二维数组,并在主函数中自动赋值。请编写函数proc(int a[][M]),该函数的功能是:使数组左下半三角元素中的值全部置成0。例如,a数组中的值为:
a=1 7 4 0 9
4 8 8 2 4
5 5 1 7 1
1 5 2 7 6
1 4 2 3 2
则返回主程序后a数组中的值应为:
0 7 4 0 9
0 0 8 2 4
0 0 0 7 1
0 0 0 0 6
0 0 0 0 0
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define M 5
void proc(int a[][M])
{
}
void main()
{
int arr[M][M],i,j;
srand((unsigned)time(NULL));
system("CLS");
printf("****The array****/n");
for(i=0;i<M;i++)
//产生一个随机的5*5矩阵
{ for(j=0;j<M;j++)
{arr[i][j]=rand()%10;
printf("%4d",arr[i][j]);
}
printf("/n");
}
proc(arr);
printf("THE RESULT/n");
for(i=0;i<M;i++)
{ for(j=0;j<M;j++)
printf("%4d",arr[i][j]);
printf("/n");
}
}
问答题以下给定程序中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列。否则输出“不能分解”。 例如:当输入100时,输出: 100=9+10+11+12+13+14+15+16 100=18+19+20+21+22 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include<stdio.h> void fun(int n) { int j,b,c,m,flag=0; for(b=1.b<=n/2;b++){ /******found******/ n=m; c=b: while(m !=0&&m>=c){ /******found******/ m=m—c;c++ } /******found******/ if(m!=0) { printf("%d=",n); for(j=b;j<c一1;j++) printf("%d+",j); printf("%d\n",j); flag=1; } } if(flag==0) printf("不能分解\n"); } main() { int n; printf("请输入一个整数:"); scanf("%d",&n); fun(n); }
问答题规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。 例如,字符串中的内容为“*******A*BC*DEF*G****”,删除后,字符串中的内容应当是“A*BC*DEF*G****”。编写函数时,不得使用C语言提供的字符串函数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> #include<conio.h> void fun(char*a) void main() char s[81]; printf("Enter a string:/n"); gets(s); fun(s); printf("The string after deleted:/n"); puts(s);
问答题下列给定程序中,函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。例如,若输入2,则输出:若输入4,则输出:请改正程序中的错误,使它能得出正确的结果。注意:不要改动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");}}
问答题下列给定程序中,函数proc()的功能是:根据形参m(2≤m≤9)的值,在m行m列的二维数组中存放如下所示的数据,由main()函数输出。
例如,若输入3,则输出
1 2 3
2 4 6
3 6 9
若输入5,则输出
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#define N 10
int arr[N][N]={0};
//****found****
proc(int**a, int m)
{int j, k;
for(j=0; j<m; j++)
for(k=0; k<m; k++)
//****found****
a[j][k]=k*j;
}
void main()
{
int i, j, n;
system("CLS");
printf("Enter n/n");
scanf("%d",
proc(arr, n);
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
printf("%4d", arr[i][j]);
printf("/n");
}
}
问答题请编写函数fun, 函数的功能是:统计一行字符串中单词的个数,作为函数值返 回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干 个空格隔开, 一行的开始没有空格。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
#define N 80
int fun( char *s)
{
}
main()
{ char line[N]; int num=0;
printf("Enter a string :\n"); gets(line);
num=fun( line );
printf("The number of word is : %d\n\n",num);
NONO();
}
问答题函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
void fun(int a[], int n)
{int i, t;
/**********found**********/
for(i=0; i<______; i++)
{
t=a[i];
/**********found**********/
a[i]=a[n-1-______];
/**********found**********/
______=t;
}
}
main()
{int b[9]={1,2,3,4,5,6,7,8,9}, i;
printf("/nThe original data:/n");
for(i=0; i<9; i++)
printf("%4d", b[i]);
printf("/n");
fun(b, 9);
printf("/nThe data after invert:/n");
for(i=0; i<9; i++)
printf("%4d", b[i]);
printf("/n");
}
问答题给定程序MODI1.C中函数fun的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下:请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1#include<stdio.h>2#include<math.h>3/**********found**********/4f(doublex)5{6if(x==0.0||x==2.0)7return0.0;8elseif(x<0.0)9return(x-1)/(x-2);10else11return(x+1)/(x-2);12}13doublefun(intn)14{inti;doubles=0.0,y;15for(i=-n;i<=n;i++)16{y=f(1.0*i);s+=y;)17/**********found**********/18returns19}20main()21{22printf(''%f\n'',fun(5));23}
问答题请编写函数fun,该函数的功能是:将s所指字符串中ASCII码值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符B的ASCII码值为偶数,字符2的ASCII码值为偶数,都应当删除,其他依此类推。最后t所指的数组中的内容应是“ACEG135”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
void fun(char*s,char t[])
{
}
void main()
{
char s[100],t[100];
system("CLS");
printf("/nPlease enter string S:");
scanf("%s",s);
fun(s,t);
printf("/nThe result is:%s/n",t);
}
问答题下列给定的程序中,函数proc()的功能是:计算并输出k以内最大的10个能被15或18整除的自然数之和,k的值由主函数传入。若k的值为800,则函数的值为7605。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int proc(int k)
{
int m=0, mc=0, j;
while((k>=2) mc++; }
k--;
//****found****
return m;
}
void main()
{
system("CLS");
printf("%d/n", proc(800));
}
问答题给定程序MODI1.C中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的迭代公式如下:例如,a为2时,平方根值为:1.414214。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。1#include<stdio.h>2#include<math.h>3/**********found**********/4doublefun(doublea,dounlex0)5{doublexl,y;6x1=(x0+a/x0)/2.0;7/**********found**********/8if(fabs(x1-x0)>0.00001)9y=fun(a,x1);10elsey=x1;11returny;12}13main()14{doublex;15printf(''Enterx:'');scanf(''%1f'',&x);16printf(''Thesquarerootof%1fis%if\n'',x,fun(X,1.0));17}
问答题请编写函数fun(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
删除后,数组中的内容应该是:
2 3 4 5 6 7 8 9 10。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio. h>
#define N 80
int fun(int a[], int n)
{
}
main ( )
{
int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,
8,9,9,10,10,10,10}, i, n=20;
printf ("The original data : /n");
for(i=0; i<n; i++)
printf ("%3d", a [i] );
n=fun (a, n);
printf("/n/nThe data after deleted
: /n");
for(i=0; i<n; i++)
printf ("%3d", a [i] );
printf ("/n/n");
}
问答题某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数fun()部位中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#define N 8
typedef struct
{
char num[10];
double s[N];
double ave;
}STREC;
void fun(STREC*a)
{
}
void main()
{
STREC s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
int i;
fun(
printf("The%s"s student data:n",s.num);
for(i=0;i<N;i++)
printf("%4.1fkn",s.s[i]);
printf("/nknave=%7.3fkn",s.ave);
printf("/n");
}
问答题给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。
例如,有下列矩阵:
1 2 3
4 5 6
7 8 9
10 11 12
若k为2,程序执行结果为:
7 8 9
4 5 6
1 2 3
10 11 12
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 3
#define M 4
/**********found**********/
void fun(int (*a)[N], int __1__)
{ int i,j,temp ;
/**********found**********/
for(i = 0 ; i < __2__ ; i++)
{ temp=a[0][i] ;
/**********found**********/
a[0][i] = __3__ ;
a[k][i] = temp ;
}
}
main()
{ int x[M][N]={ {1,2,3},{4,5,6},{7,8,9},{10,11,12} },i,j;
printf("The array before moving:/n/n");
for(i=0; i
{ for(j=0; jprintf("/n/n");
}
fun(x,2);
printf("The array after moving:/n/n");
for(i=0; i
{ for(j=0; jprintf("/n/n");
}
}
问答题假定输入的字符串中只包含字母和*号。请编写函数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);}
问答题已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define N 10
typedef struct ss /*定义结构体*/
{char num[10];
int s;
}STU;
fun(STU a[], STU*s)
{
}
void main()
{
STU a[N]={{"A01", 81}, {"A02", 89}, {"A03", 66}, {"A04", 87}, {"A05", 77}, {"A06", 90}, {"A07", 79}, {"A08", 61}, {"A09", 80}, {"A10", 71}}, m;
int i;
system("CLS");
printf("****The original data****");
for(i=0; i<N; i++)
printf("No=%s Mark=%d/n", a[i].num, a[i].s);
fun(a,
printf("****THE RESULT****/n");
printf("The top:%s, %d/n", m.num, m.s);
}
