个for循环中的j<=3 改为j<2。
f. 外循环19次,内循环3次。 将第一个for循环中的i<=20 改为i<20.
g. 外循环20次,内循环2次。将第二个for循环中的j<=3 改为j<3。
h. 外循环21次,内循环3次。将第一个for循环中的i<=20 改为i<=2.
4. 实验内容和步骤
(2)为了了解没循环一时循环体中变量的变化,在循环体中插入必要额度输出语句。
插入的输出语句如下 #include
main() {
int i,j;
long sum=0; for(i=1;i<=21;i++) { printf(\ for(j=1;j<=3;j++) printf(\ sum+=(i+1)*(i+1)*(j+2); }
printf(\ }
21
运行结果:
(3)将内外循环的控制表达式兑换,观察程序的执行结果是否有变化,并计算内外循环次数。与对换之前有何变化。
答:对换后 执行次数并没有变化 都是60次,但是sum值由6250 变为了 5808.
(4) 将程序修改如下。 #include
main() {
int i,j,k; long sum=0; for(j=1;j<=3;j++) {
k=j+2; for(i=1;i<=20;i++)
sum+=(i+1)*(i+1)*k; }
printf(\ }
运行结果:入了新参数k。
(5) 将程序修改如下。 #include
main() {
int i,j,m,n; long sum=0; for(j=1;j<=3;j++) {
m=j+2;
程序执行结果变大。执行效率变慢,因为加
22
for(i=1;i<=20;i++) { n=n+1;
sum+=m*m*n; }
printf(\ } }
程序执行结果:执行结果有变化,每一外循环结束后
都会输出一个sum值。 程序执行效率变慢,因为多加入m,n两个参数。 (6) 将步骤(5)中的外循环控制表达式分别做如下修改。
① j=1;j<3;j++
② j=1;j=3;j++ 无限循环。
③ j=1;j>=3;j++ 跳出循环。
④ j=1;j>3;j++ 跳出循环。
⑤ j=1;j<=3;j-- 无限循环
⑥ j=1;j>3;j-- 跳出循环。
23
⑦ j=0;j<=3;j++
⑧ j=0;j<3;j++
⑨ j=1;j<=3;j++
⑩ j=1;j<3;++j
实验11
1..实验目的与要求
(1)掌握函数定义、说明及调用的正确方法。 (2)了解函数调用时参数传递的本质。 2.实验准备
(1)下面是一个用来求2^2+4^2+6^2的程序代码段,请在“。。。。”处填写适当的代码,完善这个程序。要求在主函数中f1()的实参必须使用汗a的表达式。 完善程序如下: #include
int a=0;
printf(\}
long f1(int a,int b,int c) {
return (f2(a)+f2(b)+f2(c)); }
long f2(int x) {
int m;
24
return (m=x*x); }
(2)分析程序,若在主函数中使用下列几种函数,将会产生什么效果?
A、f1(a+++1,a+++2,a+++3) 结果:
B、f1(++a+1,++a+2,++a+3) 结果:
C、f1(a+a++,a+a++,a+a++) 结果;
(3)考虑在何处插入输出语句,可以测试下列内容。 A、参数传递是否正确。 修改程序如下: #include
int a=0;
printf(\}
long f1(int a,int b,int c) {
printf(\ return (f2(a)+f2(b)+f2(c)); }
long f2(int x) { int m;
printf(\
return (m=x*x); }
B、函数返回值是否正确。 程序修改如下: #include
int a=0;
printf(\}
long f1(int a,int b,int c) {
printf(\
25