C程序设计入门资料解析_第1页
C程序设计入门资料解析_第2页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一讲 C 语言概述 第一节 认识 C 语言1. 产生程序设计语言名称产生年份产生实验室ALGOL601960面向问题的高级语言CPL1963英国剑桥BCPL1967英国剑桥B1970美国贝尔实验室C19721973美国贝尔实验室2. 特点:1 )简介、紧凑、使用方便、灵活2 )运算符丰富3 )数据类型丰富4 )模块化结构5 )具有结构化的控制语句6 )比较接近硬件系统7 )生成目标代码质量高,程序执行效率高8 )可移植性好第二节 C 程序结构及书写格式1. 程序结构特征例 1: 了解 C 程序的组成main()printf(“This is an example.n” );1.main 表示

2、主函数”,每一个C 程序都必须有一个main().2. 函数体3. 本例主函数仅包含一个语句: printf(“This is an example.n ” );4. printf( ) 语句的功能是输出字符,括号内双引号中的字符串原样输出; 符,记载输出字符后换行5. 语句后的“;”表示该语句结束,不能缺少。n ”表示换行例 2: 计算两数之和main()int a,b,sum;a=135;b=246;sum=a+b;printf(“ sum is %dn ” ,sum);小结: C 程序结构特点1. C 程序由函数构成,一个程序至少有一个2.一个函数由两部本组成:( - 3.一个程序总是从

3、main( )1)函数说明部分 -main() 函数开始执行,由主函数结束。个分号。例 3: 比较两个数的大小 main() int a,b,c;scanf(%d,%d” ,&a,&b);c=max(a,b);printf(“ max=%”d ,c); int max(int x,int y) int z;if(xy) z=x; else z=y; reutrn(z);函数int max(int x,int y);( 2)函数体4.每个语句和变量的定义的最后必须要有5. C 语言本身没有提供输入输出语句,scanf( ) 和 printf( ) 来实现由库函数6. /* */表

4、示注释用鼠标单击 New 菜单,出现新建对话框,如图2-3 所示。第二讲 C 程序运行环境及调试C 语言源程序代码编写好以后,要通过一定环境编译、解释、运行才能得到我们想要的结果。常用的 C 语言运行环境有:TC 和 VC+环境。这一讲,我们主要以VC+为例讲解 C 语言的运行过程。VC+即 Visual C+,是微软公司推出的一款 C 语言和 C+语言开发工具,是目前世界上用 得最广泛的 C 语言和 C+语言编译工具。目前最新的版本是6.0.第一节VC 的安装和打开读者通过网上下载或光盘安装VC 简化版,然后打开如下图:图 2-1 VC6.0 开发环境第二节编写程序打开 VC 编译器后,用鼠

5、标单击“ File(文件)”菜单,选择“ New 新建)”菜单如图2-2 所示。图 2-2 打开的 New 菜单HeirFiles :| Projects |WorkspacesOther Documents:|Active Server Page Bihary FilrD C/C+ + Header Hie国C+ Source File *HTML Page H Macro Alen SQL Script Hie 3 Text FiletiiDn:CPTograrn FilEyisuinl C*+1|Bin图 2-3 新建对话框用鼠标单击新建对话框中的“ file(文件)”面板,在列表中选择

6、“ C+Source file ”选项,在“ File ”输入框中输入一个文件名。文件名可以使用任何字母和数字的组合,也可以使用中文,但是文件名中不能有空格。在文件名的后面必须加上“.c ”,表示这是一个 C 语言程序。如图 2-4 :恵色?冈Files | Prgijerfs | Otihicr Dnciimenits |Srrvrir Paigr厂Add tn prnjcclh3Binary FlicIT1QHnricr Filn1JJ0 C+* Source Filit*HTML Pa yeMacro FileFile園SOL Script FileHl Text Filecyuyan.

