[从业资格考试]C课件二.ppt

上传人:sccc 文档编号:4604037 上传时间:2023-04-30 格式:PPT 页数:44 大小:435KB
返回 下载 相关 举报
[从业资格考试]C课件二.ppt_第1页
第1页 / 共44页
[从业资格考试]C课件二.ppt_第2页
第2页 / 共44页
[从业资格考试]C课件二.ppt_第3页
第3页 / 共44页
[从业资格考试]C课件二.ppt_第4页
第4页 / 共44页
[从业资格考试]C课件二.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《[从业资格考试]C课件二.ppt》由会员分享,可在线阅读,更多相关《[从业资格考试]C课件二.ppt(44页珍藏版)》请在三一办公上搜索。

1、问题:从键盘读入一个整数,反序输出其各个位数,比如输入123,输出321。算法:(三位数)int main()int a;cina;couta%10;a=a/10;/输出个位数 couta%10;a=a/10;/输出十位数 couta%10;a=a/10;/输出百位数 return 0;,热身,算法:(三位数)int main()int a;cina;while(a!=0)couta%10;a=a/10;/输出当前a的个位数 return 0;,(任意位数),继续,int main()int n,a,b,c;coutn;a=n/100;n=n%100;/取百位数 b=n/10;n=n%10;/

2、取十位数 c=n/1;n=n%1;/取个位数 if(a*a*a+b*b*b+c*c*c=n)cout“是水仙花数”endl;else cout“不是水仙花数”endl;return 0;,热身(赋值表达式改变变量的值),int n,a,b,c,d;,d=n;,d,C+程序设计,第3章 程序设计初步,课堂教学材料,基本内容:1、顺序结构2、关系表达式与选择结构3、循环控制结构重点:选择结构和循环结构,程序设计初步,1、C+程序和语句)C+源程序基本组成预编译命令声明或定义 函数#includeusing namespace std;int main()函数体;/由一系列语句组成)声明语句(告诉编

3、译程序一些基本信息)int a,b,c;/变量类型声明 int max(int x,int y);/函数声明,1、顺序结构,)执行语句通知计算机执行一定操作。(1)控制语句(选择和循环控制)(2)输入输出语句cina;coutb;(3)表达式语句c=a+b;c+a/3;(4)空语句;(5)复合语句 c=a+b;c+a/3;/多个语句当做一个语句来看(使用),1、顺序结构,4)顺序结构(示例)int main()int n,a,b,c;coutn;a=n/100;n=n%100;/取百位数 b=n/10;n=n%10;/取十位数 c=n/1;n=n%1;/取个位数 cout各个位数的平方和为 a

4、*a+b*b+c*c;return 0;特点:每个语句依次被执行到。,问题:一个数成为同构数,如果它的平方的尾数为自己。比如:5是同构数,因为55=25 又6是同构数,因为 66=36。编写一个程序,从键盘读入一个1位数,判定它是否是同构数。int main()int a,b;couta;b=a*a;couta;if(b%10-a!=0)cout不;cout是同构数;return 0;,1)布尔型数据 bool 空间=1字节 两个值 真true 假false 解决条件是否成立的判定问题2)C+关系运算符 恒等=不等!=大于 小于=小于等于=3)C+逻辑运算符 与&或|非!,2、选择结构,4)c

5、+允许数值数据自动转换为逻辑数据使用,非零数值转换成真,零值转换成假。比如:bool b1,b2;b1=0.1;b2=-0.001;couta;b=a*a;couta;if(b%10-a!=0)cout“不”;cout“是同构数”;return 0;,2、选择结构,if(b%10-a)cout“不”;,int main()int n,a,b,c,d;coutn;d=n;a=n/100;n=n%100;/取百位数 b=n/10;n=n%10;/取十位数 c=n/1;n=n%1;/取个位数 if(d=a*a*a+b*b*b+c*c*c)cout“是水仙花数”endl;else cout“不是水仙花

6、数”endl;return 0;,C+条件语句,1)形式if(表达式1)语句;else 语句2;(1)表示可有可无(2)执行过程:如果表达式1为真,执行语句1 否则,执行语句2,2)更一般的形式if(表达式1)语句;else if(表达式2)语句2;else 语句n;3)嵌套选择 int a;cina;if(a=0)if(a0)cout“输入的是正数”;else cout“输入的是零”;else cout“输入的是负数”;,条件语句自身是一个语句,C+条件语句,if(a0)cout“输入的是正数”;else if(a=0)cout“输入的是零”;else cout“输入的是负数”;,C+条件语

