问答题给定程序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);}
问答题下列给定的程序中,函数proc()的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。
例如,排序前的数据为:11 32 -5 2 14
则排序后的数据为:-5 2 11 14 32
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#define M 20
void proc(int a[], int n)
{
int i, j, t, p;
//****found****
for(j=0; j<n-1; j++);
{
p=j;
for(i=j; i<n; i++)
if(a[i]<a[p])
p=i;
t=a[p];
a[p]=a[j];
//****found****
a[p]=t;
}
}
void main()
{
int arr[M]={11, 32, -5, 2, 14}, i, m=5;
printf("排序前的数据:");
for(i=0; i<m; i++)
printf("%d", arr[i]);
printf("/n");
proc(arr, m);
printf("排序后的顺序:");
for(i=0; i<m; i++)
printf("%d", arr[i]);
printf("/n");
}
问答题编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在e中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在e数的百位和个位上。 例如,当a=45,b=12时,调用该函数后,c=5 142。 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include<stdio.h>void fun(int a,int b,long*c){main(){ int a,b;long c; void NONO(); printf(“Input a,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); prinff(“The result is:%d\n”,c); NONO();}void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/{ FILE* rf,*wf; int i,a,b;long c; rf=fopen(“in.dat”,“r”); wf=fopen(“out.dat”,“w”); for(i=0;i<10;i++) { fscanf(rf,“%d,%d”,&a,&b); fun(a,b,&c); fprinff(wf,“It=%d,b=%d,c=%ld\n”,a,b,c); } fclose(rf); fclose(wf);}
问答题给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。
1 1 1
t = 1 - ----- - ----- - …… - -----
2*2 3*3 m*m
例如,若 m 中的值为: 5,则应输出: 0.536389。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun ( int m )
{ double y = 1.0 ;
int i ;
/**************found**************/
for(i = 2 ; i < m ; i++)
/**************found**************/
y -= 1 /(i * i) ;
return( y ) ;
}
main( )
{ int n = 5 ;
printf( "/nThe result is %lf/n", fun ( n ) ) ;
}
问答题请补充main函数,该函数的功能是:把一维数组中的元素逆置。结果仍然保存在原数组中。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> #define N 10 main ( ) int i, j, t; int bb[N]; clrscr (); for (i=0; i<N; i++) bb[i]=i; printf("/n*** original list ***/n"); for (i=0;i<N; i++) printf ("%4d",bb [i] ); for( 【1】 ; j<=i; 【2】 ) t=bb [j ]; bb [j ] =bb [i]; bb[i]=t; printf("/n****** new list ******/n"); for (i=0; i<N; i++) printf ("%4d",bb [i] );
问答题函数fun的功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在e数的千位和十位上,b数的十位和个位数依次放在e数的百位和个位上。
例如,当a=45,b=12时,调用该函数后c=4152。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
void fun(int a,int b,iong*c)
{
}
main()
{
int a,b;
long c;
printf("Input a,b:");
scanf("%d%d",
fun(a,b,
pfintf("The result is:%d/n",c);
}
问答题给定程序中,函数fun的功能是建立一个N×N的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,……依此类推。例如,若N=5,生成的矩阵为:
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdio.h>
2 #defitie N 7
3 /*********found*********/
4 void fun(int(*a)
【1】
)
5 { int i,j,k,m;
6 if(N%2==0)m=N/2;
7 else m=N/2+1;
8 for(i=0;i<m;i++){
9 /*********found*********/
10 for(j=
【2】
;j<N—i;j++)
11 a[i][j]=a[N—i一1][j]=i+1;
12 for(k=i+1;k<N—i;k++)
13 /*********found*********/
14 a[k][i]=a[k][N—i一1]=
【3】
;
15 }
16 }
17 main()
18 { int x[N][N]={0),i,j;
19 fun(x);
20 printf("\nThe result is:\n");
21 for(i=0;i<N;i++)
22 { for(j=0;j<N;j++)
23 printf("%3d",x[i][j]);
24 printf("\n");
25 }
26 }
问答题请编写函数fun,其功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 例如,若二维数组中的数据为 W W W W S S S S H H H H则字符串中的内容应是:wSHwSHWSHWSH。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >#define M 3#define N 4void fun(char(*s)[N],char*b){}void main(){ char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H')); int i,j; printf("The matrix:/n"); for(i=0;i < M;i++) { for(j=0;j < N;j++) printf("%3c",w[i][j]); printf("/n"); } fun(w,a); printf("The A string:/n"); puts(a); printf("/n/n");}
问答题下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。
例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abcd”,则c中的字符串应为“aBcdeFgH”。
请改正程序中的错误,使它能得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<string.h>
void fun(char*p,char*q,char*c)
{
/************found************/
int k=1;
/************found************/
while(*p!=*q)
{if(*p<*q)c[k]=*q;
else c[k]=*p;
if(*p)p++;
if(*q)q++;
k++;
}
}
main()
{char a[10]="aBCDeFgH",b[10]="ABcd",c[80]={"/0"};
fun(a,b,c);
printf("The string a:");puts(a);
printf("The string b:");puts(b);
printf("The result:");puts(c);
}
问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依此类推。 规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: # include <stdio.h> #define N 9 void fun (int a[], int n) int i, j, max, min, px, pn, t; for (i=0; i<n-1; 1+=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[il; a[i]=min; 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 ("% 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,其功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
例如,若二维数组中的数据为
W W W W
S S S S
H H H H
则字符串中的内容应是:WSHWSHWSHWSH。
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#define M 3
#define N 4
void fun(char(*s)[N],char *b)
{
}
void main()
{
char a[100],w[M][N]={{"W","W","W","W"},{"S","S","S","S"},{"H","H","H","H"}};
int i,j;
printf("The matrix:/n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%3c",w[i][j]);
printf("/n");
}
fun(w,a);
printf{"The A string:/n");
puts(a);
printf{"/n/n");
}
问答题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<string.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 m[10];
int i; FTTE *out;
printf("The original data:/n");
for(i=0; i<N; i++)
{ if(i%4==0) printf("/n");
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("out.dat", "w");
h=fun(s, "GA013");
fprintf(out, "%s %4d/n", h.num, h.s);
fclose(out);
}
问答题给定程序MODI1.C中函数 fun 的功能是:计算n!。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun ( int n )
{ double result = 1.0 ;
/************found************/
if n = = 0
return 1.0 ;
while( n >1
}
main ( )
{ int n ;
printf("Input N:") ;
scanf("%d",
printf("/n/n%d! =%lf/n/n", n, fun(n)) ;
}
问答题编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。
例如若n为1000时,程序输出应为:s = 153.909064。
注意: 部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
double fun( int n)
{
}
main() /* 主函数 */
{
printf("s =%f/n", fun ( 1000) );
NONO();
}
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename,STU n)
{FILE *fp;
/**********found**********/
fp=fopen(______,"rb+");
/**********found**********/
fseek(______,-(long)sizeof(STU),SEEK_END);
/**********found**********/
fwrite(
fclose(fp);
}
main()
{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}};
STU n={10006,"ZhaoSi",55,70,68},ss [N];
int i,j;FILE *fp;
fp=fopen("student.dat","wb");
fwrite(t,sizeof(STU),N,fp);
fclose(fp);
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
printf("/nThe original data:/n/n");
for(j=0;j<N;j++)
{ printf("/nNo:%ld Name:%-8s Scores:",ss[j].sno,ss[j].name);
for(i=0;i<3;i++) printf("%6.2f",ss[j].score[i]);
printf("/n");
}
fun("student.dat",n);
printf("/nThe data after modifing:/n/n");
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
for(j=0;j<N;j++)
{ printf("/nNo:%ld Name:%-8s Scores:",ss[j].sno,ss[j].name);
for(i=0;i<3;i++) printf("%6.2f",ss[j].score[i]);
printf("/n");
}
}
问答题main()
{ int i,num[5];
for(i=0;i<5;i++)
num[i]=i*10 - 2;
printf("%d",num[3]); }
该程序的运行结果是___________________________________。
问答题下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。
t=1/2-1/3-…-1/m
例如,若输入5,则应输出-0.283333。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
double fun(int m)
{
double t=1.0;
int i;
for(i=2;i<=m;i++)
/**********found**********/
t=1.0-1/i;
/**********found**********/
;
}
void main()
{
int m;
system("CLS");
printf("/nPlease enter 1 integer numbers:/n");
scanf("%d",
printf("/n/nThe result is %1f/n",
fun(m));
}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。例如,字符串中的内容为:“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是:“****A*BC*DEF*G”。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>void fun(ehar,*a){}main(){char s[81];void NONO();printf("Enter a string:\n");gets(s);fun(s);printf("The string after deleted:\n");puts(s);NONO();}void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*=in,*out;int i;char s[81];in=fopen("in.dat","r");out=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(in,"%s",s);fun(s);fprintf(out,"%s\n",s);}felose(in);fclose(out);}
问答题请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。
主函数中X是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
void fun(int a[],int n,int*max,int*d)
{
}
void main()
{
int i,x[20],max,index,n=10;
srand((unsigned)time(NULL));
for(i=0;i<=n;i++)
{
x[i]=rand()%50;
printf("%4d",x[i]);
/*输出一个随机数组*/
}
printf("/n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d/n",max,index);
}
问答题给定程序中,函数fun的功能是:将NxN矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。
例如,若N=3,有下列矩阵:
1 2 3
交换后为:
3 2 l
4 5 6 4 5 6
7 8 9 9 8 7
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#define N 4
void fun (int ____1____, int n)
{ int i,s;
}
main ( )
{ int t [] IN]={21,12,13,24,25,16,47,
38,29,11,32,54,42, 21,33,10 },i,j ;
printf ("/nThe original array:/n") ;
{ for(j=0; j
