c语言练习题2程序填空.docx
《c语言练习题2程序填空.docx》由会员分享,可在线阅读,更多相关《c语言练习题2程序填空.docx(13页珍藏版)》请在冰豆网上搜索。
![c语言练习题2程序填空.docx](https://file1.bdocx.com/fileroot1/2022-12/7/cc1a2fef-ed4b-41cf-a357-cbad11bbe078/cc1a2fef-ed4b-41cf-a357-cbad11bbe0781.gif)
c语言练习题2程序填空
/*-------------------------------------------------------
【程序填空】第1题
---------------------------------------------------------
题目:
以下程序的功能:
计算并输出500以内最大的10个能被13或17整除的自然数之和。
-------------------------------------------------------*/
#include
/***********SPACE***********/
intfun(【?
】)
{
intm=0,mc=0;
/***********SPACE***********/
while(k>=2&&【?
】)
{
/***********SPACE***********/
if(k%13==0||【?
】)
{m=m+k;mc++;}
k--;
}
/***********SPACE***********/
【?
】;
}
voidmain()
{
printf("%d\n",fun(500));
}
/*-------------------------------------------------------
【程序填空】第2题
---------------------------------------------------------
题目:
阅读以下程序并填空,该程序是求阶乘的累加和。
S=0!
+1!
+2!
+.........+n!
-------------------------------------------------------*/
#include
longf(intn)
{inti;
longs;
/***********SPACE***********/
s=【?
】;
for(i=1;i<=n;i++)
/***********SPACE***********/
s=【?
】;
returns;}
voidmain()
{longs;
intk,n;
scanf("%d",&n);
/***********SPACE***********/
s=【?
】;
for(k=0;k<=n;k++)
/***********SPACE***********/
s=s+【?
】;
printf("%1d\n",s);}
/*-------------------------------------------------------
【程序填空】第3题
---------------------------------------------------------
题目:
通过函数调用输出100~200之内的全部素数。
-------------------------------------------------------*/
#include
#include"math.h"
voidsushu(intm)
{
intk;
inti;
/***********SPACE***********/
【?
】
for(i=2;i<=k;i++)
/***********SPACE***********/
if(【?
】)
/***********SPACE***********/
【?
】
if(i>=k+1)
printf("%4d",m);
}
voidmain()
{
intm;
for(m=101;m<=200;m++)
/***********SPACE***********/
【?
】;
}
/*-------------------------------------------------------
【程序填空】第4题
---------------------------------------------------------
功能:
求100-999之间的水仙花数
说明:
水仙花数是指一个三位数的各位数字的立方和是这个数本身。
例如:
153=1^3+5^3+3^3)。
-------------------------------------------------------*/
#include
intfun(intn)
{inti,j,k,m;
m=n;
/***********SPACE***********/
【?
】;
for(i=1;i<4;i++)
{
/***********SPACE***********/
【?
】;
m=(m-j)/10;
k=k+j*j*j;
}
if(k==n)
/***********SPACE***********/
【?
】;
else
return(0);}
main()
{
inti;
for(i=100;i<1000;i++)
/***********SPACE***********/
if(【?
】==1)
printf("%disok!
\n",i);
}
/*-------------------------------------------------------
【程序填空】第5题
---------------------------------------------------------
功能:
计算并输出high以内最大的10个素数之和,high由主函数传
给fun函数,若high的值为100,则函数的值为732。
-------------------------------------------------------*/
#include
#include
#include
intfun(inthigh)
{
intsum=0,n=0,j,yes;
/***********SPACE***********/
while((high>=2)&&(【?
】))
{
yes=1;
for(j=2;j<=high/2;j++)
/***********SPACE***********/
if(【?
】)
{
yes=0;
break;
}
if(yes)
{
sum+=high;
n++;
}
high--;
}
/***********SPACE***********/
【?
】;
}
main()
{
printf("%d\n",fun(100));
}
/*-------------------------------------------------------
【程序填空】第6题
---------------------------------------------------------
题目:
输出Fibonacci数列的前20项,要求每行输出5项。
Fibonacci数列:
1,1,2,3,5,8,13...........
-------------------------------------------------------*/
#include
#defineN20
voidmain()
{
/*****************SPACE****************/
inti,【?
】;
/*****************SPACE****************/
【?
】;
for(i=2;i/*****************SPACE****************/
fib[i]=【?
】;
for(i=0;i{
printf("%d\t",fib[i]);
/*****************SPACE****************/
if(【?
】)
printf("\n");
}
}
/*-------------------------------------------------------
【程序填空】第7题
---------------------------------------------------------
功能:
产生并输出杨辉三角的前七行。
1
11
121
1331
14641
15101051
1615201561
-------------------------------------------------------*/
#include
main()
{
inta[7][7];
inti,j;
for(i=0;i<7;i++)
{
a[i][0]=1;
/***********SPACE***********/
【?
】;
}
for(i=2;i<7;i++)
/***********SPACE***********/
for(j=1;j<【?
】;j++)
/***********SPACE***********/
a[i][j]=【?
】;
for(i=0;i<7;i++)
{
/***********SPACE***********/
for(j=0;【?
】;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}
/*----------------------------------------------------------
【程序填空】第8题
------------------------------------------------------------
题目:
找出一维数组中的最小值元素及其下标。
------------------------------------------------------------*/
#include
#defineN10
voidmain()
{
inta[N],i,min,p;
for(i=0;i/*************SPACE*****************/
scanf("%d",【?
】);
/*************SPACE*****************/
min=【?
】;
p=0;
for(i=1;i/*************SPACE*****************/
if(【?
】)
{
min=a[i];
/*************SPACE*****************/
【?
】;
}
printf("最小值为:
%d,下标为:
%d\n",min,p);
}
/*-------------------------------------------------------
【程序填空】第9题
---------------------------------------------------------
题目:
求数组中的最大值。
程序中有4个空,填空使程序完整。
-------------------------------------------------------*/
#include
intimax(int,int);
voidmain(void)
{
inta[10],m,i;
for(i=0;i<10;i++)
/***********SPACE***********/
scanf("%d",【?
】);
m=a[0];
for(i=0;i<10;i++)
/***********SPACE***********/
m=imax(m,【?
】);
printf("max=%d\n",m);
}
/***********SPACE***********/
intimax(【?
】)
{
intz;
if(x>y)z=x;
elsez=y;
/***********SPACE***********/
return【?
】;
}
/*-------------------------------------------------------
【程序填空】第10题
---------------------------------------------------------
功能:
下面函数为二分法查找key值。
数组中元素已递增排序,
若找到key则返回对应的下标,否则返回-1。
-------------------------------------------------------*/
#include
fun(inta[],intn,intkey)
{
intlow,high,mid;
low=0;
high=n-1;
/***********SPACE***********/
while(【?
】)
{
mid=(low+high)/2;
if(key/***********SPACE***********/
【?
】;
elseif(key>a[mid])
/***********SPACE***********/
【?
】;
else
/***********SPACE***********/
【?
】;
}
return-1;
}
main()
{
inta[10]={1,2,3,4,5,6,7,8,9,10};
intb,c;
b=4;
c=fun(a,10,b);
if(c==-1)
printf("notfound");
else
printf("position%d\n",c);
}
/*-------------------------------------------------------
【程序填空】第11题
---------------------------------------------------------
题目:
输入N个数据存入数组中,将其倒置存放,并打印输出。
-------------------------------------------------------*/
#include
#defineN10
voidmain()
{inti,t,a[N];
printf("Enter%dNumbers:
\n",N);
for(i=0;i/***********SPACE***********/
scanf("%d",【?
】);
/***********SPACE***********/
for(i=0;i<【?
】;i++)
{t=a[i];
/***********SPACE***********/
a[i]=【?
】;
a[N-i-1]=t;
}
for(i=0;iprintf("%d",a[i]);
}
/*-------------------------------------------------------
【程序填空】第12题
---------------------------------------------------------
功能:
统计一个字符串中的字母、数字、空格和其它字符的个数。
-------------------------------------------------------*/
#include
voidfun(chars[],intb[])
{
inti;
for(i=0;s[i]!
='\0';i++)
if('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')
b[0]++;
/***********SPACE***********/
elseif(【?
】)
b[1]++;
/***********SPACE***********/
elseif(【?
】)
b[2]++;
else
b[3]++;
}
main()
{
chars1[80];inta[4]={0};
intk;
/***********SPACE***********/
【?
】;
gets(s1);
/***********SPACE***********/
【?
】;
puts(s1);
for(k=0;k<4;k++)
printf("%4d",a[k]);
}