上海交大程序设计(C)_第二次上机实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称:循环结构程序设计和数组的应用

1、程序填空

下面程序的功能为:计算1~100之间的偶数之和,完成以下的程序并运行出正确的结果。# include

void main()

{int i,s=0;

/**************found*************/

i=2 ;

while(i<=100)

{s=s+i;

/**************found**************/

i+=2 ;

}

printf(“s=%d”,s);

}

结果:s=2550

2、程序改错

(1) 下面程序的功能为:计算10!,修改以下的程序并上机运行通过。

#include

void main()

{int n,t;

for(n=1,t=1,t<10,t++);for(n=1,t=1;t<=10;t++)

n=n*t;

printf(“10!=%d\n”,n);

}

结果:10!=3628800

(2) 下面程序的功能为:计算1~100之间能被3和7整除的数之和,修改以下的程序并上机运行通过。

#include

void main()

{int i,s;

s=0;s=0; i=1;

while(i<=100);;

{if(i%3==0||i%7==0){if(i%3==0&&i%7==0)

s+=i;

i=i+1;

}

printf(“s=%d”,s);

}

结果:S=210

3、有一个分数序列:2/1、3/2、5/3、8/5、13/8、……,编写一个C程序,求出这个数列的前30项之和。

解:

#include

void main()

{

int i=1;

double t,x=1,y=2,sum=0;

while(i<=30)

{

sum=sum+y/x;

t=y;

y=y+x;

x=t;

i++;

}

printf("%f\n",sum);

}

结果:

4、编写程序,求1!+2!+3!+…+10!。

解:

#include

int sum = 0;

int CountSum(int value)

{

if(value == 1) return 1;

else

return value * CountSum(value - 1);

}

void main()

{ int i;

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

{ /*累加*/

sum += CountSum(i);

}

printf("%d\n",sum);

}

运行结果:

数组的应用

1.程序填空

(1)下面程序的功能为:输入10个数字到数组中,统计其中正数的个数并求和,完成以下的程序并运行出正确结果。

#include

void main()

{ int i,a[20],sum,count;

sum=0;

count=0;

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

/**************found**************/

scanf(“%d“, &a[i] );

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

if(a[i]>0)

{count++;

/**************found**************/

sum+= a[i] ;

}

printf(“sum=%d,count=%d\n”,sum,count);

}

(2)下面程序的功能为:将3行4列的矩阵转置,如:

A= 128411109765321

A ’= 12

8411

731062951 完成以下的程序并运行出正确结果。

#include

void main()

{int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

int b[4][3],i,j;

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

/**************found**************/

for( j=0;j<=3;j++ )

/**************found**************/

b[j][i]=a[i][j] ;

printf(“array b:\n “);

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

{for(j=0;j<=2;j++)

printf(“%4d”,b [i][j]);

printf(“\n”);

}

}

2. 程序改错

(l) 阅读下面的程序,修改以下程序中的错误并上机运行。

#include

void main()

{int a[5],n;

for(n=0;n<=5;n++) for(n=0;n<=4;n++)

scanf(“%d”,&a); scanf(“%d”,&a[n]);

for(n=0;n<=5;n++) for(n=0;n<=4;n++)

printf(“%5d”,a[n]);

}

(2) 下面程序的功能为:有一个3×4的矩阵,要求输出最大元素的值,以及它的行号和列号,修改以下的程序并上机运行。

#include

void main()

{int max,i,j,r,c; static int a[3][4]={{12,9,-10,28},{31,19,10,-3},

相关文档
最新文档