大学C语言第1讲C语言基础知识

大学C语言第1讲C语言基础知识

ID:41225866

大小:479.06 KB

页数:47页

时间:2019-08-19

上传者:U-145848
大学C语言第1讲C语言基础知识_第1页
大学C语言第1讲C语言基础知识_第2页
大学C语言第1讲C语言基础知识_第3页
大学C语言第1讲C语言基础知识_第4页
大学C语言第1讲C语言基础知识_第5页
资源描述:

《大学C语言第1讲C语言基础知识》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

第1讲C语言基础知识一、计算机系统与计算机知识体系二、程序设计与程序设计语言三、C程序的基本结构和运行过程四、数据类型、常量、变量五、赋值运算符和赋值表达式六、基本的输入输出七、算术运算符和算术表达式八、数学标准函数九、数据类型转换 一、计算机系统与计算机知识体系计算机系统软件硬输入设备输出设备存储器运算器件控制器 典型的计算机硬件组成内存中央处理器总线外围设备外存输入/输出软盘、硬盘、光盘、U盘、…键盘、显示器、鼠标、… 计算机知识体系人(用、编程序)高级语言(C,C++,Java等)数据结构软件工程软件编译程序数据库管理系统操作系统计算机硬件组成原理 什么是ASCII码?计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(AmericanStandardCodeforInformationInterchange,美国标准信息交换码)分析1位二进制数可以表示2种状态7位二进制数可以表示128种状态(0~127)计算机中用8位(一个字节)存储ASCII码,其最高位(b7)用作奇偶校验位。ASCII对应键盘值 数的进制10进制2进制8进制16进制 二、程序设计与程序设计语言什么是程序?可以连续执行的一条条指令的集合。对计算任务的处理对象和处理过程的描述。用什么写出程序?很多种计算机语言,比较熟悉的高级语言,如:C、Basic、C++、Java等,还有汇编语言等。高级语言接近自然语言的习惯,容易编写,容易理解和交流,是给人看的语言。计算机只能接受和处理由0和1的代码构成的二进制指令或数据,称为“机器语言”。高级语言程序一定要转换(如编译)成机器语言程序才能在计算机中被执行。 编译程序与开发环境编译程序C语言源程序.c二进制机器指令.obj可执行程序.exeC语言编译程序连接程序你知道的开发环境?(环境包括编写、编译、连接、运行程序)MicrosoftCTurboCBorlandCQuickC……通常C++编译系统兼容C,我们用VisualC++6.0 C语言C语言的产生C语言是贝尔实验室于70年代初研制出来的,用于编写UNIX。后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSIC标准(1989年再次做了修订)。C语言的特点中间语言的特点:C语言同时具有汇编语言和高级语言的优势。面向过程,结构化程序设计语言应用非常广泛,体现程序员的水平语言简洁、紧凑,使用方便、灵活。运算符极其丰富,表达能力强。可移植性好区别C语言与C语言开发环境 程序设计程序设计的发展面向计算机的程序设计二进制形式、汇编面向过程的程序设计按功能划分,自顶向下,逐步求精面向对象的程序设计按对象划分,研究对象之间的关系 三、C程序的基本结构和运行过程一个简单的C程序是由函数组成的。•仅且仅有一个主函数#includemain(),程序总是从主intmain()函数开始运行。{•还可以有多个其它函数printf("Hello,World. ");return0;•自己编的}•别人编的•系统提供的库函数。 语句函数体由语句组成。语句:<表达式><分号>常量、变量、运算符写各种表达式:算术表达式、关系表达式、赋值表达式、…一行可以写多个语句,一个语句也可以写在多行上。 语句加注释的方法:/*……*/或者//……只有;的语句叫“空语句”,什么都不执行。main(){;}//什么时候用?复合语句:用{}括起来的多个语句,什么时候用?main(){……{……}/*复合语句。注意:右括号后不需要分号。*/……} 集成开发环境很多产品可以用上课暂用MicrosoftVisualc++6.0你当然可以用别的什么,比如TurboC2.0,TurboC++3.0等等打开MicrosoftVisualc++6.0File ewprojectsWin32ConsoleApplication选好工程名和位置,依向导指示做试着进行调试(书附录C)单步运行,设断点,运行中查看变量值等。 TheBuildProcess 调试例子intmain(){intx,y,sum;/*定义变量*/scanf("%d%d",&x,&y);/*键盘输入变量值*/sum=0;//变量赋初值sum=x+y;//计算printf("sum=%d ",sum);/*输出计算结果*/return0;} 关键字数据类型关键字:char,double,enum,float,int,long,short,signed,struct,union,unsigned,void控制语句关键字:break,case,continue,default,do,else,for,goto,if,return,switch,while存储类型关键字:auto,extern,register,static其它关键字:const,sizeof,typedef 四、数据类型、常量、变量存什么样的数据数据的存储空间与取值范围(基本数据类型)8位(1个字节)整型16位(2个字节)实型32位(4个字节)字符型64位(8个字节)数据是否带符号数据值是否会改变有符号型常量无符号型变量(必须先定义再使用)不同的数据集合上定义了不同的运算长度和精度的限制 基本数据类型关键字shortunsigned[int]intfloatdoublecharlong表示数据短整无符号整型整型实型实型字符型长整型单精双精度度占字节数244481取值范围 常量在程序运行过程中其值始终保持不变的量。整型常量120-9870634(八进制)123L650x16(十六进制)实型常量-10.0123.4f9.0E-28123.4(默认double型)字符常量‘a’‘A’65‘@’‘’‘’’(转义字符)字符串常量“A”“1234” 字符串常量用双引号括起来的字符串,如“What’syourname?”,“”字符串在内存中占的空间为:字符串长度+1,因为字符串后面默认有‘’ 问题为什么10和10.0不同?123和123L有什么不同?0634与634有什么不同?0x10是多少?“A”和‘A’的区别?“1234”和1234的区别? 符号常量程序代码中多处用到某个数据,且程序逻辑中为常量针对问题变化,可能维护和修改。可以把这种数据定义为符号常量,即用一个标识符代表一个常量。#definePRICE100/*define是一条预处理命令作用是把标识符定义为后面的常量*/intmain(intargc,char*argv[]){inta,b;a=100;b=a*PRICE;可懂度更好。printf("b=%d ",b);维护和修改程序方便。return0;} 符号常量符号常量不可以修改#definePRICE100/*define是一条预处理命令作用是把标识符定义为后面的常量*/intmain(){inta,b;a=100;PRICE=10;//错误语句b=a*PRICE;printf("b=%d ",b);return0;} C预定义的转义字符序列(P13) 变量必须先定义,再使用注意大小写敏感定义的格式:<数据类型><变量名>[,<变量名>[,…]]intnum;charch;floatpay1,pay2; 定义变量就是在内存中申请空间存放变量值numintnum;5一个整型数大小charch;cha一个字符大小定义之后立即初始化是好的编程风格。不然你引用它时,可能是随机值,没有错误提示。例:inta;printf("%d ",a);//a值随机 变量命名:字母,数字,下划线取个对名字第1个字符必须是字母或下划线区分大小写取个好的名字变量赋初值定义时赋初值intdata1=0;intdata2(0);赋值操作赋初值f=0.0;f=data1+1;键盘输入赋初值 五、赋值运算符和赋值表达式赋值号“=”是一个运算符,称为赋值运算符。赋值表达式:变量名=表达式;//右边的值赋给左边说明:(1)赋值号左边必须是一个代表某一存储单元的变量名。(2)赋值号右边必须是C语言中合法的表达式。功能:先求出右边表达式的值然后把此值赋给赋值号左边的变量。优先级与结合性优先级:只高于逗号运算符,比任何其他运算符的优先级都低。结合性:自右向左 例x=2+7/3;y=x;//将x变量当前值赋给y变量。y=x+1//y为x+1的值,x值不变。x=x+1;//将x变量当前值加1再赋给x变量。x=x;/*将x变量当前值赋给x变量。合法的表达式,但无意义。*/a=b=7+1;//正确的表达式。7+1的值8先赋给b,再赋给a。a+b=c;/*错误的表达式。左边只能是变量名。*/x=1,y=2; 复合赋值运算符+=例:n+=1;等价于:n=n+1;-=例:n-=1;等价于:n=n-1;*=例:n*=1;等价于:n=n*1;/=例:n/=1;等价于:n=n/1;%=例:n%=1;等价于:n=n%1;注意:两个符号之间不可以有空格优先级:与赋值运算符相同;结合性:自右至左例:已有变量a,其值为9,计算表达式a+=a-=a+a;的值。结果:a为-18 六、基本的输入输出标准的输入设备---键盘标准的输出设备---显示器标准的输入输出函数实现数据流的输入输出需要包含头文件:stdio.h#include//多用于系统头文件#include“stdio.h”//另一写法 非格式化输入输出getchar()charch;charch;ch=getchar();ch=getchar();putchar(ch);putchar()putchar(' ');putchar(ch); 格式化输入输出scanf(<格式控制字符串>,<变量地址>[…)intx,y;floatf1,f2;scanf("%d%d%f%f",&x,&y,&f1,&f2);printf(<格式控制字符串>,<表达式>[…)printf("%d%d%f%f ",x,y,f1,f2);printf("%d%f ",x+y,f1+f2); 部分格式说明符%c单个字符%d十进制数%e科学计数%f浮点十进制数%s字符串%%显示百分号%0八进制数%x十六进制数 输出格式控制%m场宽输出数据在屏幕上占的列数%m.nn为输出实型数时为小数点后位数,输出整型数时为最少显示的位数。控制对其齐方式:%后加-为左对齐,缺省为右对齐作业:阅读P25 七、算术运算符和算术表达式算术运算符:+-*/%23+908.8-7a*2.74%4不同的数据类型上定义了不同的操作%只用于整型数。当数据类型不同时如何运算,结果如何保存?二进制位数少的数据类型自动转换为二进制位数多的数据类型(即向精度到的数据类型转换),再进行运算。作业:阅读P26 提问inti=5;floatf=1.0;doubled=1.0;charc=‘A’;i+10结果是什么?i+f结果是什么?i+d结果是什么?printf("%c ",c+25);12/i结果是什么?12.0/i结果是什么?自学[P26,例1-8],[P27,例1-9],上机调试这两个程序。 运算符学习总结弄清的关键问题运算符的意义适用的数据集合优先级结合性 自加、自减运算符运算符“++”和“--”是单目运算符(1)后缀形式:i++。i先参与运算,再自加。(2)前缀形式:++i。i先自加,再参与运算。一种特殊的赋值运算,比赋值效率高。i++,相当于i=i+1;i--,相当于i=i-1。例1:inta=5;a=a*(a++);//结果:a为26例2:inta=5;a=a*(++a);//结果:a为36注意:运算对象可以是整型、实型、字符型变量,不可以是常量和其他的表达式。例如,3++、(i+j)++都是错误的。 运算符的优先级和结合性运算符优先级结合性++--高右结合(不同系统可能不同)*/%次之左结合+-低左结合圆括号()的优先级最高。 ++和--的优先级和结合性优先级:高于其他算术运算符。(多用圆括号)例3:inta=5;a=a*a++;//结果:a仍为26结合性:自右至左例4:intx=1,y=2;printf("%d ",x+++y);//结果:3例5:intx=1,y=2;printf("%d ",(x++)+y);//结果:3例6:intx=1,y=2;printf("%d ",x+(++y));//结果:4 八、数学标准函数系统有了的标准库函数用于数学运算的部分函数原型在math.h中,要包含它。见书P30作业:阅读[P31,例1-10],上机调试。 九、数据类型转换赋值运算中的数据类型转换(1)“=”两边数据类型一致,赋值操作正确执行。(2)“=”两边数据类型不一致,但系统可以将右侧的数据类型自动或强制地转换为左边的数据类型,赋值操作可以执行,并称此赋值为“赋值兼容”。(3)“=”两边数据类型不一致,但系统也不能将右侧的数据类型转换为左边的数据类型,赋值操作不可以执行,并称此赋值为“赋值不兼容”。 注意:当左边的数据范围与右边的不一致时,虽然符合赋值兼容规则,赋值可以执行,但有可能导致数据有错误。强制类型转换强制运算符:是将一个表达式的值转换成指定的类型,这种转换是根据人为要求进行的。强制类型转换表达式的形式如下:(类型名)(表达式)例1:(int)3.234转换成整数3例2:(double)(10%3)把10%3所得结果1转换成双精度数1.0000000000000 位运算自学P31 作业熟悉开发环境。尝试调试程序。读书,读程序,越多越好。作业查看“教育在线”本课程网站。注意每周提交作业的截止时间。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