C语言第五六次作业
- 格式:ppt
- 大小:104.00 KB
- 文档页数:40


1 C语言循环结构作业
一、 实验目的:
1、 熟悉掌握三种循环结构,while语句、do-while语句和for语句。
2、 掌握在程序设计中用循环的方法实现一些常用算法。
3、 进一步学习调试程序。
二、 实验内容:(请写出程序代码及调试结果)
1.求Sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/(2n))其中n的值由键盘获得。
2.求S=aa….a -… -aaa - aa - a的值,其中a=3,n=6。
例如:22222-2222-222-22-2(例如:a=2,n=5)
3.根据以下公式求∏的值(要求满足精度0.0005,即某项小于0.0005时停止迭代)∏/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+(1*2*3*4)/(3*5*7*9)+„+(1*2*3*4*„*n)/(3*5*7*9*„*(2n+1))程序运行后,如果输入精度0.0005,则程序输出为3.140578
4.输出1至100之间每位数的乘积大于每位数的和的数
5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,因此6是“完数”。编程序找出1000之内的所有完数及这些完数之和,并按下面格式输出因子:6的因子是1,2,3 …… 完数和是…。
6. 有一数列: n个a 2 2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和。
7. 大于m且紧靠m的k个素数打印出来。
例如,若输入m=17, k=5 ,则应输出“19,23,29,31,37”。
8、求1!+2!+3!+4!+„+10!
9、猴子吃桃子问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。
第5次作业:
1. 求串 ‘ababaaababaa’ 的next函数值。
2.下列程序判断字符串s 是否对称,对称则返回1,否则返回0;如 f("abba")返回1,f("abab")返回0;
int f((1)________)
{
int i=0,j=0;
while (s[j])(2)________;
for(j--; i return((3)_______) } 3.在字符串模式匹配的KMP算法中,求模式的next数组值的定义如下: next[j]= 请问: (1)当j=1时,为什么要取next[1]=0? (2)为什么要取max{K},K最大是多少? (3)其它情况是什么情况,为什么取next[j]=1?
第五题
#include
int main ()
{
int a[10][10],i,j,n;
printf("Input n:");
scanf("%d",&n);
printf("* ");
for(j=1;j<=n;j++)
{
a[0][j]=j;
printf("%d ",a[0][j]);
}
printf("\n");
for(i=1;i<=n;i++)
{
a[i][0]=i;
printf("%d ",a[i][0]);
for(j=1;j<=i;j++)
{
a[i][j]=a[i][0]*a[0][j];
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
第二题
#include
int main(void)
{
int a[12]={31,0,31,30,31,30,31,31,30,31,30,31}; int year,month,day,sum=0,i;
printf("Input year,month,day:");
scanf("%d%d%d",&year,&month,&day);
if(year%4==0&&year%100!=0||year%400==0)
a[1]=29;
else
a[1]=28;
for(i=0;i
sum=sum+a[i];
sum=sum+day;
printf("%d",sum);
return 0;
}
第三题
#include
int main ()
{
int n,i,j,a[6][6],index1,index2,index3,max;
printf("Input n:");
scanf("%d",&n);
printf("Input arry:");
for(i=0;i
第五次实验题目-第七章函数
教学目标3
1.一元二次方程的系数:a、b、c由主函数输入,编写函数求方程的根。
#include
#include
void root(double a, double b, double c)
{ double delta,x1,x2,m,n;
if (fabs(a) <= 1e-6){
if (fabs(b) <= 1e-6)
puts("Not an equation");
else
printf("x=%.2lf",-c/b);
return;
}
else{
delta=b*b - 4*a*c;
m = -b / (2*a);
n = sqrt(fabs(delta)) / (2*a);
x1 = m + n;
x2 = m - n;
if (fabs(delta) <= 1e-6)
printf("x1=%.2lf, x2=%.2lf", x1, x1);
else if (delta < 0)
printf("x1=%.2lf+%.2lfi, x2=%.2lf-%.2lfi",m,n,m,n);
else
printf("x1=%.2lf, x2=%.2lf", x1, x2);
}
}
int main( )
{ double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
root(a,b,c);
return 0;
}
教学目标3
2.输入一串字符,统计其中英文字母的个数,编写统计英文字母个数的函数。
#include
int numberOfLetter(char str[]) {
int i=0;
int num = 0; //统计字母个数