7、clLofallon:C:Prugraiiii FileslVisual CF+Bin图 2-4然后单击“0K 按钮,在程序编辑窗口中输入程序即可。第三节编译运行程序编写完成后就可以编译运行了。C 语言源程序的后缀(扩展名)是.C,计算机不能直接执行。C 程序经 C 编译器编译后,生成后缀为.obj 的文件,这个文件是一个二进制文件,叫做目标文件。目标文件仍然无法直接执行,必须通过链接程序链接生成.exe 的可执行文件后,才能直接执行。厂Add lo project:I2File第三讲 C 语言的数据类型、运算符和表达式第一节标识符定义:用来标识常量名、变量名、函数名、数组名、文件名等对象的有

8、效字符序列。命名规则:1 )由字母(大小写)、数字、下划线2 )第一个字符必须为字母或下划线如:正确的命名为:ab name filel _sum错误的命名为:5x Doc. Bao ei int注意事项:(1) 区分大小写,即大写字母和小写字母被认为是不同的字符。如:name Name NAME(2) C 语言的关键字是一类特殊标识符,它们具有特定的含义,已被C 语言做其他用途,即 关键字不能做变量名、常量名、函数名、文件名等。第二节数据类型1. 概述1)对“数据”的描述在程序中需要指定数据的类型即数据的组织形式,即数据结构。2)对“动作”的描述值对数据的加工处理步骤与过程,即算法。2. 数

9、据类型C 语言中,数据结构是以数据类型的形式来体现的。数据类型是指数据的内在存储方式。C 语言提供了丰富的数据类型p38。从另一个角度来看:C 语言中的数据又可以分成:常量 和变量第三节常量整型常量(整数)如:123 -5 8;实型常量(实数)如:5.4 0.486;字符常量(字符)如: a H;转义字符如: n 012 ;字符串常量如:“ China ”厂正整数1.整型常量(整数)一,负整数表示形式:十进制整型常量09八进制整型常量07十六进制整型常量 0 9,A F如:整数 1234 在 C 语言中十:1234 八:023222.实型常量(实数、浮点数) 表示形式为 : 小数形式和指数形式

10、1 )小数形式 整数部分 、小数点和小数部分 格式:整数部分 . 小数部分1 )当整数部分或小数部分为 0 时,可省略不写,但不能同时缺省(“ 0.0 ”不能写成. ”)2)小数点是小数部分的标志,不能省略2)指数形式:尾数部分、E 或 e 和指数部分格式:尾数部分 e 指数部分如:12.34e+9表示12.34X1095.6789E-10表示5.6789X10-10-58.99e-6表示-58.99X10-6注意:如:12.34e 5E e 5e3.6等 都是错的(2)一个实数可以有多种表示形式如:789.989 表示 789.989e078.9989e17.89989e20.789989e

11、3等3. 字符常量用一对单引号括起来的一个字符 如:a B 注意:六:0 x4D21 )指数部分只能是整数,并且指数形式的3 个组成部分不能省略(1)其中单引号只作为定界符使用,并不是字符常量的组成部分,即在输出字符常量时, 对单引号并不输出;(2) , 是不允许的;(3)在 C 语言中,字符常量具有数值,在ASCH代码表中, a的值为 97,65;(4)字符常量在计算机内部以整数常量的形式存放,因此,字符常量与整型常量等价a= D +8;等价于 a=68+6;b= ? + x; 等价于 b=63+88;4. 转义字符常量在 C 语言中,允许另一种特殊形式的字符常量,即以一个“”开头的字符序列

12、。“ ”后面的字符转换成为另外的意思。转义字符都是以“”开头 p48如: n t b r f ”x0A 例 1:转义字符 1mai n()printf( “ boyn”);printf( “n” );结果: boy girlI _28列645例 2:转义字符 2mai n()printf( “” n ”);A的值为如:意思是将101 5. 字符串常量由一对双引号括起来的字符序列女口:“ Hello ”“ C Program ”“ How are you! ”1)字符串常量与字符常量的区别如: “a” a2)容量不同3)占用内存空间大小不同 0 第四节 变量1. 变量和变量的地址 变量在程序运行

