收藏 分享(赏)

C程序设计入门资料.doc

上传人:kpmy5893 文档编号:7656003 上传时间:2019-05-23 格式:DOC 页数:35 大小:425KB
下载 相关 举报
C程序设计入门资料.doc_第1页
第1页 / 共35页
C程序设计入门资料.doc_第2页
第2页 / 共35页
C程序设计入门资料.doc_第3页
第3页 / 共35页
C程序设计入门资料.doc_第4页
第4页 / 共35页
C程序设计入门资料.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

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

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

3、ax=%d”,c);int max(int x,int y) int z;if(xy) z=x;else z=y;reutrn(z);小结:C 程序结构特点1. C 程序由函数构成,一个程序至少有一个 main( )函数2. 一个函数由两部本组成:(1)函数说明部分-int max(int x,int y);(2)函数体- 3. 一个程序总是从 main()函数开始执行,由主函数结束。4. 每个语句和变量的定义的最后必须要有一个分号。5. C 语言本身没有提供输入输出语句,由库函数scanf( )和 printf( )来实现6. /* */表示注释第二讲 C 程序运行环境及调试C 语言源程序代

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

5、 菜单用鼠标单击 New 菜单,出现新建对话框,如图 2-3 所示。图 2-3 新建对话框用鼠标单击新建对话框中的“file(文件)”面板,在列表中选择“C+Source file”选项,在“File”输入框中输入一个文件名。文件名可以使用任何字母和数字的组合,也可以使用中文,但是文件名中不能有空格。在文件名的后面必须加上“.c” ,表示这是一个 C 语言程序。如图 2-4:图 2-4然后单击“OK”按钮,在程序编辑窗口中输入程序即可。第三节 编译运行程序编写完成后就可以编译运行了。C 语言源程序的后缀(扩展名)是.C,计算机不能直接执行。C 程序经 C 编译器编译后,生成后缀为.obj 的文

6、件,这个文件是一个二进制文件,叫做目标文件。目标文件仍然无法直接执行,必须通过链接程序链接生成.exe 的可执行文件后,才能直接执行。第三讲 C 语言的数据类型、运算符和表达式第一节 标识符定义:用来标识常量名、变量名、函数名、数组名、文件名等对象的有效字符序列。命名规则:1)由字母(大小写) 、数字、下划线2)第一个字符必须为字母或下划线如: 正确的命名为:ab name file1 _sum 错误的命名为:5x Doc. Bao ei int注意事项:(1)区分大小写,即大写字母和小写字母被认为是不同的字符。如: name Name NAME(2)C 语言的关键字是一类特殊标识符,它们具有

7、特定的含义,已被 C 语言做其他用途,即关键字不能做变量名、常量名、函数名、文件名等。第二节 数据类型1.概述1)对“数据”的描述在程序中需要指定数据的类型即数据的组织形式,即数据结构。2)对“动作”的描述值对数据的加工处理步骤与过程,即算法。2.数据类型C 语言中,数据结构是以数据类型的形式来体现的。数据类型是指数据的内在存储方式。C 语言提供了丰富的数据类型 p38。从另一个角度来看: C 语言中的数据又可以分成: 常量 和变量第三节 常量整型常量(整数)如: 123 -5 8;实型常量(实数)如: 5.4 0.486 ;字符常量(字符)如: a H ;转义字符如: n 012 ;字符串常

8、量如: “China”正整数1.整型常量(整数)负整数表示形式:十进制整型常量 09八进制整型常量 07十六进制整型常量 09,AF如: 整数 1234 在 C 语言中 十:1234 八:02322 十六:0x4D22.实型常量(实数、浮点数)表示形式为 : 小数形式和指数形式1)小数形式 整数部分 、小数点和小数部分格式:整数部分.小数部分注意:(1)当整数部分或小数部分为 0 时,可省略不写,但不能同时缺省(“0.0”不能写成“.” )(2)小数点是小数部分的标志,不能省略2)指数形式:尾数部分、E 或 e 和指数部分格式:尾数部分 e 指数部分如: 12.34e+9 表示 12.3410

