编程填空.docx
《编程填空.docx》由会员分享,可在线阅读,更多相关《编程填空.docx(9页珍藏版)》请在冰豆网上搜索。
编程填空
11、以下程序的功能是:
输入圆的半径r和运算标志,按照运算标志进行运算,输出运算后的结果。
'A'或'a' 求面积
'B'或'b' 求周长
其他值 求周长和面积
#include
#define P 3.14
main()
{char c;
float r,area,length;
scanf("%c,%f",&c,&r);
Switch()
{case 'a':
case 'A':
area=P*r*r;printf("area=%f",area);break;
case 'b':
case 'B':
length=2*P*r;
printf("length=%f",length);
();
default:
area=P*r*r;
length=2*P*r;
printf("area=%d,length=%f",area,length);
}
}
12、用迭代法求某正数a的平方根。
已知迭代公式为:
x1=1/2*(x0+a/x0),迭代截止到最后两项的绝对值之差小于0.00001
#include
main()
{float a,x0,x1;
printf("\nInput a:
");
scanf("%f",&a);
if(a<0)
printf("error!
\n");
else
{x0=a/2;
x1=();
do
{x0=();}x1=(x0+a/x0)/2;}
while();
printf("sqrt(%f)=%f\n",a,x1);
}
}
11、输出下列图形。
1 2 3 4 5 6 7 8 9 main()
2 3 4 5 6 7 8 9 {int i,j;
3 4 5 6 7 8 9 for(i=1;i<=();i++)
4 5 6 7 8 9 {for(j=();j<=9;j++)
5 6 7 8 9 printf("%2d",j);
6 7 8 9 printf("\n");}
7 8 9 }
8 9
9
12、以下程序用枚举法求百鸡问题。
公鸡五元一只,母鸡三元一只,小鸡一元三只;一百元要买一百只鸡,且需包含公鸡,母鸡和小鸡,求可有哪几种方案。
请填空,要求以较高效率和合理的数值填入循环终值。
main()
{ int n,i,j,k;
n=0;
for (i=1;();i++)
for(j=1;();j++)
{ k=100-i-j;
if( () ==100)
{ n++;
printf("n=%d,cock=%d,hen=%d,chick=%d\n",n,i,j,k);
}
}
}
11、求两个数的最大值
main()
{int a,b,c;
scanf("%d,%d",&a,&b);
c=_________;
printf("max=%d",c);
}
int max(int x,int y)
{int z;
if (___________)z=x;
else z=y;
return (z);
}
12、 -1 x<0
y= { 0 x=0
+1 x>0
main()
{int x,y;
scanf("%d",____________);
if(x<0)y=-1;
else if(___________)y=0;
else _________;
printf("x=%d,y=%d",x,y);
}
12、编写函数sum(int n)用以求∑f(x)(x从0到n).和数作为函数的返回值,f(x)=x*x+1
int sum(int n);
int f(int x);
main()
{int a,b;
printf("Enter a integer number:
");
scanf("%d",&a);
b=________;
printf("a=%d sum=%d\n",a,b);
}
sum(int n)
{int x,s=0;
for(x=0;x<=n;x++) _____________;
return s;
}
f(int x)
{return ______________;}
11、反向输出一个整数,如:
输入-1234,输出-4321
#include
void main()
{ void printn(int x);
int n;
printf("Input n=");
scanf("%d",&n);
if (n<0)
{n=-n;putchar('-');}
____________;
}
void printn(int x)
{if (x>=0&&x<=9)
printf("%d",x);
else
{printf("%d",___________);
printn(x/10);
}
}
12、写一个函数,求一个字符串的长度。
length(p)
char *p;
{int n;
n=0;
while(___________)
{_____________;
p++;}_____________;
}
11、下面的C代码段用于计算 s=x+x3(x的3次方)/3+x5(x的5次方)/5+x7/7+x9/9+…的近似值,最后一项的绝对值小于0.000001。
#include
float fun(float x)
{int i=1;float t,s;
t=x;s=t;
while (t>1e-6){
i=__________;
t=t*_________;
s+=t;
}
return s;
}
12、 打印图形*****
***
*
main()
{int i,j,k;
for(i=0;i<=2;i++)
{for(j=0;j<=_________;j++)
printf(" ");
for(k=0;k<=________;k++)
printf("*");
printf();}
}
11、函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include
double pi(long n)
{ double s=0.0; long i;
for(i=1;i<=________;i++)s=s+___________;
return(sqrt(6*s));
}
12、求s=a+aa+aaa+aaaa+...
#include
______ fun(int a,int n)
{int j;
long s=0,t=0;
for(j=1;j<=n;j++)
{t=__________;
s=s+t;}
__________;
}
12、读入n(n<=10)个整数并放入一个数组r中,再读入一个整数x,统计并输出x在数组r中出现的次数count,如果count>0,再输出x在r中所对应的最小下标(下标从0开始)。
#include"stdio.h"
void main()
{ int x,k,sub,count,n,r[10];
scanf("%d",&n);
for(k=0;k scanf("%d",_____);
scanf("%d",&x);
sub=count=0;
for(k=0;k if(__________)count++;
for(k=0;k if(x==r[k])
{ sub=k;__________;}
printf("count=%d\n",count);
if(count>0)
printf("subscript is %d\n",sub);
11、以下MIN函数的功能是:
查找带有头节点的单项链表中,节点数据域的最小值作为函数值返回
struct node {int data;
struct node *next;
};
int MIN(struct node *first)
{struct node *p;
int m;
p=first->next;
m=p->data;
for(p=p->next;p!
='\0';p=_________)
if (__________)m=p->data;
return m;
}
12、输入一个double型的数,使该数保留小数点后两位,对第三位小数进行四舍五入后处理,然后输出此数
main()
{double x;
printf("Enter x:
");
scanf("__________",&x);
printf("
(1)x=%f\n",x);
x=x*100;
x=______________;
x=(int)x;
x=____________;
printf("
(2)x=%f\n",x);
}
11、下面程序的功能是求1到1000之间能同时被3,5,7整除的数,按每行十个数的格式输出
#include
main()
{int i=1,j=0;
for (i=1;i<1000;i++)
{if (________){printf("%4d",i);j=j+1;}
if (j==10){printf(
);j=0;}
}
}
12、猴子吃桃问题。
猴子第一天摘下若干桃子,当即吃了一半,又多吃了一个。
第二天又吃了剩下的一半零一个。
以后每天都吃了前一天剩下的一半零一个。
到第10天再看,只剩下一个桃子。
求第一天共摘多少桃子
main()
{int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=___________;
x2=x1;
_______;
}
printf("%d",_________);
}
11、现有已知长度n为的整数数组a,其前n-1个元素中有数据,并且数据按从小到大的顺序排列,函数insert要完成的功能是:
把任意整数i填入数组中,并使插入数据后的数组依然保持从小到大的顺序
insert(int i,int n,int a[])
{int k;
k=n-1;
while((k>0)&&_________)
{a[k]=a[k-1];
k=k-1;
}
a[k]=__________;
}
12、Fibonacci数列的前几项是:
1,1,2,3,5,8......编程输出该数列的前13项。
每行输出5个数
#include
#define N 13
main()
{int i,f1,f2,f3,n;
f1=1;f2=1;
printf("\n%d %d ",f1,f2);
n=2;
for(i=1;i<=_________;i++)
{if(__________)printf("\n");
f3=f1+f2;
printf("%d ",f3);n++;
__________;f2=f3;
}
}
12、以下程序的功能是计算s=∑k!
(k从0到n)
long f(int n)
{int i;long s;
s=___________;
for(i=1;i<=n;i++)s=__________;
return s;
}
main()
{long s;int k,n;
scanf("%d",&n);
s=0;
for(k=0;k<=n;k++) s=s+___________;
printf("%ld\n",s);
}
11、输入一个字符。
判别它是否小写字母,如果是,将其转换为大写,否则不转换。
然后输出最后得到的字符。
main()
{ _________ ch;
scanf("%c",&ch);
ch = (ch >= 'a' && ch <= 'z')?
(ch-32):
__________;
printf("%c",ch);
}
12、编写一个程序,打印学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num、name、score[3](三门课的成绩)
#define N 5
struct student
{char num[6];
char name[8];
int score[4];
}__________;
main()
{int i,j;
for(i=0;i{scanf("%s%s",________);
for(j=0;j<3;j++)
scanf("%d",_________);
}
for(i=0;i {printf("%8s%10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%7d",stu[i].score[j]);
printf("\n");
}
}
11、以下程序的功能是:
从键盘输入一年份数据,判断此年份是否为闰年。
其中判断闰年的条件是:
能被4整除但不能被100整除,或能被400整除。
#include
main()
{int x,y,i;
scanf("%d",&x);
if (x%400==0)i=1;
else if _________ i=1;
else ___________;
if (i==1) printf("This year is a leap year");
if (i==0) printf ("This year is not a leap year");
}
11、函数fun的功能是:
使一个字符串按逆序存放
void fun (char str[])
{char m;int i,j;
for(i=0,j=strlen(str);__________;i++,j--)
{m=str[i];
str[i]= ___________;
str[j-1]=m;
}
printf("%s\n",str);
}
12、函数 xtoi 的功能是将放在字符串中的十六进制数(可以出现'0'~'9'、'a'~'f)转换成十进制整数。
例如:
调用 xtoi("1f") 将返回31。
xtoi(________)
{ int k, d=0;
for(k=0; s[k] ==' '||s[k] == '\t'; k++);
while(s[k] >= '0' && s[k] <= '9' || s[k] >='a' && s[k] <= 'f' ){
if (s[k] >= '0' && s[k] <= '9')
d = d * 16 + s[k] - __________;
if (s[k] >= 'a' && s[k] <= 'f')
d = d * 16 + s[k] - _____________;
k++;
}
return d;
}
11、验证哥德巴赫猜想:
任何一个大于6的偶数均可表示为两个素数之和。
要求将6~100之间的偶数都表示成两个素数之和。
素数指只能被1和自身整除的正整数,1不是素数2是素数。
#include
int prime(int n)
{int k;
for (k=2; k<=n/2; k++)
if (n%k==0) return 0;
return ___________;
}
void main()
{int i, k;
for (i=6; i<=100; i+=2)
for (k=2; k<=i/2; k++)
if (___________) {
printf("%d = %d + %d\n", i, k, i-k);
break;
}
}
12、先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出对角线元素之和
#include
int fun()
{int a[3][3],sum;
int i,j;
sum=__________;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
scanf("%d",___________);
}
for(i=0;i<3;i++)
sum=sum+__________;
printf("sum=%d\n",sum);}
main()
{fun();}