13、过程中,其值可以发生变化的量 变量的地址定义变量后,变量在内存中存放的位置 如 : 变量 y 的值为 6 ,而 y 的地址为 1800H 则说明 1800H 存储单元中存放的值为 62. 变量说明语句一般形式:数据类型 变量名如: int age , total;(1)可以在一个数据类型后说明多个相同类型的变量,变量名之间用“,”隔开,数据类型 与变量名之间至少要用一个“ ”隔开;(2) “;”位于最后一个变量之后;(3)必须放在变量使用之前,通常放在函数体开头部分;(4)变量一经说明,每个变量就有一个特定的类型,在编译时就对其分配相应的存储空间;3. 整型变量用于存放整数的变量基本类型符短整

14、型int -215/215-12215-1个字节2个字节长整型long int-231231-14个字节无符号型unsigned int 0 216-12个字节unsigned short 0 216-12个字节unsigned long 0 232-14个字节例: 整型变量的定义与引用main( )int a,b,x,y;unsigned int m;a=15; b=-8; m=10;x=2*a-m;y=2*b+m;printf(“ a+m=%d,b+m=%d”n ,x,y);4. 实型变量用于存放实数的变量 单精度 float 双精度 double 长双精度 long double如 :

15、float a,b,c; /*定义 a,b,c 为单精度实型变量 */double x,y; /*定义 x,y 为双精度实型变量 */long double z; /*定义 z 为长双精度实型变量 */例: 实型数据的舍入误差main( )float x,y;x=1.23456789e10;y=x+20;printf( “ x=%fny=%fn ” ,x,y); 结果: x=12345678848.000000y=12345678848.0000005. 字符型变量用于存放字符数据的变量类型符 char 02551 个字节如 : char ch1,ch2; /*定义 ch1,ch2 为字符变量

16、 */ch1= a ; /*把字符常量 a赋给字符变量 chi */ch2= b; /*把字符常量b赋给字符变量 ch2 */注意:(1 )在 0255 内,字符型变量与整型变量可以通用2)一个字符既可以以字 5 符形式输出,也可以以整数形式输出 例: 字符以整数形式输出main( ) char c1,c2;int c3,c4;letter: ” );第五节 变量赋初值方法 1 :int a=3;float f=3.5;char c= e;a=3;float f;如 : char c1=97; int c1=a;c1=97; c2=b;c3=a ; c4=98;printf(%c%c%c%cp

17、rintf(%d%d%d%d3)字符数据可以参与算术运算例 1: 大小写字母转换main( ) char c1,c2;例 2:printf(Pleaseinputmain( )scanf(%c” ,&c1 );char c;c2=c1+A- ac=b+5-3;printf(%ct%cn ” ,c1,c2);printf(%cn” ,c);C 语言规定,允许在定义变量的同时给变量初始化即赋初指)int a;f=3.5char c;c= e如:(double)a; /*将 a 转换为 double 型*/方法 2:被定义变量的一部分赋初值。女口:int a,b,c=5;/*定义 a,b,c

18、 为整型变量,其中 c 的值为 5*/方法 3:对几个变量赋初值女口: int a=5,b=5,c=5;/*定义 a,b,c 为整型变量,初值均为 5*/如:int a=b=c=5;是错误的第六节 各类数值型数据间的混合运算1隐式转换:double floatun sig nedint char、short例:10+ a +i*f-d/e设:i 为整型 intf为单精度实型 floatd为双精度实型 doublee为长整型 long2.强制类型转换:(显式转换)强制类型转换运算符一一()(类型名)表达式如:int n; /* 定义 n 为整型变量*/float d; /*定义 d 为实型变量*

19、/如:(double)a; /*将 a 转换为 double 型*/d=sin(double)n); /*将 n 转换为 double 型 */(int)(x+y); /*将 x+y 的值转换为 int 型 */第七节 算术运算符和算术表达式一、运算符简介 p55 二、算术运算符和表达式1.基本运算符: + - * / %注意:(1) *不能省,也不能写成X或?( 2 ) %参与运算量必须为整数,既它只适用于int 和 char 型第四讲 最简单的 C 程序设计第一节 C 语言的概述本课介绍C语言程序设计的基本方法和基本的程序语句。 从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、

