问答题给定程序中,函数fun的功能是:根据形参i的值返回某个函数的值。当调用正确时,程序输出:x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
double f1(double x)
{return x*x;)
double f2(double x,double y)
{return x*y;)
/*********found*********/
【1】
fun(int i,double x,double y)
{if(i==1)
/*********found*********/
return
【2】
(x);
else
/*********found*********/
return
【3】
(x,y);
}
main()
{ double x1=5,x2=3,r;
r=fun(1,x1,x2);
r+=fun(2,x1,x2);
printf("\nx1=%f,x2=%f,x1*x1+x1*x2=%f\n\n",x1,x2,r);
}
问答题给定程序MODI1.C中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。 例如,在调用fun函数之前给a输入字符串:ABCDEFGHIJK,调用函数之后,字符数组b中的内容则为:ABC DEF GHI JK。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。1 #include<stdio.h>2 void fun(char *p,char *b)3 { int i,k=0;4 while(*p)5 { i=1;6 while(i<=3&9 k++; p++; i++;10 }11 if(*p)12 {13 /**********found**********/14 b[k++]='' '';15 }16 }17 b[k]='\0';18 }19 main()20 { char a[80],b[80];21 printf(''Enter a string:'');gets(a);22 printf(''The original string:'');puts(a);23 fun(a,b);24 printf(''\nThe string after insert space:'');puts(b);printf(''\n\n'');25 }
问答题编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。 例如,若n为1000时,程序输出应为:s=153.909064。 注意:部分源程序在文件PROG1.c中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < math.h >#include < stdio.h >double fun(int n){}main()/*主函数*/{ void NONO(); printf ("s=%f/n",fun(1000)); NONO();}void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE*fp, *wf; int ifn; double s; fp=fopen("in.dat","r"); wf=fopen ("out.dat", "w"); for(i=0;i < 10;i++){ fscanf(fp,"%d", &n); s= fun (n); fprintf (wf,"%f/n", s); } fclose(fp); fclose (wf);}
问答题下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数作为函数值返回,平均分存放在形参avet所指的存储单元中。例如,输入8名学生的成绩:80.5、60、72、90.5、98、51.5、88、64则低于平均分的学生人数为4(平均分为75.5625)。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#define N 20int fun(float *s,int n,float*aver){ float ave,t=0.0; int count=0,k,i; for(k=0;k<n; k++)/*********found*********/ t=S[k]; ave=t/n; for(i=0,i<n;i++) if(s[i]<ave)count++;/*********found*********/ * aver=&ave; return count;}void main(){ float s[30],aver; int m,i; system("CLS"); print=f("\nPlease enter m:"); scanf("%d",&m); printf("\nPlease enter %d mark:\n",m); for(i=0;i<m;i++) scanf("%f",s+i); printf("\nThe number of students:%d\n",fun(s,m,&aver)); printf("Ave=%f\n",aver);}
问答题请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,每行输出三对。
问答题数组point中存放着m个人的成绩,请编写函数fun(),它的功能是:返回高于平均分的人数,并将高于平均分的分数放在high所指的数组中。
例如,当point数组中的数据为50,60,65,70,75,80,88,90,95时,函数返回的人数应该是5,high中的数据应为75,80,88,90,95。
请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。
注意:部分源程序给出如下。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
int fun(int point[],int n,int high[])
{
}
main()
{
int j,m,high[9];
int point[9]={50,60,65,70,75,80,88,90,95};
m=fun(point,9,high);
printf("/npersonNum:%d",m);
printf("/nHigh the average point are:");
for(j=0;j<m;j++)
{
printf("%d",high[j]);
}
printf("/n");
}
问答题下列给定程序中,函数fun的功能是:用冒泡法对6个字符串进行升序排列。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include <stdlib.h > #include <string.h> #include <conio.h> #include <stdio.h> #define MAXLINE 20 fun (char * pstr[6]) int i, j; char * p; for(i=0; i<5; i++) /********** found********** / for(j=i+1, j<6, j++) if (strcmp (* (pstr+i), (pstr+ j))>0) p=* (pstr+i); /********** found********** / * (pstr+i)=pstr+j; * (pstr+j)=p; void main () int i; char * pstr[6], str[6] [MAXLINE]; system ("CLS"); 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 sor- ting:/n "); for (i=0; i<6; i++) printf ("% s/n ", pstr[i]);
问答题下列给定程序中,函数fun的功能是:将形参a所指数组中的前半部分元素中的值与后半部分元素中的值对换。形参11中存放数组中数据的个数,若n为奇数,则中间的元素不动。
例如,若a所指数组中的数据为:1,2,3,4,5,6,7,8,9,则调换后为:6,7,8,9,5,1,2,3,4。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 9
void fun(int a[],int n)
{
int i,t,P;
/*********found*********/
p=(n%==0)?n/2:n/2+
【1】
;
for(i=0;i<n/2;i++)
{
t=a[i];
/*********found*********/
a[i]=a[p+
【2】
];
/*********found*********/
【3】
=t;
}
}
main()
{
int b[N]={1,2,3,4,5,6,7,8,9},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");
}
问答题给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量S中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:7654321时,t中的数为:7531。请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include<stdio.h> /************found************/ void fun(long s,long t) { long s1=10; *t=s%10; while(s>0) {s=s/100; *t=s%10*s1+*t; /************found************/ s1=s1*100; }} main() { long s,t; printf("\nPlease enter s:");scanf("%ld",&s); fun(s,&t); printf("The result is:%ld\n",t);}
问答题请编写函数proc,其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。
例如,当a=25,b=43,实际输入时个数之间以Enter键分隔,调用该函数后,c=3452。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
void proc(int a, int b, long *c)
{
}
void main()
{
int a, b;
long c;
system("CLS");
printf("Input a, b; ");
scanf("%d%d",
proc(a, b,
printf("The result is: %1d/n", c);
}
问答题下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。例如,若输入5,则应输出一0.283333。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动maln函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doublefun(intm){doublet=1.0;inti;for(1=2;i<=mfi++)/*********found*********/t=1.0一1/1;/*********found*********/;}voidmain(){intm;system("CLS");printf("/nPleaseenterlintegernumbers:/n");printf("/n/nTheresultis%lf/n",}
问答题给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下3×3的矩阵就是一个“幻方”: 4 9 2 3 5 7 8 1 6 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行前删行.也不得更改程序的结构!1 #include<stdio.h>2 #define N 33 int fun(int(*a)[N])4 { int i,j,m1,m2,row,colum;5 m1=m2=0;6 for(i=0;i<N;i++)7 {j=N-i-1;m1+=a[i][i]; m2+=a[i][j];}8 if(m1!=m2)return 0;9 for(i=0 ; i<N;i++){10 /**********found**********/11 row=colum=__1___;12 for(j=0;j<N;j++)13 { row+=a[i][j];colum+=a[j][i];}14 /**********found**********/15 if((row!=colum) __2__ (row!=m1)) return 0;16 }17 /**********found**********/18 return __3__;19 }20 main()21 { int x[N][N],i,j;22 printf(''Enter number for array:\n'');23 for(i=0;i<N;i++)24 for(j=0;j<N;j++)scanf(''%d'',&x[i][j]);25 printf(''Array:\n'');26 for(2=0;i<N;i++)27 {for(j=0;j<N;j++) printf(''%3d'',x[i][j]);28 printf(''\n'');29 }30 if(fun(x))printf(''The Array isa magic square.\n'');31 else printf(''The Array isn't a magic square.\n'');32 }
问答题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#inclucle<stdio.h>
#define N 8
typedef struct
{ int num;
int year,month,day;
}STU;
int fun(STU*std,STU*k,int year)
{ int i,n=0;
for(i=0;i<N;i++)
/*********found*********/
if(
【1】
==year)
/*********found*********/
k[n++]=
【2】
;
/*********found*********/
return(
【3】
);
}
main()
{ STU std[N]={{1,1984,2,15},{2,1983,9,21},{3,1 984,9,1},{4,1 983,7,15},{5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}};
STU k[N];int i,n,year;
printf("Enter a year:");
scanf("%d",&year);
n=fun(std,k,year);
if(n==0)
printf("\nNo person wasborn in%d\n",year);
else
{printf("\nThese persons were born in%d\n",year);
for(i=0;i<n;i++)
printf("%d%d-%d-%d\n",k[i]num,k[i].year,k[i].month,k[i].day);
}
问答题请编写一个函数,用来删除字符串中的所有空格。
例如,输入asdafaa z67,则输出为asdafaaz67。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
void fun(char*str)
{
}
main()
{
char str[81];
char Msg[]="Input a string:";
int n;
printf(Msg);
gets(str);
puts(str);
fun(str);
printf("*** str:%s/n"str);
}
问答题请编写函数fun,其功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为 33 33 33 33 44 44 44 44 55 55 55 55则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include < stdio.h >void fun(int(*s)[10],int,lE b,int *n,int mm,int nn){}main(){ int W[1 0][1 0]={{33,33,33,33},{4 4,4 4,44,4 4),{55,55,55,55)),i,j; int a[1 00]={0),n=0; printf("The matrix:/n"); for(i=0;i < 3;i++) { for(j=0;j < 4;j++) printf("%3 d",wEi][j]); printf("/n"); } fun(W,a,&n,3,4); printf("The A array:/n"); for(i=0;i < n;i++) printf("%3d",a[i]);}
问答题请编写函数fun(),其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。 例如,当s所指字符串中的内容为ABCDEFGHIJK,则在t所指数组中的内容应是BDFHJ。 注意:部分源程序给出如下。 请勿改动主函数main口其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio. h> #include<stdio .h> #include<string.h> void fun(char *s,char t[]) main () char s[l00] ,t[l00]; clrscr (); printf("%nPlease enter string S: "); scanf("%s ",s); fun(s,t); prlntf("/nThe result is:%s/n ",t);
问答题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#define N 8
typedef struct
{ int num;
int year,month,day
} STU;
int fun (STU *std, STU *k, int year)
{ int i,n=0;
if(____1____ ==year)
return (____3____);
}
main ()
{STU std [N]={ {1,1984,2,15 },{2,1983, 9,21},{ 3,1984,9,1},{4,1983 ,7,15 },{5,1985,9,28 },{ 6,1982,11,15} ,{7, 1982,6,22},{8,1984f 8,19}};
STU k[N]; int i,n,year;
printf("Enter a year : "); scanf
n=fun (std,k,year) ;
printf("/nNo person was born
in %d /n",year);
else
{ printf("/nThese persons were
born in %d /n",year);
printf("%d %d—%d—%d/n",
k [i] .num,k [i] .year, k[i] .month,
k[i].day);
}
}
问答题给定程序MODI1.C中函数fun的功能是:计算函数(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等。例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include <stdio.h>#include <math.h> #include <stdlib.h> /*********found***********/#define FU(m,n) (m/n)float fun(float a,float b,float c){ float value;value=FU(a+b,a-b)+FU(c+b,c-b);/***********found************/Return(Value);}main (){ float x,y,z,sum;printf("Input x y z: ");scanf("%f%f%f", printf("x=%f,y=%f,z=%f/n",x,y,z); if (x==y||y==z){printf("Data error!/n");exit(0);}sum=fun(x, y, z) ; printf ("The result is : %5.2f/n", sum) ; }
问答题请编写函数fun(),该函数的功能是:将两个两位数的正整数a,b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45时,b=12,调用到该函数后,c=5142。
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#include<conio.h>
void fun(int a ,int b, long *c)
{
}
main ( )
{
int a,b;
long c;
clrscr();
printf("Input a ,b:");
scanf(,%d%d",&a,&b);
fun(a,b,
printf("The result is :%ld/n",c);
}
问答题下列给定程序中函数fun()的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun()函数。
例如,若high的值为100,则函数的值为732。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序 #include
<conio.h> #include <stdio.h> #include <math.h
> int fun(int high) { int sum=0, n=0, j,
yes; /* * * * *found* * * * * /
while((high>=2)
for(j=2; j<=high/2; j++) if(high% j==0) { /* *
* * *found* * * * * / yes=0; break }
if(yes) { sum+=high; n++;
} high--; return sum;
} main() { printf("% d/n",
fun(100)); }
