ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:30.92KB ,
资源ID:20486340      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20486340.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中央电大C语言A课程辅导3Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

中央电大C语言A课程辅导3Word格式文档下载.docx

1、 含有if语句的程序举例程序1: #include void main() int x,y; printf(从键盘输入一个整数: scanf(%d,&x); /输入一个整数到x if(x0) y=2*x-1; /当x=0时y的值为7x+4x=%d, y=%dn, x,y); /输出x和y的值 此程序的功能:根据从键盘上输入的x的值计算并输出y的值。计算y的公式为y= 2x-1 (x0) 7x+4 (x0)程序运行时,假定从键盘上输入的是一个整数5,则输出y的值为39,若输入的是一个整数-5,则输出y的值为-11。程序2: int a,b,c,temp;输入三个整数: %d %d %da,&b,

2、&c); /输入3个整数到变量a,b,c中 if(ab) temp=a; a=b; b=temp; /为真交换a和b的值,a大c) temp=a; a=c; c=temp; /为真交换a和c的值,a 最大 if(bmath.h double a,b,c,d,x1,x2;输入一元二次方程的二次项系数、一次项系数和常数项:%Lf %Lf %Lf if(a=0.0) 此方程不是二次方程! exit(1); /中止程序运行 d=b*b-4*a*c; /d作为计算过程中为方便计算而使用的中间变量 if(d0.0) 此方程没有实数根! if(d=0.0) x1=x2=-b/(2*a); /具有相同的实数根

3、 else x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a);此方程的两个根为:%Lf和%Lfn,x1,x2);二、switch开关语句 switch语句的概念在日常生活中,经常会碰到多种选择。如一个单位需要同时为不同级别的人增加各自不同的工资;一个班主任需要根据学生成绩的不同分数段进行不同的成绩评定(评价)。这些都需要根据职工级别和学生成绩进行多种不同的选择和操作。在C语言中就是通过switch语句(开关、分情况)来处理的。 语句格式switch ( ) case : 常量表达式2语句2序列 default:语句n序列 每个case部分称为case子句,其

4、中冒号前面为子句标号,后面为执行语句。每个switch语句中可以包含多个case子句,当然相应的常量表达式的值各不同;default部分称为default子句,每个switch语句中最多包含一条default子句,该子句也可以被省略。 switch语句的执行过程分为以下3步描述。 计算出语句关键字switch后面圆括号内15) printf(输入数据不正确! switch(x) case 10:%c,A); case 11:,B); case 12:,C); case 13:,D); case 14:,E); case 15:,F);,x+48);/48为数字0的ASCII码程序功能:首先设定

5、一个整数变量并为它输入015之间的一个整数,接着通过开关(分情况)语句输出与之对应的十六进制的数字字符。 编程举例根据从键盘上输入的两个整数和一个二目算术运算符求出运算结果。分析 因需要从键盘输入和向屏幕输出,所以要在程序开始包含stdio.h头文件; 因需要从键盘上输入两个整数,所以需要定义两个整数变量来保存它们,假定为x和y,再定义一个字符变量,假定为op,用来保存从键盘输入的一个二目的算术运算符; 定义一个整数变量保存运算结果,假定用标识符z表示,z=x op y; 程序中只需一个主函数,开始定义变量,接着输入数据,再接着利用switch语句按op的值不同进行相应的计算,最后输出结果。根

6、据分析编写程序#includevoid main() int x,y,z; char op;printf(输入两个整数和一个运算符:scanf(%d %d %cx,&y,&op);switch (op) + z=x+y;- z=x-y;* z=x*y;/ z=x/y;% z=x%y; printf(运算符错!exit(1);%d %c %d = %dn,x,op,y,z);程序运行结果 50 8 /50 / 8 = 6三、for循环语句 循环的概念在日常生活中,有许多事情需要重复来做。如财务人员需要给每个人计算工资,虽然对每个人来说只计算一次,但对所有人来说就需要重复计算多次,每次计算的方法(

