问答题下列给定程序中,函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形。若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>#include<math.h>int fun(int a,int b,int c){ if(a+b>c&&b+c>a&&a+c>b) { if(a==b&&b==c)/******found******/ return 1; else if(a==b‖b==c ‖a==c) return 2;/******found******/ else return 3; } else retum 0;}void main(){ int a,b,c,shape; prinff(“\nInput a,b,c:”); seanf(“%d%d%d”,&a,&b,&c); prinff(“\ha=%d,b=%d,c=%d\n”,a,b,c); shape=fun(a,b,c); printf(“\nThe shape:%d\n”,shape);}
问答题请编写函数fun(),该函数的功能是:计算并输出 S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5) 例如,若主函数从键盘给n输入20后,则输出为 s=534.188884。 注意;部分源程序给出如下。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 试题程序: #include <math. h> #include <stdio. h> double fun(int n) { } main() { int n; double s; printf("/n/nInput n: "); scanf ("%d", s=fun (n) printf ("/n/ns=%f/n/n", s);}
问答题下列给定程序中函数fun()的功能是:输入一圆,其直径为n,求出周长。
请改正程序中的错误,使其得出正确的结果。
不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
/* * * * *found* * * * * /
#define PI 3.14159;
/* * * * *found* * * * * /
int fun(int n);
{ /* * * * *found* * * * * /
PI=3.14159;
return PI * n;
}
问答题函数fun的功能是:将一副扑克牌编号为1,2,3,…,53,54,以某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为1的牌在最上方,如第一次这样洗牌后的结果为:1,28,2,29,…,53,27,54。两次洗牌后的结果为:1,41,28,15,2,42…,53,40,27,14,54。
程序的功能是:输出经过n次这样洗牌后的结果。
请在程序的下画线处填入正确的内容,并把下画线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdio.h>
2 void fun(int a[55],int n)
3 { int i,k;
4 /*********found*********/
5 int______[55];
6 for(i=0"i<n;i++)
7 { for(k=1;k<=27;k++)
8 {b[2*k-1]=a[k];
9 /*********found*********/
10 b______*k]=a[k+27];
11 }
12 for(k=1;k<=54;k++)
13 /*********found*********/
14 a[k]=______;
15 }
16 }
17 main()
18 int m,a[55],i;
19 for(i=1;i<55;i++)a[i]=i;
printf("请输入洗牌次数:");
20 scanf("%d",
21 fun(a,m);
22 for(i=1;i<55;i++)
printf("%d,",a[i]);
23 printf("/n");
问答题请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入XX所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int m, int k, int xx[])3 {4 }5 Nain()6 {7 int m,n,zz[1000];void NONO();8 pritf(''\nPlease enter two integers:'');9 scanf(''%d%d'', &m, &n);10 fun(m,n,zz);11 for(m=0 ; m<n;m++)12 printf(''%d'',zz[m]);13 printf(''\n'');14 NONO();15 }16 Void NONO()17 {/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/18 int m,n,zz[1000],i;19 FILE *rf,*wf;20 rf=fopen(''in.dat'',''r'');21 wf=fopen(''out.dat'',''w'');22 for(i=0;i<10;i++) {23 fscanf(rf, '%d%d'', &m, m++)fprintf(wf,''%d'',zz[m]);26 fprintf(wf,''\n'');27 }28 fclose(rf);29 fclose(wf);}
问答题下列给定程序中,函数fun()的功能是;求出两个数的最大公约数,并作为函数值返回。例如,若给num1和num2输入49和21,则输出的最大公约数为7:若给num1和num2分别输入27和81,则输出最大公约数为27。 请改正函数fun()中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdio.h> int fun(int a, int b) int r,t; if(a<b) /******************found*****************/ t=a; b=a; a=t; r=a%b; while(r!=0) a=b; b=r; r=a%b; /******************found*****************/ return(a); main() int num1, num2, a; printf("Input num1 num2:"); scanf("%d %d", printf("num1=%d num2=%d/n/n",num1, num2); a=fun(num1, num2); printf("The maximun common divisor is %d/n/n", a);
问答题编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度0.0005,则程序应输出为3.140578。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps){}voidmain(){doublex;printf("Inputeps:");scanf("%1f",&x);printf("/neps=%1f,PI=%1f/n",x,fun(x));}
问答题请编写一个函数unsigned proc(unsigned u),u是一个大于10的无符号整数,若u是n(5≥n≥2)位的整数,则函数求出u的后n-1位的数作为函数值返回。 例如,u值为1234,则函数返回234;若u值为234,则函数返回34。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。 试题程序: #include<stdlib.h> #include<conio.h) #include<stdio.h> unsigned proc(unsigned u) void main() unsigned x; system("CLS"); printf("Enter a unsigned integer number: "); scanf("%u", &x); printf("The original data is:%u/n", x); if(x<10) printf("Data error!"); else printf("The result: %/kn", proc(x));
问答题填空题
请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定长度的子字符串。其中,str1指向原字符串,截取后的字符存放在str2所指的字符数组中,n中存放需截取的字符个数。
例如:当str1=“cdefghij”,然后输入4,则str2=“cdef”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#define LEN 80
main()
{
char str1[LEN],str2[LEN];
int n,i;
clrscr();
printf("Enter the string:/n");
gets(str1);
printf("Enter the position of the string
deleted:");
scanf(【1】);
for(i=0;i
问答题给定程序MODI1.C中函数 fun 的功能是:求S的值。
例如,当k为10时,函数值应为:1.533852。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
/************found************/
void fun( int k )
{ int n; float s, w, p, q;
n = 1;
s = 1.0;
while ( n <= k )
{ w = 2.0 * n;
p = w - 1.0;
q = w + 1.0;
s = s * w *w/p/q;
n++;
}
/************found************/
return s
}
main ( )
{
printf("%f/n", fun (10));
}
问答题己知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 10
typedef struct ss
{ char num[10]; int s; } STU;
fun(STU a[],STU *s)
{
}
main ()
{ "A06",90 },{ "A07",79J,{ "A08",61} ,
int i;
printf("***** The original data
*****/n");
for (i=0; 1< N; i++)printf("No
= %s Mark = %d/n",
printf ("The top : % s ,% d/n",
m.num,m.s);
NONO () :
}
NONO ()
FILE *rf,*wf ;
STU a[N],m ;
int i ;
rf = fopen ("in.dat","r") ;
wf= fopen "'out.dat","w") ;
for (i = 0 ; i < 10; 1++) fscanf (rf,
"% s % d", a[i] .num. &a [i] .s) ;
fprintf (wf,"The top : % s,% d/n",
m.num, m. s) ;
fclose (rf)
fclose (wf)
}
问答题给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并在主函数中输出。
例如,有10个正数:46、30、32、40、6、17、45、15、
48、26,平均值为30. 500000。
主函数中输出m=30。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdlib.h >
#include < stdio.h >
#de fine N 10
double fun (double x[],double * av)
{ int i, j ; double d, s;
s =0;
for(i=0; i < N; i++) s = s +x[i],
/*********found*********/
【1】
= s/N;
d =32767;
if(x[i] < *av && *av 一 x[i]
< =d){
/*********found*********/
d= *av 一x[i];
j=
【2】
;
}
/*********found*********/
return
【3】
;
}
main ()
{ int i; double x[N],av,m;
printf "'/n") ;
m = fun (xf &av) ;
printf ("/nThe average is: % f/nl',
av) ;
printf ("m = % 5 .lf ",m) ;
printf ( "/n") ;
}
问答题下列给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数的和。high的值由主函数传给fun函数。 例如,若high的值为10。,则函数的值为732。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<conio.h> #include<scdio.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));
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:
把分数最低的学生数据放在b所指的数组中。
注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。
注意:部分源程序在文件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 },{ "GA06rr,87 } ,
{ "GA015",85},{ "GA013",91} ,{ "GA012",64 },
{ "GA014",91} ,{ "GA011",91} ,{ "GA017",64 },
{"GA018",64},{"GA016",72}};
STREC h [N] ;
int i,n;FILE ;*out ;
n=fun (s,h) ;
printf ("The %d lowest score: /n",n) ;
printf "%s %4d/n",h [i] .num,h [i] .s) ;
out=fopen ("out.dat","w") ;
fprintf (out, "%d/n",n) ;
fprintf (out, "%4d/n",h[i] .s) ;
fclose (out) ;
}
问答题学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。 试题程序: #include<stdio.h> #define M 12 typedef struct char num[10]; double s; STREC; double proc(STREC*a,STREC*b,int*n) void main() STREC stu[M]=f"GA05",85,"GA03",76, "GA02",69),"GA04",85,"GA01",91, "GA07",72),"GA08",64,"GA06",87, "GA09",60,"GA11",79),("GA12",73, "GA10",90; STREC h[M]; int i,n; double ave; ave=proc(stu,h,&n); printf("The%d student data which is higher than %7.3f:/n",n,ave); for(i=0;i<n;i++) printf("%s%4.1f/n",h[i].num,h[i].s); printf("/n");
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在函数fum的花括号中填入所编写的若啡:语句。
试题程序:
#include <stdio.h>
#define N 16
typedef struct
{ char num[10];
int s ;
}STREC;
int fun (STREC a[])
{
}
main ()
{
STREC s IN] ={ {"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 :In");
for (i=0; i<N; i++)
{if ((i) %4=-0)
/*每行输出4个学生记录*/
printf ("/n");
printf("%s %4d",s[i].num, s[i].s);
}
printf ("/n");
out=fopen ( "out 16. dat", "w" );
for(i=0; i<N; i++);
{if ((i) %4==0
fprintf(out, "%4d",s[i].s);
}
fprintf(out, "/n");
fclose (out);
}
问答题请编写函数fun(),它的功能是:将带头结点单向链表按data域由大小排序(排序时不考虑头结点),主函数用随机函数为各结点data域赋值,头结点data域赋值为0。 注意:部分原程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 [试题源程序] #include <stdio.h> #include <conio.h> struct aa int data; struct aa*next; ; void fun(struct aa*p) main() int i,n,m=100; struct aa*h=NULL,*s=NULL, *p=NULL; clrscr(); S=(struct aa*)malloc(sizeof(struct aa)); h=s;h->data=0;h->next=NULL; printf("Please input n:"); scanf("%d",&n); for(i=1;i<=n;i++) p=(struct aa*)malloc(sizeof(struct aa)); p->data=rand()%m;p->next=NULL; printf("%d",p->data); s->next=p;s=s->next; fun(h); printf("/n"); for(h=h->next;h!=NULL;h=h->nnext) printf("%d",h->data);
问答题
请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。
例如,二维数组中的数据为:
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应是:
33 33 33 33 44 44 44 44 55 55 55 55。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
void fun(int(*s)[10], int *b, int *n, int mm, int nn)
{
}
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; void NONO();
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,
printf("The A array:/n");
for(i=0; i<n; i++)printf("%3d", a[i]); printf("/n/n");
NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
FILE *rf, *wf; int i, j, k;
int w[10][10], a[100], n=0, mm, nn;
rf=fopen("in.dat", "r");
wf=fopen("out.dat", "w");
for(k=0; k<5; k++){
fscanf(rf, "%d %d:,
for(i=0; i<mm; i++)
for(j=0; j<nn; j++)fscanf(rf, "%d",
fun(w, a,
for(i=0; i<n; i++)fprintf(wf, "%3d", a[i]); fprintf(wf, "/n");
}
问答题请编写函数fun(),其功能是:将s所指字符串中除了下标为奇数、同时ASCII值为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为edB2A4Dsdg,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为偶数,因此也应当删除:而字符2的ASCII码值为偶数,所在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是d24。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <conio.h> #include <stdio.h> #include<string, h> void fun(char*s, char t[]) main() char s[100] ,t[100]; clrscr(); printf("/nPlease enter string S: "); scanf("%s",s); fun(s,t); printf("/nThe result is: %s/n",t);
问答题给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。
例如,当s所指字符串中的内容为:"abcdabfab",t所指字符串的内容为:
"ab",则函数返回整数3。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
int fun (char *s, char *t)
{
int n; char *p , *r;
n = 0;
while ( *s )
{ p = s; r = t;
while ( *r )
if ( *r == *p ) {
/************found************/
r++; p++
}
else break;
/************found************/
if ( r == '/0' )
n++;
s++;
}
return n;
}
main()
{
char s[100], t[100]; int m;
printf("/nPlease enter string S:"); scanf("%s", s);
printf("/nPlease enter substring t:"); scanf("%s", t);
m = fun( s, t);
printf("/nThe result is: m = %d/n", m);
}
