,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,大学计算机基础,网络信息中心教研室,*,Click to edit Master title style,第,3,章,顺序结构程序设计与编译预处理,网络信息中心教研室,第3章 顺序结构程序设计与编译预处理网络信息中心教研室,主要内容,3.2,赋值语句,3.3,输入与输出,3.4,常用函数举例,3.5,编译预处理,3.1 C,语句概述,3.6,顺序结构程序设计举例,大学计算机基础,2,网络信息中心教研室,主要内容 3.2 赋值语句 3.3 输入与输出 3.,C,语言的,语句用来向计算机系统发出指令,,单独的一条语句或者是复合语句完成特定的操作,这些操作的不同组合,用来实现一系列数据处理功能。,C,语言程序是一个由,main(),体内的若干变量的声明、赋值等操作以及若干函数组成的,,没有编译过的程序称为源程序。,源程序的某些行,称为语句,,每个语句的最后有一个,半角分号“,;”,,用来表示语句的结束。用“,;”,隔开的语句,可以写在同一行,也可以写成几行,但这些语句必须包含在函数体中。,3.1 C,语句概述,大学计算机基础,3,网络信息中心教研室,C语言的语句用来向计算机系统发出指令,单独,3.1 C,语句概述,C,语言的语句,C,语言的语句可以分为,5,类:,表达式语句、函数调用语句、控制语句、复合语句和空语句。,1.,表达式语句,例如:,m=2;,score=math+English;,i+;x=10,y=12;,2.,函数调用语句,其一般形式为:,函数名,(,实际参数表,);,大学计算机基础,4,网络信息中心教研室,3.1 C语句概述C语言的语句 大学计算机基础4网络信息中心,3.1 C,语句概述,3.,控制语句,(1),条件判断语句:,if().else./*,分支语句*,/,switch(,表达式,/,变量,)./*,多分支语句*,/,(2),循环语句:,do.while(,条件,)/*“,先执行,后判断”的“当”型循环*,/,while(,条件,)./*“,先判断,后执行”的“当”型循环*,/,for(,条件,)./*for,循环,循环次数相对确定下使用*,/,(3),流程转向语句,goto /*,强制程序跳转,不推荐使用*,/,break /*,中止执行,switch,或者循环*,/,continue /*,结束循环体中的其中一趟*,/,return /*,从函数中返回*,/,大学计算机基础,5,网络信息中心教研室,3.1 C语句概述3.控制语句大学计算机基础5网络信息中心,3.1 C,语句概述,4.,复合语句,把多个语句用,语句,1;,语句,2;.,语句,n,这种形式构成一个比较复杂的语句称为,复合语句,又称为语句块。,如两个变量之间数据的交换。此时,应把复合语句看成一个单条语句。例如,:,if(ab),temp=a;,a=b;,b=temp;,大学计算机基础,6,网络信息中心教研室,3.1 C语句概述4.复合语句大学计算机基础6网络信息中心,3.1 C,语句概述,5.,空语句,只有“,;”,号的语句称为空语句,.,如:,for(i=0;i32768;i+),;/*,空语句,注意它的意义*,/,大学计算机基础,7,网络信息中心教研室,3.1 C语句概述5.空语句大学计算机基础7网络信息中心教,赋值语句的构成形式,赋值语句是由赋值表达式再加上“,;”,构成,,其一般形式为:,变量,=,表达式,;,例如:,sum=0;,x=y+z;,a=b=c=10;,连续赋值与赋值运算符的右结合性,而赋值语句允许给多个变量连续赋相同的值,例如,:,int a,b,c;/*,必须在变量声明处定义,a,,,b,,,c,三个变量*,/,a=b=c=3;/*,连续赋值*,/,3.2,赋值语句,大学计算机基础,8,网络信息中心教研室,赋值语句的构成形式3.2 赋值语句大学计算机基础8网络信息中,输入与输出是以计算机为主体而言的。信息从计算机的外部输入设备,(,键盘、鼠标、移动存储设备等,),向计算机输入数据称为输入,计算机向外部设备,(,显示器、打印机、文件设备等,),输出数据称为输出。,在,C,语言中,,没有输入,/,输出语句,,所有数据的输入和输出功能是通过,一组库函数,来实现的,在调用这些输入或输出库函数的时候,需要使用预编译命令,#include,将有关“头文件”包含到源文件中,这些“头文件”的文件名格式为,*,.h,。,3.3,输入与输出,大学计算机基础,9,网络信息中心教研室,输入与输出是以计算机为主体而言的。信息从计算,3.4,输入与输出,使用标准输入,/,输出库函数时,要在,main(),函数所在源文件中包含“,stdio.h”,文件,因此,源文件的开头经常有以下预编译命令:,#include,或,#include stdio.h“,本小节主要介绍单个字符的输入和输出,格式输入和输出,并简单介绍一下文件操作中的输入和输出,这些函数分别是,getchar(),、,putchar(),、,printf(),和,fscanf(),、,fprintf(),。,大学计算机基础,10,网络信息中心教研室,3.4 输入与输出 使用标准输入/输出库函数,3.4,输入与输出,1,字符数据的输入与输出,2,格式输入与输出,3,文件操作中的输入与输出简介,大学计算机基础,11,网络信息中心教研室,3.4 输入与输出1字符数据的输入与输出 2格式输入与输出,3.4.1,字符数据的输入与输出,函数的一般调用形式为:,putchar(ch);,ch,必须是一个整型变量或一个字符型变量,,ch,还可以是转义字符常量。,例如:,putchar(A);/*,输出大写字母,A*/,putchar(97);/*,输出小写字母,a*/,putchar(ch);/*,输出字符变量,ch,的值*,/,putchar(101);/*,输出大写字母,A*/,putchar(n);/*,换行,,(,执行控制功能,*,/,单个字符输出函数,putchar,1,大学计算机基础,12,网络信息中心教研室,3.4.1 字符数据的输入与输出函数的一般调用形式为:单个字,3.4.1,字符数据的输入与输出,【,程序分析与解答,】,#include,main(),int i_ch;/*,定义整型变量,i_ch,,这个变量用,i,代表整型,*,/,i_ch=65;/*65,是大写字母,A,的,ASCII,码*,/,putchar(i_ch);,putchar(n);,i_ch=97;/*97,是小写字母,a,的,ASCII,码*,/,putchar(i_ch);,putchar(n);,大学计算机基础,13,网络信息中心教研室,3.4.1 字符数据的输入与输出【程序分析与解答】大学计算机,3.4.1,字符数据的输入与输出,一般调用形式为:,char ch;,ch=getchar();,【,程序分析与解答,】,#include,main(),char ch;,printf(,在此输入任意一个字符并回车:,n);,ch=getchar();,putchar(ch);/*,回显刚才的输入*,/,putchar(n);,利用,getchar(),,手动控制程序暂停执行。,单个字符输入函数,getchar(),2,大学计算机基础,14,网络信息中心教研室,3.4.1 字符数据的输入与输出一般调用形式为:单个字符输入,3.4.2,格式输入与输出,printf,和,scanf,函数可以一次输出或者输入若干个任意类型数据,有效解决输入复杂数据的问题,使用时,可以不包含头文件,stdio.h,。,输出函数,printf,格式:,printf(,格式控制字符串,输出表列,),printf(),函数参数的第一部分,,由格式字符串和普通字符组成,,格式字符串是以“,%”,开头,在输出表列中,必须有一个变量与这个格式字符相对应,;,普通字符在输出时按原样输出,.,格式输出函数,printf,(),1,大学计算机基础,15,网络信息中心教研室,3.4.2 格式输入与输出 printf和sc,3.4.2,格式输入与输出,例如:,printf(“,总和,=%d,平均值,=%5.2fn,sum,average);,格式字符串 输出表列,【,程序分析与解答,】,#include,main(),int ch1=77,ch2=78;,printf(ch1=%d,ch2=%dn,ch1,ch2);,printf(ch1=%c,ch2=%cn,ch1,ch2);,printf(%c%cn,ch1,ch2);,大学计算机基础,16,网络信息中心教研室,3.4.2 格式输入与输出例如:大学计算机基础16网络信息中,3.4.2,格式输入与输出,格式控制是通过格式字符串来实现的,格式字符串的一般形式为:,%,标志,输出最小宽度,.,精度,长度修饰符,类型,其中,方括号,内的项可选,也可以省略,下面就介绍以上,6,项的使用方法:,%,:格式字符串的起始符号,不可省。,标志:标志字符为,+,、,-,、,#,、空格,4,种,其意义如下所示:,大学计算机基础,17,网络信息中心教研室,3.4.2 格式输入与输出 格式控制是通过格式字,3.4.2,格式输入与输出,标志 为,+,时,输出值为正时在值前补“,+”,号,为负时值前补“,-”,号,标志为,-,时,输出结果左对齐,右边补空格;缺省则输出结果右对齐,左边填空格或零,标志为,#,时,输出,8,进制数时加前缀,0,;输出,16,进制数时加前缀,0 x,。,输出最小宽度:通常用,10,进制整数来表示输出数据项的最小位数,若实际位数多于指定位数,则按实际位数输出,若实际宽度少于指定位数,则用空格或,0,填补。,大学计算机基础,18,网络信息中心教研室,3.4.2 格式输入与输出 标志 为+时,输出,3.4.2,格式输入与输出,精度:精度格式以,“.”,开头,后跟,10,进制整数,用来指示保留几位小数。,长度修饰符:常用的长度修改符为,h,、,l,两种,英文字母,h,表示输出项按短整型数据输出,英文字母,l,表示输出项按长整型数据输出。,类型:类型字符用来表示待输出数据的类型,必须用半角英文字符。,格式字符,d(,或,i)ox(,或,X),;,u,;,c,;,s,;,f,;,lf,;,e(,或,E),;,g(,或,G),;,%,(输出一个,%,符号)。,大学计算机基础,19,网络信息中心教研室,3.4.2 格式输入与输出 精度:精度格式以“.,3.4.2,格式输入与输出,【,例,3-1】,数据在内存中的存储与,8,进制输出。,【,程序分析与解答,】,#include,main(),unsigned short int a=-1;,printf(%d,%on,a,a);,输出结果为:,65535,177777,大学计算机基础,20,网络信息中心教研室,3.4.2 格式输入与输出【例3-1】数据在内存中的存储与8,3.4.2,格式输入与输出,输入函数,scanf,格式:,scanf(,格式控制字符串,地址表列,),地址表列中给出各变量的地址,地址是由,地址运算符“,&”,后跟变量,组成,但对字符号串的输入例外。,格式输入函数,scanf,(),2,大学计算机基础,21,网络信息中心教研室,3.4.2 格式输入与输出 输入函数scanf格式:格式输,3.4.3,文件操作中的输入与输出,fprintf(,文件指针,格式字符串,输出表列,);,fscanf(,文件指针,格式字符串,输出表列,);,大学计算机基础,22,网络信息中心教研室,3.4.3 文件操作中的输入与输出fprintf(文件指针,1.,求绝对值函数,(1)int abs(int x);(2)double fabs(double x);,2.,求自然对数值函数,doubl