7、或者所采用的规则)都相同。再如,一个商店每天关门时都需要计算当天销售商品的总金额,可以采用重复计算的方法进行,开始设总额为0,以后每次把一笔销售额累加到总额上,通过重复累加n次,就计算出n笔销售额的总金额。在C语言中设置有专门用来处理循环问题的语句,包括for、while、do等3种循环语句。 for循环语句的格式:for ( ;表达式2表达式3语句 for和后面括号部分称为循环头,后面的语句称为循环体。 for循环语句的执行过程:1. 计算表达式1的值;2. 计算表达式2的值,假定其值为M,若缺省其值为1;3. 若M为逻辑真则执行循环体,否则结束整个for循环语句的执行过程;4. 计算表达式

8、3的值,紧接着自动转向第2步继续执行下一次循环。for循环语句的执行过程的图形表示如教材第3章的图3-3所示。 格式举例(1) for(i=0; i5; i+) printf(%d ,i*i); /0 1 4 9 16 /循环变量i,初值、终值、步长为0、5、1(2) for(j=1,p=1; j5) break;/表达式1、2省略,循环体为复合语句 语句嵌套(1) for(i=1; i+) /i的初、终、步为1、4、1 for(j=1;=i; j+) p+=i*j; /j的初、终、步为1、i、1 /若p=0则p=1*1+2*1+2*2+3*1+3*2+3*3+4*1+4*2+4*3+4*4=

9、65(2) for(i=1;=5; i+) for(j=2;=3; j+) if(x%j=0) break; if(j3) printf(,x); /输出不能被2和3整除的x值 使用for循环的程序举例 int n,x,max,min; /定义变量输入待处理数据的个数: /输入提示n); /输入值赋n for(;n=1):需要从键盘上输入%d个待处理的数据!,n); /第1个数据输入到x中 max=min=x; /把x值同时赋给max和min-n;) /省略表达式1和3 /输入下一个数据到x if(xmax) max=x; /较大的数赋给maxmin) min=x; /较小的数赋给minmax

10、:%d, min:%dn,max,min); /输出最大数和最小数处理结果: 假定需处理6个数据,这6个数据为:48,62,30,24,55,36,则程序运行结果为: 输入待处理数据的个数:6 需要从键盘上输入6个待处理的数据:48 62 30 24 55 36 max:62 min:24 int a,b; for(a=0,b=1; b20; a=a+b,b=a+b) /处理过程%d %d ,a,b); /0 1 1 2 3 5 8 13 %d %dn /21 34 /输出最后结果 此程序的功能是输出一个数列的前若干项,其中第1项为0,第2项为1,以后每一项等于其前两项之和。如第7项为8,它等

11、于第5项3和第6项5之和。 利用for循环编程举例编一程序计算出1+22+42+62+502的值。分析:此题所给的计算公式是一个和式,它除第一项外,其余项为从2至50的每一个偶数的平方,因此可采用循环累加的方法来计算,即依次把每个数据项(在此为偶数的平方)累加到一个变量中。设循环变量为i,它的初值、终值和步长应分别为2、50和2,设用于累加的变量为s,它的初值应为和式中的第一项1,因为它不能够通过有规律的循环累加到s上。在循环体中通过赋值语句每次把i的平方值累加到s上,当循环结束后,s的值就是所求的结果。根据分析编写出程序如下: int i,s=1; for(i=2;i=50;i+=2) s+

12、=i*i;s=%dn,s); 运行结果:s=22101由勾股定理可知,在一个直角三角形中,两条直角边a和b与斜边c的关系为a2+b2=c2,编一程序求出每条直角边均不大于30的所有整数组解。如(3,4,5)、(5,12,13)就是该题的2组解。根据题意,需要使用二重循环来解决,设外循环变量用a表示,它的初值、终值和步长应分别取1、30和1,内循环变量用b表示,它的初值、终值和步长应分别取a+1,30和1。内循环变量的初值若取1,而不是取a+1,则会出现象(3,4,5)和(4,3,5)这样的重复组,为了避免重复组的出现,所以让b从a+1开始,即使第二条直角边大于第一条直角边。 const int

