问答题下列给定的程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值为4622。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>int fun(int k){ int m=0,mc=0,j; while((k>=2)&&(mc<10)) {/*********found*********/ if((k%13=0)‖(k%17=0)) {m=m+k;mc++;) k--;/*********found*********/ return m;}void main(){ system(“CLS”); printf(“%d\n”,fun(500));}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。 例如,字符串中的内容为“****A*BC*DEF*G*******”,若n的值为4,删除后,字符串中的内容应为“****A*BC*DEF*G****”;若n的值为7,则字符串中的内容仍为“****A*BC*DEF*G*******”。n的值在主函数中输入。编写函数时,不得使用C语言提供的字符串函数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> void fun(char*a,int n) main() char s[81];int n; printf("Enter a string:/n"); gets(s); printf("Enter n:"); scanf("%d",&n); fun(s,n); printf("The string after deleted:/n"); puts(s);
问答题填空题
请补充函数fun(),该函数的功能是:按‘0’到‘9’统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。
例如:输入“x=112385713.456+0.909*bc”,结果为:1=3,3=2,5=2,7=1,9=2。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#define N 1000
void fun(char *tt,int num[])
{
int i,j;
int bb[10];
char *p=tt;
for(i=0;i=''0''
p++;
}
for(i=1,j=0;i<10;i=i+2,j++)
【3】;
}
main()
{
char str[N];
int num[10],k;
clrscr();
printf("/nPlease enter a char string:");
gets(str);
printf("/n**The original string**/n");
puts(str);
fun(str,num);
printf("/n**The number of letter**/n");
for(k=0;k<5;k++)
{
printf("/n");
printf("%d=%d",2*k+1,num[k]);
}
printf("/n");
return;
}
问答题函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。 注意:部分源程序给出如下。 请勿改动mam函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include <stdio.h> #include <string.h> void fun(char *s, char t[]) main() char s[100], t[100]; printf("/nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("/nThe result is:%s/n", t);
问答题下列给定程序中,fun函数功能是:将n个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> #include<stdlib.h> fun(int n,int *a) { int i,j,p,t; for(j=0;j<n一1;j++) { p=j; /******found******/ for(i=j+1;i<n一1;i++) if(a[p]>a[i]) /******found******/ t=i: if(p!=j) { t=a[i];a[j]=a[p];a[p]=t; } } } putarr(int n,int *z) { int i; for(i=1;i<=n;i++,z++) { printf("%4d",*z); if(!(i%10))printf("\n"); } printf("\n"); } main() { int aa [20]={9,3,0,4,1,2,5,6,8,10,7},n=11; printf( "Before sorting %d numbers:\n",n); putarr(n,aa); fun(n,aa); printf( "After sorting %d numbers:\n",n); putarr(n,aa); }
问答题某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的成绩已在主函数中给出。请编写proc()函数,它的功能是:求出该学生的平均分放在记录的avc成员中。请自己定义正确的形参。 例如,若学生的成绩是65.5,75,88,90,90.5,66,64.5,89.5,则他的平均分应当是78.625。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。 试题程序: #include<stdio.h> #define M 8 typedef struct char num[10]; double s[M]; double ave; STREC; void proc(STREC *p) void main() STREC stu="GA005", 65.5, 75, 88, 90, 90.5, 66, 64.5, 89.5; int i; proc ( printf ("The %s's student data: /n", stu. num); //输出学号 for(i=0; i<M; i++) printf ("%4.1f/n", stu.s[i]); //输出各科成绩 printf("nave=%7.3f/n", stu.ave); //输出平均分
问答题请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,11是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#inclucle<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("Nax=%5d,Index=%4d\n",max,index);}
问答题请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下。
#include<stdio.h>
#define M 4
int fun(int a[][M])
{
}
main()
{ int arr[2][M]={5,8,3,45,76,-4,12,82};
printf("max=%d/n",fun(arr));
}
问答题请编写函数fun(),该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
例如,若二维数组中的数据为:
W WWW
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)
{
}
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:In");
puts(a);
printf("/n/n");
}
问答题请编写函数fun(),该函数的功能是:计算n门课程的平均分,计算结果作为函数值返回。 例如x有5门课程的成绩是90.5,72,80,61.5,55,则函数的值为71.80。 注意:部分源程序给出如下. 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> float fun (float *a, int n) main () float score[30]=(90.5,72,80,61.5,55, aver; aver=fun(score, 5); printf("/nAverage score is: %5.2f /n",aver);
问答题在主函数中从键盘输入若干个数放人数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是:计算数组元素中所有值为正数的平均值(不包括0)。 例如,数组中元素的值依次为:39、-47、21、2、-8、15、0,则程序的运行结果为19250000。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<conio.h> #include<scdio.h> double fun(int x[]) /********found********/ int sum=0.0; int c=0,i=0; while(x[i]!=0) if(x[i]>0) sum+=x[i]; C++; i++; ] /********found********/ sum/=c; return sum; main() int x[1000]; int i=0; printf("/nPlease enter some dat a(endwith 0):"); do scanf("%d", while(x[i++]!=0); printf("%lf/n",fun(x));
问答题函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。
例如,当a=3,b=5,c=4时,中数为4。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
int fun(int a, int b, int c)
{
int t;
/**********found**********/
t=(a>b)?(b>c? b: (a>c?c:______)):((a>c)?______:((b>c)?c:______));
return t;
}
main()
{ int a1=3, a2=5, a3=4, r;
r=fun(a1, a2, a3);
printf("/nThe middle number is:%d/n", r);
}
问答题下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>typedef struct aa{ int data; struct aa *next; }NODE;int fun(NODE * h){ int sum=0; NODE *P; P=h->next;/*********found*********/ while(P->next) {if(P->data%2==0) sum+=p->data;/*********found*********/ P=h->next; } return sum;}NODE*treatlink(int n){ NODE*h,*p,*s; int i ; h=P=(NODE*)malloc(sizeof(NODE)); for(i=1;i<n;i++) { S=(NODE*)malloc(sizeof(NODE)); S->data=rand()%16; S->next=P->next; P->next=s; p=p->next; } p->next=NULL; return h; } outlink(NODE*h) {NODE*P; P=h->next; printf("\n\n The LIST:\n\nHEAD"); while(p) {printf("->%d“,P->data); P=P->next;} printf("\n");}void main(){ NODE*head; int sum; system("CLS"); head=creatlink(10); outlink(head); sum=fun(head); printf("\nsum=%d",sum);}
问答题已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。 注意:部分源程序存在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #include<string.h>3 #define N 104 typedef struct ss5 { char num[10];int s;} STU;6 fun(STU a[],STU *s)7 {89 }10 main()11 { STU a[N]=({''A01'',81},{''A02'',89},{''A03'',66},{''A04'',87},(''A05'',77},{''A06'',90},{''A07'',79},{''A08'',61},{''A09'',80},{''A10'',71}},m;12 int i;13 printf(''*****The original data *****\n'');14 for(i=0;i<N;i++)printf(''No=%s Mark=%d\n'', a[i].num,a[i].s);15 fun(a,&m);16 printf (''***** THE RESULT *****\n'');17 printf(''The top:%s,%d\n'', m.num,m.s);18 NONO();19 }20 NONO()21 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */22 FILE *rf,*wf;23 STU a [N],m;24 int i;25 rf=fopen(''in.dat'',''r'');26 wf=fopen(''out.dat'',''w'');27 for(i=0 ; i<10; i++) fscanf(rf,''%s%d'',a[i].num,&a[i].s);28 fun(a,&m);29 fprintf(wf,''The top:%s,%d\n'',m.num,m.s);30 fclose(rf);31 fclose(wf);32 }
问答题main( )
{ int k ;
k=35555 ;
printf ( “%d “, k) ; }
问答题编写函数proc,它的功能是:计算和输出下列级数的和。
S=1/(12)+1/(23)+…+1/(n(n+1))
例如,当n=20时,函数值为0.952381。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
double proc(int n)
{
}
void main()
{
system("CLS");
printf("%f/n", proc(10));
}
问答题下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为 “abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdlib.h >#include < conio.h >#include < stdio.h >#include < string.h >2nt fun(char*s,char*t){ int n;char*p,*r; n=0; while(*s) { p=s; r=t; while(*r)/*********found*********/ if(*r=*p){r++;p++) else break;/*********found*********/ if(r=='/0') n++; s++; } return n;}void main(){ char s[100],t[100];int m; system("CLS"); printi("/nPlease enterstring s:"); scanf("%s”,s); printf("/nPlease entersudstring t:"); scanf("%s",t); m=fun(s,t); printf f"/nThe result is:m=%d/n",m);}
问答题给定程序MODI1.C中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的迭代公式如下:
1 a
x1 = ─ ( x0 + ─ )
2 x0
例如,a为2时,平方根值为:1.414214。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
给定源程序:
#include
#include
/**********found**********/
double fun(double a, dounle x0)
{ double x1, y;
x1=(x0+ a/x0)/2.0;
/**********found**********/
if( fabs(x1-xo)>0.00001 )
/TAB y=fun(a,x1);
else y=x1;
return y;
}
main( )
{ double x;
printf("Enter x: "); scanf("%lf",
printf("The square root of %lf is %lf/n",x,fun(x,1.0));
}
问答题编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为abcdefabcdeabceabcdef,子字符串为cd,则应当输出3。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容。 试题程序: #include<stdlib.h> #include<conio.h> #include<stdio.h> #include<string.h> int proc(char * str, char * substr) void main() char str[81], substr[3]; int n; system("CLS"); printf("输入主字符串: "); gets(str); printf("输入子字符串: "); gets(substr); puts(str); puts(substr); n=proc(str, substr); printf("n=%d/n", n);
问答题下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面。 例如,当s中的字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdlib.h >#include < conio.h >#include < stdio.h >#include < string.h >void fun(char*s,char*t){ int i,s1; s1=str1en(s);/*********found*********/ for(i=0;i < =s1;i++) t[i]=S[i]; for(i=0;i < s1;i++) t[s1+i]=s[i];/*********found*********/ t[s1]='/0';}void main(){ char s[100],t[100]; system("CLS"); printf("/nPlease enterstring s:"); scanf("%s",s); fun(s,t); printf ("The result is:%s/n",t);}