2、int i,x1,x2,x; x1=x2=1; printf("%6d%6d",x1,x2); /*Line5:输出前2项*/for(i=3;i<=20; i++){ﻩx=x1+x2; printf("%6d",x);/*Line8*/if(i==10 )printf("");ﻩﻩ/*每行输出10项*/x1=x2 ;x2=x; }}编译、连接并运行该程序,则显示思考:line5和line8行中printf()函数的格式控制符均为“%6d”, 假如均改为“%d”,输出结果有何不同?答:所有数字都紧挨在一起,
3、而不是单个显示。也就是说输出的是两行长串的数字,而不是一个数列。源程序2:用while语句实现个人收集整理勿做商业用途#include<stdio.h>intmain(){ inti,x1,x2,x;x1=x2=1;printf("%6d%6d",x1,x2); /*输出前2项*/i=3 ; while(i<=20){ﻩx=x1+x2; printf("%6d",x);if( i%10==0) printf("n");ﻩﻩ/*每行输出10项*/x1=x2;x2=x; i++;} }源程序3:用do-while
4、语句实现 #include<stdio.h>intmain(){ inti,x1,x2,x; x1=x2=1;printf("%6d%6d",x1,x2);/*输出前2项*/i=3;do{x=x1+x2; printf("%6d",x);if(i%10==0)printf("");ﻩ/*每行输出10项*/ﻩx1=x2;ﻩx2=x;i++ ; }while(i<=20);}ﻬ【实验题2】 程序填空,计算e=1+1/1!+1/2!+1/3!+1/4!+…,直到最后一项的绝对值<10-5 (核心问题:学会找规律
5、,写出递推公式,学会类似的多项式计算)【参考代码】(个人收集整理勿做商业用途#include<stdio.h>#include<math.h>voidmain(){ doublesum=1,item=1; int i;for( i=1;fabs(item)>1e-5;i++) { item=item/ i; //递推生成第i项item=1/i! sum=sum+item;//各项累加 }printf("e=%.15f\n",sum);}【附加思考题】以e为底的指数:math.h中有对应的函数ex
6、p(x),直到最后一项的绝对值<10-10ex=1+x1/1!+x2/2!+ x3/3!+x4/4!……+xn/n!个人收集整理勿做商业用途【实验题3】程序填空:输入一个整数,从高位开始逐位分割各位数字,如输入7358,则输出 7358(2007年春笔试真题)【分析】我们已经学习了如何用整除运算和求余运算求出一个整数number的位数、以及从低位到高位的各位数字。本题则是从高位向低位逐步分解各个数位,关键是先求出这个整数是几位数?如果已知number是k位数,那么该整数整除10k-1,就可得到最高位的数字;然后
7、对剩余部分除以10k-2,得到下一个数位上的数字;再对剩余部分除以10k-3,…实例如下:被除数numberﻩﻩk 最高位权重power=10k-1 高位数字number/powerﻩ余数ﻩ7358ﻩﻩ4ﻩ1000ﻩﻩﻩ7ﻩﻩ358ﻩﻩﻩ358ﻩ3100ﻩﻩ3ﻩﻩ58ﻩ58ﻩ2ﻩﻩ10ﻩﻩﻩﻩ5ﻩﻩ8ﻩ 8ﻩﻩ1ﻩ1ﻩﻩﻩﻩﻩ8ﻩ0ﻩ 0-----------结束!源程序如下:#includeintmain(){inti, digit,k,power, t ,number;printf("
8、Enter an integer:"); scanf("%d",&number);//输入整数numberif(number<0)number= -number;//如果number为负数,取其相反数ﻩ//求number的位数:kt=number;ﻩ/*line 7:复制number到t*/k=0;do{ k++;t=t/10 ;}while(t!=0);ﻩ//求最高位的权重:powe