9、95.6789E-10 表示 5.678910-10-58.99e-6 表示 -58.9910-6注意:(1)指数部分只能是整数,并且指数形式的 3 个组成部分不能省略如: 12.34e 5E e 5e3.6 等 都是错的(2)一个实数可以有多种表示形式如: 789.989 表示 789.989e078.9989e17.89989e20.789989e3 等 3.字符常量用一对单引号括起来的一个字符 如: a B ?注意:(1)其中单引号只作为定界符使用,并不是字符常量的组成部分,即在输出字符常量时,一对单引号并不输出;(2) , 是不允许的;(3)在 C 语言中,字符常量具有数值,在 ASC

10、代码表中, a的值为 97, A的值为 65;(4)字符常量在计算机内部以整数常量的形式存放,因此,字符常量与整型常量等价 如: a=D+8; 等价于 a=68+6;b=?+x; 等价于 b=63+88; 4.转义字符常量在 C 语言中,允许另一种特殊形式的字符常量,即以一个“”开头的字符序列。意思是将“”后面的字符转换成为另外的意思。转义字符都是以“”开头 p48如:n t b r f ” 101 x0A例 1: 转义字符 1main( )printf(“boytgirln”);printf(“n 12 3t 45r6t7n”);结果: boy girl8 列6 45例 2: 转义字符 2m

11、ain( )printf(“I say:Goodby!”n”);5.字符串常量由一对双引号括起来的字符序列 如: “Hello” “C Program” “How are you!”注意:(1)字符串常量与字符常量的区别 如: “a” a(2)容量不同(3)占用内存空间大小不同 0第四节 变量1.变量和变量的地址变量在程序运行过程中,其值可以发生变化的量 变量的地址定义变量后,变量在内存中存放的位置如: 变量 y 的值为 6,而 y 的地址为 1800H则说明 1800H 存储单元中存放的值为 62.变量说明语句一般形式:数据类型 变量名如: int age,total;注意:(1)可以在一个

12、数据类型后说明多个相同类型的变量,变量名之间用“, ”隔开,数据类型与变量名之间至少要用一个“ ”隔开;(2) “;”位于最后一个变量之后;(3)必须放在变量使用之前,通常放在函数体开头部分;(4)变量一经说明,每个变量就有一个特定的类型,在编译时就对其分配相应的存储空间;3.整型变量用于存放整数的变量基本类型符 int -215215-1 2 个字节 短整型 short int -215215-1 2 个字节 长整型 long int -231231-1 4 个字节无符号型 unsigned int 0216-1 2 个字节 unsigned short 0216-1 2 个字节 unsig

13、ned long 0232-1 4 个字节 例: 整型变量的定义与引用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=%dn”,x,y);4.实型变量用于存放实数的变量单精度 float 双精度 double长双精度 long double如: float a,b,c; /*定义 a,b,c 为单精度实型变量*/double x,y; /*定义 x,y 为双精度实型变量*/long double z; /*定义 z 为长双精度实型变量*/例: 实型数据的舍入误差main(

14、 )float x,y;x=1.23456789e10;y=x+20;printf(“x=%fny=%fn”,x,y);结果: x=12345678848.000000y=12345678848.0000005.字符型变量用于存放字符数据的变量类型符 char 0255 1 个字节 如: char ch1,ch2; /*定义 ch1,ch2 为字符变量*/ch1=a; /*把字符常量a赋给字符变量 ch1 */ch2=b; /*把字符常量b赋给字符变量 ch2 */注意:(1)在 0255 内,字符型变量与整型变量可以通用如: char c1=97; int c1=a; (2)一个字符既可以以

