问答题给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define M 5
#define N 20
/**********found**********/
int fun(char (*ss) ___1___, int *n)
{ int i, k=0, len=0;
for(i=0; i
{ len=strlen(ss[i]);
/**********found**********/
if(i==0) *n=___2___;
if(len>*n) {
/**********found**********/
___3___;
k=i;
}
}
return(k);
}
main()
{ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
int n,k,i;
printf("/nThe original strings are :/n");
for(i=0;i
k=fun(ss,
printf("/nThe length of longest string is : %d/n",n);
printf("/nThe longest string is : %s/n",ss[k]);
}
问答题请编写函数fun(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按J顷序合并组成一个新的字符串。
例如,若字符串数组中的M个字符串为
AAAA
BBBBBBB
CC
则合并后的字符串内容应该是AAAABBBBBBBCC
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <conio. h>
#define M 3
#define N 20
void fun (char a [M] [N], char *b)
{
}
main ( )
{
char w [M] [N] ={"AAAA", "BBBBBBB", "CC"}, i;
char a[100]={" ####################"};
printf ("The string: /n ");
for (i=0; i<M; i++)
puts (w[i]);
printf (" /n ");
fun (w, a);
printf ("The A string: /n ");
printf("%s ",a);
printf("/n/n ");
}
问答题函数fun()的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。例如,若字符串为abcd,则应输出dcba。 #include<stdio.h> /**********found**********/ fun(char a) if(*a) fun(a+1); /**********found**********/ printf("%c"*a); main() char s[10]="abcd"; printf("处理前字符串=%s/n处理后字符串=",s); fun(s);printf("/n");
问答题下列给定程序中,函数proc()的功能是:计算并输出下列级数的前N项之和S
N
,直到S
N+1
大于q为止,q的值通过形参传入。
S
N
=2/1+3/2+4/3+(N+1)/N
例如,若q的值为57,则函数值为59.593612。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
double proc(double q)
{
int n; double sum, t;
n=2;
sum=2.0;
while(sum<=q)
{
t=sum;
//****found****
sum=sum+(n+1)/n;
n++;
}
//****found****
return sum;
}
void main()
{
system("CLS");
printf("%f/n", proc(60));
}
问答题请编写一个函数fun, 它的功能是: 计算并输出给定整数n的所有因子(不包括1与n自身)之和。规定n的值不大于1000。
例如,在主函数中从键盘给n输入的值为856, 则输出为:sum=763。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
int fun(int n)
{
}
main()
{ int n,sum;
printf("Input n: "); scanf("%d",
sum=fun(n);
printf("sum=%d/n",sum);
NONO();
}
问答题
给定程序MODI1.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
typedef struct ss
{ char num[10];
int s;
} STU;
STU *fun(STU a[],int m)
{STU b[N],*t;
int i,j,k;
/**********found**********/
t=(STU *)calloc(sizeof(STU),m)
for(i=0;i<N;i++) b[i]=a[i];
for(k=0;k<m;k++)
{ for(i=j:0;i<N;i++)
if(b[i].s>b[j].s) j=i;
/**********found**********/
t(k)=b(j);
b[j].s=0;
}
return t;
}
outresult(STU a[],FILE *pf)
{ int i;
for(i=0;i<N;i++)
fprintf(pf,"No=%s Mark=%d/n",a[i].num,a[i].s);
fprintf(pf,"/n/n");
}
main()
{STU a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}};
STU *pOrder;
int i,m;
printf("***** The Original data *****/n");
outresult(a,stdout);
printf("/nGive the number of the students who have better score:");
scanf("%d",
while(m>10)
{ printf("/nGive the number of the students who have better score:");
scanf("%d",
}
pOrder=fun(a,m);
printf("***** THE RESULT *****/n");
printf("The top:/n");
for(i=0;i<m;i++)
printf("%s %d/n",pOrder[i].num, pOrder[i].s);
free (pOrder);
}
问答题给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。 例如,从主函数输入一个整数:27638496,函数返回值为:26846。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 unsigned long fun(unsigned long n)3 { unsigned long x=0,s,i;int t;4 s=n;5 /**********found**********/6 i= __1__;7 /**********found**********/8 while(__2__)9 { t=s%10;10 if(t%2==0){11 /**********found**********/12 x=x+t*i;i=__3__;13 }14 s=s/10;15 }16 return x;17 }18 main()19 { unsigned long n=-1;20 while(n>99999999 || n<0)21 { printf(''Please input(0<n<100000000):'');scanf(''%1d'',&n);}22 printf(''\nThe result is:%1d\n'', fun(n));23 }
问答题给定程序MODI1.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include<stdio.h>void fun(char *s,int num[5]){ int k,i=5; for(k=0;k<i;k++)/**********found**********/ num[i]=0; for(;*s;s++) { i=一1;/**********found**********/switch(s){ case'a':case 'A':{i=0;break;}case'e':case'E':{i=1;break;}case'i':case'I':{i=2;break;}case'o':case'O':{i=3;break;}case'u':case'U':{i=4;break;} } if(i>=0) num[i]++; }}main(){char s1[81];int num1[5],i;printf("\nPlease enter a string:");gets(s1);fun(s1,nums);for (i=0; i<5;i++)printf("%d",num1[i]);printf("\n");}
问答题学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生人数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include <stdio.h> #defjne N 16 typedef struct char num[10]; int s; STREC; int fun(STREC *a, STREC *b) void 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; STREC h[N]; int i, n; n=fun(s, h); printf("The %d highest score:/n", n); for(i=0; i<n; i ++) printf("%s %4d/n", h[i].num, h[i].s);/*输出最高分学生的学号和成绩*/ printf("/n");
问答题
问答题请编一个函数float fun (double h),函数的功能是对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。
例如:若h值为8.32433,则函数返回8.32:若h值为 8.32533,则函数返回8.33。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数。fun 的花括号中填入所编写的若干语句。
试题程序:
#include <stdio. h>
#include <conio. h>
float fun (float h )
{
}
main()
{
float a;
clrscr ();
printf ("Enter a: ");
scanf ("%f",
printf("The original data is : ");
printf("%f/n/n", a) ;
printf("The result: %f/n", fun(a) );
}
问答题请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。
注意:部分源程序存在文件PROG1. C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio. h>
char *fun (char *s, char *t)
{
}
main( )
{ char a[20], b[20];
void NONO( );
printf("Input 1th string: ");
gets(a);
printf("Input 2th string: ");
gets(b);
printf("%s/n", fun(a, b));
NONO( );
}
void NONO( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE *fp, *wf;
int i;
char a[20], b[20];
fp=fopen("in. dat", "r");
wf=fopen("out. dat", "w");
for(i=0; i<10, i++) {
fscanf(fp, "%s%s", a, b);
fprintf(wf, "%s/n", fun(a, b));
}
fclose(fp);
fclose(wf);
}
问答题请在函数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({{U}} 【1】 {{/U}})
return 0;
else
if({{U}} 【2】 {{/U}})
return 1;
else
return {{U}}【3】 {{/U}};
}
问答题给定程序MODI1.C中函数fun的功能是:
将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。
例如,字符串中的数据为:AABBCCDDEEFF,则输出应当是:ABBCDDEFF。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动maln函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 80
void fun(char *'s,char t[])
{ int i,j=0;
for (i=0; 1< (int) strlen (s) ; i++)
if (i%2 && S [1] %2==0)
}
main ()
{ char s [N] , t [N] ;
printf ("/nPlease enter string
fun (s, t) ;
printf("/nThe result is : oos/n",t) ;
}
问答题编写函数fun,其功能是:将s所指字符串中ASCII码值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII码值为奇数,字符1的ASCII码值也为奇数,都应当删除,其他依此类推。最后t所指的数组中的内容应是“BDF24”。注意:部分源程序给出如下。请勿改动主函数nmin和其他函数中的任何内容,仅在函数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的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵: 1 2 3 计算结果为 1 0 0 4 5 6 6 5 0 7 8 9 10 14 9 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构11 #include<stdio.h>2 #define N 43 /**********found**********/4 void fun(int(*t)__1__)5 { int i,j;6 for(i=1 ; i<N;i++)7 ( for(j=0;j<i;j++)8 {9 /**********found**********/10 __2___=t[i][j]+t[j][i];11 /**********found**********/12 __3__=0;13 }14 }15 }16 main()17 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;18 printf(''\nThe originalarray:\n'');19 for(i=0;i<N;i++)20 {for(j=0;j<N;j++) printf(''%2d'',t[i][j]);21 printf(''\n'');22 }23 fun(t);24 printf(''\nThe result is:\n'');25 for(i=0; i<N;i++)26 { for(j=0 ; j<N;j++)printf(''%2d'',t[i][j]);27 printf(''\n'');28 }29 }
问答题给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。 例如,当形参n的值为10时,函数返回:-0.204491。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! #include<stdio.h> double fun(int n) {int i,k;double s,t; s=0; /**********found**********/ k=__1__; for(i=1;i<=n;i++){ /**********found**********/ t=__2__; s=s+k*(2*i—1)*(2*i+1)/(t*t); /**********found**********/ k=k*__3__:} return s;} main() { int n=-1; while(n<0) {printf("Please input(n>0):"); scanf("%d",&n);} printf("\n The result is:%f\n",fhn(n));}
问答题给定程序MODI1.C中函数fun的功能是: 先从键盘上输入一个3行3列矩阵的各个元素的值, 然后输出主对角线元素之和。
请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
int fun()
{
int a[3][3],sum;
int i,j;
/*********found**********/
______;
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
/*********found**********/
scanf("%d",a[i][j]);
}
for (i=0;i<3;i++)
sum=sum+a[i][i];
printf("Sum=%d/n",sum);
}
main()
{
fun();
}
问答题给定程序中,函数fun的功能是:将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。
例如,形参s所指的字符串为:Abe@1x56*,程序执行后t所指字符数组中的字符串应为:A@156*。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(char*S,char*t)
{int n=0;
while(*s)
{ if(*s<97){
/*********found*********/
*(t+n)=
【1】
;n++;}
/*********found*********/
【2】
;
}
*(t+n)=0;
/*********found*********/
return
【3】
;
}
main()
{char s[81],t[81];int n ;
printf("\nEnter a string:\n");
gets(s);
n=fun(s,t);
printf("\nTher are% d letter which ASCII code is less than 97:%s\n",n,t);
}
问答题下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODII.C中,不得增行或删行,也不得更改程序的结构! #include<stdio.h> #include<string.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; } } } } main() { int i; char*pstr[6],str[6][MAXLINE]; 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 sorting:\n”); for(i=0;i<6;i++)printf(“%s\n”,pstr[i]); }