《第一章c基础.pdf》由会员分享,可在线阅读,更多相关《第一章c基础.pdf(83页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VC+语言程序设计第一章绪论C+语言的发展及其特点1.1.1 C 语言的发展C TC C+TC+C#Visual C+Visual C+.Net1.1.2 C+语言的特点1.结构化的程序设计语言(从上向下,逐步细化)2.模块化的程序设计语言3.代码效率高、语言灵活、功能强大4.较高的兼容性和可移植性5.可以部分取代汇编语言6.有很强的数据处理能力7.支持面向对象的程序设计8.语言向下、向上的兼容性强1.2 面向对象的程序设计1.抽象和封装一对象2.派生和继承3.多态性1.3 C+语言的结构(1)顺序结构(2)选择结构(3)循环结构1.4 C+语言的作用1.凡是计算的题目通过编写程序,利用计算机
2、求解2.凡是计算机上使用的大、中、小型软件,通过C+语言编程实现1.5简单的C+语言程序及C+语言程序结构例 1 :用 C 语言编写程序,求 5 个数的和程序如下:/EX1_1.CPP/*This program demonstrates the construction of a c+program file*/#include /*予编译命令(头文件)*/int main()int i;cout,i=M;/*主函数标记(名字)*/*对将使用的整型变量说明*/串输出cini;/从 键 盘 输 入 数 给iclrscr();清屏幕cout ”Your number is lti*iendl;/
3、*数据输出,可以计算*/return 0;程序的说明:1.程 序一般有三大件:输 入、计算、输 出。2.lostream.h为头文件,程序中使用的函数需要它。3.程序由多行语句组成。一行一般放一个语句。4.一行可以放多个语句,但 语 句 间 要 用“;”分开。5.程序可以由一个主函数和0到多个子函数组成,程序执行总是从主函数开始。6.主函数块一定用 括起来,表示程序的开始和结束。7.每 一 语 句 结 束 是 否 使 用“;”,要分别记忆。(头文件、函数名字、大 部 分 地 方 出 现 的“)”、复合语句的第一行、宏 定 义)。8.不 带“;”的语句称函数。9./*/和均为注释,其中的内容是给
4、读程序人看的。一般用于对程序的解释。10.解 决 一 个 问 题 的 编 程 方 法(使用不同的语句)有很多种。11.主函数和子函数其位置谁先后不要求。12.程 序 中 的 字 母 大 小 写 意 义 不 同(如A和a是两个不同的变量)。13.一定要成对出现。14.程序中使用的所有变量必须在使用前用指定的命令说明。15.注意语句放置的位置。头文件mian()变 量 说 明 ;函数体)变量说明;函数体16.保 存C+程 序 使 用 的 文 件 名 后 缀 是 叩p,经 编 译 后 其 文 件 名 后 缀 是.exe17.程序中用到的变量(对象)使用前均需说明.18.“称为插入运算符.例2:用C+
5、语言编写程序,求 这5个整型数的平均值求5个数的平均值。#include main()inti;float s=O,p;static int a5=1,2,3,4,5;clrscr();for(i=0;i5;i+)s=s+ai;/*予 编 译 命 令(头文件)*/*主 函 数 标 记(名 字)*/*对将使用的整型变量说明*/*对将使用的实型变量说明*/*说明一个数据存放的位置-数组,并放数*/*循环*/*数据取出,计算*/p=s/5;cout tcAverage=,p);/*将计算结果输出到屏幕*/例 3:编写程序,从键盘输入5 个实型数,求这5 个数的平均值程序如下:#include mai
6、n()float a,s=0,p;int i;for(i=l;i6;i+)cout a;s=s+a;p=s/5;clrscr();cout 变量名说明:1.输入的数据类型要与变量的类型一致2.多变量输入时,个数据间用空格分开,最后用回车1.6.2数据计算输出命令:cout 表达式说明:1.使用setw(n)命令可指定数据间隔宽度,但要使用头文件#include,2.可连续不间隔输出。3.具有计算和输出功能。4.可将“n”,“t”,“endl,setw(n)放在句中,起到换行、间隔、换行结束作用。5.“n可以与字符串放在一起,仍起换行作用。6.“t”将光标移到下一个显示区,一个显示区占8 个字符
7、宽。1.7 C+语言程序的上机过程1.7.1 运 行 C+语言程序的全过程1.从“开始”、“程序”启动 Microsoft Visual c+6.0,进入 Visual C+6.0 环境。2.依次选择和单击:filenewwin32 console叩plication输入项目名称 选择文件夹o okA simple application finish ok3.filenew C+source file 输入文件名 ok。4.在编辑窗口输入程序。5.保 存(选择由esave或者Control+S),输入文件名(一定要有后缀:.cpp)。6 .编译:B u i l d 选择 c o m pi l
8、 e 或(C t r l +F 7 )。7 .如果出错,移动B u i l d窗口滚动条,双击提示出错的代码行,改错,再编译。8 .建立 e x e文件:B u i l d 选 择B u i l d或 者F 7 9 .执行文件:B u i l d E x e c u s e,(c t r l +f5)执行结束,看结果后击任意键返回。1 0 .再保存。1 1 .转第二步,输入下一个程序。重要说明:使用V C+前,先建立一个自己用的文件夹,程序文件应保存在自建的文件夹17.2常见问题的解决1 .如果运行结果不是当前的程序的结果怎么办?检查步骤。2 .编译出错后如何才能进入修改状态?3 .运行进入死
9、循环怎么办?使用C T R L+B R E A K组合键4 .如何在V C+与WINDOWS窗口之间切换?缩小VC窗口。5 .如何取消下拉菜单?使 用“E S C”键。1.7.3编译、连接成功的C+可执行程序(*.E X E)直接用鼠标双击执行即可。其.e x e文件存放在用户保存的文件夹下DEBUG文件夹下。要求:1.会编写简单的加减乘除及求和程序.2 .掌握上机的全过程及上机过程中用到的键盘命令.3 .掌握程序的结构及具体要求实验一任务:1 .检查V C+在计算机里存放的位置且熟悉V C+编辑、编译环境。2 .掌握使用V C+上机的全过程。3 .编程且上机运行:输入3个整数,求这3个数的平
10、均值。4 .编程且上机运行:输入5个整数,求这求5个数的平方和。5 .编程且上机运行:输入7个整数,求这求7个数每个数的平方根。提示:求平方根函数是s q r t(x),且要使用头文件:m a t h.h o6 .编程且上机运行:输入圆的半径,求圆的面积和周长。7 .写出实验报告。8 .实验报告的要求是:(以后均相同)学 院(系 别)专 业 姓 名 学 号 上 机 地 点 上 机 时 间任务程序程序运行结果程序出错的原因及纠正方法体会及感受第二章数据和表达式2.1 C语言的词法符号2.1.1 关键字2.1.2 标识符标识符可以是变量名、函数名等。标识符有字母、数字、下画线组成,但第一个字符必须
11、是字母或下画线。名字最长32个字符。字母大小写是有区别的。2.1.3 标点符号一9 个#(),;.:2.1.4 分隔符空格2.2 数据类型(1)整型常量:(-3276832767)100,10,-50,2345,123L0100,-0120 x100,Oxabcf(2)实型常量3.141592,2.718,100.(单精度实型,7 位有效位)14159e-12,2.718e+5(单精度指数表示法)1.2345678912345,-1.2345d+10(双精度及其双精度指数表示法)(3)符号常量和volatile修饰符const lloat PI=3.141592;const int PRICE
12、=100;volatile unsigned long clock说明:符号常量中的值只能引用,不允许修改.如:PI=2.718(错)Y=pi*5(正确)(4)字符常量(5)转义字符,n(10)换行a 响铃%,制表符”(12)换页(92)、,,(34)”)xhh,用 16进 制 1位或两位表示。ddd 用 8 进 制 1位到3 位表示。4io r 101-1 000 0 0 1-6 5-A(p243,p374)(6)字符符串常量“HELLO”,“1234 5678 9”,“computer”,“中国郑州”2.3变量变量名字:用字母或二”开始,后可以跟字母、数字、下划线。总长度根据使用环境不同,
13、规定不同。例如,正确的变量名字:A,a,add,find,sum,w2000_l,_2003不正确的变量名字:float,main,2003_l,new.003变量的作用:放数字、字符、字符串。变量的定义:(1)整型变量的定义及赋值int a,b,c=2;int x=y=z=10;int m=2;int n=3;long int sum=05add;long hello;整型变量又分:基本整型变量短整型变量长整型变量int a;short b;long c;/*在内存占两个字节的地址单元*/*在内存占四个字节的地址单元*/无符号基本整型变量 unsigned int d;(65535)无符号短
14、整型变量 unsigned short e;无符号长整型变量 unsigned long f;说明:一个整型变量在内存占两个字节的地址单元。无符号整型变量比有符号整型变量允许的数值大一倍加1。短整型变量与基本整型变量允许的数值相同。长整型变量允许的数值是:-21474836482147483647。一个长整型变量在内存占四个字节的地址单元。变量说明且未赋初值时,变量中的值是任意(随机)的。训练与掌握,填表:类型及定义方法 字节数 数值范围问题:为什么一个整型变量只能容纳-32768到 32767求 1 0!时其结果使用什么类型的变量?(2)实型变量的定义及赋值float a,b,ccc=3.1
15、415;/*(单精度实型,6-7 位有效位)*/float sum=0.0;double fl,f2=1.414dl2/*双精度实型变量,有效位16-17位*/float new=2.713e3;long double tl;说明:变量说明且未赋初值时,变量中的值是任意(随机)的。注意赋值和计算时的舍入误差如:float x=3.1415926实际输出为:练习验证(3)字符变量的定义及赋值char a=,m;一个字符变量在内存占一个字节的地址单元。char b,c,d;char m=65,n=a+l;(4)字符串变量的定义及赋值char a10;char b20=,hello,c 10=tha
16、nk you;char str5n0=,news,,okJpease;错误的定义和赋值:char d8=computer;说明:变量中的字符串结束时有一个结束标记标记不参加任何运算。注意C 程序中所有的字符均使用英文字符。2.3 运算符及表达式2.3.1 算术运算符及其表达式+、-、*、/、%说明:整数除整数,商为整数。例如:17/3=5,5/9=0%为求余运算。例如:15%4=3。除数、被除数要求为整型。求方运算,使用函数pow(x,n),且要用头文件:math.h训练:假设n 是一个正整数,表 达 式 n%2+(n+l)%2的值是什么?说明:数学表达式写成C 语言表达式应注意:写在一行上,
17、不能再有肩码或脚码。例如:x2应写成x*x,应写成y l。必要时加括号,而且只用小括号。例如:求立方根,使用pow(x,1.0/3)。使用系统提供的函数。例如:ex应写成e x p(x)见教材248页。注意在计算机计算时,1.0/3*3和 1/3*3都不会等于1。1.自加1、自减1运算例如:n=2;n+;等 价 于 n=n+ln=2:n+;n-;+n;-n;r=2;m=n;p=r+;说明:自加1、自减1运算只适用于整型变量。训练:若 i=2(i+)+(i+)+(i+)后,i的值是多少若 i=2(-i)+(-i)后,i的值是多少(2)若 i=2i=(i+i+i)后,i的值是多少(9)若 i=2i
18、=(ii)后,i 的值是多少(1)i-+-i(2)ii(1)i-i(error)2.关系运算符及其表达式 =63的结果是1 (真)还 是 0(假)3.逻辑运算符及其表达式!(非)&(与)|(或)关系成立,其值为1 (真),否则其值为0(假)训练:写出下列的逻辑表达式m 大于9 0 同时n 也大于90m 大于90或者n 大于90m 不大于9 0 同时n 也不大于90m 不大于9 0 同时n 等于905 大于等于3 且 6 等于9 0 的结果是1 还是0963的结果是1 还是0mn90应该怎么写。常用的几条规则:l|a=?a|a=?1&a=?0&a=?a|!a=?a&a=?例:求下列各变量a,b,
19、c,d的值。int a,b,c,d,k=l,h=0;a=!k&h|+h+=k;b=kh&!h+=!k|l&h;c=h&k!=!h|!(k&h)=h+55|(h=(k=(h=3)*5)*2-+k);4.条件表达式(问号表达式)例:m=mn?m:n(其中,m,n可以是又一个问号表达式)。训练:根据题目,写出问号表达式。x0,r 取 1;xb?(ac?a:c):(bc?b:c)5 .赋值表达式同类型赋值,例如:inta=10,b;b=a类型升级赋值,例如:float x;int k=300;x=k;类型降级赋值,例如:float x=3.14;int n;n=x+6混合类型运算,fl o a t x
20、=3.1 4;i n t n;n=3;x+n (其结果取最高级)类型强制转换,3.0/9 或(fl o a t)3/96 .逗号运算符及逗号表达式例:i n t n=1 08*n,n*n,n+n ;训练:给出下列逗号表达式的结果:m=1 0,n=1 0 0p=(n+n,n*n,n-2)p=n+n,n*n,n-2例:i n t n=1 0;p=(n=n+n,n=n*n,n=n-2)7 .复合赋值运算a=a+3 可以写成复合赋值运算式:a+=3x=x*(y+z)可以写成复合赋值运算式:x*=y+za=(b=5)可以写成复合赋值运算式:a=5,b=5练习:i n t a=1 2;求a的值。a +=a
21、 -=a *a ;(采用右结合计算方法:结果=-2 6 4)将下列各式写成复合赋值运算式i=i+l;k=k-l;m=m/n;x*=k=j;m=m+n+7m=m*n+k /*?*/8 .位运算符(位求反)&(位与)I(位或)八(位异或)(左移)(右移)例:i n t m=12,n=10;a =5m&n=8m|n=14mAn=6m l=2 4n l=59.检测数据类型长度运算符s i z e of(i n t)=2s i z e of(f l oa t)=4实验二任务:1.编程且上机运行:输入3个数,求这3个数中的最大数。2.编程且上机运行:输入5个数,求这求5个数每个数的立方根。3.编程且上机运
22、行:输入4个数,求这4个数中的最小数。4 .编程且上机运行:求多项式a x +b x +c的值(a=2,b=3,c=4,x=1.414)。5.编程且上机运行:输入3组数,每组3个数,求每组数的最大数。6 .编程且上机运行:输入a,b两个数,分别求他们的积、商和余数。7 .编程且上机运行:已知华氏温度,根据公式:C =5/9(F-32)求摄氏温度C(结果保留两位小数)。8 .使用宏定义定义符号常量P I,求圆半径2.456时的园周长,园面积。9 .上机输出转义字符:,x a a 71 1、12了,观察输出结果。10 .编程:f l oa t c c c=3.123456 7 8 9后按实型f输出
23、c c c的值,观察舍入后的变化。11.验证:i n t i=2;(i+)+(i+)+(i+)后,i 的值是多少(-i)+(-i)后,i的值是多少12.编程:求下列各式复合赋值后a的值。i n t a=2;a+=a;a-=2;a*=2+3;a%=(a%=2);a/=a+a;13.输入下列程序,检查出程序中的错误并纠正(不能减少或增加命令),直到完全正确为止。程序的任务是:完成三个整数327 6 7、327 6 8、327 6 9的相加。M a i n()c l rs c r()i n t a,b=327 6 7,a=B+l;c+=a+l;c=c+a+b;pri n t(t 4a=%d b=%d
24、 c=%l d n a,b,c););14.写出实验报告。第三章程序控制语句3.1 选择语句及i f 语句的三种形式1.I f (表达式)语句;例如:i f (x 90&b90&c90)cout fctaverage=,(a+b+c)/3endl;)2.If(表达式)语句1;else语句2;例如:输出x 的绝对值cinx;if(xb)cout a;else coutb;)例:将两个数由大到小输出程序:#include main()int a=5,b=8;if(ab)c o u t a,t,b;elsecoutvvbtvv,a;)3.If(表达式)(语句块1;)else语句块2;)或:If(表达
25、式)(语句块1;)例如:如果a b,交换a,b 的值if(ab)cout,a=,a;elsecout,b=,b;例 3.2 解一元二次方程求根公式:x 1 ,x2=(-b+/-sqrt(b*b-4*a*c)/(2*a)#include#include main()float a,b,c,t;coutw“please a,b,c=”;cinabc;t=a*a-4*a*c;if(tb)if(bc)co u t a b c;else if(ac)c o u t a c b;else couK c)c o u t b a c;else if(bc)c o u t b c a;else co u t c
26、 b a;)例:求分段函数的值1 x0y=f(x)=0 x=0-1 xO)k=l;else if(x=0)k=0;else k=-l;coutk);)例:输入一个年份n,判断是否是闰年。(能被4 整除,但不能被100整除的年份是闰年,或者能被400整除的也是闰年)。程序:main()int n=1998,k;k=(n%4=0)&!(n%100=0)|n%400=0if(k=l)coutwnvv is leap year,endl;例:商品优惠销售,优惠比例(f)0.05.1.15优惠比例f(x)如下:优惠条件(X)x100100=x500500=x20002000=x己知商品价格X 元,求优惠
27、后实际应付多少钱y。y=x-x*f程序:main()float x=2789,k;,yif(x100)k=0;else if(x500)k=.05;elseif(x2000)k=1;else k=.15;y=x-k*x/100;c o u t x,t,y e n d l;3.2 if语句的嵌套If(表达式)复合语句;else 复合语句2;将上例用if嵌套语句实现3.3 switch 语句switch(表达式)case常量表达式1:语 句 1 ;break;case常量表达式2:语句2;break;。case常量表达式n:语句n;break;default:语句 n+1;)说明:1.表达式允许是
28、任何类型。2.各常量(a,b,l,3,5,+,-,*,+之一)表达式的值不能相同。3.各 case和 default语句出现的顺序任意。4.Switch结构允许无default:语句。5.如果(表达式)的值与某一常量表达式的值相同,即从此句开始,计算机将执行其后的所有语句,如果不希望执行其后的语句,可使用break语句跳走。6.C ase后如果是多个执行语句,可以不使用 。7.根据需要,多个case可以共同使用一组执行语句。例:在一次考试中,统计出每一个分段成绩(0-59,60-69,70-79,80-89,90-100)的人数。使用循环和cin输入。当输入0 时循环结束。程序:#includ
29、e void main()int i,sl=0,s6=0,s7=0,s8=0,s9=0;float x;cinx;while(x!=0)switch(int)x/10)case 0:case 1:case 3:case 4:case 5:sl=sl+l;break;case 6:s6=+1 ;break;case 7:s7=+l;break;case 8:s8=+1 ;break;case 9:s9=+1 ;break;cinx;coutn0-59=slendl;coutn60-69=ns6endl;cout70-79=ns7endl;coutH80-89=Ms8endl;coutn90-10
30、0=ns9endl;例:有选民n 个人,统计张、王、李、赵每个人有多少张选票。程序:实验四任务:1.编写程序,将两个数由大到小输出。2.编写程序,将四个数由大到小输出“3.编写程序,输入一个年份n,判断是否是闰年。4.商品优惠销售,优惠比例f 如下。优惠比例(f)优惠条件.05 x=1000.08 1000 x=2000.1 2000 x3000.15 3000 if 表达式 循环体;goto 标示符:例:计算 s=l+2+3+.+100#include main()int 1=0,s=0;loop:if(i101)s=s+i;i=i+l;goto loop;couf4s=,s e n d l
31、;)3.4.2 while 格式while 表达式,(循环体;)例:计算 s=1+2+3+.+100#include main()int i=0,s=0;while(i101)s=s+i;i=i+l;)couf4s=,s e n d l;3.4.3 do-while 格式do(循环体;while 例:计算 s=1+2+3+.+100main()static int i,s=0;do s=s+i;i=i+l;while(i101);cout vs=v s v end I;3.4.4 for()格式for(v表达式1;(表达式2;(表达式3)循环体;)说明:1.v 表达式1 决定了循环的初值,(表
32、达式2 决定循环的条件,(表达式3 决定循环的增量。表达式1 在循环中只执行一次。表达式2,表达式3 在循环中每次都要执行一次。例:求 S=l+2+3+.+100程 序 1:#include main()int i,s=0;for(i=l;i101;i+)s+=i;cout6sum=,s en d l;)程序2:#include main()int i=l,s=0;for(s=0;i101;i+)s+=i;coutusum=,sendl;)程序3#include main()int i=l,s=0;for(;s+=i+;cout4sum=,sendl;)程序4:#include main()i
33、nt i=l,s=0;for(;i101;s+=i+);cout4tsum=,sendl;)程序5:#include main()int i=100,s=0;for(;i;i-)s+=i;cout*4sum=,sendl;)例 1:求 S=l+2+3+.+100n!=l*2*3*.*nS=1+3+5.+99S=l+l/2+l/3+.+1/100S=l-2+3+.+(-l)nnS=1-1/2+1/3+.+(-l)/nS=l2+22+32+.+1002S=l/l2+l/22+l/32+.+1/1002S=l2-22+32-.+(-l)n 1002S=Zk!=l+2!+3!+.+n!e=l+l/l!
34、+l/2!+l/3!+.+l/n!直到最后一项小于 0.00001ex=l+x/l!+x2/2!+x3/3!+.+x%i!直到最后一项小于 0.00001s=l-l/2!+l/3!+.+(-)n+l)/n!直到最后一项小于 0.00001s=l+x+x/2!+x/3!+.+x/n!直到最后一项小于 0.00001s=l-x-x/2!+x/3!+.+(-)n+l)x/n!直到最后一项小于 0.00001n/4=1-1/3+1/5-1/7+.求 Ji,直到最后一项小于 0.000012.循环可以从小向大,也可以从大到小。例:计算 s=l+2+3+.+100#include main()int I,
35、s=0;for(i=100;i0;i-)s=s+i;)coutt6s=,s en d l;3.循环变量的值起两个作用,一是记数,二是可以参加循环体计算,三是用做数组的下标。例:计算 s=l+2+3+.+100#include main()int i,s=0;static int a10=1,3,4,5,43,3,3,4,2;for(i=l;i101;i+)s=s+ai;)couttts=,s e n d l;4.三个表达式可以有,也可以全无,但“:”不能少。如果表达式2 无,程序将进入无限循环。5.可以用break命令中断一层循环.例:计算s=l+3+5+n直到最后一项为99止.#includ
36、e main()int i,s=0;for(i=l;i=i+2)if(i=99)break;s=s+i;)coutus=,s e n d;)6.可以用continue命令中断当前这一次循环,继续下一次循环.例:计算 s=1=3+5+.+99#include main()int i,s=0;for(i=l;i100;i+)if(i%2=0)continue;s=s+i;coutt6s=v s e n d l;)3.5 多层循环例:计算 7!+8!+9!+10!方法一:(双层循环)#include main()int i,s=0;for(i=7;ill;i+)intf=l,j;for(j=l;j=
37、i;i+)f=f*j;s=s+i;)coutssendl;)3.6 循环中断break3.7 exit。函数和abort。函数例:从键盘上输入一个字母,然后输出比它的ASCII码 大 1 的字母#include#include main()char ch=a;/coutinput letters=M;while(ch!-1)ch=getch();if(ch=,z,|ch=Z)putch(ch-25);elseputch(ch+l);)题 1:输出九九乘法表1 234567891 1234567892 2 4 6 8 10 12 14 16 18#include#include iomanip.
38、h1main()int k,j;coutM”;for(k=1;k 10;k+)coutksetw(5);couivn;for(k=l;k10;k+)coutsetw(5)k;for(j=l;j10;j+)coutsetw(5)k*j;coutendl;)题 2:判断m 是否是素数。方法一、#include main()int k,m;cinm;for(k=2;km;k+)if(m%k=0)break;if(k=m)cout44%d is a prime numbervvm;题 3;求 出 100以内的所有素数#include main()int k,m;for(m=3;m 1 OO;m=m+1
39、);for(k=2;km;k+4-)if(m%k=O)break;if(k=m)cout44%d is a prime numbervvm);)题 4:求 m,n 的最大公约数#include#include main()int m,n,r;cinm n;ml=m;nl=n;r=m%n;while(r!=0)m=n;n=r;r=m%n;coutvvm=vvm 1 ,t,n 1 =,n 1 ,t,r=,n en d l;)题 5:求 Fibonacci(斐波那契)数列中前20项中每一项(递推法)0,1,1,2,4,7,13,#include main()int a=0,b=l,c=l,d;for
40、(k=l;k18;k+)d=a+b+c;coutd;a=b;b=c;c=d;)题 6:2000年人口 13亿,年增长0.5%,多少年后达到或超过20亿?#include main()int n=0;floatf=13,e=0.005;while(f20)f=/(l+e);n=n+l;(coutnendl;)题 7:2000年人口 13亿,年增长0.5%,到哪一年达到或超过20亿?题 8:2000年产值13亿,年增长分别0.3%,0.5%,0.7%,0.9%问分别经过多少年后达到 20亿?#include main()int i;static int a5=0.003,0.005,0,007,0
41、.009;for(i=0;i4;i+)floatf=13,n=0;while(f20)f=仔(l+ai);n=n+l;coutu%5d%5dn,n,f);)题 9:元买百鸡。公鸡5 元一只,母 鸡 3 元一只,小 鸡 1 元两只。问 100元买鸡多少只。(穷举法)。#include main()int cock,hen,chick;for(cock=1 ;cock21 ;cock+)for(hen=l;hen34;hen+4-)chick=100-cock-hen;if(cock*5+hen*3+(float)chick/2=100)coutu%5d%5d%5dn,cock,hen,chick
42、);)题 10:m 个学生,每人n 门课程,求每人平均成绩。题 11:求 2000到 2100年之间闰年。题 12:出 10道算术题,给做题人打分。要考虑的问题:1.产生两个运算对象(m,n)。2.产生运算符(03,c,c)。3.根据运算符出题4.考生答题5.判卷记分6.转 1继续7.输出成绩#include#include math.hmain()int k,m,n,r,r2,s=0,c 1;char c;for(k=1,k 11;k+)m=rand()%10;n=rand()%10;c 1 =rand()%10/2;switch(cl)(case 0:r=m+n;c=+;breakcase
43、 1:r=m-n;c=-;break;case 2:r=m*n;c=*;breakcase 3:case 4:if(m%n=O)r=m/n;c=7,;break;else k-,continue;co u t m c n en d l;cinr2;if(r2=r)s=s+10;)coutsendl;)题 13:梯形法求积分:f sin(x)dx题 14:用牛顿迭代法求方程x5+2x3x2+x+l=0在 0 附近的根。题 15:找 出 1000以内的水仙花数。三位数的立方和等于自身(13+53+33=153)题 16:根据以下算术式,求 A、B、C、DA B CD一CD CABC题 17:输出图
44、形AABCA B C D EA B C D E F G第四章函数及其应用4.1 函数种类4.1.1 命 令函数,例如:getchar(),putchar()等。4.1.2 标准 C+库函数,fabs(),pow(),rand(),sin(x),sqrt(),fexp()等,要使用头文件。4.1.3 自定义函数4.2 自定义函数的概念及使用方法例 1:求两个数的最大数#include int imax(int a,int b)(return(ab?a:b);void main()int a=6,b=9;cout,max=,imax(a,b)endl;例 2:求 x 的 n 次方#include
45、uiostream.hnmain()float mpow(float a,int n);coutpow=,mpow(3.,3)endl;Ifloat mpow(float ajnt n)int i;float k=l;for(i=l;i=n;i+)k=k*a;return(k);4.3自定义函数的三种形式4.3.1 无参函数,例如 main(),gelchar()等。主函数与子函数之间不传输数据例:输出字符四方形void print()int i;for(i=l;i5;i+)printf(*n),4.3.2.空函数例:null()(4.3.3.有参函数如 例 1,例 2说明:1.C+语言程序由
46、一个主函数和若干个子函数(模块)组成。1.子函数也有类型和函数值。2.子函数程序体可以作为单独的文件存放,如果单独存放,应在主函数中作为头文件进行说明。3.函数有无返回值,应使用return语句,注意使用()和;。4.子函数中有两个变量,一个是传递变量,此变量称做形参、一个是子函数内部使用的变量。传递变量的类型说明要放在 外边或放在函数名字右边的()内。如果放在函数名字右边的()内,每一个实参要分别说明。5.使用函数时,自变量位置的表达式称做实参,实参可以是变量、常量或表达式。6.实参和形参的个数、类型位置要一致。7.用 return返回的值只有一个。8.一个函数程序,可以出现多个return
47、语句。9.当函数不返回值时,return可以省略。10.函数的类型一定与return返回的值的类型一致。11.当函数不返回值时,应在函数名字前加v o id,又叫无类型。12.使用函数有三种使用方法:(1)作为语句。putchar();(2)作为表达式。A=max(x,y)+zpow(x,n)(3)作为实参。A=max(max(a,b),c)1 4 函数程序中不允许在定义函数。1 5.函数可以单独编译可保存,均放在项目中。4.4函数间的数据传递实参的值传递给形参,这叫实哑结合,而且只能将实参传给形参,这叫值传递,又叫只读,又叫单向传递,单向传递时,形参的值改变,不影响实参的值。.4.4.1 函
48、数的参数和返回值4.4.2 函数原型子函数程序体可以放在主函数后边,也可以放在主函数前边。如果放在后边,应在主函数中进行说明,说明时可以出现变量名,或用另外的名。整型函数和字符函数可以不说明。注意句未用例:交换两个变量的值(在函数中完成、分别在子函数和住函数中输出,观察结果)4.4.3 引用传递双向传递,又叫地址传递实现方法:在函数说明和函数定义时,类型说明后,变量名前加&例:通过使用引用传递,计算圆周长和圆的面积(此方法可以从函数中带回多个计算结果)#include iomanip.h#include iostream.hmain()(float res(float&a,float&b,fl
49、oat r);float r,a,b;cinr;res(a,b,r);coutr=rsetw(10)a=asetw(10)b=bendl;)float res(float&a,floal&b,float r)a=3.14159*r*r;b=2*3.14159*r;return 0;例:编写函数程序1.求 n 的 阶 乘 f(n)2.求三个数的最大数(可以求多个数的最大数)3.求两个正整数的最大公约数(可以求多个数的最大公约数)f(m,n)4.求 n+(n+l)+(n+2)+.(n+k)5 .用子函数完成X2,X3,X。4.5 C+库函数在一个文件中被调用的函数称为库(内部)函数。函数名函数原型
50、要用到的头文件abs()int abs(int n)cstdlib.hfabs()double abs(double x)cmath.hcos()double cos(double x)cmath.hexp()double exp(double x)cmath.hlog()double log(double x)cmath.hpow()double pow(double x,double y)cmath.hsqrt()double sqrt(double x)cmath.hsin()double sin(double x)cmath.htan()double tan(double x)cmat