15、字符形式输出,也可以以整数形式输出例: 字符以整数形式输出main( ) char c1,c2;int c3,c4;c1=97; c2=b;c3=a; c4=98;printf(“%c%c%c%cn”,c1,c2,c3,c4);printf(“%d%d%d%dn”,c1,c2,c3,c4);(3)字符数据可以参与算术运算例 1: 大小写字母转换main( ) char c1,c2;printf(“Please input a letter:”);scanf(“%c”,c2=c1+A-a;printf(“%ct%cn”,c1,c2);例 2:main( ) char c;c=b+5-3;prin

16、tf(“%cn”,c);第五节 变量赋初值C 语言规定,允许在定义变量的同时给变量初始化(即赋初指)方法 1:int a=3;float f=3.5; char c=e;int a;a=3;float f; f=3.5char c;c=e;方法 2:被定义变量的一部分赋初值。如: int a,b,c=5; /*定义 a,b,c 为整型变量,其中 c 的值为 5*/方法 3:对几个变量赋初值如: int a=5,b=5,c=5; /*定义 a,b,c 为整型变量,初值均为 5*/如: int a=b=c=5; 是错误的第六节 各类数值型数据间的混合运算1.隐式转换:double floatlon

17、gunsignedint char、short例: 10+a+i*f-d/e设: i 为整型 intf 为单精度实型 floatd 为双精度实型 doublee 为长整型 long2.强制类型转换:(显式转换)强制类型转换运算符( )(类型名) 表达式如: int n; /*定义 n 为整型变量*/float d; /*定义 d 为实型变量*/d=sin(double)n); /*将 n 转换为 double 型*/如: (double)a; /*将 a 转换为 double 型*/转换规则:(int)(x+y); /*将 x+y 的值转换为 int 型*/第七节 算术运算符和算术表达式一、运

18、算符简介 p55二、算术运算符和表达式1. 基本运算符:+ - * / %注意:(1)*不能省,也不能写成或(2)%参与运算量必须为整数,既它只适用于 int 和 char 型第四讲 最简单的 C 程序设计第一节 C 语言的概述本课介绍语言程序设计的基本方法和基本的程序语句。从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构 。这三种基本结构可以组成所有的各种复杂程序。语言提供了多种语句来实现这些程序结构。 本章介绍这些基本语句及其应用,使得对程序有一个初步的认识, 为后面各章的学习打下基础。C 程序是由语句构成的,可分为以下 4 类:1.流程控制1)选择语句if

19、-else (条件语句)switch-case (多分支选择语句)2)循环语句for (循环语句)while (循环语句)do-while (循环语句)3)辅助控制语句break (终止执行 switch 或循环语句) continue (结束本次循环)goto (转向语句)return (从函数返回语句)2.表达式语句1)赋值语句例: x=8 /*赋值表达式*/x=8; /*赋值语句*/一个语句必须在最后出现“;”任何赋值表达式都可以加上分号成为赋值语句例: a*=12x=y=z=8i+2)函数调用语句例: printf(“This is a example.”) /*函数调用语句*/sca

20、nf(“%d”,4)复合语句例: c=a+b;z=3*x+y/10;printf(“%d,%dn”,c,z);第二节 数据的输入输出C 语言本身不提供输入输出语句,输入输出操作是由函数来实现的.如: printf()函数和 scanf()函数第三节 格式输入和输出1.printf()函数1)一般形式Printf(“格式控制”,输出表列)例: printf(“x=%d,y=%fn”, x,y);格式控制 输出表列2)格式控制部分说明格式说明符包含 3 种信息: 转义字符: b t n 344普通字符: printf(“a=%d”,a);格式说明符符 号 作 用 %d 十进制有符号整数 %u 十进