7、句,编写一个C+程序,从键盘读入两个整数,显示两数中较大的那个数。int main()int a,b;cinab;if(ab)couta;else coutb;return 0;,问题:编写一个程序,从键盘读入一个3位数数,判定它是否被9整除。int main()int n,a,b,c;coutn;coutn;a=n/100;n=n%100;/取百位数 b=n/10;n=n%10;/取十位数 c=n/1;n=n%1;/取个位数 if(a+b+c)%9!=0)cout不;cout能被9整除。;return 0;,if(n%9!=0)cout不;cout能被9整除。;return 0;,5)C+条

8、件语句的特点(1)表示条件的关系表达式放在括号内If(条件)语句;(2)条件语句使得程序中的语句不是全部被执行到,既有选择的执行语句。If(条件)语句1;else 语句2;(3)条件语句中的语句如果很多,必须用,使它们变成一个复合语句。If(a0)b=a;a=a+1;c+;,问题:编写一个程序,从键盘输入17,输出星期一星期日。int main()int a;cina;cout“星期”;if(a=1)cout“一”;else if(a=2)cout“二”;else if(a=3)cout“三”;else cout“日”;return 0;,分支选择结构和switch语句1)形式switch(整

9、数值表达式)case 值1:语句1;break;case 值2:语句2;break;.case 值n:语句n;break;default:语句n+1;,2)要求 表达式的值为整数(相当于)3)执行根据表达式的值,执行相应的值:后的语句直到遇到break;语句(case 值i:不是语句,只是指示开始执行一段代码的起始入口点)课堂练习1:应用分支选择结构,根据键盘输入的月份的值,输出该月份相对应的季节。,算法:1)输入月份2)使用开关选择语句,根据月份的值,输出季节既 11,12,1冬季;2,3,4春季;5,6,7夏季;8,9,10秋季,作业:P85 10,11问题:从键盘读入一个整数,反序输出其

10、各个位数,比如输入123,输出321。分析:1)如何求出个位数并显示2)如何求出十位数并显示3)如何继续上面做法求相应的位数并显示4)如何停止,问题:求和 s=1+2+3+4。解法分析:1)语句 s=1+2+3+4;2)s=0;s=s+1;s=s+2;s=s+3;s=s+4;,3)s=0;i=1;s=s+i;i+;s=s+i;i+;s=s+i;i+;s=s+i;i+;,4)s=0;i=1;while(i=4)s=s+i;i+;,5)s=0;i=1;while(i=4)s+=i+;,循环结构和循环语句1)while 循环(1)形式while(条件)语句;示例:int i,s=0;i=1;whil

11、e(i=100)s=s+i;i+;(2)与条件语句的区别 if(条件)语句;表示如果条件为真就执行一次语句 while(条件)语句;表示只要条件为真就反复执行语句,直到 条件为假。,条件,语句,真,假,2)for循环 for(变量初值;条件;变量增量)语句;示例:i=1;while(i=100)s=s+i;i+;for(i=1;i=100;i+)s=s+i;(1)表示先执行语句i=1,然后判定条件(2)如果条件为真,执行s=s+i;(3)执行语句i+,回到(2)(4)如果条件为假,退出循环。,问题:从键盘读入一个整数,显示该整数是几位数。分析问题:1)从键盘读cina;2)计算位数:如果a是一

12、位数,则a/10=0 如果a是两位数,则a/100=0 如果a是三位数,则a/1000=0int i;i=0;while(a!=0)i+;a=a/10;3)显示couti;int i;for(i=0;a!=0;i+)a=a/10;,3)for循环变形 int s=0,i;for(i=0;i=100;i+)s+=i;int s=0,i=0;for(;i=100;i+)s+=i;int s=0,i=0;for(;i=100;)s+=i;i+;int s=0,i=0;while(i=100)s+=i;i+;作业:86页 15,18,素数(除1和自身没有其他因数)问题(1)判断一个数是否素数 从键盘读

13、入一个整数,显示是素数或不是。算法:(1)从键盘输入一个整数放入n;(2)用2n-1去除它(3)如果除尽,不是素数,否则素数(2)打印一个范围内的所有素数 从键盘读入一个整数,显示所有小于等于该数的素数,问题1:从键盘读一整数,判定是否素数int main()int i,a;bool pd;cina;pd=true;for(i=2;ia;i+)if(a%i=0)pd=false;if(pd)couta是素数;return 0;,问题2:显示2100以内的所有素数int main()int i,a;bool pd;for(a=2;a=100;a+)pd=true;for(i=2;ia;i+)if

