内容发布更新时间 : 2024/11/19 16:29:42星期一 下面是文章的全部内容请认真阅读。
day=9; y=1;
while(day>0) { x=(y+1/)2;
y=x; day--; }
printf(“totall=%d\\n”,x); }
实验七 参考答案:
一.1、 1
2 2 3 3 3
4 4 4 4 5 5 5 5 5
2、k=2 3、m=3 二.
1、 for( k = 0;k<=100;k++) 10*k+20*i+50*j==100 2、m=n; m=m/10;
三.1、错误在 7 行应改为:if (i==100)break;
2、错误在 3 行应改为:for(j=1;j<=5;j++) 3、第3行改为for(; i<=20;i++)
第6行改为printf(\(1) 若i>20,j>3,则不循环
若i=20,j>3,则外循环1次,不进入内循环 若i=20,j=3,则内外循环各1次
若i=20,j=2,则外循环1次,内循环2次 若i=19,j=3,则外循环2次,内循环1次 若i=2,j=1,则外循环19次,内循环3次 若i=1,j=2,则外循环20次,内循环2次 若i=0,j=1,则外循环21次,内循环3次 (2)外循环20次,内循环3次
(4) 第3行改为for(i=1; i<=20;i++)
第7行改为sum=sum+(i+1)*(i+1)*k ;
第9行改为printf(\没有变化
四.1、
main()
{ float sn=80,hn=sn/2;
int n;
for(n=2;n<=10;n++) { sn=sn+2*hn; hn=hn/2; }
printf(\}
2、main()
{ int i;
double m=100000,n,s; n=0.01; s=0;
for(i=1;i<=30;i++)
{
s+=n; n=n*2;
}
printf(\ %f\\n\ }
实验八 参考答案: 一.1、s=12345
2、7, 5, 3, 3、<1,2>=6
二.1、% for(j=k;j>0;j--)
2、 a[i]%2==0 a[i]
三.1、 错在第1行应改为: int a [ 4] = { 0 } ;:
2、 错在第2,3,4行应改为: for ( i =1 ; i <=10 ; i + +)
{ scanf ( “%d “, &a[i]) ;
a [0] = a [ 0] + a[ i ] ; }
3、第二行改为int i,n=10,a[10],av=0 ; 第4行改为scanf(\; 第12行改为printf(\;
四.1、 分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。 方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。
源程序如下: #define N 10
#include\main() {
int a[N],i,j,temp;
printf(\ for(i=0;i scanf(\for(i=0;i for(j=0;j if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } printf(\for(i=0;i printf(\ } 方法二:选择排序 首先找出值最小的数,然后把这个数与第一个数交换,这样值最小的数就放到了第一个位置;然后,在从剩下的数中找值最小的, 把它和第二个数互换,使得第二小的数放在第二个位置上。以此类推,直到所有的值从小到大的顺序排列为止。 #include\#define N 10 main() { int a[N],i,j,r,temp; printf(\for(i=0;i scanf(\for(i=0;i for(j=i+1;j if(a[j] r=j; if(r!=i) { temp=a[r]; a[r]=a[i]; a[i]=temp; } } printf(\for(i=0;i printf(\printf(\} 2、#define N 6 main() { int i,j,sum=0; int a[N][N]={0}; printf(\×5 data:\\n\ for(i=1;i { printf(\ for(j=1;j scanf(\ } for(i=1;i printf(\ printf(\ } for(i=1;i for(j=1;j<=i;j++) sum=sum+a[i][j]; printf(\ } 实验九 参考答案: 一. 1、 8, I am student! 2、6 3、CQM 二.1、s[j++]=s[i] 2、strcmp(str,temp)>0 或 strcmp(temp,str)<0 三.1、错误在第1,行应改为:char a[ ]=“C Language Program” ; 错误在第3行应改为:把第三行删掉 2、错误在第4行应改为:for (i=5 ; i>=0 ; i - - ) 3、在main()函数前加#include { ch=a[k];a[k]=b[k];b[k]=ch;} for(k=d;k b[k]=a[k]; b[k]='\\0'; a[d]='\\0'; } 四. 1、#include main() { char s[80],c1,c2=' '; int i=0,num=0; gets(s); while (s[i]!='\\0') { c1=s[i]; if(i==0)c2=' '; else c2=s[i-1]; if(c1!=' '&&c2==' ') num++; i++; } printf(\} 2、#include main() { } char a[80],c; int i=0,n; gets(a); n=strlen(a); for(i=0;i<=n/2;i++) {c=a[i];a[i]=a[n-1-i];a[n-1-i]=c;} puts(a); 实验十 参考答案: 一.1、38 2、3,5,5,3 3、1 二.1、double max(double a,double b); 2、z=z*x; main() { int a,b; scanf(“%d%d”,&a,&b); printf(“%f”,fun(a,b)); } 三. 1、错误在1行应改为:float func ( float a , float b ); 四.void select() { int i,j; for(i=0;i<10;i++) for(j=0;j<10;j++) if(((i*10+j)%3==0)&&(i==5||j==5)) printf(\ } main() {select();} 实验十一 参考答案: 一. 1、wlo 2、k=13 3、22 4、10.0 二. 1、 str[i] i char s[80]; scanf(\ printf(\2、 x x*x*x+1 三. 1、 3行 s[i]&&t[j] 改成 s[i++]&&t[j++] 2、 7行 c = age (n-1)+2 ; 改成 if(n==1) c=10; else c=age(n-1)+2;