填空题给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,c所指数组中的内容应该为“a4b3c2d1efg”;而当a所指字符串中的内容为“1234”,b所指字符串中的内容为“abcdefg”时,c所指数组中的内容应该为“1g2f3e4dcba”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
#include<string.h>
void fun(char *a, char *b, char *c)
{
int i, j; char ch;
i=0; j=strlen(b)-1;
/**********found**********/
while(i>j)
(ch=b[i]; b[i]=b[j]; b[j]=ch;
i++; j--;
}
while(*a||*b){
/**********found**********/
If(*a)
{ *c=*a; c++; a++;}
if(*b)
{ *c=*b; c++; b++;}
}
*c=0;
}
main()
{
char s1[100], s2[100], t[200];
printf("/nEnter s1 string:"); scanf("%s", s1);
printf("/nEnter s2 string:"); scanf("%s", s2);
fun(s1, s2, t);
printf("/nThe result is:%s/n", t);
}
填空题给定程序中,函数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>
#define 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*********/
______=s/N;
d=32767;
for(i=0;i<N;j++)
if(x[i]<*avj=______;}
/*********found********/
return______;
}
main()
{ int i;
double x[N]={46,30,32,40,6,17,45,15,48,26};
double av,m;
for(i=0;i<N;i++)printf("%4.0f",x[i]);
printf("/n");
m=fun(x,
printf("/nThe average is:%f/n",av);
printf("m=%5.0f",m);
printf("/n");
}
填空题若x,y和z均是int型变量,则执行下面表达式后的x值为 【7】 。 x=(y=4)+(z=2)
填空题以下程序的输出结果是{{U}} {{U}} {{/U}} {{/U}}。
#include<stdio.h>
main()
{ int s[]={1,2,3,4},i;
int x=0;
for(i=0;i<4;i++)
{ x=sb(s,x);
printf("%d" ,x);}
printf("/n");}
sb(s1,y)
int *s1,y;
{ static int i1=3;
y=s1[i1];
i1--;
return(y);}
填空题给定程序中,函数fun()的功能是求出ss所指字符数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符数组中共有M个字符串,且串长<N。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20
/**********found**********/
intfun(char(*ss)
________
,int *n)
{ int i,k=0,len=0;
for(i=0;i<M;i++)
{len=strlen(ss[i]);
/**********found**********/
if(i==0) *n=
________
;
if(len>*n){
/**********found**********/
________
;
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<M;i++)puts(ss[i]);
k=fun(ss,
printf("/nThe length of longest string is:%d/n",n);
printf("baThe longest string is:%/n",ss[k]);
}
填空题下面程序的功能是求1至1000之间满足“用2除余1,用3除余2,用5除余3”的数,且每行打印11个数,请把程序补充完整。
#include<stdio.h>
int main()
{
int i=1, j=0;
do
{
if(______)
{
printf("%5d", i);
j=j+1;
if(______)printf("/n");
}
i=i+1;
}while(i<1000);
return 0;
}
填空题下列程序的输出结果是______。 #include<stdio.h> main() int a=2,b=-1,C=2; if(a<B) if(b<O)c=0; else c++; printf("%d/n",C) ;
填空题数据结构分为逻辑结构与存储结构,线性链表属于 【3】 。
填空题函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。 #define N 4 void rotate(int a[][N],int b[][N]) int i,j; for(i=0;i<N;i++) b[i][N-1]= (13) ; (14) =a[N-1][i];
填空题下列程序的输出结果是{{U}} 【13】 {{/U}}。
main()
{
int a[]={2,4,6},*ptr=
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d/n",z);
}
填空题以下函数的功能是求x的y次方,请填空。 double fun(double x,int y) int i; double z; for(i=1,z=x;i<y;i++) z=z* 【12】 ; return z;
填空题给定程序的功能是将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各分段的人数存到b数组中:成绩为60~69分的人数存到b[0]中,成绩为70~79分的人数存到b[1],成绩为80~89分的人数存到b[2],成绩为90~99分的人数存到b[3],成绩为100分的人数存到b[4],成绩为60分以下的人数存到b[5]中。 例如,当a数组中的数据是:93、85、77、68、59、43、94、75、98。调用该函数后,b数组中存放的数据应是:1、2、1、3、0、2。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> void fun(int a[],int b[],int n) int i; for(i=0;i<6;i++) b[i]=0; for(i=0;i< (1) ;i++) if(a[i]<60) b[5]++: (2) b[(a[i]-60)/10]++; void main() int i,a[100]=93,85,77,68,59,43,94,75,98),b[6]; fun( (3) ,9); printf("the result is:"); for(i=0;i<6;i++) printf("%d",b[i]); printf("/n,");
填空题字符串str由数字字符组成(长度不超过5个字符),可看做任意进制的数,请补充函数proc(),该函数的功能是:把str字符串从二进制转换为十进制的数,结果保存在数组xx中,由函数返回转换后数组xx的实际长度。其中x表示str原来的进制,y表示要转换成的进制。例如,输入str="1011", x=2,y=10,结果输出:11。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容。 试题程序: #include<stdio.h> #include<stdlib.h> #include<string.h> #define M 8 int xx[M]; int proc(char*str, int x, int y) int sum; int i=0; char *p=str; for(i=0; i<M; i++) xx[i]=0; sum= (1) ; p++; while(*p) sum=sum*x+*p-'0'; p++; i=0; while(sum!=0) xx[i]= (2) ; (3) ; i++; return i; void main() char str[6]; int i; int n; int x; int y; printf("Enter a string made up of '0' to '9' digits character: "); gets(str); if(strlen(Str)>5) printf("Error: string too longer!, please input again!/n/n"); exit(0); for(i=0; slr[i]; i++) if(str[i]<'0'||str[i]>'9') printf("Error: %c not is '0'to '9' digits character! /n/n", str[i]); exit(0); printf("The original string: "); puts(str); printf("/nINPUT x="); scanf("%d", printf("/nINPUT y="); scanf("%d", n=proc(str, X, y); printf("/n%s is convered to", str); for(i=n=1; i>=0; i--) printf("%d/n", xx[i]/n);
填空题设有以下程序:
main()
{ int a,b=5,m=10,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)*(*p2)+a;
printf("a=%d/n",a);
printf("b=%d/n",b);
}
执行该程序后,a的值为______,b的值为______。
填空题以下程序运行后的输出结果是 【9】 。 main() int a=1,b=3,c=5; if(c=a+b) printf("yes/n"); else printf("no/n");
填空题有以下程序
main()
{ int t=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d/n",t);
}
执行后输出结果是{{U}} 【8】 {{/U}}。
填空题软件测试中路径覆盖测试是整个测试的基础,它是对软件{{U}} {{/U}}进行测试。
填空题下面程序用以计算数组X中所存放的由键盘输入的n个采样值的方差,请把程序补充完整。方差公式如下:#include<stdio.h>intmain(){floatx[30],s,xa=0.0;inti;printf("Entersample:/n");for(i=0;i<30;i++)scanf("%f",for(i=0;i<30;i++)xa+=________;s=________;for(i=0;i<30;i++)s+=________;printf("Arrayxis:/n");for(i=0;i<30;i++)printf("%f",x[i]);printf("/n");printf("s=%f/n",s);return0;}
填空题下列程序的运行结果为 【6】 。 main() int x=2,y,z; x*=3+1; printf("%d,",x++); x+=y=z=5; printf("%d,",x); K=y==Z; printf"%d/n",x);
填空题若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是______。 int b,c;float a; scanf("%f,%d,c=%d",&a,&b,&C)