您好,欢迎访问三七文档
C语言程序设计教程2目录第1章C语言概述第2章数据类型、运算符和表达式第3章C程序中的输入、输出第4章C程序的控制结构第5章数组第6章函数第7章编译预处理命令第8章指针第9章结构体第10章文件第1章C语言概述4学习目标对C语言有一个概括的了解,能够编写包含键盘输入、计算和显示输出等操作的简单C程序。5主要内容•C语言的产生与特点•简单C程序的组成•C语言应用程序开发的基本步骤61.1C语言的产生及特点C语言是为了编写系统程序而在1968年开始研发的计算机高级语言C语言表达能力强,使用灵活,程序结构清晰,紧凑,可移植性好C语言是进一步学习面向对象的程序设计语言C++和VC的基础【例1-1】从键盘输入三个整数,输出它们的和main()/*计算三个整数的和*/{intx,y,z,sum;scanf(%d,%d,%d,&x,&y,&z);sum=x+y+z;printf(sum=%d\n,sum);}语句函数体主函数名最简单的C程序的组成对程序的注释1.2C语言程序的结构及书写格式一.C程序的结构main(){intx,y,z,sum;scanf(%d,%d,%d,&x,&y,&z);sum=x+y+z;printf(sum=%d\n,sum)}定义变量x,y,z和sum从键盘输入三个整数赋给变量x,y和z显示变量sum的值计算x+y+z,并将结果赋给变量sum程序说明9一般C程序的组成【例1-2】采用模块结构,改写例1-1的程序。add(intx,inty,intz){return(x+y+z);}main(){intx,y,z;printf(PleaseInputThreeIntegers:\n);scanf(%d,%d,%d,&x,&y,&z);printf(sum=%d\n,add(x,y,z));}函数add()主函数main()调用函数add()……函数1主函数main()函数2函数k注意:每个C程序必定有一个、而且只能有一个主函数main()。主函数可以调用其它子函数,而子函数不可以调用主函数,子函数彼此之间也可以相互调用。C程序的组成11二.C程序的书写格式1.C程序允许一行写一个或多个语句,当一个语句分几行书写时,在换行前应加上“\”符,然后从下一行的开头继续。2.习惯上,书写C程序时均使用小写英文字母。3.C程序一般都采用缩进格式的书写方法,不同结构层次的语句,从不同的起始位置开始,同一结构层次中的语句,缩进同样个数的字符位置。4.应当在程序中适当地添加一些注释行。121.3C程序的编辑、调试和运行编辑源程序生成目标程序经编译经连接库修改源程序函数生成exe文件运行运行时出错编译出错第1章结束第2章数据类型、运算符和表达式学习目标1.掌握基本数据类型的概念和常量表示方法,掌握变量的定义方法,能够根据实际情况选用适当的数据类型2.熟练掌握数值表达式的构造方法,能够利用表达式完成数值计算主要内容•C数据类型概述•常量和变量•算术运算表达式•赋值表达式•自增、自减表达式2.1概述C语言支持的数据类型基本数据类型整型单精度型主要数据类型构造数据类型指针类型实型字符型数组类型结构体类型双精度型基本数据类型说明符整型:intlong字符型:char实型:floatdoublelongdouble2.2常量常量∶在程序运行过程中,其值不能被改变的量。一.不同数制整型常量的表示例如:12:十进制数12012:八进制数12(等于十进制数10,用前导符0表示八进制数常量)0x12:十六进制数12(等于十进制数18,用前导符0X或0x表示十六进制数常量)二.字符常量的表示1.用‘’括起来的可显示字符,如∶‘A’、‘$’、‘3’等(转义字符除外)2.用八进制数表示其ASC代码的字符,如‘\101’表示西文字符A、‘\63’表示数字字符3。3.用十六进制数表示其ASC代码的字符,如:‘\x41’表示西文字符A、‘\x2A’表示字符*。4.用‘\’’表示字符’,‘\”’表示字符”,‘\\’表示字符\。5.用双引号括起来的字符序列表示字符串常量,其中最后一个字符是字符串结束符‘\0’,不显式地表示出来。如:“English”。【例2-1】常量的例子main(){floatr;printf(PleaseInputRadius:\n);scanf(%f,&r);printf(TheCircumferenceofCirle:%f\n,2*3.1415926*r);}定义浮点型变量r人机对话,通知用户输入半径的值从键盘输入半径的值,并将值赋给变量r显示结果常量2常量3.1415926三.符号常量可以用#define命令定义符号常量,在程序的执行过程中不允许改变符号常量的值。【例2-2】说明符号常量的例子#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf(total=%d,total);}通过#include定义符号常量PRICE为30定义二个整型变量num和total使变量num的值为10执行运算10×30并把运算的结果赋予变量total显示结果2.3变量的定义和初始化变量:在程序运行时,其值可变的量被称为变量,分为整型变量、实型变量和字符型变量一.C语言中的标识符C语言把用户给常量、变量、函数、标号和其它对象所起的名字统称为标识符。用户定义的标识符须遵循如下规则:标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,标识符的长度不超过32个字符。同时,C语言的关键字和库函数名不能作为标识符。例如,下面的字符序列均为合法的C语言标识符:a,b,word,_file,file2,F_name,f_name注意:C编译程序字母区分大小写,所以上述F_name和f_name是二个不同的标识符。下面的字符序列为不合法的C语言标识符:2L──违反了标识符第一个字符必须为字母或下划线的规定。a**──违反了标识符只能由字母、数字和下划线三种字符组成的规定。int──违反了C语言的关键字和库函数名不能作为标识符的规定。二.变量分类1.整型变量分类有符号整型说明符无符号整型说明符整型intsignedsignedintunsignedunsignedint长整型longlongintsignedlongsignedlongintunsignedlongunsignedlongint有符号整型无符号整型占字节数整型int-32768~32767unsigned0~655352字节长整型long-231~(231-1)unsignedlong0~4,294,967,2954字节整型变量的值域2.浮点型变量的分类及其值域Longdouble取值(绝对值)范围占字节数10-4931~104932单精度型双精度型10-37~10384floatdouble10-307~10308浮点型说明符8163.字符型变量及其值域说明符取值范围(字符的ASC码值)占字节数char0~2551在设计程序时,应当根据数据本身的特点和变化范围正确选择变量类型。三.变量的定义和初始化变量的定义格式:类型说明符变量名表;int、unsigned、long、float、double、char等变量名只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。例如,语句:inta1,a2,age;floatx,y,z;charch;分别定义了整型变量a1,a2,age,浮点型变量x,y,z和字符型变量ch。变量的初始化:在定义变量的同时对变量预先设置初值。例如,执行语句:intnum=20;floatpi=3.14;charc1,c2='M';变量num、pi、c2的初值分别为20、3.14和字符M。四.各类数值型数据间的混合运算高doublefloatlongunsigned低intchar当各种不同类型的数据混合运算时,其运算结果的类型由上图所示的类型转换原则确定。【例2-3】设程序中定义变量:inti;floatf;doubled;执行运算:i+(f*d)-(f+i)(这里的*表示乘法)下图给出了在运算过程中所发生的数据类型的转换i+(f*d)-(f+i)doubledoubledoubledoubledoubledoubledoubledoubledouble2.4算术运算符和算术运算表达式一.算术运算符算术运算符包括:+(加)-(减)*(乘)/(除)%(求余)操作符%只作用于整数x%y的值就是x除以y的余数。操作符/的两种含义:整数除法(整除)当被除数和除数都是整型数据时,“\”运算的结果为整型。例如:5/2的值为2(而不是2.5)实数除法当被除数和除数中至少有一个是实数型数据时,“\”运算的结果为实数型。例如:5.0/2的值为2.5二.算术运算表达式用算术运算符和括号将运算对象连接起来、并符合C语言语法规则的式子,称为算术运算表达式或算术表达式。例如:设r、x、y是已经定义的数值型变量,则:3.14*r*r、x+2*y-3/z、(x-y)*(x-y/2)均是合法的算术运算表达式,单独的r、x、y也是合法的算术运算表达式。实际上,单独的常量或变量是最简单的算术运算表达式。注意:算术运算表达式中的分数线须用/表示例如:2+3×ik×j表示为C语言表达式就是:(2+3*i)/(k*j)或(2+3*i)/k/jC程序中,称表达式的运算结果为表达式的值。C语言规定,在表达式求值时,须按运算符优先级的高低次序执行。对算术运算而言,必须遵循先括号内后括号外,先乘、除及求余运算,后加减的运算优先级规则。C语言规定了运算符二种不同的结合方向:左结合:当参于运算的数据两侧的运算符优先级相同时,运算顺序为自左至右。C语言规定算术运算符遵循左结合的规则。例如,计算算术运算表达式a+b-c时,运算符“+”和“–”具有相同的优先级,所以先执行a+b,其结果再和c相减。右结合:当参于运算的数据两侧的运算符优先级相同时,运算顺序为自右向左。C语言提供的运算符中有少量运算符遵循右结合的规则。教材的附录部分列出了C语言中所有运算符以及它们的优先级和结合性。2.5赋值运算符与赋值运算表达式一.赋值运算符赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。例如:执行程序段inta;a=3;a=a-5;当执行语句“a=3;”就完成一次赋值运算,把赋值运算符右边的值3赋给赋值运算符左边的变量a,赋值后,a的值为3。再执行语句“a=a-5;”,赋值运算符右边的表达式a-5的运算结果为-2,将-2赋给a。最后,变量a的值变为-2。复合的赋值运算符复合的赋值运算符的格式:算术运算符=所以,+=、-=、*=、/=、%=都是复合的赋值运算符。二.赋值运算表达式将一个变量通过赋值运算符或复合的赋值运算符与一个表达式连接而成的式子称为赋值运算表达式。赋值运算表达式的格式为:变量名=表达式或变量名复合的赋值运算符表达式例如:x=1.414,m1='E',s=3.14159*r*r或a+=5,x/=a+1上述各例都是合法的赋值运算表达式。赋值运算表达式的作用是把赋值运算符右边表达式的值赋给赋值运算符左边的变量。当算术运算符和赋值运算符同时出现在一个表达式中时,算术运算符的优先级高于赋值运算符。C语言允许赋值运算表达式中的表达式部分还是一个赋值表达式,这样就构成了多重赋值。多重赋值表达式中,赋值运算符遵循右结合的法则,即:自右向左的运算顺序。例如:多重赋值语句a=b=c=x+8;在执行时等价于依次执行三个语句:c=x+8;b=c;a=b;将一个变量通过复合的赋值运算符与一个表达式连接而成的式子同样称为赋值运算表达式。例如:a+=5,x/=a+1下面的例子说明了复合的赋值运算符的运算规则。表达式a+=5等价于a=a+5表达式a*=4-b等价于a=a*(4-b)表达式a%=b-1等价于a=a%(b-1)注意:复合的赋值运算符右边的表达式是作为一个整体参与其左边算术运算符所规定的
本文标题:C语言程序设计教程
链接地址:https://www.777doc.com/doc-7597156 .html