13、 N=30; double c; /存放斜边的值 for(a=1; a=N; a+) for(b=a+1; b+) c=sqrt(a*a+b*b); /sqrt求平方根 if(fabs(c-(int)(c+1e-5)1e-5) /若斜边同为整数则输出(%d, %d, %d)n,a,b,(int)(c+1e-5); /由于c为双精度,可能产生误差,不能用c=(int)c比较四、while循环语句 while ( while ( )称为循环头,后面紧随的称为循环体。while循环和for循环具有类似的功能,都能够通过条件控制循环体重复执行。所不同的表现在循环头的格式上,在for循环头中有3个表达式

14、,通常第1个表达式为循环变量赋初值,第2个为循环控制条件,第3个为改变循环变量的值(增加或减少)。而在while循环头中,只有一个表达式,它给出循环控制条件。 while循环语句的执行过程(1) 计算循环头中表达式的值,假定其值为M;(2) 若M为逻辑值真(非0),则执行循环体,否则结束整个循环的执行;(3) 循环体执行结束后转向第1步继续执行下一次循环。(1) while (x0止,进入循环前x值50) break; /每次循环把i平方值累加到s上,直到s的当前值大于50退出(3) while(i+0) int a,j,k; /定义3个整数变量 a=rand()%190+10; /产生一个1

15、0-199之间的随机整数送a k=(int)(sqrt(a)+1e-5);/求出a的平方根,取整后赋给k for(j=2;=k; j+) /判断a是否能被2-k之间的任一数整除 if(a%j=0) break; if(jk) printf(,a); i-; /条件成立a是素数(质数), /否则a是非素数(合数),输出素数,循环变量减1该程序是一个双重循环,外层为while循环,内层为for循环,每执行一遍外循环体可能显示出一个10至199之间的一个素数。该程序的功能是:随机产生出10个10199之间的素数并显示出来。 使用while循环编程举例编程举例1:编一程序求出满足不等式的最小n值。此题

16、不等式的左边是一个和式,该和式中的数据项个数是未知的,也正是要求出的。对于和式中的每个数据项,对应的通式为,i=1、2、.、n,所以可采用循环累加的方法来计算出它的值。设程序中的循环变量为i,它应从1开始取值,每次增加1,直到和式的值不小于5为止,此时的i值就是所求的n;设累加变量为s,在循环体内应把1/i的值累加到s上。 根据以上分析,采用while循环编写出程序如下: int i=0; double s=0; while(s5) s+=(double)1/+i;n=%dn,i);编程举例2:编写一个程序,采用辗转相除法求出两个整数的最大公约数。设两个整数分别为a和b,a除以b的整余数为r,

17、若r=0,则表明b能被a整除,则b就是它们的最大公约数,否则,令b赋给a,r赋给b,再接着上述过程,直到整余数r为0时止,此时的b的值就是原有两个整数的最大公约数。 根据分析,采用while循环编写出程序如下: int a,b,r;请输入两个正整数: /输入提示信息%d %db); /向a和b输入2个整数 while(a=0 | b=0) printf(重新输入: r=a%b; /求出a除以b的整余数 while(r) /通过辗转相除求出a和b的最大公约数 b=r;,b); /输出最大公约数五、do循环语句do while (表达式); do和while保留字之间的部分为循环体,while保留字后面表达式为循环控制条件。 特点:是先执行循环体后进行循环条件的判断。 执行过程(1) 执行一次循环体语句;(2) 计算表达式的值,若为逻辑真(非0)再继续执行下一次循环体,否则结束整个循环执行过程。do s+=i+; while (s100); /循环体为s+=i+; 循环条件为s100do scanf( s*=x; while (-n); /输入的n各整数累乘到s上 程序举例 #define NM 10 /定义符号常量NM的值为10 void main() int x,n=1,c=0; /定义变量并赋初值

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1