20、分支结构、循环结 构。这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些程序结构。 本章介绍这些基本语句及其应用,使得对C程序有一个初步的认识, 章的学习打下基础。C 程序是由语句构成的, 可分为以下 4 类:1. 流程控制1)选择语句 if-else (switch-case (2)循环语句for ( while ( do-while (3)辅助控制语句 break( continue ( goto ( return (2. 表达式语句1)赋值语句例 : x=8 /* x=8; /* 一个语句必须在最后出现“任何赋值表达式都可以加上分号成为赋值语句例 : a*=12x=

21、y=z=8i+2) 函数调用语句例 : printf( “ This is a example. ” ) /* 函数调用语句 */ scanf(“%d” ,&c)3) 空语句例 : ;4) 复合语句例 : c=a+b; z=3*x+y/10; printf( “ %d,%dn” ,c,z);为后面各条件语句 )多分支选择语句 )循环语句 )循环语句 )循环语句 )终止执行 switch 或循环语句 ) 结束本次循环 )转向语句 )从函数返回语句 )赋值表达式 */赋值语句 */第二节数据的输入输出C 语言本身不提供输入输出语句,输入输出操作 是由函数来实现的如:printf()函数和

22、scanf()函数第三节格式输入和输出l.pri ntf()函数1) 一般形式Printf( “格式控制”,输出表列)例:printf(“ x=%d,y=%fn ”,x,y);格式控制输出表列2)格式控制部分说明-格式说明符包含 3 种信息:-转义字符: b -普通字符:printf(格式说明符%d十进制有符号整数%u十进制无符号 整数%f浮占八、数%s字符串%c单个字符%p指针的值%e指数形式的浮 点数%x,%X无符号以十 六进制:表示的整数%0无符 号 以八:进制表示的整数%g自动选择合适的表示法3)输出表列部分说明a. printf()函数中格式控制部分的“格式说明符”和“输出表列”数值

23、类型上必须一一对应例;printf( “x=%f,c=%dn ” ,x,c);b. 输出表列可以是常量 变量表达式.如果是表达式,则printf()函数将先对其进行计算,再输出结果例;mai n()printf(“x=%f”,3*4.8+9/4-sqrt(2.0);t n 344 a=%d ,a);c. printf() 函允许没有输出表列部分 , 它表示输出一个字符串 格式为 : printf( “输出字符串” );例 ; printf( “please input a number:”);2.scanf() 函数1) 一般形式scanf( “格式控制” , 地址表列 )其中:格式控制与 p

24、rintf( ) 函数类似 , 地址表列:由若干个变量地址组成 ( 变量前加 “&”)例 : main() /*scanf() 函数输入数据 */int a,b;scanf(“ %d,%d” ,&a,&b);printf(“ %d,%dn” ,a,b); 2)格式控制部分说明a. 标准 C 语言在 scanf()函数中不使用u 说明符,对 unsigned 型数据以d,%o,%x 格式输入b. 可以指定数据所占列数 , 系统自动按它截取所需数据例: scanf(“%3d%2”d ,&a,&b);运行时输入 :12345( 回车 )a 得到 123 b 得

