C语言程序设计实验指导书 - V2.1(5)

2020-03-27 19:24

编程提示:先定义一个字符型的变量(如c),再定义4个整型变量作为计数器,作为

计数器的变量要先赋初值0。在循环中每次从键盘上读入一个字符,在循环体中对读入的字符进行判断,相应的计数器加1,当读入的字符为’\\n’时结束。

编程中可使用如下的循环结构: while((c=getchar())!=’\\n’)) { if(??) ??; else if(??) ??; ??; else ??; }

/* c4-5.c 统计字符串中指定字符的个数 */ #include \ void main( ) { }

注意: 1.while( (c=getchar( ))!=’\\n’) )中括号的使用,第二层的小括号不能省略,想一想为什么?

2.字符常量’0’与数值常量0是不同的。

(六)下面程序的功能是:计算1到100之间的奇数之和及偶数之和,并输出。请在程序中的横线上填入适当的内容,将程序补充完整并运行。

/* c4-6.c 计算1到100之间的奇数之和及偶数之和 */ #include \ void main( ) { int a,b,c,i;

_____________; /*变量初始化*/ for(i=0; i<=100; i+=2)

{ a+=i; /*变量a存放偶数的和*/ ____________;

c+=b; /*变量c存放奇数的和*/ }

printf(\

printf(\ }

(七)编程打印出所有的“水仙花数”,所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。如153=1+3+5。

3

3

3

编程提示:定义一个变量作为循环变量,再定义3个变量分别存放三位数的每位数字,

在循环体中将一个三位数拆分成个位、十位、百位后判断循环变量的值是否为水仙花数,如果是则输出,否则不输出。程序的基本结构为: /* c4-7.c 打印出所有的“水仙花数” */ #include \ void main( )

18

{ 定义4个整型变量;

for( j=100; j<=999; j++ )

{ a=j/100; /*分离出百位数*/ b=j/10-a*10; /*分离出十位数*/ c=___________; /*分离出个位数*/ if(j==a*a*a+b*b*b+c*c*c) 输出j ; }

printf(\ }

(八)以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请将程序补充完整。

/* c4-8.c 求最大值最小值程序 */ #include \ void main( )

{ float x,amax,amin; scanf(\ amax=x; amin=x;

while ( _______________ ) { if (x>amax) amax=x;

if ( _______________ ) amin=x; scanf(\ }

printf(\ }

(九)求两个正整数[m,n]之间所有既不能被3整除也不能被7整除的整数之和。

编程提示:定义两个变量m,n和t,再定义一个循环变量和结果变量s,从键盘输入m

和n的值,判断两个变量的值,如果m>n,则交换两个变量。然后用循环依次判断m和n之间的每一个数,在循环体中通过条件语句来判断这个数是否既不能被3整除也不能被7整除,如果满足条件,累加求和,如果不满足,则继续循环。

程序的基本结构如下:

/* c4-9.c 按条件求数列和 */ #include \ void main( ) { 定义变量; 变量赋初值; 输入m,n的值; if( m>n )

m和n交换;

for ( _______________ ) if ( i%3 != 0 && i%7 != 0 ) 变量 s 累加求和 ;

printf(\ }

(十)下面程序的功能是:计算正整数num的各位上的数字之和。例如,若输入:252,则输出应该是:9;若输入:202,则输出应该是:4。请将程序补充完整。

19

/* c4-10.c 求整数各位数字和 */ #include \ void main( ) { int num,k;

_______________; /* k赋初值 */ printf(\ scanf(\ do

{ k=_______________ ; /* 取最低位并累加 */

num/=10; /* 去掉最低位 */ } while(num) ;

printf(\ }

五、实验注意事项

(一)while,do-while,for语句中应有使循环趋向于结束的语句,否则就可能构成死循环。

(二)while,do-while语句什么情况下的运行结果是相同的,什么情况下不同。 (三)注意在循环结构程序设计中,正确使用{ }构成复合语句。

六、思考题

(一)求两个正整数x和y的最大公约数,请填空。 /* 求最大公约数程序 */ #include \ void main( ) { int x,y,t,i;

printf(\请输入两个数: \

scanf(\ /*注意scanf语句中间用“,”隔开*/ if (x > y) {t = x; x = y; y = t;} for( _______________ ) { if( x%i==0 && y%i==0 ) break; }

printf(\最大公约数是 : %d\\n\ }

(二)计算1到100之间的奇数之和及偶数之和。请填空。 /* 计算1到100之间的奇数之和及偶数之和 */ #include \ void main( ) { int a,b,c,i;

a=0, c=0; /* 变量赋初值 */ for(i=0;i<=100;i+=2)

{ a+=i; /* 变量a存放偶数的和 */ _______________ ;

c+=b; /* 变量c存放奇数的和 */ }

printf(\

printf(\ }

20

(三)下面程序的功能是:计算正整数num的各位上的数字之和。例如,若输入:252,则输出应该是:9;若输入:202,则输出应该是:4。请将程序补充完整。

/* 计算整数各位数字和 */ #include \ void main( ) { int num,k=0;

printf(\请输入一个整数: \ scanf(\ do

{ k=____________ ; num/=10; } while(num) ;

printf(\ }

(四)求两个正整数[m,n]之间所有既不能被3整除也不能被7整除的整数之和。请填空。

/* 按条件求数列和 */ #include \ void main( ) { int m,n,i,t; long int s=0;

scanf(\ if( m>n )

{ t=m; m=n; n=t;}

for ( _______________ ) if ( i%3 != 0 && i%7 != 0 ) s += i;

printf(\ }

21

实验五 循环结构程序设计(二)

一、实验学时

2学时

二、实验目的

(一)掌握使用for,while,do-while语句实现循环嵌套的方法; (二)巩固break和continue语句的使用。

三、预习内容

预习教材中有关用for,while,do-while语句实现循环嵌套的方法以及循环嵌套的执行过程。

四、实验内容

(一)根据公式:sum=1?111????,计算sum的值。 2!3!n!注意:根据题目,考虑所定义的各个变量应该为何种类型。

编程提示:定义一个变量存放最后的求和结果(假设为sum),sum的数据类型应为实型,

定义变量t计算整数的阶乘。使用双重循环,程序的基本结构为:

for(i=1,sum=0; i<=20; i++) { t赋初值1 ;

for( j=1; j<=i; j++ ) 变量t连乘求积; 变量sum累加t的倒数; }

注意上述程序结构和内循环变量的终值。想一想是否可以将t=1放在外循环之前? /* c5-1.c 求数列和 */ #include \ void main( ) { }

(二)编程输出九九乘法表。

编程提示:我们日常看到的乘法表是:

1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 ?

22


C语言程序设计实验指导书 - V2.1(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:集团投资发展部工作思路

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: