您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 第一章 C语言程序设计初步
第一章C语言程序设计初步1.1程序与程序开发及程序设计语言符号系统程序设计方法掌握好语言的三个重要方面程序设计语言定义:(1)从用途上:人与计算机进行信息交流的工具。(2)从形式上:由计算机可以理解的符号系统。语法规则语义规则—完成某一功能的计算机指令的有序集合1.程序2.程序设计—设计、编制、调试程序的过程3.程序设计语言的发展:(1)机器语言(CPU指令系统)a.形式特点:由0,1序列组成的指令系统b.不需要任何翻译工作,执行效率高c.难记、难认、难理解,程序开发效率底,易出错、难调试d.不同的计算机结构具有不同的指令系统(不同的计算机具有不同的语言)例如:某种CPU中10000000加10010000减(2)汇编语言(符号语言)a.形式特点:由一套简单的助记符来表示不同的机器指令b.需要相应的翻译机制(汇编系统)例如:80x86CPU中ADDA,B加SUBA,B减源程序(汇编语言)汇编系统目标程序(机器语言)c.抽象层次高一些,容易理解些,程序生产效率高d.不同的计算机结构具有不同的汇编系统(3)面向过程的高级语言(算法语言,3GL)a.形式特点:更接近于人们通常数学计算公式的描述(即人类自然语言)b.需要更高级的翻译系统(编译系统compler或解释系统)c.表达能力强,编程效率高d.不依赖于具体的机器,依赖于不同机器上的编译系统(不同机器上的编译系统是有差异的)(4)非过程化的高级语言(4GL)a过程化语言:用语言描述怎样做的过程b非过程化语言:只要告诉计算机做什么c其它方面的特点与面向过程的高级语言相同。d非过程化的高级语言的几种类型:1.4GL:VB(VisualBasic),VC(VisualC++),JAVA2.逻辑性语言:PROLOG3.面向对象语言:SmallTalk,C++伪4GL或具有4GL特征C语言1972年由DennisM.Ritchie和KenL.Thompson在BellLab开发出来,用来描述UNIXOS及其底层软件。1.属高级语言,实质上是介于高级语言和低级语言之间的一种语言2.兼有低级语言和高级语言的优点3.既适于开发系统软件,又是适于开发应用软件注意:我们熟知的重要的成功的大中型软件绝大多数用C语言或C++语言开发。例如:Windows操作系统、Word、Excel、Photoshop、3DSMAX等等。1.2C语言的发展简史解决问题的需要—需要一种既具有高级语言的易于理解、易于编写、可移植性强的语言,又具有低级语言特性(能对硬件直接操作)的一种语言。C语言就在这种情况下应运而生了。1960ALGOL60(AlgorithmicLanguage)1963CPL(CombinedProgrammingLanguage)1967BCPL(BasicCombinedProgrammingLanguage)1970B(取BCPL第一个字母)1972C(取BCPL第二个字母)1978标准C1983ANSIC198787ANSIC1990ISOC二十世纪七十年代末又由C语言演化出著名的C++语言语言简洁、紧凑,使用方便、灵活运算符丰富数据结构丰富,具有现代化语言的各种结构具有结构化的控制语句,用函数作为程序的模块单位,便于模块化语法限制不太严格,程序设计自由度大C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功生成目标代码质量高,执行效率高,速度快可移植性好(与汇编语言比)1.3C语言的特点1.4.1变量的初步概念变量说明:C规定所有变量在使用前都必须加以说明。一条变量说明语句由数据类型和其后的一个或多个变量名组成。变量说明的形式如下:类型变量表;这里类型是指C的有效数据类型。变量表是一个或多个标识符名,每个标识符之间用,分隔。1.4变量变量类型有:整型:int,shortint,longint并且可以用signed或unsigned修饰。实型:float,double1.4.2变量的定义用声明语句定义变量例如:inti,j,k;floatf=3.1415;charc=‘a’;unsignedintu;longdoubleld=2.7321;1.4变量2000H2001H2002H2003H2004H2005H2006Hfloata;变量类型及变量的实质类型(float)代表所占存储空间大小和存储格式,变量(a)代表所占存储空间起始地址。1.4变量1.4.2变量的定义变量的命名规则组成:1只能由字母、数字、下划线组成,且第一个字符必须是字母或下划线2大小写敏感3不能使用关键字长度:最长31个字符命名原则:见名知意不宜混淆如l与I,o与01.4.2变量的定义C有以下关键字:1.4变量asm_cs_ds_es_sscdeclfarnearhugeinterruptpascalautodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilestatic变量名不能使用以上符号1.4.3变量的赋值运算1.赋值与赋值运算符例如:x=3;x=5;x=x+1;x=x*x;1.4变量1.4.3变量的赋值运算1.赋值与赋值运算符例如:main(){inta,b,c;a=123;b=456;c=a+b;printf(“c=%d\n”,c);}1.4变量变量所占存储空间可用sizeof()运算符计算例如:sizeof(a)1.4.3变量的赋值运算2.复合赋值运算符+=;-=;*=;/=;%=;例如:x+=y;3.增1和减1运算符++;--;例如:x++;++x;x--;--x;1.4变量1.4变量1.4.4常量定义:程序运行时其值不能改变的量(即常数)分类:符号常量:用标识符代表常量定义格式:#define符号常量名常量一般用大写字母是宏定义预处理命令,不是C语句。直接常量:整型常量实型常量字符常量字符串常量1.4变量1.4.4常量整型常量(整常数)三种形式:十进制整数:由数字0~9。八进制整数:由数字0开头,后跟数字0~7表示。如:0123,011和正负号表示。如123,-456,0。十六进制整数:由0x开头,后跟0~9,a~f,A~F表示。如:0x123,0Xff。整型常量的类型根据其值所在范围确定其数据类型,在整常量后加字母l或L,认为它是longint型常量。1.4变量1.4.4常量实型常量(实数或浮点数)表示形式:十进制数形式:如0.123,.123,123.0,0.0,123(必须有小数点)指数形式:如12.3e3,123E2,1.23e4(e或E之前必须有数字;指数必须为整数)实型常量的类型默认double型。在实型常量后加字母f或F,认为它是float型。1.5.1ASCII与字符1.5字符型数据ASCII码表参阅教材、参考资料或本教案的Word文当“”ASCII码表”1.5.2转义字符序列1.5字符型数据字符串中具有特殊含义的字符:转义字符含义\a警报(Alert(ANSIC))\b退格(Backspace)\f换页(Formfeed)\n换行(Newline)\r回车(Carriagereturn)\t水平制表符(Horizontaltab)\v垂直制表符(Verticaltab)\\反斜杆(Backslash(\))\'单引号(Singlequote('))\双引号(Doublequote())\?问号(Questionmark(?))\0oo八进制数(Octalvalue(o代表一个八进制数字))\xhh十六进制数(Hexadecimalvalue(h代表一个十六进制数字))1.5.3字符变量1.5字符型数据1字符常量定义:用一对单引号括起来的单个字符。例如,‘A’、‘1’、‘+’等。注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:‘\\’、‘\’‘。2字符变量概念:类型为字符型的变量。例如:charch1=’a’;/*给字符变量赋值*/将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。1.5.3字符变量1.5字符型数据例1字符的输入输出#includestdio.hintmain(void){charch;printf(Pleaseenteracharacter.\n);scanf(%c,&ch);printf(Thecodefor%cis%d.\n,ch,ch);return0;}还可以用:putchar()getchar()1.5.4字符串1.5字符型数据1字符串概念内存中连续存储的字符序列,并且以空终结符结尾(即\0)2字符串的定义数组法:例如:charstr[6]={‘H’,’e’,’l’,’l’,’o’,\0};指针法:例如:char*pstr;pstr=“Hello”;3字符串的输入输出输入:scanf(“%s”,str);输出:printf(“%s”,str);还可以用:gets()puts()1.5.1格式化输出函数printf()printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:printf(格式化字符串,参量表);其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以%开始,后跟一个或几个规定字符,用来确定输出内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用,分开,且顺序一一对应,否则将会出现意想不到的错误。1.5数值数据的输入与输出格式化规定符C提供的格式化规定符如下:%d十进制有符号整数%u十进制无符号整数%f浮点数%s字符串%c单个字符%p指针的值%e指数形式的浮点数%x,%X无符号以十六进制表示的整数%0无符号以八进制表示的整数%g自动选择合适的表示法说明:(1)可以在“%”和字母之间插进数字表示最大场宽。例如:%3d表示输出3位整型数,不够3位右对齐。%9.2f表示输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。1.5数值数据的输入与输出例1.#includestdio.hintmain(){inta=1234,*i;floatf=3.141592653589;printf(a=%d\n,a);/*结果输出十进制整数a=1234*/printf(a=%6d\n,a);/*结果输出6位十进制数a=1234*/printf(a=%06d\n,a);/*结果输出6位十进制数a=001234*/printf(a=%2d\n,a);/*a超过2位,按实际值输出a=1234*/printf(f=%f\n,f);/*输出浮点数f=3.141593*/printf(“f=6.4f\n”,f);/*输出6位其中小数点后4位的浮点数*/}1.5数值数据的输入与输出1.5.2格式化输入函数scanf()scanf()函数是格式化输入函数,它从标准输入设备(键盘)读取输入的信息。其调用格式为:scanf(格式化字符串,地址表);格式化字符串包括以下三类不同的字符:1.格式化说明符:格式化说明符与printf()函数中的格式说明符基本相同。2.空白字符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。3.非空白字符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。地址表是需要读入的所有变量的地址,而不是变量本身。这与printf()函数完全不同,要特别注意。各个变量的地址之间用,分开。1.5数值数据的输入与输出例2:main(){inti,j;printf(i,j=?\n);scanf(%d,%d,&i,&j);printf(
本文标题:第一章 C语言程序设计初步
链接地址:https://www.777doc.com/doc-3795123 .html