c语言学习秘密资料

}

printf(\} }

输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。 方法二:用switch语句 分析:

switch语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。 #include\main() {

int g,s; charch;

printf(\scanf(\s=g/10;

if(s<0||s>10)

printf(\else {

switch(s) {case10:

case9:ch='A';break; case8:ch='B';break; case7:ch='C';break; case6:ch='D';break; default:ch='E'; }

printf(\} }

输入测试数据,同方法一一样调试程序并写出结果。 【例3】有一分段函数: y=x x<1 y=2x-1 1==10

用scanf函数输入x的值(分别为x<1,1~10,>=10三种情况),求y值。

分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用If语句。 main() {

intx,y;

printf(\scanf(\if(x<1) { y=x;

printf(\}

elseif(x<10) {

y=2*x-1;

printf(\} Else {

y=3*x-11;

printf(\}

【作业】

1.c语言如何表示\真\与\假\?系统如何判断一个量的\真\与\假\? 2.写出下面各逻辑表达式的值。设a=3,b=4,c=5 (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2

3.有3个整数a、b、c,由键盘输入,输出其中最大的数。 4.有一函数: y=x x<1 y=2x-1 1==10

写一程序,输入x,输出y。

5.给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。 6.给一个不多于5位的正整数,要求: a.求出它是几位数;

b.分别打出每一位数字;

c.按逆序打出各位数字,例如原数为321,应输出123。 7.输入4个整数,要求按由小到大的顺序输出。

实验五 循环结构程序设计 【目的与要求】

熟练掌握while、do-while和for三种循环语句的应用。 【上机内容】 【例1】求5! main() { int n,t; n=1;t=1; while(t<=5) { n=n*t; t=t+1; }

printf(\}

【例2】求和s=1!+2!+3! main()

{ int n,s=0,t=1; for(n=1;n<=3;n++) { t=t*n; s=s+t; }

printf(\}

【例3】求和s=1!+3!+5!

main()

{ int s=0,t,i,j; for(i=1;i<=3;i++) { t=1;

for(j=1;j<=2*i-1;j++) t=t*j; s=s+t; }

printf(\}

【例4】求和s= 3+33+333 main()

{ int s=0,t=3,i; for (i=1;i<=3;i++) { s=s+t; t=10*t+3; }

printf(\

【例5】有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前10项之和。 main() { int n,t,;

float a=2,b=1,s=0; for(n=1;n<=10;n++) { s=s+a/b; t=a; a=a+b; b=t; }

printf(\}

【例6】打印500以内的\水仙花数\。\水仙花数\是一个三位数,其各位数立方和等于该数本身。 main() { int i,j,k,n;

for(n=100;n<=500;n++) { i=n/100; j=n/10-i*10; k=n;

if (n= =i*i*i+j*j*j+k*k*k) printf(\} }

【例7】一个数如果恰好等于它的因子之和,这个数就称为完数。求100之内的所有完数。 main()

联系客服:779662525#qq.com(#替换为@)