问答题下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中后面的字符删除,只保留前面的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < string.h >
#define N 5
#define M 10
/*********found*********/
void fun(char(*ss)
【1】
,int k)
{ int i=0;
/*********found*********/
while(i <
【2】
){
/*********found*********/
ss[i][k]=
【3】
;i++;}
}
main()
{ char x[N][M]={"Create","Modi.fy","Sort","skip","Delete");
int i;
printf ("/nThe original
string/n/n");
for(i=0;i < N;i++)puts(x[i]);
printf("/n");
fun(x,4);
printf ("/nThe string after
deleted:/n/n");
for(i=0 ; i < N;i++)
puts(x[i]);
printf("/n");
}
问答题编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。
例如,若n为1000时,程序输出应为:s=153.909064。
注意:请勿改动主函数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 i,n;
double s;
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%d",
s=fun(n);
fprintf(wf,"%f/n",s);
}
fclose(fp);
fclose(wf);
}
问答题给定程序MODI1.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是:76.125000请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
问答题下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N],intm),该函数的功能是使数组右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为:则返回主程序后a数组中的值应为:注意:部分源程序在文件PROG1.C中。请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#defineN5voidfun(inta[][N],intm){}main(){inta[N][N],m,i,j;FILE*out;printf("***Thearray***/n");for(i=2;i<n;i++)A=1.0/(1+A);returnA;for(i=0;i<N;i++){for(j=0;j<N;j++){a[i][j]=rand()%20;printf("%4d",ali][j]);}printf("/n");}m=rand()%4;printf("m=%4d/n",m);fun(a,m);printf("THERESULT/n");printf("/n");}/*********found*********/out=fopen("out.dat","w");for(1=0fi<N;i++){for(j=0;j<N;j++)fprintf(out,"%4d",a[i][j]);fun(a,8);fprintf(out,"%4d",a[i][j]);fprintf(out,"/n");}fclose(out);/*********found*********/}
问答题下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。
例如,从主函数输入一个整数27638496,则函数返回值为26846。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
unsigned long fun(unsigned long n)
{ unsigned long x=0,s,i;int t;
s=n;
/*********found*********/
i=
【1】
;
/*********found*********/
while(
【2】
){t=s%10;
if(t%2==0){
/*********found*********/
x=x+t* i;i=
【3】
;
}
s=s/10;
}
return x;
}
main()
{ unsigned long n=一1;
while(n >9 9 9 99 9 9 9 ||n < 0)
{printf("Please input(0 < n < 100000000):");
scanf("%ld",&n);}
printf f"/nThe result is:%
ld/n",fun(n));
}
问答题给定程序MODIl.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("%1d",&s); fun(s,&t); printf("The result is:%ld\n",t);}
问答题请编写函数fun,其功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,若字符串数组中的M个字符串为{"AAAA","BBBBBBB","CC"},则合并后的字符串内容应该是“AAAABBBBBBBCC”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#define M 3
#define N 20
void fun(char a[M][N],char *b)
{
}
void main()
{
char w[M][N]={"AAAA","BBBBBBB","CC"};
char a[100]={"##################"};
int i;
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");
}
问答题main( )
{ int k , a( 8 ) ;
for( k=0; k<10 ; k++)
scanf(“%d”,
...... }
问答题从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。
问答题给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。例如:当输入100时,输出:100=9+10+11+12+13+14+15+16100=18+19+20+21+22请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>void fun(int n){int j,b,c,m,flag=0;for(b=1;b<=n/2;b++){/**********found**********/n=m;c=b;while(m!=0&&m>=c){/**********found**********/m=m-c;c++}/**********found**********/if(m!=0){printf("%d=",n);for(j=b;j<c-1;J++)printf("%d+",j);pfinff("%d\n",j);flag=1;}}if(flag==0)pfinff("不能分解\n");}main(){int n;pfinff("请输入一个整数:");scanf("%d",&n);fun(n);}
问答题填空题
请补充main函数,该函数的功能是:从字符串str中取出所有数字字符,并分别计数,然后把结果保存在数组b中并输出,把其他字符保存在b[10]中。
例如:当str1=“ab123456789cde090”时,结果为:
0:2 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:2 other charactor:5
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
main()
{
int i,b[11];
char *str="ab123456789cde090";
char *p=str;
clrscr();
printf("*** the origial data ***/n");
puts(str);
for(i=0;i<11;i++)
b[i]=0;
while(*p)
{
switch(【1】)
{
case ''0'':b[0]++;break;
case ''1'':b[1]++;break;
case ''2'':b[2]++;break;
case ''3'':b[3]++;break;
case ''4'':b[4]++;break;
case ''5'':b[5]++;break;
case ''6'':b[6]++;break;
case ''7'':b[7]++;break;
case ''8'':b[8]++;break;
case ''9'':b[9]++;break;
【2】
}
【3】
}
printf("****** the result ********/n");
for(i=0;i<10;i++)
printf("/n%d:%d",i,b[i]);
printf("/nother charactor:%d",b[i]);
}
问答题请用递归算法,求1+2+3+…+n,n由键盘输入。
问答题给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 主函数中输出:46 32 40 45 48 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!1 #include<stdlib.h>2 #include<stdio.h>3 #define N 104 double fun(double x[],double *y)5 { int i,j;double av;6 /**********found**********/7 av=___1__;8 /**********found**********/9 for(i=0; i<N; i++) av = av+ __2__;10 for(i=j=0;i<N;i++)11 /**********found**********/12 if(x[i]>av)y[__3__]=x[i];13 y[j]=-1;14 return av;15 }16 main()17 { int i;double x[N],y[N];18 for(i=0;i<N;i++){ x[i]=rand()%50; printf(''%4.0f'',x[i]);}19 printf(''\n'');20 printf(''\nThe average is:%f\n'', fun(x,y));21 for(i=0 ; y[i]>=0;i++) printf(''%5.1f'',y[i]);22 printf(''\n'');23 }
问答题下列给定程序中,函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x—y)+(z+y)/(z—y)的值。其中x和y的值不相等,z和y的值不相等。例如,当x的值为9,y的值为11,z的值为15时,函数值为一3.50。 请改正程序中的错误,使它能得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>#include<math.h>#include<stdlib.h>/*******found*******/#define FU(m,n)((m/n))float fun(float a,float b,float e){ float value; value=FU(a+b,a—b)+FU(c+b,c—b);/*******found*******/ Return(Value);}main(){ float x,y,z,sum; prinff(“Input x y z:“); scanf(“%f%f%f.’,&x,&y,&z); prinff(“x=%f,y="%f,z=%f、n”,X,y,z); if(x=y‖y==z) { prinff(“Data error!\n”); exit(0); } sum=fun(x,y,z); prinff(“The result is:%5.2f\n”,sum);}
问答题下列给定程序中,函数fun的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>void fun(char*s){ int i,j; for(i=0,j=0;s[i]!='\0';i++) if(s[i]>='0'&&s[i]<='9')/*********found*********/ s[j]=s[i];/*********found*********/ s[j]="\0";}void main(){ char item[80], system("CLS"); printf("\nEnter a string:"); gets(item); printf("\n\nThe string is:%s、n",item); fun(item); printf("\n\nThe string of changing is:%s\n",item);}
问答题请编写函数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){}void main(){ FILE*wf; 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");/******************/ wf=fopen("out.dat","w"); for(i=0;i < n;i++) fprintf(wf,"%3d",a[i]); fclose(wf); /******************/}
问答题下列给定程序中函数fun的功能是:把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。例如,若输入的数为:55 12 34,输出的结果应当是:a=55.0,b:34.0,c=12.0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>void fun(float*a,float*b,float*c){/*********found*********/ float*k; if(*a<*b) { k=*a; *a=*b; *b=k; }/*********found*********/ if(*a>*c) { k=*c; *c=*a; *a=k; } if(*b<*c) { k=*b; *b=*c; *c=k; }}main(){ float a,b,c; printf("Input a b c:"); scanf("%f%f%f",&a,&b,&c); printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n”,a,b,c); fun(&a,&b,&c); printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);}
问答题请编写一个函数fun,其功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入“abc4Efg”,则应输出“aBc4EFg”。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序如下。
#include<stdio.h>
#include<string.h>
void fun(char*ss)
{
}
void main(void)
{
char tt[51];
printf("/nPlease enter an character string within 50 characters:/n");
gets(tt);
printf("/n/nAfter changing,the string/n"%s"",tt);
fun(tt);
printf("/nbecomes/n"%s"",tt);
}
问答题下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为123456789时,t中的数为2468。请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
//****found****
void proc(long 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;
}
}
void main()
{long s, t;
system("CLS");
printf("/nPlease enter s: ");
scanf("%ld",
proc(s,
printf("The result is:%ld/n", t);
}
问答题下列程序定义了N × N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[] [N]),该函数的功能是:将数组左下半三角元素中的值全部置成0。例如a数组中的值为: 1 9 7 2 3 8 4 5 6则返回主程序后a数组中的值应为: 0 9 7 0 0 8 0 0 0注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio.h >#include < stdlib.h >#define N 5void fun(int a[][N]){}void main(){ int a[N][N],i,j; system("CLS"); prjmtf("****The array****/n"); for(i=0;i < N;i++) /*产生一个随机的5*5矩阵*/ { for(j=0;j < N;j++) { a[i][j]=rand()%10; prJmtf("%4d",a[i][j]); } printf("/n"); } fun(a); printf("THE RESULT/n"); for(i=0;i < N;i++) { for(j=0;j < N;j++) print:f("%4ct",a[i][j]); printf("/n"); }}
