C语言程序填空.docx
《C语言程序填空.docx》由会员分享,可在线阅读,更多相关《C语言程序填空.docx(15页珍藏版)》请在冰豆网上搜索。
![C语言程序填空.docx](https://file1.bdocx.com/fileroot1/2023-1/3/c5f6a072-e138-4420-a1db-7f197c7f1816/c5f6a072-e138-4420-a1db-7f197c7f18161.gif)
C语言程序填空
1.功能:
已定义一个含有30个元素的数组s,函数fun1的功能是按
顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序
每五个元素求一个平均值,并将该值存放在数组w中。
#include
longints[30];
floatw[6];
fun1(longints[])
{
intk,i;
for(k=2,i=0;i<30;i++)
{
/***********SPACE***********/
【?
】;
k+=2;
}
}
fun2(longints[],floatw[])
{
floatsum=0.0;
intk,i;
for(k=0,i=0;i<30;i++)
{
sum+=s[i];
/***********SPACE***********/
【?
】;
{
w[k]=sum/5;
/***********SPACE***********/
【?
】;
k++;
}
}
}
main()
{
inti;
fun1(s);
/***********SPACE***********/
【?
】;
for(i=0;i<30;i++)
{
if(i%5==0)printf("\n");
printf("%8.2f",s[i]);
}
printf("\n");
for(i=0;i<6;i++)
printf("%8.2f",w[i]);
}
(答案1)s[i]=k或s[i]=(i+1)*2
(答案2)if((i+1)%5==0)或if((i+1)/5*5==i+1)
(答案3)sum=0或sum=0.0
(答案4)fun2(s,w)
2.功能:
十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二
个小孩2块,第三个小孩8块,第四个小孩22块,第五个
小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩
6块,第九个小孩14块,第十个小孩20块。
然后所有的小孩
同时将自己手中的糖分一半给左边的小孩;糖块数为奇数的人
可向老师要一块。
问经过这样几次调整后大家手中的糖的块数
都一样?
每人各有多少块糖?
-------------------------------------------------------*/
#include
main()
{
inti,count=0,a[11]={0,10,2,8,22,16,4,10,6,14,20};
/***********SPACE***********/
while(【?
】)
{
for(i=1;i<=10;i++)
a[i-1]=a[i-1]/2+a[i]/2;
a[10]=a[10]/2+a[0];
for(i=1;i<=10;i++)
/***********SPACE***********/
if(【?
】)a[i]++;
for(i=1;i<10;i++)
/***********SPACE***********/
if(a[i]!
=a[i+1])【?
】;
if(i==10)
break;
else
{
a[0]=0;
count++;
}
}
printf("count=%dnumber=%d\n",count,a[1]);
}
答案:
=======(答案1)=======
1
=======(答案2)=======
a[i]%2==1
=======(答案3)=======
break
功能:
用等分法在有序的循环数组中,找到最小元素的位置。
-------------------------------------------------------*/
#include
intcyclic_min(intx[],intn)
{
intleft=0;
intright=n-1;
intmid;
/***********SPACE***********/
while(【?
】)
{
mid=(left+right)/2;
if(x[mid]/***********SPACE***********/
【?
】;
else
/***********SPACE***********/
【?
】;
}
returnleft;
}
#include
voidmain(void)
{
intx[]={20,23,28,35,39,40,42,8,10,15,17,19};
intn=sizeof(x)/sizeof(int);
intloc,i;
printf("\nFindCyclicMinimum");
printf("\n===================");
printf("\n\nGivenArraySortedinCyclicFashion:
\n");
for(i=0;iprintf("%3d",x[i]);
loc=cyclic_min(x,n);
printf("\n\nMinimumislocatedatx[%d]=%d",loc,x[loc]);
}
答案:
=======(答案1)=======
left=========或=========
right>left
=======(答案2)=======
right=mid
=======(答案3)=======
left=mid+1
=========或=========
left=1+mid
功能:
求出二维数组中的最大元素值。
#include
max_value(m,n,array)
/***********SPACE***********/
intm,n,【array[][4]】;
{
inti,j,max;
max=array[0][0];
for(i=0;ifor(j=0;j/***********SPACE***********/
if(maxreturn(max);
}
voidmain()
{
inta[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
/***********SPACE***********/
printf("maxvalueis%d\n",【max_value(3,4,a)】);
}
功能:
考查字符串数组的应用。
输出26个英文字母。
#include
voidmain(void)
{
charstring[256];
inti;
/***********SPACE***********/
for(i=0;i<26;【i++】)
/***********SPACE***********/
string[i]=【'A'+i】;
string[i]='\0';
/***********SPACE***********/
printf("thearrarycontains%s\n",【string】);
}
功能:
以下程序的功能如(图1)。
#include
/***********SPACE***********/
【#include】
main()
{
doublex,f;
scanf("%f",&x);
/***********SPACE***********/
if(x<0)【f=fabs(x+1)】;
/***********SPACE***********/
elseif(【x<=5】)
f=2*x+1;
else
f=sin(x)+5;
/***********SPACE***********/
printf("x=%f,y=%f\n",【x,f】);
}
功能:
利用指向结构的指针编写求某年、某月、某日是第
几天的程序,其中年、月、日和年天数用结构表示。
#include
#include
main()
{
/***********SPACE***********/
【?
】date
{
inty,m,d,n;
/***********SPACE***********/
}【?
】;
intk,f,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("date:
y,m,d=");
scanf("%d,%d,%d",&x.y,&x.m,&x.d);
f=x.y%4==0&&x.y%100!
=0||x.y%400==0;
/***********SPACE***********/
a[1]+=【?
】;
if(x.m<1||x.m>12||x.d<1||x.d>a[x.m-1])exit(0);
for(x.n=x.d,k=0;k/***********SPACE***********/
printf("n=%d\n",【?
】);
}
答案:
=======(答案1)=======
struct
=======(答案2)=======
x
=======(答案3)=======
f
=======(答案4)=======
x.n
功能:
分别求出一批非零整数中的偶数、奇数的平均值,用零作
为终止标记。
-------------------------------------------------------*/
#include
main()
{
intx,i=0,j=0;
floats1=0,s2=0,av1,av2;
scanf("%d",&x);
/***********SPACE***********/
while(【?
】)
{
if(x%2==0)
{
s1=s1+x;
i++;
}
/***********SPACE***********/
【?
】
{
s2=s2+x;
j++;
}
/***********SPACE***********/
【?
】;
}
if(i!
=0)
av1=s1/i;
else
av1=0;
if(j!
=0)
/***********SPACE***********/
【?
】;
else
av2=0;
printf("oushujunzhi:
%7.2f,jishujunzhi:
%7.2f\n",av1,av2);
}
答案:
=======(答案1)=======
x!
=0
=========或=========
x
=======(答案2)=======
else
=========或=========
elseif(x%2==1)
=========或=========
elseif(x%2!
=0)
=========或=========
if(x%2)
=======(答案3)=======
scanf("%d",&x)
=======(答案4)=======
av2=s2/j
题目:
下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,
请填(3)空使程序完整。
-------------------------------------------------------*/
#include
main()
{intn,k=1,s=0,m;
for(n=1;n<=100;n++)
{
k=1;s=0;
/***********SPACE***********/
【?
】
/***********SPACE***********/
while(【?
】){
k*=m%10;
s+=m%10;
/***********SPACE***********/
【?
】
}
if(k>s)printf("%d\n",n);
}
}
答案:
=======(答案1)=======
m=n;
=======(答案2)=======
m>0
=========或=========
m>=0
=======(答案3)=======
m=m/10;
=========或=========
m/=10;
题目:
以下程序统计从终端输入的字母中每个大写字母的个数,num[0]中统计字母A的个数,
其它依次类推。
用#号结束输入,请填空。
-------------------------------------------------------*/
#include"stdio.h"
#include"ctype.h"
main()
{intnum[26]={0};i;charc;
/***********SPACE***********/
while(【?
】!
='#')
if(isupper(c))
/***********SPACE***********/
num[【?
】]+=1;
for(i=0;i<26;i++)
if(num[i])
printf("%c:
%d\n",i+'A',num[i]);
}
答案:
=======(答案1)=======
(c=getchar())
=======(答案2)=======
c-'A'
功能:
通过函数的递归调用计算阶乘。
-------------------------------------------------------*/
#include
longpower(intn)
{
longf;
if(n>1)
/***********SPACE***********/
f=【?
】;
else
f=1;
return(f);
}
main()
{
intn;
longy;
printf("inputainteagernumber:
\n");
/***********SPACE***********/
scanf("%d",【?
】);
y=power(n);
/***********SPACE***********/
printf("%d!
=%ld\n",n,【?
】);
}
答案:
=======(答案1)=======
power(n-1)*n
=========或=========
power(n-1)*n
=========或=========
n*power(n-1)
=======(答案2)=======
&n
=======(答案3)=======
power(n)
=========或=========
y
题目:
下面程序的功能是用递归法求n!
。
-------------------------------------------------------*/
#include
voidmain()
{
/***********SPACE***********/
【?
】;
intn;
longy;
printf("inputanintegernumber:
");
scanf("%d",&n);
/***********SPACE***********/
y=【?
】;
printf("%d!
=%ld\n",n,y);
}
longfac(intn)
{
longf;
if(n<0)
printf("n<0,dataerror!
");
elseif(n==0,n==1)
f=1;
else
/***********SPACE***********/
f=【?
】;
return(f);
}
答案:
=======(答案1)=======
longfac(intn)
=======(答案2)=======
fac(n)
=======(答案3)=======
fac(n-1)*n
=========或=========
n*fac(n-1)