实验七循环结构程序设计(2 级 姓名 指导老师 成绩 第 机房 号机器时间: 实验目的:1 步掌握三种循环语句 2.掌握循环嵌套的执行过程 3.熟练使用循环语句、循环嵌套编写程序 实验要求:每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导 老师检查后,上机运行、调试程序,得出最终正确结果 实验内容 读程序 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。 1.下述程序运行时输入的数据是3.6,24<CR>,写出输出结果 #include <stdio. h> #include <math. h> I float x,y,z scanf(”f,备 /y while (1) if( fabs(z)>1.0 z =x/y else break printf(“fn”,y) 析结果 运行结果
实验七 循环结构程序设计(2) 班级______________姓名___________指导老师_____________成绩___________ 第_____________机房___________号机器 时间:________________________ 实验目的:1. 进一步掌握三种循环语句。 2. 掌握循环嵌套的执行过程。 3. 熟练使用循环语句、循环嵌套编写程序。 实验要求:每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导 老师检查后,上机运行、调试程序,得出最终正确结果。 实 验 内 容 一、读程序 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。 1. 下述程序运行时输入的数据是 3.6,2.4 <CR>,写出输出结果。 #include <stdio.h> #include <math.h> main() { float x,y,z ; scanf ( “ % f , % f “ , & x , & y ) ; z = x / y ; while (1) { if ( fabs(z) > 1.0 ) { x = y ; y = z ; z = x / y ; } else break ; } printf(“%f \n” , y ); } 分析结果 运行结果
第一部分c语言程序设计上机指导 #include <stdio. h> int i,3,k printf("\n") for(i=1;i<=6;i++) for(j=1;j<=20-2*i;j++) intf printf("旨4d",i) printf ("\n") 析结果 3. #include <stdio. h> main( sun m n 4 m=1 for (3 =l ij<=i; j++) sum= sum m printf(”sum=dn 运行结果 #include <stdio. h> main( int k =0 i char C=.A I switch (c++) k +=2 i break
第一部分 C 语言程序设计上机指导 ·33· ·33· 2. #include <stdio.h> main() { int i , j , k ; printf("\n"); for (i=1 ;i <=6 ;i++) { for ( j =1 ; j <= 20-2*i ; j++ ) printf (" "); for ( k =1 ; k <=i ; k++ ) printf("%4d",i ); printf ("\n") ; } } 分析结果 运行结果 3. #include <stdio.h> main( ) { int i , j , sum , m , n = 4 ; sum = 0 ; for (i=1 ;i <= n ;i++) { m=1 ; for ( j =1 ; j <= i; j++) m = m * j ; sum = sum + m ; } printf(“ sum = % d \n” , sum ); } 分析结果 运行结果 4. #include <stdio.h> main( ) { int k =0 ; char c = ‘ A ‘ ; do { switch ( c + + ) { case ‘ A ’ : k + + ; break ; case ‘ B ’ : k - - ; case ‘ C ’ : k +=2 ; break ; case ‘ D ’ : k = k % 2 ; continue ;
C语言程序设计上机指导与同步训练 case k =k*l0 i break i intf("k=暑dn”,k) 分析结果 5.键盘输入(CR表示按 Enter键):6514<CR>,则将下面程序的运行结果填入下 表中。 #include <stdio. h> main( printf ("Enter m, n ") scanf(”tdt各a &m sn while m I= n while( m< n)n-=m m 分析结果 运行结果 、完成程序 要求:根据要求,分析给出的上下语句,填写程序。 1.以下程序的功能是计算1-3+5-7…-99+101的值,请在 上填写正确 内容 #include <stdio. h> main() int i,t=l, s=0 t printf ("d V 2.下面程序的功能是用“辗转相除法”求两个正整数的最大公约数,请在上
·34· C 语言程序设计上机指导与同步训练 ·34· case ‘ E ’ : k = k * 10 ; break ; default : k = k / 3 ; } k++ ; } while ( c < ‘ G ‘ ) ; printf(“k= % d \n“ , k ); } 分析结果 运行结果 5. 键盘输入( CR 表示按 Enter 键):65 14<CR>,则将下面程序的运行结果填入下 表中。 #include <stdio.h> main() { int m , n ; printf (“ Enter m , n ”); scanf( “ %d %d ” , &m , &n ) ; while ( m != n ) { while ( m >n ) m-= n ; while ( m< n ) n-= m ; } printf(“ m = % d \n “ , m ); } 分析结果 运行结果 二、完成程序 要求:根据要求,分析给出的上下语句,填写程序。 1. 以下程序的功能是计算 1 – 3 + 5 – 7… – 99 + 101 的值 ,请在_______上填写正确 内容。 #include <stdio.h> main() { int i,t=1,s=0; for(i=1;i<=101;i+=2) { ____________________ ; s = s + t ; _____________________ ; } printf ("%d \n ", s ) ; } 2. 下面程序的功能是用“辗转相除法”求两个正整数的最大公约数,请在_______上
第一部分c语言程序设计上机指导 35 填写正确内容。 #include <stdio. h> int r, m scanf(" sdsd",&m printf(”d\n 3.以下程序功能是完成用10元人民币换成1角、2角、5角的所有兑换方案,请在 上填写正确内容。 (j=0;j<=50;j++) printf(”影2a影2a暑2d”,i,j,k) L=L+1; 4.以下程序的功能是输出1~100之间每位数的乘积大于每位数的和的数,请在 上填写正确内容。 include <stdio. h> main() for(n=1;n<=100;n++) while( m) m10
第一部分 C 语言程序设计上机指导 ·35· ·35· 填写正确内容。 #include <stdio.h> main() { int r, m , n ; scanf(“ %d %d “ ,&m , &n) ; if (m<n) ___________________________ r = m%n ; while(r) { m = n ; n = r ; r = _____________; } printf( “ % d \n “ , n ); } 3. 以下程序功能是完成用 10 元人民币换成 1 角、2 角、5 角的所有兑换方案,请在 _______上填写正确内容。 # include <stdio.h> main() { int i , j , k , L =1 ; for ( i = 0 ; i<= 20 ;i ++ ) for ( j =0 ; j<= 50 ; j++) { k = ____________________; if ( _____________ ) { printf(“ %2d %2d % 2d ”, i , j , k ); L=L+1; if(L%5==0) printf (“ \n ”); } } } 4. 以下程序的功能是输出 1~100 之间每位数的乘积大于每位数的和的数,请在 _______上填写正确内容。 # include <stdio.h> main() { int n , k = 1 ,s = 0 , m; for ( n=1 ;n <= 100; n++) { k= 1; s = 0; ________________; while( m) { k * = m%10 ; s += m% 10 ; _______________; } if (k > s) printf(“%d” , n ); } }
C语言程序设计上机指导与同步训练 三、调试程序 要求:分析下列程序是否正确,如有错,错在哪儿?应如何改正?如正确,运行结果 如何?上机调试之。 1.以下程序输出1~100的整数数字 main() while( 1 ⊥=i100+1 printf(”暑6d,”,i); if(i号10==0) printf if( i>100) break L运行结果 错误 2.本程序运行后输出以下图形 for(⊥=0;i>=4;i++) for (1=4 i j>=0i 3 printf( "* w) printf(”\n"); 行结果 错误所在 错误 应改为 3.若从键盘输入两个正整数m和n,下面程序实现求其最大公约数和最小公倍数 main() int a, b
·36· C 语言程序设计上机指导与同步训练 ·36· 三、调试程序 要求:分析下列程序是否正确,如有错,错在哪儿?应如何改正?如正确,运行结果 如何?上机调试之。 1. 以下程序输出 1~100 的整数数字。 main() { int i =100; while( 1 ) { i = i%100+1 ; printf( “ %6d ,“ ,i ) ; if ( i%10==0 ) printf ( “ \n ”) ; if ( i>100) break ; } } 运行结果: 正确 错误所在: 错误 应改为: 2. 本程序运行后输出以下图形。 * * * * * * * * * * * * * * * main() {int i, j ; for (i=0 ; i >= 4 ; i ++) { for (j=4 ; j>= 0 ; j --) printf( “* “ ) ; printf(“ \n”); } } 运行结果: 正确 错误所在: 错误 应改为: 3. 若从键盘输入两个正整数 m 和 n ,下面程序实现求其最大公约数和最小公倍数。 main() { int m , n,t; int a,b;