25、到 45c. 输入数据时不能规定精度例: scanf(“%5.2f”,&x);3) 地址表列部分说明a. ”&”不能少格)TabEnter(回车)作为间隔符例: scanf(“%d%d%d%”d,&a,&b,&c,&d);d. 输入数据为字符型(c),间隔符用空格 回车的话,将不被认为是间隔符会被认为是有效数 据例 : main()scanf(printf(“ %c%”c ,&c1,&c2);“%c%”c ,c1,c2);char c1,c2;运行时输入 a b例 : scanf(b.输入数据时 , 如果时应输入对应字符例 1:

26、scanf(例 2: scanf(例 3: scanf(c. 输入数据时 ,%d,%d”,a,b); /*在格式控制”字符串中非法 */, 除了格式说明还有其他字符 , 则在输入数据“ %d,%d”,&a,&b);“ %d:%d”,&a,&b);“x=%d y=%d”,&x,&y);如果“在格式控制”字符串中没有字符运行时应输入运行时应输入运行时应输入1,31:3 x=1 y=3, 则各数据之前可以用 ( 空上机 */*结果 : A65 101 41第四节 字符数据输入输出1.putchar() 函数一般形式 : putchar( 参数 ) 例

27、1: #includemain() int a; char c;c=putchar(c);putchar( putchar(a);putchar( putchar( 结果: ABCA ; a=66;n );n ); 103 );2.getchar() 函数1)一般形式 : getchar()2) 使用方法 :a. 把 getchar() 函数得到的字符代码赋给一个字符型变 量 整型变量 例 : int a;a=getchar();b. 把 getchar() 函数得到的字符代码直接作为表达式的 一部分 , 而不赋给任何变量例 : printf(“ %c” ,getchar();例 : #inc

28、lude main() int a;printf(“ Please enter a character:” );a=getchar();printf(“ %ct%dt%ot%xn ” ,a,a,a,a);putchar(a);运行时输入 A( 回车 )例 2: #include main() char c1,c2;c1= H; c2= I putchar(c1);putchar(c2);结果: HI5. 编程:使用 getchar() 函数,从键盘输 入一个小写字母,要求输出大写字母。#include main()char c1;c2 c1=getchar();c2=c1-32; putcha

29、r(c2);第五讲 逻辑运算和选择结构习题1. 读程序main() int a;a=1234;printf( “ -%-6d-n ” ,a);2. main()int a=-1;printf( “ %dt%ut%on ” ,a,a,a); 3. 使用 scanf() 函数来输入数据,要使a=123,b=4,c1=A,c2=b,x=-567.123,y=99.880. 请问在键盘上如何输入?scanf( “ %d,%d,%c,%c,%f,%”f ,&a,&b,& c,&d,%x,&y);4. 利用 getchar() 函数和 putchar() 函数 显示

30、由键盘输入的一个字符。#include main()char c;c=getchar();putchar(c);6. 从外部输入 a,b,c 三个整数,然后把 c 中的值给 a,a 中的值给 b, b 中的值给 c,最后输出 a,b,c 的值 , 写出程序代码。第一节关系运算符和关系表达式关系运算实际上就是一种“比较运算”,即用关系运算符对两个运算量进行比较,比较他 们之间的“大小关系”。例: 关系表达式:y3用于判断 y 是否大于 31.关系运算符及其优先次序C 语言中的关系运算符C 语言中的关系运算符=11第二节逻辑运算符和逻辑表达式c+da+b(c+d)a+bab!=c(ab)!=c *

31、a=bxa=(b=ca=(3=c),.x!=a*bcx!=(a*b)c)运算符名称示例示例说明优先次序小于aba小于b优先级相同=小于或等于a大于aba大于b=大于或等于a=ba大于或等于b=等于a=ba等于b优先级相同!=不等于a!=ba 不等于b关于优先次序的说明如下:(1) 关系、 算术、 赋值运算符的优先级关系如下: 算术运算符 f)关系运算符(中)2)关系运算符的结合方向是“自左向右”例:xy,2*a+bc-d,(x=2)=(y=4).a b表达式的值为0当关系表达式成立时,其结果为1;a+bc表达式的值为1否则值为 0。f=abc表达式的值为1例 2: 3bc表达式的值为0为 1;

32、例 3:试求 x=531的值分析:x=531x=(53)1=o赋值运算符(低)2.关系表达式例 1:关系表达式只适用于描述单一的条件,如:x0 用于描述“ x 大于 0”,对于较复杂的复合条件就需要若干个表等式连接起来才能描述,如:描述“ x 大于 0 且不等于 2”,就需要将两个表达式 x0 和 x!=2 连接起来,即 x0&x!=2,其中“ &是 C 语言中的逻辑 运算符。1.逻辑运算符及其优先次序C 语言中的逻辑运算符运算符名称示例示例说明优先次序!逻辑非!aa非高&逻辑与a&ba与b|逻辑或a|ba或b低低关于优先次序的说明如下:(1 )逻辑运算符的结合

33、方向是“自左向右(2)运算符的优先级运算符优先次序!(非)高Ln算术运算符P关系运算符& &和|赋值运算符低:例:(ab)&(xy)ab&xy(a=b)|(x=y)a=b|x=y(!a)|(ab)!a|ab2.逻辑表达式一个逻辑表达式中可以包含多个逻辑运算符。女口: xy&ay&x!0 的值为:1(3)在逻辑表达式求解中,并不是所有逻辑运算符都执 行,有时只需执行一部分运算就可以得出结果。例 1: x&ya|b|c例 2:设 a=1, b=2, c=5, d=4, m=n=1,则(m=ab)&(n=cd),值为 0,m=0, n=

34、1 ;(m=ab)|( n=cd),值为 1 , m= 0, n=1 ;第三节 if 语句1. if语句的三种形式if 语句、if-else 语句、if-else-if 语句if 和 else 配对规则:else 总是与它前一个最近的if 配对若要求 else 与前面的 if 配对,则要用到复合语句。如:if( 表达式 1)if (表达式 2)语句 1;else语句 2;如:针对上述情况,分析下面两段程序的功能2. if( n0)1. if(n0)if (ab) z=a;if(ab) z=a;else z=b;else z=b;第四节条件运算符例:if(xy)max=x;else| max=(

35、xy)?xy;max=y;般形式:表达式 1?表达式 2:表达式 3条件运算符说明:(1) 条件运算符优先级高于赋值运算符,但低于算术运算符、关系运算符、逻辑运算符。(2) 条件运算符的结合方向:“自右向左”。例:ab?a:cd?c:d ab?a:(cd?c:d)(3) 表达式 1、表达式 2、表达式 3 类型可以不同,条件表达式的值取两者较高的类型。例:xy?1:1.5 /*x=2,y=1*/第五节 switch-case 语句Switch-case 语句用于处理多分支结构的条件选择语句,又称“开关语句”。一般形式:switch(表达式)casecase常量表达式常量表达式1 :语句 1 ;

36、 break;2:语句 2 ; break;case常量表达式 n:语句 n ; break;default:语句 n+1; break;( 1 ) 各 个 c a s e 常 量 表 达 式 不 一 定 按 其 值 的 大 小 顺 序 排 列 , 但 各 个必 须 是 不 同 的 值 。例:switch(ch)caseA:语句 1 ;break;caseC :语句 2;break;caseB:语句 3;break;caseA:语句 4;break;default:语句 5;(2 )在 switch-case 语句中,多个 case 可以共用一 条执行语句。例:caseABcase 后的常量表

37、达式caseC: printf(“60” );break;( 3)若 case 后面的语句执行完后没有 break 语句, 程序将顺序执行下面的 case 分支, 直 到遇到 break语句,跳出 switch-case 语句或 switch-case 语句结束。例:switch(ab?1:2) /* a=3,b=6 */ case 1:a=100;case 2:b=a+b;case 3:a=b+a;default:b-;printf(“ %d,&dn ” ,a,b);结果: 12 ,8( 4) switch-case语句的嵌套例:#include“ stdio.h ”main() i

38、nt x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0:a+;break;case 1:b+;break;case 2:a+;b+; break;printf( “ a=&d,b=%dn ” ,a,b);结果: a=2,b=1程序举例1. 求一个整数的绝对值。main()int a;scanf( “ %d” ,&a);if(ab)t=a;a=b;b=t;printf( “%d,%d ,a,b);厂 x2 - 2 x=03. 计算分段函数 y= vx x=0)y=x*x-2;elsey=x;printf( “%.2f” ,y);

