第1节C语言基本语法元素课件

上传人:29 文档编号:239992797 上传时间:2024-03-11 格式:PPT 页数:58 大小:348KB
返回 下载 相关 举报
第1节C语言基本语法元素课件_第1页
第1页 / 共58页
第1节C语言基本语法元素课件_第2页
第2页 / 共58页
第1节C语言基本语法元素课件_第3页
第3页 / 共58页
点击查看更多>>
资源描述
SEI第一章第一章 C语言基本语法元素语言基本语法元素高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季2n1.1 数据类型数据类型n1.1.1 整数类型整数类型n1.1.2 浮点数类型浮点数类型n1.1.3 字符类型字符类型n1.1.3 字符串类型字符串类型n1.2 量与表达式量与表达式n1.3 语句语句n1.4 基本输入输出函数基本输入输出函数n1.5 程序设计风格程序设计风格第一章第一章 C语言基本语法元素语言基本语法元素高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季3 C程序离不开对数据进行操作,而数据总是以特定形程序离不开对数据进行操作,而数据总是以特定形式存储和表示,式存储和表示,C语言提供的数据类型很多,本章只介绍语言提供的数据类型很多,本章只介绍三种基本数据类型。三种基本数据类型。数据类型数据类型数据类型的概念数据类型的概念高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季4n整数类型用于描述通常的整数。包括:整数类型用于描述通常的整数。包括:nintnshort int或或shortnlong int或或long“short int”的范围的范围 “int”的范围的范围 “long int”的范围的范围nunsigned int或或unsignednunsigned short int或或unsigned shortnunsigned long int或或unsigned long nunsigned(无符号)整数类型只能表示正整数,它们所占(无符号)整数类型只能表示正整数,它们所占的内存大小与相应的有符号整数类型相同,但所表示的最大的内存大小与相应的有符号整数类型相同,但所表示的最大正整数比相应的有符号整数类型所表示的最大正整数要大正整数比相应的有符号整数类型所表示的最大正整数要大(大约一倍)。(大约一倍)。有符号有符号无符号无符号短整短整形形short-3276832767unsigned short0655352字节字节整形整形int-2,147,483,6482,147,483,647unsigned 04,294,967,2954字节字节长整长整形形long-2,147,483,6482,147,483,647unsigned long04,294,967,2954字节字节整数类型整数类型数据类型数据类型高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季5n整数类型数据在计算机内部通常用补码表示:整数类型数据在计算机内部通常用补码表示:n正整数的补码为它的二进制原码表示;正整数的补码为它的二进制原码表示;n负整数的补码为把相应正整数的二进制表示中各个负整数的补码为把相应正整数的二进制表示中各个二进制位取反后得到的整数加二进制位取反后得到的整数加1。例如:例如:如果用一个字节存储整数类型数据,则如果用一个字节存储整数类型数据,则12和和-12的补码分别为:的补码分别为:00001100和和11110100。整数类型的内部表示整数类型的内部表示数据类型数据类型高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季6n编写程序,计算用户输入的两个整数之和编写程序,计算用户输入的两个整数之和#include int main()int a,b,sum;printf(The program adds two integers.n);printf(“Input the first number:);scanf(%d,&a);printf(“Input the second number:);scanf(%d,&b);sum=a+b;printf(%d+%d=%dn,a,b,sum);return 0;整型数据的输入输出格式码为整型数据的输入输出格式码为“%d”数据类型数据类型高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季7实数类型实数类型n实数类型又称浮点型,它用于描述通常的实数。包括:实数类型又称浮点型,它用于描述通常的实数。包括:n float(单精度型)(单精度型)n double(双精度型)(双精度型)n long double(长双精度型)(长双精度型)数据类型数据类型类别类型修饰符值域有效位字节单精度float3.410-383.4103874双精度double1.710-3081.710308158长双精度long double3.410-49323.41049321910高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季8n在计算机内部,实数表示成:在计算机内部,实数表示成:a2b,a:尾数;:尾数;b:指数:指数在实数的内存空间中存储的是尾数和指数两部在实数的内存空间中存储的是尾数和指数两部分,它们均采用二进制表示。分,它们均采用二进制表示。n有些十进制小数是不能精确表示成二进制小数有些十进制小数是不能精确表示成二进制小数的。的。例如,十进制小数例如,十进制小数0.1就无法精确地用二进制表就无法精确地用二进制表示。示。数据类型数据类型实数类型的内部表示实数类型的内部表示高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季9n编写程序,计算用户输入的两个浮点数之和编写程序,计算用户输入的两个浮点数之和float型数据的输入输出格式码为型数据的输入输出格式码为“%f”#include int main()float a,b,sum;printf(The program adds two real numbers.n);printf(The first real number:);scanf(%f,&a);/f表示处理表示处理 float 类型的浮点数类型的浮点数 printf(The second real number:);scanf(%f,&b);sum=a+b;printf(%f+%f=%fn,a,b,sum);return 0;数据类型数据类型高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季10n编写程序,计算用户输入的两个浮点数之和编写程序,计算用户输入的两个浮点数之和double型数据的输入输出格式码为型数据的输入输出格式码为“%lf”#include int main()double a,b,sum;printf(The program adds two real numbers.n);printf(The first real number:);scanf(%lf,&a);/lf表示处理表示处理 double 类型的浮类型的浮点数点数 printf(The second real number:);scanf(%lf,&b);sum=a+b;printf(%lf+%lf=%lfn,a,b,sum);return 0;数据类型数据类型高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季11n字符类型是用于描述文字类型的数据。包括:字符类型是用于描述文字类型的数据。包括:n charn signed charn unsigned charn wchar_t n字符在计算机中存储的是它的编码。字符在计算机中存储的是它的编码。较常采用的是较常采用的是ASCII编码,标准编码,标准 ASCII 码使用码使用 7 位二进制位二进制数来表示所有的大写和小写字母,数字数来表示所有的大写和小写字母,数字 0 到到 9、标点符号,、标点符号,以及在美式英语中使用的特殊控制字符。以及在美式英语中使用的特殊控制字符。类别类别类型修饰符类型修饰符值域值域存储存储有符号字符有符号字符signed char-1281271字节字节无符号字符无符号字符unsigned char02551字节字节数据类型数据类型字符类型字符类型高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季12n接受用户输入的字符,输出其接受用户输入的字符,输出其ASCII码。码。字符类型字符类型#include int main()char c;printf(Input the character:);scanf(%s,&c);printf(ASCII码为码为:%dn,c);return 0;数据类型数据类型高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季13n 计算机处理文本信息时,将多个字符组织成一个计算机处理文本信息时,将多个字符组织成一个整体才有意义,这种将多个字符当作一个整体来对整体才有意义,这种将多个字符当作一个整体来对待的数据类型就称为待的数据类型就称为字符串字符串。n C标准库没有显式定义字符串类型,教材作者自标准库没有显式定义字符串类型,教材作者自定义了一个函数库定义了一个函数库“zylib.h”,里面定义了一个字里面定义了一个字符串类型符串类型STRING,以及相应的字符串处理函数。以及相应的字符串处理函数。字符串类型字符串类型数据类型数据类型高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季14数据类型数据类型字符串类型字符串类型n接受用户输入的用户名,向用户问好接受用户输入的用户名,向用户问好#include#include zylib.h /使用双引号而不是尖括号包含配套使用双引号而不是尖括号包含配套库库int main()STRING name;printf(The program reads users name,and prints a greeting.n);printf(Your name:);name=GetStringFromKeyboard();/*();/*配套库已实现的函数,配套库已实现的函数,获取用户输入的字符串,以用户输入的文本行为单位获取用户输入的字符串,以用户输入的文本行为单位 */printf(Hello,%s.n,name);/使用使用 s 输出字符串输出字符串 return 0;高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季15n基本步骤基本步骤n首先将头文件首先将头文件“zylib.h”与源文件与源文件“zylib.c”拷贝拷贝到工程文件夹。到工程文件夹。n在工程项目中分别添加头文件和源文件。在工程项目中分别添加头文件和源文件。n在源程序中包含头文件在源程序中包含头文件“zylib.h”。数据类型数据类型在工程项目中添加已有的程序文件在工程项目中添加已有的程序文件高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季16数据类型数据类型高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季17第一章第一章 C语言基本语法元素语言基本语法元素n1.1 数据类型数据类型n1.2 量与表达式量与表达式n1.2.1 表达式表达式n1.2.2 常量常量n1.2.3 变量变量n1.2.4 操作符操作符n1.2.5 混合运算与类型转换混合运算与类型转换n1.3 语句语句n1.4 基本输入输出函数基本输入输出函数n1.5 程序设计风格程序设计风格高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季18n量与表达式是量与表达式是C程序中最基本的概念。程序中最基本的概念。n量是量是C语言的数据处理对象,可以是常量也可以是语言的数据处理对象,可以是常量也可以是变量;变量;n表达式是处理数据对象的方法和步骤;表达式是处理数据对象的方法和步骤;n量和表达式构成一条条语句;量和表达式构成一条条语句;n一条条语句构成最终的程序。一条条语句构成最终的程序。量与表达式量与表达式量与表达式量与表达式高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季19n定义定义表达式是由操作符、操作数以及圆括号所组成的运算式。表达式是由操作符、操作数以及圆括号所组成的运算式。其中,操作数可以是常量、变量或函数调用,也可以是其中,操作数可以是常量、变量或函数调用,也可以是用圆括号括起来的表达式。例如:用圆括号括起来的表达式。例如:(a+b)*c/12-sin(a)n程序运行时,计算表达式值的过程称为表达式求程序运行时,计算表达式值的过程称为表达式求值。值。表达式表达式表达式表达式高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季20常量是指在程序执行过程中值永远不变的数据对常量是指在程序执行过程中值永远不变的数据对象。象。在在C程序中,常量可以用两种形式表示:程序中,常量可以用两种形式表示:n 字面常量(文字):字面常量(文字):在程序中直接通过数字或字符串在程序中直接通过数字或字符串来表示的常量,通常又称为直接量(来表示的常量,通常又称为直接量(literal)。)。n 符号常量(常量):符号常量(常量):用指定名字代表的常量。用指定名字代表的常量。常量常量常量与变量常量与变量常量常量变量变量高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季21常量与变量常量与变量常量常量变量变量#include const double PRICE1=20;const double PRICE2=15;int main()double weight,sum_money;printf(请输入牛肉的重量:请输入牛肉的重量:);scanf(%lf,&weight);if(weight50)sum_money=weight*PRICE1;elsesum_money=weight*PRICE2;printf(输出需支付金额:输出需支付金额:%lfn,sum_money);return 0;#include int main()double weight,sum_money;printf(请输入牛肉的重量:请输入牛肉的重量:);scanf(%lf,&weight);if(weight50)sum_money=weight*20;elsesum_money=weight*15;printf(输出需支付金额:输出需支付金额:%lfn,sum_money);return 0;字面常量字面常量符号常量符号常量常量定义常量定义高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季22C语言的字面常量有:语言的字面常量有:n 整数类型常量整数类型常量n 实数类型常量实数类型常量n 字符类型常量字符类型常量n 字符串常量字符串常量常量与变量常量与变量字面常量字面常量常量常量变量变量高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季23n十进制整数:十进制整数:以非零数字开始以非零数字开始125 /signed int125u/unsigned int125L/signed long intn八进制整数:八进制整数:以零开始以零开始0125=85 011L=9常量与变量常量与变量常量常量变量变量整型常量整型常量n十六进制整数:十六进制整数:以以0 x或或0X开始开始 0 x125=293 0 x3B=59高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季24n在在C程序中,实数类型常量采用十进制形式书写(在程序中,实数类型常量采用十进制形式书写(在计算机内部采用二进制存储)。计算机内部采用二进制存储)。n实数类型常量有两种表示法:小数表示法和科学表示实数类型常量有两种表示法:小数表示法和科学表示法。法。n小数表示法:小数表示法:如:如:456.78,-0.0057,5.,.5。n科学表示法:科学表示法:如:如:4.5678E2,-5.7e-3等。等。F实型常量默认为实型常量默认为double型,型,实型常量后面加实型常量后面加F(f)表示表示float型,如:型,如:5.6F,实型常量后面加实型常量后面加L(l)表示表示long double型,如型,如5.6L。常量与变量常量与变量常量常量变量变量实型常量实型常量高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季25n字符常量是由两个单引号(字符常量是由两个单引号()括起来的一个字符)括起来的一个字符构成,如:构成,如:A,9.n字符串常量是由两个双引号(字符串常量是由两个双引号(“)括起来的字符序)括起来的字符序列构成,字符序列不仅可以包含可打印字符,也可列构成,字符序列不仅可以包含可打印字符,也可以包含表示特殊活动的特殊字符。以包含表示特殊活动的特殊字符。n可打印字符串,如可打印字符串,如“hello”n转义序列,如转义序列,如“n”常量与变量常量与变量常量常量变量变量字符串常量字符串常量高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季26n符号常量:用指定的名字代表的常数。符号常量:用指定的名字代表的常数。n符号常量的定义格式为:符号常量的定义格式为:const =;例如:例如:const double PI=3.1415926;常量与变量常量与变量常量常量变量变量符号常量符号常量高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季27在程序中,其值可以改变的量称为变量。变量在程序中,其值可以改变的量称为变量。变量可以用来表示可变的数据。可以用来表示可变的数据。例如:在计算圆周长的表达式例如:在计算圆周长的表达式2*PI*r中,半径中,半径r就是一就是一个可变的数据,它可能是通过用户输入得到,也可能个可变的数据,它可能是通过用户输入得到,也可能由程序的其它部分计算得到。由程序的其它部分计算得到。常量与变量常量与变量变量变量常量常量变量变量高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季28在程序中,一个变量有四个基本特征(在程序中,一个变量有四个基本特征(VANT):n值(值(value)n变量所表示的数据变量所表示的数据n内存地址(内存地址(address)n在程序运行时,程序中的每个变量都有一个内存地址在程序运行时,程序中的每个变量都有一个内存地址n变量名(变量名(name)n用于在程序中标识和访问(使用)变量,具有唯一性,由用户用于在程序中标识和访问(使用)变量,具有唯一性,由用户自定义自定义n类型(类型(type)n变量所属的数据类型变量所属的数据类型变量的基本特性变量的基本特性常量与变量常量与变量常量常量变量变量高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季29n内存的存储空间可看作是若干个从内存的存储空间可看作是若干个从0开始编号的盒子。例如,开始编号的盒子。例如,若内存为若内存为128MB,则有,则有12810241024个盒子个盒子(每个盒子可以每个盒子可以存储一个存储一个8位的二进制数位的二进制数)。123.k内存内存0.存储单元存储单元504l l每个变量都有三个属性:名字,值和类每个变量都有三个属性:名字,值和类每个变量都有三个属性:名字,值和类每个变量都有三个属性:名字,值和类型。变量名是一个存储单元的符号名,型。变量名是一个存储单元的符号名,型。变量名是一个存储单元的符号名,型。变量名是一个存储单元的符号名,变量的值存储在存储单元中变量的值存储在存储单元中变量的值存储在存储单元中变量的值存储在存储单元中。inches变量名变量名变量值变量值常量与变量常量与变量常量常量变量变量变量的基本特性变量的基本特性高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季30常量与变量常量与变量常量常量变量变量变量的定义变量的定义nC语言规定:程序中使用到的每个变量都要有定义。变量定义语言规定:程序中使用到的每个变量都要有定义。变量定义指出指出变量的类型变量的类型和和变量名变量名,还可以为变量提供一个,还可以为变量提供一个初值初值。n变量定义的格式为:变量定义的格式为:;或者或者 =;例如:例如:int a=0;int b=a+1;double x=0.5;或:或:int a=0,b=a+1;double x=0.5;高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季31操作符操作符n操作符用于描述对数据的运算。这里的数据称为操作数,操作符用于描述对数据的运算。这里的数据称为操作数,它们可以是:它们可以是:n常量常量n变量变量n其它操作符的运算结果其它操作符的运算结果n操作符分类操作符分类n一元操作符:只有单个操作数,例如负号一元操作符:只有单个操作数,例如负号n二元操作符:带有两个操作数,例如加减乘除等二元操作符:带有两个操作数,例如加减乘除等n三元操作符:带有三个操作数,例如条件表达式(仅在三元操作符:带有三个操作数,例如条件表达式(仅在 C 语语言中存在惟一一种)言中存在惟一一种)操作符(运算符)操作符(运算符)高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季32算术操作符(运算符)算术操作符(运算符)n二元操作符。包括:二元操作符。包括:n+(加)(加)n-(减)(减)n*(乘)(乘)n/(除)(除)n%(取余,比如(取余,比如3%2=1)n操作符操作符/的两种含义:的两种含义:w整数除法w如5/2=2(而不是2.5)w实数除法w如5.0/2=2.5w 5/2.0=2.5操作符操作符高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季33操作符操作符算术操作符(运算符)算术操作符(运算符)n一元操作符。一元操作符。包括:包括:n+(取正,如(取正,如+5,一般不用),一般不用)n-(取负,如(取负,如-3)n+(自增)(自增)n-(自减)(自减)F操作符操作符“-”和和“+”是两个带副作用的操作符是两个带副作用的操作符int x=1,y;y=(+x)/x的值是2,y的值是2(先加后用)y=(x+)/x的值是2,y的值是1(先用后加)高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季34 n 简单赋值操作符(简单赋值操作符(=)如:如:a=b*3;a=b=c=3;c=(a=1)+(b=2);n 复合赋值操作符复合赋值操作符+=,-=,*=,/=,%=a#=b 功能上等价于:功能上等价于:a=a#b 如:如:a+=a-=a*a 等价于等价于a=a+(a=a a*a)赋值操作符赋值操作符操作符操作符高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季35操作符操作符操作符的优先级与结合性操作符的优先级与结合性 一个表达式中可以包含多个操作符的运算,先一个表达式中可以包含多个操作符的运算,先执行哪一个操作符所指定的运算?执行哪一个操作符所指定的运算?n 对相邻的两个操作符,按下面规则确定:对相邻的两个操作符,按下面规则确定:n圆括号:圆括号内的先运算圆括号:圆括号内的先运算n优先级:优先级高的先运算优先级:优先级高的先运算n结合性:相同优先级按左结合或右结合结合性:相同优先级按左结合或右结合 例如:例如:m a+b*(c-d)计算次序为:计算次序为:-,*,-,+高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季36混合运算与类混合运算与类混合运算与类混合运算与类型转换型转换型转换型转换操作数的类型转换操作数的类型转换n在在C程序中,进行算术运算前,对两个类型不同的操作程序中,进行算术运算前,对两个类型不同的操作数进行类型转换,要把它们转换成相同类型。数进行类型转换,要把它们转换成相同类型。nC语言的类型转换方式有两种:隐式转换和显式转换。语言的类型转换方式有两种:隐式转换和显式转换。n隐式转换是指由编译程序按照某种预定的规则进行自动转换,隐式转换是指由编译程序按照某种预定的规则进行自动转换,基本原则:精度低基本原则:精度低精度高;精度高;n显式转换是指人为的通过类型转换操作符进行强制转换。显式转换是指人为的通过类型转换操作符进行强制转换。高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季37n总原则:不丢失精度信息。总原则:不丢失精度信息。n短的向长的靠拢,有符号向无符号靠拢短的向长的靠拢,有符号向无符号靠拢整型向实型靠拢,低精度向高精度靠拢整型向实型靠拢,低精度向高精度靠拢例如:例如:4+23L 5.14L+23L 5.127L 5.127.0 5.121.9常规算术转换规则常规算术转换规则混合运算与类混合运算与类混合运算与类混合运算与类型转换型转换型转换型转换高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季38隐式转换的问题隐式转换的问题隐式转换有时不能满足要求。隐式转换有时不能满足要求。例如:例如:int i=2147483647;/int类型中最大的正整数类型中最大的正整数 int j=10;i+j将得到错误的结果:将得到错误的结果:-2147483639最大正整数的机内补码表示如下:最大正整数的机内补码表示如下:01111111111111111111111111111111混合运算与类混合运算与类混合运算与类混合运算与类型转换型转换型转换型转换高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季39其格式为:其格式为:(类型名类型名)操作数操作数 例如:例如:int i=2147483647;/int类型中最大的正整数类型中最大的正整数int j=10;(double)i+j将得到正确的结果:将得到正确的结果:2147483657.0 显式转换(强制类型转换)显式转换(强制类型转换)混合运算与类混合运算与类混合运算与类混合运算与类型转换型转换型转换型转换高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季40第一章第一章 C语言基本语法元素语言基本语法元素n1.1 数据类型数据类型n1.2 量与表达式量与表达式n1.3 语句语句n1.4 基本输入输出函数基本输入输出函数n1.5 程序设计风格程序设计风格高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季41n简单语句简单语句n格式:表达式后跟分号格式:表达式后跟分号n例一:例一:sum n+d;n例二:例二:n=GetIntegerFromKeyboard();n例三:例三:printf(%d+%lf=%lfn,n,d,sum);n复合语句复合语句n格式:花括号对括起来的语句序列格式:花括号对括起来的语句序列n例:例:a=1;b=a+1;n空语句空语句n格式:单独出现的分号格式:单独出现的分号n目的:满足程序特定语法规则的要求;作为未来添加程序代码的占位标记目的:满足程序特定语法规则的要求;作为未来添加程序代码的占位标记语句语句高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季42第一章第一章 C语言基本语法元素语言基本语法元素n1.1 数据类型数据类型n1.2 量与表达式量与表达式n1.3 语句语句n1.4 基本输入输出函数基本输入输出函数n1.3.1 格式化输出函数格式化输出函数n1.3.2 格式化输入函数格式化输入函数n1.5 程序设计风格程序设计风格高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季43n基本事实基本事实n输入输出是语言与算法必须具备的功能输入输出是语言与算法必须具备的功能nC 语言本身没有输入输出语句或命令,输入输出需使用语言本身没有输入输出语句或命令,输入输出需使用标准库函数标准库函数n输入输出函数原型位于头文件输入输出函数原型位于头文件“stdio.h”中中n典型输入输出函数典型输入输出函数n格式化输出函数格式化输出函数 printfn格式化输入函数格式化输入函数 scanf基本输入输出函数基本输入输出函数高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季44n格式化输出函数格式化输出函数 printf 调用格式调用格式n格式:格式:printf(输出格式规约字符串输出格式规约字符串,输出项列表输出项列表 );n例一:例一:printf(The program prints a greeting.n);n例二:例二:printf(Hello,%s.n,name);n例三:例三:printf(%f+%f=%fn,a,b,sum);n例四:例四:printf(%d+%lf=%lfn,n,d,sum);n%y:格式描述符格式描述符n%d:十进制整数十进制整数n%f:float类型浮点数;类型浮点数;%lf:double类型浮点数类型浮点数n%c:单个字符单个字符n%s:字符串字符串n%u:无符号整数无符号整数格式化输出函数格式化输出函数格式化输出函数格式化输出函数 printfprintf高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季45n编写程序,按照下列格式输出截止编写程序,按照下列格式输出截止2005年底的部分省市统计数据。年底的部分省市统计数据。所有数据均来自各地政府官方网站,面积仅包括陆域(单位:平所有数据均来自各地政府官方网站,面积仅包括陆域(单位:平方公里),人口仅包括户籍人口(单位:万人),其中部分数据方公里),人口仅包括户籍人口(单位:万人),其中部分数据为约数。为约数。场场 宽宽精精 度度左右对齐左右对齐printfprintf 函数示例函数示例函数示例函数示例格式化输出格式化输出格式化输出格式化输出函数函数函数函数高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季46n输出格式输出格式n%对齐标志对齐标志场宽场宽.精度精度格式描述符格式描述符n对齐标志:确定每列左侧还是右侧对齐对齐标志:确定每列左侧还是右侧对齐n缺省右对齐,左对齐使用减号缺省右对齐,左对齐使用减号n例:例:%-d 表示按照左对齐格式输出整数表示按照左对齐格式输出整数n场宽:确定每列占用多少字符宽度,数据输出一般不会截断场宽:确定每列占用多少字符宽度,数据输出一般不会截断n确定输出最小宽度,超出部分照常输出确定输出最小宽度,超出部分照常输出n例:例:%3d 表示按照右对齐、占三位格式输出整数,若整数长度表示按照右对齐、占三位格式输出整数,若整数长度超出三位,则照常输出数据超出三位,则照常输出数据场宽、精度与对齐场宽、精度与对齐场宽、精度与对齐场宽、精度与对齐格式化输出格式化输出格式化输出格式化输出函数函数函数函数高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季47n精度:确定输出多少位数据以保证其精度精度:确定输出多少位数据以保证其精度n精度数字前有小数点标志,在场宽中占用一位!精度数字前有小数点标志,在场宽中占用一位!n例:例:%-5.2f 表示按照左对齐、整体占五位且小数点后两位格式表示按照左对齐、整体占五位且小数点后两位格式输出浮点数输出浮点数n数据的截断数据的截断n例一:按例一:按%-5.2f 格式输出格式输出 12.3456,结果为,结果为12.35,注意四舍,注意四舍五入五入n例二:按例二:按%-5.2f 格式输出格式输出 123.456,结果为,结果为123.46,注意截,注意截断后的数据仍然超出了场宽,照常输出断后的数据仍然超出了场宽,照常输出n字符串截断输出特例:字符串截断输出特例:%13.13s 表示按照整体占表示按照整体占 13 位且多余位且多余部分截断的方式输出字符串部分截断的方式输出字符串场宽、精度与对齐场宽、精度与对齐场宽、精度与对齐场宽、精度与对齐格式化输出格式化输出格式化输出格式化输出函数函数函数函数高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季48#include#include zylib.hint main()STRING province1,province2,province3,province4,province5;double area1,area2,area3,area4,area5;double pop1,pop2,pop3,pop4,pop5;province1=Anhui;area1=139600;pop1=6461;province2=Beijing;area2=16410.54;pop2=1180.70;province3=Chongqing;area3=82400;pop3=3144.23;province4=Shanghai;area4=6340.50;pop4=1360.26;province5=Zhejiang;area5=101800;pop5=4894;printf(-n);printf(Province Area(km2)Population(10K)n);printf(-n);printf(%-13.13s%9.2lf%-.2lfn,province1,area1,pop1);printf(%-13.13s%9.2lf%-.2lfn,province2,area2,pop2);printf(%-13.13s%9.2lf%-.2lfn,province3,area3,pop3);printf(%-13.13s%9.2lf%-.2lfn,province4,area4,pop4);printf(%-13.13s%9.2lf%-.2lfn,province5,area5,pop5);printf(-n);return 0;程序代码程序代码程序代码程序代码格式化输出格式化输出格式化输出格式化输出函数函数函数函数高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季49n格式化输入函数格式化输入函数 scanf 调用格式调用格式n格式:格式:scanf(输入格式规约字符串输入格式规约字符串,输入项列表输入项列表);n例:例:scanf(%d,%d,&a,&b);n特别说明特别说明n输入格式码与输出格式码基本相同输入格式码与输出格式码基本相同n用户在终端输入的数据逐一存放到输入项列表中变量所在的地址空间;用户在终端输入的数据逐一存放到输入项列表中变量所在的地址空间;对于普通变量,变量名前需添加取址操作符对于普通变量,变量名前需添加取址操作符“&”n多个输入项的分隔:格式描述串中其他字符需在输入数据时一并输入;多个输入项的分隔:格式描述串中其他字符需在输入数据时一并输入;无分隔字符的相连项在输入时使用空格、无分隔字符的相连项在输入时使用空格、Tab或回车键分隔或回车键分隔n可以不使用可以不使用 scanf,使用,使用 zylib 库中的三个函数代替!库中的三个函数代替!n整数输入:整数输入:GetIntegerFromKeyboard()()n浮点数输入:浮点数输入:GetRealFromKeyboard()()n字符串输入:字符串输入:GetStringFromKeyboard()()格式化输入函数格式化输入函数格式化输入函数格式化输入函数 scanfscanf格式化输入格式化输入格式化输入格式化输入函数函数函数函数高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季50第一章第一章 C语言基本语法元素语言基本语法元素n1.1 数据类型数据类型n1.2 量与表达式量与表达式n1.3 语句语句n1.4 基本输入输出函数基本输入输出函数n1.5 程序设计风格程序设计风格n1.4.1 注释注释n1.4.2 命名规范命名规范n1.4.3 宏与常量宏与常量n1.4.3 源程序排版源程序排版高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季51n注释的目的:增强程序的可读性、可维护性注释的目的:增强程序的可读性、可维护性n注释的格式注释的格式n格式一:格式一:“/*”与与“*/”对,注释其中的部分,可出现在程序对,注释其中的部分,可出现在程序代码的任意地方代码的任意地方n例一:例一:int/*/*此处内容为注释此处内容为注释 */a;n格式二:格式二:“/”,注释从此字符序列开始直至本文本行结束,注释从此字符序列开始直至本文本行结束n例二:例二:int a;/此处内容为注释此处内容为注释n特别说明特别说明n同一种注释标记不可以嵌套同一种注释标记不可以嵌套n“/”不跨行,不跨行,“/*”与与“*/”对可跨行对可跨行注注注注 释释释释程序设计风格程序设计风格程序设计风格程序设计风格高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季52n字符集字符集n构成语言的基本符号称为语言的字符集。构成语言的基本符号称为语言的字符集。nC语言的字符集由下列符号构成:语言的字符集由下列符号构成:n大小写英文字母:大小写英文字母:az,AZn数字:数字:09n特殊字符:特殊字符:!#%&*_ -+=/|.,:;?()空格 横向制表 纵向制表 换页 换行 命名规范命名规范命名规范命名规范程序设计风格程序设计风格程序设计风格程序设计风格高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季53n标识符:标识符通常用来给程序中的实体进行唯一的命名,标识符:标识符通常用来给程序中的实体进行唯一的命名,程序实体包括:常量、变量、函数等。程序实体包括:常量、变量、函数等。n标识符命名规则标识符命名规则n可以由大小写英文字母、数字以及下划线(可以由大小写英文字母、数字以及下划线(_)所构成。)所构成。n第一个字符不能是数字,如:第一个字符不能是数字,如:student、student_name、_name1等都是合法的标识符。等都是合法的标识符。n大小写字母有区别,如:大小写字母有区别,如:abc、Abc与与ABC是不同的标识符。是不同的标识符。n关键词不能作为用户自定义的标识符,它们有特殊的作用。关键词不能作为用户自定义的标识符,它们有特殊的作用。n对不同种类的程序实体最好采用不同风格的标识符,以提高程对不同种类的程序实体最好采用不同风格的标识符,以提高程序的易读性。例如:序的易读性。例如:PI(常量)、(常量)、student(变量)、(变量)、GetStringFromKeyboard(函数)。(函数)。命名规范命名规范命名规范命名规范程序设计风格程序设计风格程序设计风格程序设计风格高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季54n宏定义宏定义n#define 指令:预处理命令指令:预处理命令n例:例:#define PI 3.14n一旦定义,可以代替常量使用一旦定义,可以代替常量使用n宏定义不是常量!宏定义不是常量!n程序中应优先使用常量而不是宏程序中应优先使用常量而不是宏n目的与意义目的与意义n增强程序可读性增强程序可读性w使用有意义的名字命名n增强程序的可维护性增强程序的可维护性w将值定义为符号常量,则程序中仅需要修改一次#include#define PI 3.14int main()double r,area;r=3.0;area=PI*r*r;printf(%f,area);return 0;宏与常量宏与常量宏与常量宏与常量程序设计风格程序设计风格程序设计风格程序设计风格高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季55n递进层次应使用左缩进格式递进层次应使用左缩进格式n每行代码不能过长,不超过每行代码不能过长,不超过80个字符个字符n函数代码不超过函数代码不超过60行行n使用空行区分不同功能代码使用空行区分不同功能代码n除非特别必要,否则不要在一行上书写多条语句除非特别必要,否则不要在一行上书写多条语句n命名规范力求一致命名规范力求一致n无论采用什么标准,都一定要一直按照该标准执行!无论采用什么标准,都一定要一直按照该标准执行!源代码排版源代码排版源代码排版源代码排版程序设计风格程序设计风格程序设计风格程序设计风格高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季56源代码排版示例源代码排版示例源代码排版示例源代码排版示例#include int main()int i,j n,count=0;printf(请输入一个正整数:请输入一个正整数:);scanf(%d,&n);printf(“小于小于%d的素数有:的素数有:n”,n);for(i=2;in;i+)/循环:分别判断循环:分别判断2、3、.、n-1是否为素数是否为素数j=2;while(j i&i%j!=0)/循环:分别判断循环:分别判断i是否能被是否能被2 i-1整除整除j+;if(j=i)/i是素数是素数printf(%d,i);count+;if(count%6=0)printf(n);/控制每一行输出控制每一行输出6个素数。个素数。printf(n);return 0;程序设计风格程序设计风格程序设计风格程序设计风格高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季57n数据类型数据类型n确定数据对象的存储格式、取值范围、可实施的操作集确定数据对象的存储格式、取值范围、可实施的操作集n量与表达式量与表达式n操作符、操作数、表达式操作符、操作数、表达式n基本输入输出函数基本输入输出函数nprintf 与与 scanfn程序设计风格程序设计风格本章小结本章小结本章小结本章小结高级语言程序设计SEIC+C+C+C+程序设计基础 2009秋季58n第第 47-50 页:页:n习题一:第习题一:第9、17、22小题小题n习题二:第习题二:第 4、5 小题小题作作作作 业业业业
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!