21、制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 3)输出表列部分说明a.printf()函数中格式控制部分的“格式说明符”和“输出表列”数值类型上必须一一对应例; printf(“x=%f,c=%dn”,x,c);b. 输出表列可以是常量变量表达式.如果是表达式,则printf()函数将先对其进行计算,再输出结果例; main()printf(“x=%f”,3*4.8+9/4-sqrt(2.0);c.printf()函允许没有输出表列部分,它表

22、示输出一个字符串格式为: printf(“输出字符串”);例; printf(“please input a number:”);2.scanf()函数1)一般形式scanf(“格式控制”,地址表列)其中:格式控制与 printf( )函数类似 , 地址表列:由若干个变量地址组成(变量前加“scanf(“%d,%d”,printf(“%d,%dn”,a,b); 2)格式控制部分说明a.标准 C 语言在 scanf()函数中不使用%u 说明符,对 unsigned 型数据以%d,%o,%x 格式输入b. 可以指定数据所占列数,系统自动按它截取所需数据例: scanf(“%3d%2d”,运行时输入

23、:12345(回车)a 得到 123 b 得到 45c.输入数据时不能规定精度例: scanf(“%5.2f”,3)地址表列部分说明a. ” /*非法*/b. 输入数据时,如果“在格式控制”字符串中,除了格式说明还有其他字符,则在输入数据时应输入对应字符例 1: scanf(“%d,%d”, 运行时应输入 1,3例 2: scanf(“%d:%d”, 运行时应输入 1:3例 3: scanf(“x=%d y=%d”, 运行时应输入 x=1 y=3c.输入数据时, 如果“在格式控制”字符串中没有字符 , 则各数据之前可以用 (空格)TabEnter(回车)作为间隔符例: scanf(“%d%d%

24、d%d”, d.输入数据为字符型(%c),间隔符用空格回车的话,将不被认为是间隔符会被认为是有效数据例: main()char c1,c2;scanf(“%c%c”,printf(“%c%c”,c1,c2); 运行时输入 a b /*上机*/第四节 字符数据输入输出1.putchar()函数一般形式: putchar(参数)例 1: #include main() char c1,c2;c1=H; c2=I;putchar(c1);putchar(c2); 结果:HI例 2: #include main() int a;char c;c=A; a=66;putchar(c);putchar(n

25、);putchar(a);putchar(n);putchar(103);结果: ABC2.getchar()函数1)一般形式: getchar()2)使用方法:a.把 getchar()函数得到的字符代码赋给一个字符型变量整型变量例: int a;a=getchar();b.把 getchar()函数得到的字符代码直接作为表达式的一部分,而不赋给任何变量例: printf(“%c”,getchar();例: #include main() int a;printf(“Please enter a character:”);a=getchar();printf(“%ct%dt%ot%xn”,a

26、,a,a,a);putchar(a);运行时输入 A(回车)结果: A 65 101 41习题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”,4.利用 getchar()函数和 putchar()函数显示由键盘输入的一个字符。#include main()char c;c

27、=getchar();putchar(c);5.编程:使用 getchar()函数,从键盘输入一个小写字母,要求输出大写字母。#include main()char c1;c2c1=getchar();c2=c1-32;putchar(c2);6.从外部输入 a,b,c 三个整数,然后把 c中的值给 a,a 中的值给 b,b 中的值给c,最后输出 a,b,c 的值,写出程序代码。第五讲 逻辑运算和选择结构第一节 关系运算符和关系表达式关系运算实际上就是一种“比较运算” ,即用关系运算符对两个运算量进行比较,比较他们之间的“大小关系” 。例 : 关系表达式: y3 用于判断 y 是否大于 31.

28、关系运算符及其优先次序C 语言中的关系运算符运算符 名 称 示 例=!=小于 小于或等于 大于 大于或等于 等于不等于aba=ba=ba!=b示例说明a小于ba小于或等于b a大于ba大于或等于b a等于b a不等于b 优先次序优先级相同(高)优先级相同(低)关于优先次序的说明如下:(1)关系、算术、赋值运算符的优先级关系如下:算术运算符(高) 关系运算符(中) 赋值运算符(低)2)关系运算符的结合方向是“自左向右”例:c+da+b (c+d)a+bab!=c (ab)!=ca=b=c a=(b=c)x!=a*b31 的值分析: x=531 x=(53)1=11=0 例 4: 若 a=3, b

29、=4, c=5 则 : ab 表达式的值为 0a+bc 表达式的值为 1f=abc 表达式的值为 0第二节 逻辑运算符和逻辑表达式C语言中的关系运算符关系表达式只适用于描述单一的条件,如:x0 用于描述“x 大于 0”,对于较复杂的复合条件就需要若干个表等式连接起来才能描述,如: 描述“x 大于 0 且不等于 2”,就需要将两个表达式 x0 和 x!=2 连接起来,即 x0else z=b;1. if(n0)if(ab) z=a;else z=b;第四节 条件运算符例: if(xy) max=x;else max=(xy)?x:y;max=y;一般形式: 表达式 1?表达式 2:表达式 3条件

30、运算符说明:(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(表达式) case 常量表达式 1:语句 1 ;break;case 常量表达式 2:语句 2 ;break; case 常量表

31、达式 n:语句 n ;break;default: 语句 n+1; break;注意点:(1)各个 case 常量表达式不一定按其值的大小顺序排列,但各个 case 后的常量表达式必须是不同的值。例: switch(ch) caseA:语句 1; break;caseC:语句 2; break;caseB:语句 3; break;caseA:语句 4; break;default:语句 5;(2)在 switch-case 语句中,多个 case 可以共用一条执行语句。例: caseA:caseB:caseC: printf(“60”);break;(3)若 case 后面的语句执行完后没有

32、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,结果: 12,8(4) switch-case 语句的嵌套例: #include “stdio.h”main() int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0:a+;break;case

33、1:b+;break;case 2: a+;b+; break;printf(“a=结果:a=2,b=1程序举例1.求一个整数的绝对值。main()int a;scanf(“%d”,if(ab) t=a;a=b;b=t;printf(“%d,%d”,a,b);x2 2 x=03.计算分段函数 y= 的值 x x=0)y=x*x-2;elsey=x;printf(“%.2f”,y); if-else-if 语句格式: if(表达式 1)语句 1 ;else if (表达式 2)语句 2 ; else if (表达式 n-1)语句 n-1 ;else语句 n ;第六讲 循环结构程序设计第一节 概述

34、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.设一个变量 sum 用于存放最后的结果,初值为 0s2.设一个循环变量 i,初值为 1s3.判断 i 是否小于等于 100,若是执行 s4 ;否则程序结束s4. sum=sum+is5. i+s6. 返回 s3例 3:

35、goto 语句使用示例: 计算 1+2+3+4+100程序: main()int sum=0,i=1;loop:if(n0);问最后 b 的值为多少?循环了多少次?3. i=1;a=0;s=1;do a=a+s*i;s=-s;i+;while(i main() char c;while(c=getchar()!=?)putchar(+c);第七讲 数组第一节 一维数组的定义与引用1.一维数组的定义定义方式: 类型说明符 数组名常量表达式;如: int number10;/*表示定义一个名为 number 的数组,此数组有 10 个元素,数据类型为整型*/说明:1.数组名的命名与变量命名规则相同

36、2.数组名后面只能用方括号括起常量表达式 如: int a(0);是错的3.常量表达式表示元素的个数,即数组的长度。整个数 组所占字节数=类型长度数组长度4.常量表达式中不能包括变量,即 C 语言不允许定义动态数组如2: int a=8;char stra;如1: int a;char stra;一维数组初始化的一般形式:类型说明符 数组名常量表达式=值 0,值 1,;如: int number4=1,2,3,4;3.一维数组元素的引用数组元素的表示形式:数组名下标 其中,下标可以是整型常量或整型表达式如: a0=a5+a7-a2*3;例: 数组元素引用main( ) /* 主函数 main(

37、 ) */int i,a10; /* 定义了一个整型变量 i,和一个整型数组,数组名为 a */for(i=0;iy?x:y;return(z);第九讲 指针第一节 指针的基本概念1.指针变量的地址当 C 源程序在编译时,编译程序对遇到的变量分配连续的内存单元.例: 有变量定义语句如下:short a=3;long b=5;float c;编译系统给变量分配的存储空间如下:5003500450055006500750085009501050025001 short型变量型变量 a5012long型变量型变量 bfloat型变量型变量 c3550115013注意:C 语言规定:如果一个变量占用一个字节时,该字节的地址就是该变量的地址;如果变量用连续的多个字节,那么第一个字节的地址就是该变量的地址.变量、数据类型和地址对照表变量名 数据类型 地址abcshortlongFloatttTTT他t5001500350072.指针变量用于存放地址的变量直接访问:通过变量名直接使用变量间接访问:将变量的地址存放到另一个“特殊”的变量中,通过该变量来存取变量的值地址指针“特殊”的变量指针变量C 程序中,变量的值是通过运算符“/*得到变量 a 的地址*/

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报