您好,欢迎访问三七文档
C++程序设计目录1准备第0课基本常识DEVC++安装卸载第1课第一个C++程序【例1.1】本教程第一个C++程序,输出一行字符:“ThisisaC++program.”。程序如下:解疑:用main代表“主函数”的名字。每一个C++程序都必须有一个main函数。再看程序的第1行“#includeiostream”,这不是C++的语句,而是C++的一个预处理命令,它以“#”开头以与C++语句相区别,行的末尾没有分号。程序的第2行“usingnamespacestd;”的意思是“使用命名空间std”。C++标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要用到C++标准库(此时就需要用#include命令行),就需要用“usingnamespacestd;”作声明,表示要用到命名空间std中的内容。注意输入的两个数据间用一个或多个空格间隔,不能以逗号或其他符号间隔。例1.3:计算正方形的面积和周长例1.3:计算正方形的面积和周长【问题分析】:正方形的面积等于边长乘以边长,周长等于4倍的边长。【算法设计】:正方形的边长用a表示,面积用s表示,周长用c表示,则s=a*a,c=4*a。参考程序:第2课:顺序语句之赋值语句例2.1.1:交换两个变量a、b的值。例2.1.2多个变量的移动第3课:顺序语句之输出流cout例3.1:⑴非格式化输出应用举例例:在屏幕上输出:234【问题分析】:第一行的2和3之间有一个空格,4在第二行起始位置,和上一行的2对齐。⑵格式化应用举例设置输出宽度的函数:setw(宽度值)我们可根据输出格式的要求使用此函数在输出语句中自动定义每个输出项的宽度。例3.2:求出一个三位数每个位上的数字值。【问题分析】:做这个题,需要把这个三位数上的每一位数取出来。【算法设计】:利用“/”和“%”来分离这个三位数,分别得到每一位上的数字。第4课:顺序语句之输入流cin例1:由键盘输入两个双精度数(double)给变量x和y,输出x和y,交换x和y的值后,再输出x和y。常用数据应用普及:整型或长整型(int/longint):4字节(Byte),32位数据范围:-2147483648~2147483647(-231~231-1)单精度实型(float):4字节,32位数据范围:-3.4E-38~3.4E+38有效数字:6~7位双精度实型(double):8字节,64位数据范围:-1.7E308~1.7E+308有效数字:15~16位第5课:顺序语句应用(一)学会了顺序语句的赋值语句、输入流cin和输出流cout,这节课就利用这些语句学会综合编程。例5-1:某幼儿园里,有5个小朋友编号为1,2,3,4,5,他们按自己的编号顺序围坐在一张圆桌旁。他们身上都有若干个糖果(键盘输入),现在他们做一个分糖果游戏。从1号小朋友开始,将自己的糖果均分三份(如果有多余的糖果,则立即吃掉),自己留一份,其余两份分给他的相邻的两个小朋友。接着2号、3号、4号、5号小朋友同样这么做。问一轮后,每个小朋友手上分别有多少糖果。【问题分析】题目中有5位小朋友,他们初始时糖果的数目不确定,用a,b,c,d,e分别存储5个小朋友的糖果数,初始值由键盘输入。例2:编写程序,把输入的分钟换算成小时和分钟表示【问题分析】:1小时等于60分,用分钟数除以60所得商就是小时数,余数就是分钟数。【算法设计】:用x表示输入的分钟,h表示小时,m表示分钟h=x/60;m=x%60.例3:分钱游戏。甲、乙、丙三人共有24元钱,先由甲分钱给乙、丙两人,所分给的数与各人已有数相同;接着由乙分给甲、丙,分法同前;再由丙分钱给甲、乙,分法亦同前。经上述三次分钱之后,每个人的钱数恰好一样多。求原先各人的钱数分别是多少?【问题分析】设甲、乙、丙三人的钱数分别为A,B,C。用倒推(逆序)算法,从最后结果入手,按反相顺序,分步骤推算出每次各人当时的钱数:(在每个步骤中,各人钱数分别存在A、B、C中)练习练习一:编写程序把一个三位整数反转,例如358反转成853。练习二:有三个小朋友甲乙丙。甲有50粒糖果,乙有43粒糖果,丙有13粒糖果。现在他们做一个游戏。从甲开始,将自己的糖分三份,自己留一份,其余两份分别给乙与丙,多余的糖果自己吃掉,然后乙与丙也依次这样做。问最后甲、乙、丙三人各有多少粒糖果?练习三:某车棚存有自行车和三轮车共65辆,它们的轮子数合计为150个,求该棚内存有的自行车和三轮车各是多少辆?第6课:顺序语句应用(二)例1:数学中经典的“鸡兔同笼”问题,已知头共30个,脚共90只,问笼中的鸡和兔各有多少只?【问题分析】设鸡为j只,兔为t只,头为h,脚为f,那么有:j+t=h①2*j+4*t=f②假设笼中30个头全都是兔,那么都按每头4只脚计算,总脚数为(4*h),与实际脚数(f)之差为(4*h-f),如果这个差=0,则笼中全是兔(即鸡为0只);如果这个差值0,说明多计算了脚数,凡是鸡都多计算了两只脚,用它除以2就能得到鸡的只数,算法为:①j=(4*h-f)/2//先用脚数差值除以2算出鸡的只数②t=h-j//再用总头数减鸡数算出免的只数1515例3:歌手大奖赛上6名评委给一位参赛者打分,6个人打分的平均分为9.6分;如果去掉一个最高分,这名参赛者的平均分为9.4分;如果去掉一个最低分,这名参赛者的平均分为9.8分;如果去掉一个最高分和一个最低分,这名参赛者的平均是多少?【问题分析】首先求出6名评委的总分,然后根据去掉最高分的总分和最低分的总分,求出最高分的分值和最低分的分值,最后总分减去最高分和最低分除以4即是答案。//运行结果:9.60第7课:顺序语句之scanf语句和printf语句数据类型之字符型(char)字符常量有以下两种表示法:1、普通表示形式字符常量是由单个字符组成,所有字符采用ASCII编码,ASCII编码共有128个字符(表2-4)。在程序中,通常用一对单引号将单个字符括起来表示一个字符常量。如:'a','A','0'等。如字符A的序号是65,字符a的序号是97,字符0的序号的48。2、转义字符表示形式。转义字符有三种用法:表示控制字符、表示特殊字符、表示所有字符。常用的转义字符如右表所示。1、普通表示形式deL127o111_95O79?63/47~126n110^94N7862.46}125m109]93M77=61-45|124l108\92L7660,44{123k107[91K75;59+43z122j106Z90J74:58*42y121i105Y89I73957)41x120h104X88H72856(40w119g103W87G71755'39v118f102V86F70654&38u117e101U85E69553%37t116d100T84D68452$36s115c99S83C67351#35r114b98R82B66250”34q113a97Q81A65149!33p112`96P80@64048空格32字符序号字符序号字符序号字符序号字符序号字符序号deL127o111_95O79?63/47~126n110^94N7862.46}125m109]93M77=61-45|124l108\92L7660,44{123k107[91K75;59+43z122j106Z90J74:58*42y121i105Y89I73957)41x120h104X88H72856(40w119g103W87G71755'39v118f102V86F70654&38u117e101U85E69553%37t116d100T84D68452$36s115c99S83C67351#35r114b98R82B66250”34q113a97Q81A65149!33p112`96P80@64048空格32字符序号字符序号字符序号字符序号字符序号字符序号转义字符含义'\n'换行'\t'水平制表'\b'退格'\r'回车(不换行)'\0'空字符'\’'单引号'\”'双引号'\\'一个反斜杠字符'\ddd'1~3位八进制数所代表的字符'\xhh'1~2位十六进制数所代表的字符2、转义字符表示形式。一、格式化输入函数scanfscanf函数的功能是格式化输入任意数据列表,其一般调用格式为:scanf(格式控制符,地址列表)【说明】1)地址列表中给出各变量的地址,可以为变量的地址,也可以为字符串的首地址。2)格式控制符由%和格式符组成,作用是将要输入的字符按指定的格式输入,如%d,%c等。二、格式化输出函数printfprintf函数的功能是格式化输出任意数据列表,其一般调用格式为:printf(格式控制符,输出列表)【说明】1)格式控制由输入格式说明和普通字符组成,必须用双引号括起来。●格式说明由%和格式字符组成,作用是将要输出的字符转换为指定的格式,如%d,%c等。●普通字符是在输出时原样输出的字符,一般在显示时起提示作用。2)输出列表是需要输出的一组数据(可以为表达式和变量),各参数之间用“,”分开。要求格式说明和各输出项在数量和类型上要一一对应,否则将会出现意想不到的错误。例3:传说古代的叙拉古国王海伦二世发现的公式,利用三角形的三条边长来求取三角形面积。已知△ABC中的三边长分别为a,b,c,求△ABC的面积。(提示:海伦公式,其中p=(a+b+c)/2)【问题分析】公式中p是三角形周长的一半,求出p后直接代入海伦公式中求得面积。运行结果:输入:345输出:6.000第8课:选择语句之IF语句程序由若干条语句组成,各语句按照顺序一条一条地执行,这种顺序结构是简洁的。但在现实世界中,在解决问题的过程中,不可避免地遇到需要进行选择、或需要循环工作的情况。这时,程序执行的顺序需要发生变化,而非从前向后逐一执行。因此,程序中除了顺序结构以外,通常还有选择结构、循环结构以及转移机制。一、逻辑运算C++语言中提供了三种逻辑运算符:与运算(&&)、或运算(||)、非运算(!)。与运算符(&&)和或运算符(||)均为双目运算符。具有左结合性。非运算符(!)为单目运算符,具有右结合性。逻辑运算的值也为“真”和“假”两种,用“1”和“0”来表示。其求值规则如下:1.与运算&&参与运算的两个量都为真时,结果才为真,否则为假。例如,50&&42,由于50为真,42也为真,相与的结果也为真。2.或运算||参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。例如:50||58,由于50为真,相或的结果也就为真3.非运算!参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(50)的结果为假。虽然C++编译在给出逻辑运算值时,以“1”代表“真”,“0”代表“假”。但反过来在判断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:5||0的值为“真”,即为1。二、关系运算关系运算符用于数值的大小比较。包括大于()、小于()、等于(==)、大于等于(=)、小于等于(=)和不等于(!=)六种,它们都是双目运算符。关系运算符运算的结果是整型,值只有两种:0或1,0代表关系不成立,1代表关系成立。if语句的3种形式1)if(表达式)语句。例如:if(xy)coutxendl;这种if语句的执行过程见图3.5(a)。2)if(表达式)语句1else语句2例如:if(xy)coutx;elsecouty;见图3.5(b)。图3.5例8.2:读入一个整数a,如果a为偶数在屏幕上输出yes若题目改为“读入一个整数a,如果a为奇数在屏幕上输出no”该如何修改程序?例8.3:读入一个数,若这个数大于1并且小于100,则输出yes例8.4:读入a,b,若ab则交换a,b的值格式2:if(条件表达式
本文标题:C++-教程
链接地址:https://www.777doc.com/doc-6689739 .html