39、if-else-if 语句格式:if(表达式 1)语句 1 ;else if (表达式 2)语句 2 ;else if (表达式 n-1)语句 n-1 ;else的值第六讲 循环结构程序设计第一节 概述C 语言中下列语句实现循环: 1. 用 goto 语句和 if 语句构成循环; 2.while 语句;3.do-while 语句; 4.for 语句第二节 goto 语句构成循环goto 语句的一般形式:goto 语句标号;语句标号 : 语句;例 1: goto labe_1 ;是正确的 goto 123 ;是错误的例 2: goto 语句使用示例:计算 1+2+3+4+100算法:s1.设一个

40、变量 sum 用于存放最后的结果,初值为0s2. 设一个循环变量 i ,初值为 1s3. 判断 i 是否小于等于 100,若是执行 s4 ; 否则程序结束s4. sum=sum+is5. i+s6. 返回 s3例 3: goto 语句使用示例:计算 1+2+3+4+100程序: main()int sum=0,i=1;loop:if(n=100) sum=sum+i;i+;goto loop;printf(“ %d” ,sum);第三节 while 语句构成循环while 语句的一般形式: while (表达式)循环语句;例 4:用 while 语句编程实现:计算 1+2+3+4+100mai

41、n()int sum=0,i=1;while(i=100)sum=sum+i;i+;printf(“ %d”,sum);第四节 do-while 语句构成循环do-while 语句的一般形式:do循环语句;while(表达式);例:用 do-while 语句编程实现:计算1+2+3+4+100main ()int sum=0,i=1;dosum=sum+i;i+;while(i=100);printf( “d ,sum);读者自行比较 while 和 do-while 用法的区别?第五节 for 语句构成循环1.for 语句的一般形式:for( 表达式 1;表达式 2;表达式 3)循环语句;例