14、(a%i=0)pd=false;if(pd)couta,;return 0;,4)break;作用:从循环中强制退出循环。int i,s=0;for(i=1;i=10;i+)if(i=5)break;s=s+i;5)continue;作用:强制进入下一个循环。int i,s=0;for(i=1;i=10;i+)if(i=5)continue;s=s+i;,问题3:的计算(arctg(x)的级数展开,x取值1)/4=1-1/3+1/5-1/7+1/9-=(-1)0/(2*0+1)+(-1)1/(2*1+1)+(-1)2/(2*2+1)+(-1)3/(2*3+1)+(-1)i/(2*i+1)+直到

15、最后一项的绝对值为10-7为止。符号正好是+-+-+-,即每次都反号。int i;double s=0,t=1.0;for(i=0;1.0/(2*i+1)=1e-7;i+)s=s+t/(2*i+1);t=-t;,完整代码:#includeusing namespace std;int main()int i;double s=0,t=1.0;for(i=0;1.0/(2*i+1)=1e-7;i+)s=s+t/(2*i+1);t=-t;cout的近似值为:4*sendl;return 0;,问题4:猴子吃桃问题:书86页22题。第一天吃前:x0个桃子 吃后:x1=x0/2-1个桃子 第二天吃前:

16、x1个桃子 吃后:x2=x1/2-1个桃子 第三天吃前:x2个桃子 吃后:x3=x2/2-1个桃子 第四天吃前:x3个桃子 吃后:x4=x3/2-1个桃子 第五天吃前:x4个桃子(1个桃子),反向分析:第五天吃前:x4个桃子(1个桃子)第四天吃后:x4个桃子 第四天吃前 x3=2*(x4+1)个桃子 第三天吃后:x3个桃子 第三天吃前 x2=2*(x3+1)个桃子 第二天吃后:x2个桃子 第二天吃前 x1=2*(x2+1)个桃子 第一天吃后:x1个桃子 第一天吃前 x0=2*(x1+1)个桃子,不管下标:int i,x;第五天吃前:x个桃子(1个桃子)第四天吃后:x个桃子 第四天吃前 x=2*

17、(x+1)个桃子 第三天吃后:x个桃子 第三天吃前 x=2*(x+1)个桃子 第二天吃后:x个桃子 第二天吃前 x=2*(x+1)个桃子 第一天吃后:x个桃子 第一天吃前 x=2*(x+1)个桃子 int i,x=1;for(i=4;i0;i-)x=2*(x+1);,代码:#includeusing namespace std;int main()int i,x=1;for(i=9;i0;i-)x=2*(x+1);cout“第一天有桃子”x个;return 0;,问题4:设计一个程序,从键盘读入一个正数,输出它的平方根。分析:假设x是a的平方根 就有 x*x=a;既 2*x*x=x*x+a;也

18、就是 x=(x+a/x)/2;现在假设 y=1;x=y;y=(x+a/x)/2;,既给y一个初值,通过联立的公式,可以反复计算(x,y)。现在如果计算到某一步时,xy;会发生什么情况呢?xy=(x+a/x)/2;x(x+a/x)/2;x*xa;x是a的平方根的近似值。,思路总结:要求计算a的平方根x*x=a;化成 2*x*x=x*x+a;x=(x+a/x)/2;随便一个初值y=1x=y;有右边的计算公式 y=(x+a/x)/2;如果计算到某步,有yx就可以得到x(x+a/x)/2;最后算出a的近似平方根,现在的问题是如何判定 xy;通常我们用 x-y 的大小来判定它们的近似程度。比如:它们的绝

19、对值小于10-7,表示xy或者等价地(x-y)*(x-y)=1e-14)x=y;y=(x+z/x)/2;return x;,int main()double a;cina;double sroot(double z);cout=1.0e-14)x=y;y=(x+z/x)/2;return x;,在来看程序运行的效果,也就是说,我们要用一批数据,去测试程序的正确程度,既平方根的近似程度。用1,4,81,121,144,625 测试平方数的平方根用2,3,5,7,122,146,629 测试非平方数的平方根在来看程序的初值 x=0 y=1 改为 x=1 y=10 或改为 x=10 y=100,结果很好,结果不依赖初值,这种设定一个初值,经过反复计算就可以求得问题的近似解的方法称为迭代法。迭代法求解问题的要点:是设计一个反复计算的式子,找到近似解的判定条件。,作业:用迭代法,从键盘读入一个正数,显示它的立方根。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号