问答题给定程序中函数fun的功能是:根据整型形参m,计算如下公式的值。例如,若m中的值为:5,则应输出:1.463611。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。[试题源程序]#include<stdio.h>doublefun(intm){doubley=1.0;inti;/**********found**********/for(i=2;i<m;i++)/**********found**********/y+=1/(i*i);return(y);}main(){intn=5:printf("/nTheresultis%lf/n",fun(n));}
问答题下列给定程序中,函数fun的功能是:计算并输出下列级数的前N项和SN,直到SN+1的值大于q为止,q的值通过形参传入。例如,若q的值为50.0,则函数值应为49.394948。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>doublefun(doubleq)intn;doublesf;n=2;s=2.0;while(s<=q)t=s;/********found********/s=s+(n+1)/n;n++;printf("n=%d/n",n);/********found********/returns;]main()printf"%f/n",fun(50));
问答题请在函数fun()的横线上填写若干表达式,使从键盘上输入一个整数n,输出n对应的斐波那契数列。斐波那契数列是一整数数列,该数列自第三项开始,每数等于前面两数之和,即0,1,1,2,3,5,8,13,21,34,55,…。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> int fun(int n); main() int i,n=0; scanf("%d", for(i=0;i<n; i++) printf("%d",fun(i)); int fun(int n) if( 【1】 ) return 0; else if( 【2】 ) return 1; else return 【3】 ;
问答题请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如, 输入如下整数: 876 675 896 101 301 401 980 431 451 777
则输出结果为: 6, 980
注意: 部分源程序在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
int fun(int *s, int t, int *k)
{
}
main( )
{
int a[10]={876,675,896,101,301,401,980,431,451,777}, k ;
fun(a, 10,
printf("%d, %d/n", k, a[k]) ;
NONO( ) ;
}
问答题某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。 注意:部分源程序给出如下。 请勿改动主函数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(&s); printf("The % s's student data:/n", s.num); printf("% 4.1f/n", s.s[i]); printf "/nave=% 7.3f/n", s. ave);
问答题
给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为:7654321时,t中的数为:642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
/**********found**********/
void fun(10ng s, long t)
{long s1=10;
s/=10;
*t=s%10;
/**********found**********/
while(s<0)
{s=s/100;
*t=s%10*s1+*t;
s1=s1*10;
}
}
main()
{long s, t;
printf("/nPlease enter s: "); scanf("%ld",
fun(s,
printf("The result is: %ld/n", t);
}
问答题编写程序outch,程序读入一行字符,根据命令行中的参数进行不同的输出。若有以下命令行:
outch -2
程序对所读入的一行字符输出最后两个字符。若有以下命令行:
outeh +6
程序对所读入的一行字符输出开头6个字符。若命令行中没有参数,则隐含规定输出最后10个字符。为简单起见,命令行的参数中只包含一位数字。
问答题编写函数fun,其功能是:将s所指字符串中ASCII码值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。 例如,若s所指字符串中的内容 “ABCDEFGl2345”,其中字符A的ASCII码值为奇数,字符1的ASCII码值也为奇数,都应当删除,其他依此类推。最后t所指的数组中的内容应是 “BDF24”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio.h >#include < string.h >void fun(char*s,char t[]){}main(){ char s[100],t[100],Msg[]="Please enter string s:"; printf(Msg); Scanf("%s",s); fun(s,t); printf("/nThe resuit is:%s/n",t);}
问答题请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
#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);
}
问答题请编写函数void fun(int x,int pp [],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有4个数符合要求,它们是1、3、5、1 5。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio.h >#include < stdlib.h >v02d fun(int x,int pp[],int,* n){)void main(){ FILE*wf; int x,aa[1 00 0],n,i; system("CLS"); printf("/nPlease enter aninteger number:/n"); Scanf("%d",&x); fun(x,aa,&n); for(i=0 ; i < n;i++) printf("%d",aa[i]);printf("/n");/*********found*********/ wf=fopen("out.dat","w"); fun(30,aa,&n); for(i=0;i < n;i++) fprintf(wf,"%d",aa[i]); fclose(wf);/*********found*********/}
问答题给定程序MODll.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第l门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第l门课程的平均分是:76.125000请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
问答题下列给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为O。 例如,若N=3,有下列矩阵: 1 2 3 …… 4 5 6 …… 7 8 9 计算后结果为: 1 0 0 …… 6 5 0 …… 10 14 9 请在下划线处填人正确的内容并把下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<scdio.h> #define N 4 /********found********/ void fun(int(*t) (1) ) int i,j; for(i=l;i<N;i++) for(j=0;j<i=j++) /********found********/ (2) =t[i][j]+t[j][i]; /********found********/ (3) =0; main() int t[][N]=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j; printf("/nThe original array:/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%2d",t[i][j]; printf("/n"); fun(t); printf("/nThe result is:/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%2d",t[i][j])= printf("/n");
问答题请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次存放到一维数组中。函数fun中给出的语句仅供参考。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 文件PROG1.C内容如下: #include<stdio.h> void fun(int(*s)[10],int *b,int *n,int mm,int nn) /*以下代码仅供参考*/ int i,j,np=0; /*np用作b数组的下标*/ void main( ) int w[10][10]=33,33,33,33,44,44,44,44,55,55,55,55,i,j; int a[100]=0,n=0; printf("The matrix: /n"); for(i=0;i<3;i++) for(j=0;j<4;j++)printf("%3d",w[i][j]); printf("/n"); fun(w,a,&n,3,4); printf("The A array: /n"); for(i=0;i<n;i++)printf("%3d",a[i]); printf("/n/n");
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:“******A*BC*DEF*G*******”,删除后,字符串中的内容应当是:“****ABCDEFG”。注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include<stdio.h> void fun(char*a) { } main() {char s[81];void NONO(); printf(“Enter a string:\n”);gets(s); fun(s); prinff(“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); } fclose(in); fclose(out); }
问答题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#define N 16
typedef struct
{ char num[10];
int s;
}STREC;
void fun(STREC a[])
{
STREC tmp;
int i, j;
for(i=0; i<N; i++)
for(j=i+1; j<N; j++)
{ /*请按题目要求完成以下代码*/
}
}
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", 66}, {"GA017", 64},
{"GA018", 64}, {"GA016", 72}};
int i; FILE*out;
fun(s);
printf("The data after sorted:/n");
for(i=0; i<N; i++)
{ if((i)%4==0)printf("/n");
printf("%s %4d", s[i].num, s[i].s);
}
printf("/n");
out=fopen("c://test//out.dat", "w");
for(i=0; i<N; i++)
{ if((i)%4==0
fprintf(out, "%4d", s[i].s);
}
fprintf(out, "/n");
fclose(out);
}
问答题给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:30 6 17 15 26 46 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**********/ for(i=0; i<N; i++) av +=【1】; for(i=j=0;i<N;i++) if(x[i]<av){ /**********found**********/ y[j]=x[i];x[i]=一1; 【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]; for(i=0;i<N;i++){x[i]=rand()%50;printf("%4.0f",x[i]);} printf("\n"); printf("\nThe average is:%f\n",fun(x)); printf("\nThe result:\n",fun(x)); for(i=0;i<N;i++)printf("%5.0f",x[i]); printf("\n");}
问答题编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
fun(char (*a) [81], int num, char *max)
{
}
main ()
{
char ss[l0] [81],*ps;
int n, i=0;
clrscr();
prlntf("输入若干个字符串");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i], "****")==0)
/*用****作为结束输入的标志*/
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
ps=fun(ss,n,
print~("/nmax=%s/n",ps);
}
问答题printf("max=%6.1f/n ",max);
问答题请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 例如,若二维数组中的数据为 W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSH.WSH。 注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include<stdio.h>#define M 3#define N 4void fun(char(*s)[N],char*b){}void main(){ FILE*wf; char a[100],W[M][N]={{‘w’,‘w’,‘w’,‘w’},{‘S’,‘S’,‘S’,‘S’},{‘H’,‘H’,‘H’,‘H’}}; int i,j; prinff(“The matrix:\n”); for(i=0;i<M;i++) { for(j=0;j<N;j++) pfinff(“%3c”,w[i][j]); printf(“\n”); } fun(w,a); prinff(“The A string:\n”); puts(a); prinff(“\n”);/******************/ wf=fopen(“out.dat”,“w”); fprintf(wf,“%s”,a); fclose(wf);/******************/}
问答题函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。 例如,当a=45,b=12时,调用该函数后,c=5142。 注意:部分源程序存在文件PROG1.c中。数据文件in.dat中的数据不得修改。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int a,int b,long *c]3 {45 }6 main()7 { int a,b;long c;8 void NONO();9 printf(''Input a,b:'');10 scanf(''%d,%d'',14 }15 void NONO()16 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */17 FILE *rf,*wf;18 int i,a,b ; long c;19 rf=fopen(''in.dat'',''r'');20 wf=fopen(''out.dat'',''w'');21 for(i=0 ; i<10;i++) {22 fscanf(rf,''%d,%d'', &a, &b);23 fun(a,b,&c);24 fprintf(wf,''a=%d,b=%d,c=%1d\n”,a,b,c);25 }26 fclose(rf);27 fclose(wf);28 }