42、:用 for 语句编程实现:计算1+2+3+4+100main ()int sum=0,i ;for(i=1 ; i=100 ; i+)sum=sum+i ;printf( “d ,sum);for 语句与 while 比较fo第亠语旬产句的使用while 语句第八节bieak 语口句的使用for(表达式杵表达式句的一般形式;)break;循环语设计一个程序,求能同时满足以下条件: 以 9余 7 的最小数。for(i=9; ;i+)表达式 i除 whil%余(表达式以勿余 3,除以 7 余 5,除 循环语句;表达式 3;if(i%3=1 &i%5=3&i%7=5&i%9

43、=7)例: printf(“%d ,i);for輕1;10甘 eak; a=a*i;printf(%d,%d,a,i);第七节 contin ue 语句的使用continue 语句的一般形式:continue;i=1;while (i=100) a=a*i;printf(%d,%d,a,i);i+;例: 打印出数字 010,但跳过(即不输出)数字 for(i=0;i0);问最后 b 的值为多少?循环了多少次?3. i=1;a=0;s=1;do a=a+s*i;s=-s;i+; while(i=10); printf(“ a=%d” ,a);第七讲 数组4. 运行以下程序,输入 right? 则

44、下面程序 结果为?第一节 一维数组的定义与引用1. 一维数组的定义定义方式: 类型说明符 数组名 常量表达式 ;如 : int number10;/* 表示定义一个名为 number 的数组,此数组有 10 个元素,数据类型为整型 */ 说明:1. 数组名的命名与变量命名规则相同2.数组名后面只能用方括号括起常量表达式如: int a(0);是错的#include main() char c;while(c=getchar()!=? )putchar(+c);X3. 常量表达式表示元素的个数,即数组的长度。整个数组所占字节数=类型长度x数组长度4. 常量表达式中不能包括变量,即C 语言不允许定

45、义动态数组如 1: int a ;char stra如 2: int a=8;char stra一维数组初始化的一般形式:类型说明符 数组名常量表达式=值 0,值 1,; 如:int number4=1,2,3,4 ;int number4;number0=1;number1=2;number2=3;number3=4;3. 一维数组元素的引用数组元素的表示形式:数组名 下标其中,下标可以是整型常量或整型表达式如:a0=a5+a7-a2*3;例:数组元素引用main( )/*主函数 main( ) */int i,a10;/*定义了一个整型变量 i,和一个整型数组,数组名为a */for(i=

46、0;i10;i+) /*通过 for 循环语句给数组a 中每一个元素赋值*/ai=i;for(i=0;i10;i+) /*通过 for 循环语句输出数组 a 中所有元素*/printf( “d ,ai;例 2、mai n()int i,a10;for(i=0;i 10 ;i+) ai=i;for(i=0;i 10 ;i+)printf( “d ,ai;int number =1,2,3,4;例 2: main()inti,b10,a10=1,2,3,4,5,6,7,8,9,10;for(i=0;i10;i+)bi= ai* ai+1;printf(“ %4d” ,bi);第八讲 函数 第一节

47、函数的定义方法1. 函数的概念 函数从本质上来说就是能完成一定功能的程序段, 其标识叫函数名。若有其他程序要完成该函数的功能,可以通过调用。 函数可以反复多次调用。2. 引入函数解决的问题1)解决代码的重复2)结构化、模块化编程的需要习题例 1: main()int i,a10;for(i=0;iy?x:y;return(z);第九讲 指针第一节 指针的基本概念1. 指针变量的地址当 C 源程序在编译时,编译程序对遇到的变量分配连续的内存单元例 : 有变量定义语句如下 :short a=3;long b=5;float c;编译系统给变量分配的存储空间如下 :C 语言规定:如果一个变量占用一个

48、字节时,该字节的地址就是该变量的地址;如果变量用连续的多个字节,那么第一个字节的地址就是该变量的地址变量、数据类型和地址对照表变量名数据类型地址ashort500bIon500cFloa5002.指针变量一一用于存放地址的变量 直接访问:通过变量名直接使用变量间接访问:将变量的地址存放到另一个“特殊”的变量中,通过该变量来存取变量的值地址一一指针“特殊”的变量一一指针变量C 程序中,变量的值是通过运算符“&”来得到,它的运算对象是变量或数组元素,得到的结果是数组元素的地址如:i nt a,b10;&a; /*得到变量 a 的地址*/50015002500350045005500

49、6500750050095010501150125013short 型变量 aI ong 型变量 b float 型变量 c&b5; /*得到数组元素 b5 的地址 */第二节 指针变量的定义、引用及运算1. 指针变量的定义与初始化 数据类型 * 指针变量名 说明: (1)与其他变量定义一样,可以一次定义多个指针变量并赋初值(2)“数据类型”指该指针变量用于存放何种数据类型的地址 说明:1)给指针变量赋值 指针变量名 =地址表达式如 : int a,*p;p=&a; /* 定义一个指针变量 p, 指向变量 a*/2)直接使用指针变量 如 : int a,b,c,*p1=&

