C语言程序设计实验(5-7) 下载本文

printf(\

3. 求Sn=a+aa+aaa+…+aa…a 之值,其中a是一个数字。例如:2+22+222+2222+22222(此时

n=5), n由键盘输入。 #include int main (){ int Sn=0,n,sum=0; int a=2; printf(\ scanf(\ for(int i = 0;i

4. 有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前20项之和。

#include

int main (){

float sum=0,c,a=2,b=1; for(int i = 0;i<20;i++){ }

printf(\}

sum=sum+a/b; c=a;a=b+c;b=c;

四、思考题

1. 猜数游戏。玩游戏者输入一个数,提示此数是太大、太小或猜中,重新输入数据直到猜

中为止。(提示:在程序中设置一个整数,此数即是玩游戏者要猜的数)

这题群里面有EXE文件可以去看看,然后要代码的话,请自己写一下,不行再问。还有APP提供玩耍。 2. 百钱买百鸡问题。公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡

有几种解法。

提示:设x,y,z为三种鸡的只数,按题目写出代数方程为:

x+y+z=100 5x+3y+z/3=100

用穷举法列举出x、y、z的值 能懂就懂,不懂就不看了。 #include int main (){ int x,y,z; for(x = 1;x<=20;x++) for(y = 1;y<=33;y++) for(z = 1;z<=100;z++)

if(x+y+z==100 & x*5+3*y+z/3==100) printf(\

这是结果输出,后面最后一个是小鸡的,但是很明显,小鸡的个数要能整

除3,所以,再怎么改,请自己操作。TIP:就只需要在一个地方加一个条件。

实验6

1. 以下程序段将输出computer,请填空。 #include “stdio.h” main() { int i,j=0;

char c[]=”it’s a computer”; for(i=0; ① ;i++) ①→i<8 { ② ; ②→j=i+7 printf(“%c”,c[j]); }}

2. 以下程序的功能是求数组num中小于零的数据之和,程序中存在错误,请上机调试并

改正。

#include “stdio.h” main()

{ int num[20]; int sum,i;

for(i=0;i<=19;i++)

scanf(“%d”,&num[i]); for(i=0;i<=19;i++); 这个引号去掉程序就对了。WHY?自己去想。 if(num[i]<0) sum+=num[i]; printf(“sum=m”,sum);}

3. 调试程序。下面程序完成用气泡法对10个整型数排序(从小到大),其中带*行有错,

请调试修正。

#include main() { int a[10]; int i,j,t; printf(“intput 10 numbers:\\n”);

for (i=0;i<10;i++) * scanf(“%d”,i,a[i]);

printf(“\\n”); * for(j=1;j<10;j++)

*for(i=j+1;i<10;i++)

if(a[i]

printf(“the sorted numbers:\\n”); * for(i=1;i<11;i++) * printf(“%d”,& a[i]);

}

第一个*:scanf(\第二个*:for(j=1;j<=10;j++) 第三个*:for(i=0;i<10-j;i++) 第四个*:for(i=0;i<10;i++) 第五个*:printf(\别问我原因。

4. 已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中

#include int main(){

int a[10]={2,3,5,9,11,13,17,20,23}; int n,i = 0;

printf(\scanf(\//先比较 找到位置 while(a[i]

//将位置向后面移动 for(int k = 0;k<10-i;k++){ a[9-k]=a[8-k];

} a[i]=n;

for(int j = 0;j<10;j++) printf(\j]); }

5. 编一程序,将两个字符串连接起来,不要用strcat函数

#include int main(){ char a[100]; char b[50]; gets(a); gets(b); int i = 0;

while(a[i]!='\\0') i++;

for(int j = 0; b[j]!='\\0';j++){a[i]=b[j];i++;} puts(a);}

6. 求一个3×3矩阵对角线元素之和。

#include

/*求一个3×3矩阵对角线元素之和。*/ int main(){ int a[3][3]; int i,j;

printf(\for(i = 0;i<3;i++) for(j = 0;j<3;j++) scanf(\int sum=0;

sum=a[0][0]+a[1][1]+a[2][2];//只有一条对角线。。。 for(i = 0;i<3;i++){ for(j = 0;j<3;j++){