2016下半年程序员考试模拟试卷下午题(一)
试题一
阅读以下函数说明和C 语言函数,将应填入___(n)___处的字句写在答题纸的对应栏内。
[程序1.1说明]
已知一个排好序的数组,现输入一个数,要求按原来的顺序规律,将它插入到数组中。
[程序1.1]
#include
#defineN100
voidmain()
{
floata[N=1],x;
inti,p;
printf("输入已经排好序的数列:");
for(i=0;i
scanf(%f",&a[i]);
printf("输入要插入的数:");
scanf("%f",&x);
for(i=0,p=N;i
if(x
{
___(1)___
break;
}
for(i=N-1;i>=p;i--)
___(2)___
___(3)___
for(i=0;i
printf("%f\t",a[i]);
}
[程序1.2说明]
本程序用变量count 统计文件中字符的个数。
[程序1.2]
#include
#include
voidmain()
{
FILE*fp;
longcount=0;
if((fp=fopen("letter.txt","r"))==NULL)
{
printf("cannotopenfile\n");
exit(0);
}
while(!feof(fp))
{
___(4)___
count++;
}
printf("count=%d\n",count);
___(5)___
}
试题二
阅读以下说明和C 语言程序,将应填入___(n)___处的字句写在答题纸的对应栏内。
[说明]
Fibonacci数列A={11,2,3,5,8,…}有如下性质:
a0=a1=1
ai=ai-1+ai-2i>1
对于给定的n ,另外有一个由n 个元素组成的数列xn ,该数列中各元素的值为: xi=ai/ai+1i=0,1,…,n
现要求对xn 中的元素按升序进行排序,然后以分数形式输出排序后的xn 。例如n=5时,排序前的xn={1/1,1/2,2/3,3/5,5/8},排序后的xn={1/2,3/5,5/8,2/3,1/1}。程序中函数make()首先生成排序前的xn ,然后调用函数sort()进行排序,最后输出所求结果。
[程序]
#include
#include
#include
structfact
{
longm,n;
};
voidsort(intn,structfact*p)
{
inta;
longs,t,u,v;
structfact*q,*end;
for(end=p+(n-1),a=1;a;end--)
for(a=0,q=p;q
{
s=q->m;
t=q->n;
u=(q+1)->m;
v=(q+1)->n;
if(___(1)___)
{
q->m=u;
___(2)___
___(3)___
(q+1)->n=t;
a=1;
}
}
}
voidmake(intn)
{
inti;
longa,b,c;
structfact*x,*y;
x=(structfact*)malloc(sizeof(structfact)*n);
x->m=1;
x->n=1;
for(a=1,b=1,i=2;i
{
___(4)___
a=b;
b=c;
(x+(i-1))->m=a;
(x+(i-1))->n=b;
}
___(5)___
printf("x%d={%1d/%1d",n,x->m,x->n);
for(y=x+1;y
printf(",%1d/%1d",y->m,y->n);
printf("}\n");
free(x);
}
voidmain()
{
intn;
printf("inputn:");
scanf("%d",&n);
make(n);
}
更多程序员考试资讯,请到希赛软考学院。
2016下半年程序员考试模拟试卷下午题(一)
试题一
阅读以下函数说明和C 语言函数,将应填入___(n)___处的字句写在答题纸的对应栏内。
[程序1.1说明]
已知一个排好序的数组,现输入一个数,要求按原来的顺序规律,将它插入到数组中。
[程序1.1]
#include
#defineN100
voidmain()
{
floata[N=1],x;
inti,p;
printf("输入已经排好序的数列:");
for(i=0;i
scanf(%f",&a[i]);
printf("输入要插入的数:");
scanf("%f",&x);
for(i=0,p=N;i
if(x
{
___(1)___
break;
}
for(i=N-1;i>=p;i--)
___(2)___
___(3)___
for(i=0;i
printf("%f\t",a[i]);
}
[程序1.2说明]
本程序用变量count 统计文件中字符的个数。
[程序1.2]
#include
#include
voidmain()
{
FILE*fp;
longcount=0;
if((fp=fopen("letter.txt","r"))==NULL)
{
printf("cannotopenfile\n");
exit(0);
}
while(!feof(fp))
{
___(4)___
count++;
}
printf("count=%d\n",count);
___(5)___
}
试题二
阅读以下说明和C 语言程序,将应填入___(n)___处的字句写在答题纸的对应栏内。
[说明]
Fibonacci数列A={11,2,3,5,8,…}有如下性质:
a0=a1=1
ai=ai-1+ai-2i>1
对于给定的n ,另外有一个由n 个元素组成的数列xn ,该数列中各元素的值为: xi=ai/ai+1i=0,1,…,n
现要求对xn 中的元素按升序进行排序,然后以分数形式输出排序后的xn 。例如n=5时,排序前的xn={1/1,1/2,2/3,3/5,5/8},排序后的xn={1/2,3/5,5/8,2/3,1/1}。程序中函数make()首先生成排序前的xn ,然后调用函数sort()进行排序,最后输出所求结果。
[程序]
#include
#include
#include
structfact
{
longm,n;
};
voidsort(intn,structfact*p)
{
inta;
longs,t,u,v;
structfact*q,*end;
for(end=p+(n-1),a=1;a;end--)
for(a=0,q=p;q
{
s=q->m;
t=q->n;
u=(q+1)->m;
v=(q+1)->n;
if(___(1)___)
{
q->m=u;
___(2)___
___(3)___
(q+1)->n=t;
a=1;
}
}
}
voidmake(intn)
{
inti;
longa,b,c;
structfact*x,*y;
x=(structfact*)malloc(sizeof(structfact)*n);
x->m=1;
x->n=1;
for(a=1,b=1,i=2;i
{
___(4)___
a=b;
b=c;
(x+(i-1))->m=a;
(x+(i-1))->n=b;
}
___(5)___
printf("x%d={%1d/%1d",n,x->m,x->n);
for(y=x+1;y
printf(",%1d/%1d",y->m,y->n);
printf("}\n");
free(x);
}
voidmain()
{
intn;
printf("inputn:");
scanf("%d",&n);
make(n);
}
更多程序员考试资讯,请到希赛软考学院。