C程序设计入门资料.doc_第1页
C程序设计入门资料.doc_第2页
C程序设计入门资料.doc_第3页
C程序设计入门资料.doc_第4页
C程序设计入门资料.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第一讲 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”); 注意:1main表示“主函数”,每一个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”,&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); 小结:C程序结构特点1. C程序由函数构成,一个程序至少有一个main( )函数2. 一个函数由两部本组成:(1)函数说明部分-int max(int x,int y);(2)函数体- 3. 一个程序总是从main()函数开始执行,由主函数结束。4. 每个语句和变量的定义的最后必须要有一个分号。5. C语言本身没有提供输入输出语句,由库函数 scanf( )和printf( )来实现6. /* */表示注释第二讲 C程序运行环境及调试C语言源程序代码编写好以后,要通过一定环境编译、解释、运行才能得到我们想要的结果。常用的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菜单用鼠标单击New菜单,出现新建对话框,如图2-3所示。 图 2-3 新建对话框 用鼠标单击新建对话框中的“file(文件)”面板,在列表中选择“C+Source file”选项,在“File”输入框中输入一个文件名。文件名可以使用任何字母和数字的组合,也可以使用中文,但是文件名中不能有空格。在文件名的后面必须加上“.c”,表示这是一个C语言程序。如图2-4: 图 2-4然后单击“OK”按钮,在程序编辑窗口中输入程序即可。第三节 编译运行程序编写完成后就可以编译运行了。C语言源程序的后缀(扩展名)是.C,计算机不能直接执行。C程序经C编译器编译后,生成后缀为.obj的文件,这个文件是一个二进制文件,叫做目标文件。目标文件仍然无法直接执行,必须通过链接程序链接生成.exe的可执行文件后,才能直接执行。第三讲 C语言的数据类型、运算符和表达式第一节 标识符定义:用来标识常量名、变量名、函数名、数组名、文件名等对象的有效字符序列。命名规则: 1)由字母(大小写)、数字、下划线 2)第一个字符必须为字母或下划线如: 正确的命名为:ab name file1 _sum 错误的命名为:5x Doc. Bao ei int注意事项:(1)区分大小写,即大写字母和小写字母被认为是不同的字符。如: name Name NAME(2)C语言的关键字是一类特殊标识符,它们具有特定的含义,已被C语言做其他用途,即关键字不能做变量名、常量名、函数名、文件名等。第二节 数据类型1.概述1)对“数据”的描述在程序中需要指定数据的类型即数据的组织形式,即数据结构。2)对“动作”的描述值对数据的加工处理步骤与过程,即算法。2.数据类型C语言中,数据结构是以数据类型的形式来体现的。数据类型是指数据的内在存储方式。C语言提供了丰富的数据类型 p38。从另一个角度来看: C语言中的数据又可以分成: 常量 和变量第三节 常量整型常量(整数)如: 123 -5 8;实型常量(实数)如: 5.4 0.486 ;字符常量(字符)如: a H;转义字符如: n 012;字符串常量如: “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.341095.6789E-10表示5.678910-10-58.99e-6表示-58.9910-6注意:(1)指数部分只能是整数,并且指数形式的3个组成部分不能省略如: 12.34e 5E e 5e3.6 等 都是错的(2)一个实数可以有多种表示形式如: 789.989 表示 789.989e0 78.9989e1 7.89989e2 0.789989e3 等 3.字符常量用一对单引号括起来的一个字符 如: a B ?注意:(1)其中单引号只作为定界符使用,并不是字符常量的组成部分,即在输出字符常量时,一对单引号并不输出;(2) , 是不允许的;(3)在C语言中,字符常量具有数值,在ASC代码表中,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 girl 8列 6 45例2: 转义字符2main( ) 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)可以在一个数据类型后说明多个相同类型的变量,变量名之间用“,”隔开,数据类型与变量名之间至少要用一个“ ”隔开;(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个字节 unsigned 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( ) float x,y; x=1.23456789e10; y=x+20; printf(“x=%fny=%fn”,x,y); 结果: x=12345678848.000000 y=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)一个字符既可以以字符形式输出,也可以以整数形式输出例: 字符以整数形式输出 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”,&c1); c2=c1+A-a; printf(“%ct%cn”,c1,c2); 例2: main( ) char c; c=b+5-3; printf(“%cn”,c); 第五节 变量赋初值 C语言规定,允许在定义变量的同时给变量初始化(即赋初指)方法1:int a=3;float f=3.5; char c=e;int a; a=3; float f; f=3.5 char 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 float转换规则:longunsignedint char、short例: 10+a+i*f-d/e设: i为整型 int f为单精度实型 float d为双精度实型 double e为长整型 long2.强制类型转换:(显式转换)强制类型转换运算符( ) (类型名) 表达式如: int n; /*定义n为整型变量*/ float d; /*定义d为实型变量*/ d=sin(double)n); /*将n转换为double型*/如: (double)a; /*将a转换为double型*/ (int)(x+y); /*将x+y的值转换为int型*/第七节 算术运算符和算术表达式一、运算符简介 p55二、算术运算符和表达式1. 基本运算符:+ - * / %注意:(1)*不能省,也不能写成或(2)%参与运算量必须为整数,既它只适用于int和char型第四讲 最简单的C程序设计第一节 C语言的概述本课介绍语言程序设计的基本方法和基本的程序语句。从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构。 这三种基本结构可以组成所有的各种复杂程序。语言提供了多种语句来实现这些程序结构。 本章介绍这些基本语句及其应用,使得对程序有一个初步的认识, 为后面各章的学习打下基础。C程序是由语句构成的,可分为以下4类:1.流程控制 1)选择语句 if-else (条件语句) switch-case (多分支选择语句) 2)循环语句 for (循环语句) while (循环语句) do-while (循环语句) 3)辅助控制语句 break (终止执行switch或循环语句) continue (结束本次循环) goto (转向语句) return (从函数返回语句)2.表达式语句1)赋值语句 例: x=8 /*赋值表达式*/ x=8; /*赋值语句*/一个语句必须在最后出现“;”任何赋值表达式都可以加上分号成为赋值语句 例: a*=12 x=y=z=8 i+2)函数调用语句 例: printf(“This is a example.”) /*函数调用语句*/ scanf(“%d”,&c)3)空语句 例: ;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 十进制无符号整数 %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()函允许没有输出表列部分,它表示输出一个字符串 格式为: printf(“输出字符串”); 例; printf(“please input a number:”);2.scanf()函数 1)一般形式scanf(“格式控制”,地址表列)其中:格式控制与printf( )函数类似 , 地址表列:由若干个变量地址组成(变量前加“&”)例: 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%2d”,&a,&b); 运行时输入:12345(回车) a得到 123 b得到45c.输入数据时不能规定精度 例: scanf(“%5.2f”,&x);3)地址表列部分说明a. ”&”不能少 例: scanf(“%d,%d”,a,b); /*非法*/b. 输入数据时,如果“在格式控制”字符串中,除了格式说明还有其他字符,则在输入数据时应输入对应字符例1: scanf(“%d,%d”,&a,&b); 运行时应输入 1,3例2: scanf(“%d:%d”,&a,&b); 运行时应输入 1:3例3: scanf(“x=%d y=%d”,&x,&y); 运行时应输入 x=1 y=3c.输入数据时, 如果“在格式控制”字符串中没有字符, 则各数据之前可以用 (空格)TabEnter(回车)作为间隔符 例: scanf(“%d%d%d%d”,&a,&b,&c,&d); d.输入数据为字符型(%c),间隔符用空格回车的话,将不被认为是间隔符会被认为是有效数据 例: main() char c1,c2; scanf(“%c%c”,&c1,&c2); 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); 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,a,a,a); putchar(a); 运行时输入 A(回车) 结果: A6510141习题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()函数 显示由键盘输入的一个字符。#include main() char c; c=getchar(); putchar(c);5.编程:使用getchar()函数,从键盘输 入一个小写字母,要求输出大写字母。#include main() char c1;c2 c1=getchar(); c2=c1-32; putchar(c2);6.从外部输入a,b,c三个整数,然后把c 中的值给a,a中的值给b,b中的值给c, 最后输出a,b,c的值,写出程序代码。第五讲 逻辑运算和选择结构第一节 关系运算符和关系表达式关系运算实际上就是一种“比较运算”,即用关系运算符对两个运算量进行比较,比较他们之间的“大小关系”。 例 : 关系表达式: y3 用于判断y是否大于31.关系运算符及其优先次序C语言中的关系运算符C语言中的关系运算符 运算符名 称 示 例=!=小于 小于或等于 大于 大于或等于 等于不等于ababa=ba=ba!=b示例说明a小于ba小于或等于b a大于ba大于或等于b a等于b a不等于b 优先次序优先级相同 (高)优先级相同 (低)关于优先次序的说明如下:(1)关系、算术、赋值运算符的优先级关系如下:算术运算符(高) 关系运算符(中) 赋值运算符(低)2)关系运算符的结合方向是“自左向右” 例: c+da+b (c+d)a+b ab!=c (ab)!=c a=bx a=(b=c a=(b=c) x!=a*bc x!=(a*b)c)2.关系表达式例1: xy, 2*a+bc-d, (x=2)=(y=4), ab在C语言中,关系表达式的结果为1或0。当关系表达式成立时,其结果为1;否则值为0。 例2: 331 的值分析: x=531 x=(53)1 =11 =0 例4: 若 a=3, b=4, c=5则 : ab 表达式的值为 0 a+bc 表达式的值为 1 f=abbc 表达式的值为 0第二节 逻辑运算符和逻辑表达式关系表达式只适用于描述单一的条件,如:x0用于描述“x大于0”,对于较复杂的复合条件就需要若干个表等式连接起来才能描述,如: 描述“x大于0且不等于2”,就需要将两个表达式x0和x!=2连接起来,即x0&x!=2,其中“&”是C语言中的逻辑运算符。1.逻辑运算符及其优先次序 运算符 名称 示例!&|逻辑非 逻辑与 逻辑或 !aa&ba|b示例说明a非a与b a或b优先次序 低C语言中的逻辑运算符高低关于优先次序的说明如下: (1)逻辑运算符的结合方向是“自左向右”。(2) 运算符优先次序!(非)算术运算符关系运算符&和|赋值运算符 高 高 低 低 运算符的优先级例: (ab)&(xy) ab&xy (a=b)|(x=y) a=b|x=y (!a)|(ab) !a|ab2.逻辑表达式 一个逻辑表达式中可以包含多个逻辑运算符。 如:xy&ay&x!0 的值为:1(3)在逻辑表达式求解中,并不是所有逻辑运算符都执 行,有时只需执行一部分运算就可以得出结果。 例1: x&y a|b|c例2: 设 a=1, b=2, c=5, d=4, m=n=1, 则 (m=ab)&(n=cd) , 值为 0 , m=0 , n=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;如: 针对上述情况,分析下面两段程序的功能 1. if(n0) if(ab) z=a; else z=b; 2. if(n0) if (ab) z=a; else z=b;第四节 条件运算符例: if(xy) max=x; else max=(xy)?x:y; 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(表达式) case 常量表达式1:语句1 ;break; case 常量表达式2:语句2 ;break; case 常量表达式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后面的语句执行完后没有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() int 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= 的值 x x=0) y=x*x-2; else y=x; printf(“%.2f”,y); if-else-if语句格式: if(表达式1) 语句1 ; else if (表达式2) 语句2 ; else if (表达式n-1) 语句n-1 ; else 语句n ; 第六讲 循环结构程序设计第一节 概述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用于存放最后的结果,初值为0 s2.设一个循环变量i,初值为1 s3.判断i是否小于等于100,若是执行s4 ;

温馨提示

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

评论

0/150

提交评论