c程序设计实验参考答案 下载本文

内容发布更新时间 : 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 第1行应改为char a[10],b[10],ch; 第8-10行改为: if(c>d) { for(k=0;k

{ 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;