50、;a,*p2=&b;scanf( “ %d,%d,%d” ,p1,p2,&c);3)通过指针变量来引用变量*指针变量如 : int a=4,b=6,c,*p1=&b,*p2=&c;*p2=a+*p1*b;printf(“ %d” ,c);3. 有关运算符1)&运算符如 : &x; &a5;2)* 运算符如 : int a,*p=&a;则&a代表*p代表&*a代表*&p代表*&a代表&*p代表例: 指针变量算术运算main() short a=1,b=2,c=3,*p1=&b;floa

51、t d=4.0,e=5.0,f=6.0,*p2=&e;printf(p1+;printf(“ %x,%dn” ,p1,b);“ %x,%dn” ,p1,c)p1=p1-2;(3)定义指针变量时,(4)初值形式: 如 : floata,f110;float *p1=&a; /* float*p2=&f18; /* float*p3=f1; /*2. 指针变量的引用方式指针变量名前必须有一个*”,作为定义一指针变量的标志定义一个指针变量 p1, p1 指向 a*/ 定义一个指针变量 p2, p2指向 f18*/定义一个指针变量 p3, p3 指数组向 f1 第一个元素 */printf(“ %x,%dn”,p1,a);printf(“ %x,%fn ”,p2,d);p2+;printf(“ %x,%fn ”,p2,e);p2=p2-2;printf(“ %x,e%fn ”,p2,f);例: 指针变量逻辑运算main() short a=1,b=2,*p1=&a,*p2=&b;printf(“ p1p2=%dn” ,p1p2);printf(“ p1=p2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论