下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
、参考书与安排强 高等教育强C程序设计(第四版)强编著参考书C语言程序设计C高级实用程序设计
C程序设计试题汇编安排理论学时:36学时实验学时:24§
熟记C语言的基本概念§
熟悉TurboC、Visual
C++的上机操作环境§
会读、会编、会调试C程序学习要点熟记C语言的语法学会算法分析与算法设计课程目的课程要求课前请做好预习保持课堂安静,头脑清醒,思维活跃认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间C语言发展历史
C语言的特点简单的C程序介绍C程序的上机步骤第1章C语言概述C语言程序设计第一章C语言概述§
1.1
C语言发展历史程序设计语言的发展机器语言汇编语言高级语言面向过程面
象C语言程序设计第一章C语言概述用助记符号可读性,C语言兼有高级和低级语言的功能应用如AD
面向机一般较难适合写系统
编写系统软如:地址又称中级语言<>C语言程序设计
第一章
C语言概述C语言发展过程产生背景1960ALGOL
60→1963CPL语言→1967BCPL→1970KenThompson
B语言,写UNIX系统产生过程时间:1972~1973地点:
贝尔目的:UNIX操作系统设计人:Ken.Thompson和Dennis.M.RitchieC标准标准C:1978年K&R合著《The
C
Programming
Language》ANSI
C:1983年87
ANSI
C:1987年1990年国际标准的ANSI
C
,1994年再次修订。C版本C或称
MS-CTurbo
C
或称TC<>52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
90
92
94
96ALGOL60ALGOL68AdaModula-2PascalCPLBCPL
BCC++JavaFORTRAN77FORTRANPL/1COBOLLISPSimula
67Smalltalk
80BASICANSI-BASICQBASIC
VBFORTRAN90§
1.2
C语言的特点语言简洁、紧凑、灵活运算符丰富数据结构、数据类型丰富链表、树、栈程序设计结构化、模块化结构化控制语句:if…else、while、switch、for函数作为模块单位语法不严格、程序设计 度大可以 内存地址、进行位运算生成目标代码质量高可移植性好<
>>
>
>>>C语言程序设计第一章C语言概述32个关键字:(由系统定义,不能重作其它定义)autocontinueenumifshortswitchbreakdefaultexternintsignedtypedefcasedofloatlongsizeofunsignedchardoubleforregisterstaticunionconstelsegotoreturnstructvoidvolatilewhileTurbo
C扩充了11个关键字:asm
_cs
_ds
_es
_ss
cdecl
farhuge
interrupt
near
pascal注意:在C语言中,关键字都是小写的。C语言程序设计
第一章
C语言概述C语言简洁、紧凑,使用方便、灵活。ANSI
C一共只有32个关键字,见365页附录B<9种控制语句:if()~else~for(
)~while(
)~do~while(
)continuebreakswitchgotoreturnC语言程序设计第一章C语言概述C语言有9
种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。<C语言程序设计第一章C语言概述表1.1 C语言与Pascal语言比较通过表1.1
我们可以得出结论:C比Pascal简练,因此源程序更短,编程效率高。C语言PASCAL语言含义{
}BEGINEND函数体、分程序、复合语句if(e)S;IF(e)THEN
S;条件语句inti;VARi:INTEGER;定义i为整形变量inta[10];VARa:ARRAY[1..10]OF定义a为一维数组INTEGER;intf();int*p;i+=2;i++,++I;FUNCTIONf():INTEGER;VAR P:INTEGER;i=i+2;i=i+1;定义f为返回整形值函数;p为指向整形变量的指针变量;赋值语句,使i+2赋给Ii自增值1,i加1赋给I<34种运算符:算术运算符:+-
*
/%++--关系运算符:<<=
==>>=!=逻辑运算符:!&&
||位运算符
:<<>>~
|^&赋值运算符:= 及其扩展条件运算符:?:逗号运算符:,指针运算符:*
&求字节数
:sizeof强制类型转换:(类型)分量运算符:. ->下标运算符:[]其它
:(
)
-注意:各种运算符混合使用,其优先级与结合方法是难点,可先预习。<C语言程序设计第一章C语言概述C语言运算符丰富(附录C)C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型双精度型double短整型short整
型
整型int长整型long单精度型float浮点型字符类型char数组结构体struct
共用体union枚举类型enum<C语言程序设计第一章C语言概述C语言数据结构丰富§
1.3简单的C程序介绍/*example1.1
The#include
<stdio.h>o
Word!.\n”);void
main(){printf(“}C语言程序设计第一章C语言概述注释C
Program*/编译预处理主函数语句输出:This
is
a
cprogram.例1.1
第一个程序
o
Word!.<
>printf语句中的“\n”是换行符例1.2求俩个数的和/*
example1.1calculate
the
sum
of
a
and
b*/#include
<stdio.h>/* This
is
the
mainprogram
*/void
main(){ int
a,b,sum;a=10;
b=24;sum=add(a,b);printf(”sum=
%d\n",sum);}/*
This
function
calculates
the
sum
of
x
andy*/int
add(int
x,int
y){
int
z;z=x+y;return(z);}运行结果:sum=34/*定义变量*/
函数语句预处理命令注释C语言程序设计第一章C语言概述<
>printf语句中的“%d”是表示“十进制整数类型”C语言程序设计
第一章
C语言概述<
>例1.3从键盘输入两个整数,输出其中较大的数#include
<stdioh>void
main(){
int
max(int
x,inty)int
a,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf("
max
=
%d"
c);}int
max(int
x,inty){
int
z;if(x>y)
z=x;else
z=y;return(z);}scanf语句中“&a”的含义是“取地址”输入:10,20输出:max=20部分,定义变量c定义max子函数,函数值、形参x、y为整型通过max函数将z值带回调用处C语言格式特点用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式<
>C语言程序设计第一章C语言概述main(
){int i,j
,
sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j
;}}printf(“%d\n”,sum);}优秀程序员的素质之一:
使用TAB缩进
{}对齐
有足够的注释
有合适的空行<
>例:
/*This
isthe
main /*
ofexample1.1*/
*/C语言程序设计
第一章
C语言概述C语言结构特点函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main(),可以放在程序中任一位置程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。程序语句C程序由语句组成用“;”作为语句终止符注释/*
*/为注释,不能嵌套不产生编译代码编译预处理命令编辑编译执行§
1.4
C程序的上机步骤<
>C程序开发步骤开
始编辑编译连接执行有错?有源程序file.c目标程序file.obj库函数和其它目标程序无不正确结果正确?正确结束可执行目标程序file.exeC语言程序设计第一章C语言概述程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库装配,生成可执行程序*.exe源程序目标程序可执行程序内容程序设计语言机器语言机器语言可执行不可以不可以可以文件名后缀.c或.cpp.obj.exe*.*INCLUDELIB*.*SYS*.*C语言程序设计
第一章
C语言概述Turbo
C集成开发环境配置要求UNIX,PC-DOS,MS-DOS,UCDOS操作系统硬盘容量约2M,448K
RAM运行空间安装TurboC创建子Install若不是可安装盘,将文件拷贝到对应的
下TC<>进入Turbo
CD:\TC>TC.exe主控菜单文件操作FILE
:New
Load
Save
Writeto编辑操作EDIT:
/修改
块
查找/替换编译
COMPILE
LINK
MAKE执行RUN退出TurboCAlt
+xAlt+F
,Q帮助HelpF1Ctrl+F1C语言程序设计第一章C语言概述<>文本编辑:→-------移动光标PgUp,PgDn------上下翻页Ctrl+PgUp,Ctrl+PgDn------文件首尾End行尾InsertHome行首DdeleteBkspaceCtrl+KK--------块结束标记Ctrl+KV--------块移动Ctrl+KH--------块隐藏Ctrl+F8------Toggle
BreakpointF7-------Trace
intoCtrl+F7--------Add
WatchCtrl+F2--------Program
Reset窗口操作:F5-----窗口缩放F6-----窗口切换C语言程序设计常用热键基本操作:F10-----调用主菜单F2------存盘F3------打开F1------帮助信息pileCtrl+F9------RunAlt+F5------User
ScreenAlt+X
------退出Tc块操作:Ctrl+KB-------块开始标记Ctrl+KC-------块拷贝Ctrl+KY-------块删除程序调试:F8-----Step
overF4-----Goto
Cursor第一章C语言概述<
>C程序设计第一章C语言概述Visual
C++实现C程序1)启动<>C程序设计第一章C语言概述2)文件编辑与保存<>C程序设计第一章C语言概述3)编译与<>C程序设计第一章C语言概述4)运行<>C语言程序设计第一章C语言概述<><>C程序设计第一章C语言概述本章小结通过本章的学习,应对计算机语言及程序设计的概念,C程序的组成特点,C程序的运行过程有一个初步了解。学习C语言程序设计,掌握C语言语
则和程序设计方法,培养编程技能是很重要的。C语言相对其它高级语言来说要相对难一些,但只要认真对待,学习程序设计好的方法就是在掌握语
则的基础上,多分析阅读别人写的程序,多自己动手编写一些小程序,多上机调试运行程序,做到这3个“多”字,学习好C程序设计就不难了。第2章程序的C语言程序设计第二章
程序的
——算法——算法算法的概念
简单算法举例算法的特性怎样表示一个算法
结构化程序设计方法C语言程序设计第二章程序的——算法程序包括的内容:数据结构:数据的类型和组织形式算法:操作步骤的描述Nikiklaus
Wirth提出:程序=数据结构+算法认为:程序=算法+数据结构+程序设计方法+语言工具和环境加工对象
工具<>C语言程序设计
第二章
程序的
——算法§
2.1
算法的概念为解决一个问题而采取的方法和步骤,就成为算法。例如:歌曲的乐谱,建造房子等。算法 是解决“做什么”和“怎么做”的问题。1+2+…+100可以有多种方法,一般采用简单和运算步骤少的。准确、高效计算机算法类别数值运算算法非数值运算算法<>C语言程序设计
第二章
程序的——算法§
2.2
简单算法举例例2.1方法1:累乘方法2:用循环结构解决,灵活、通用。例2.2通过循环选择打印例2.3判断闰年例2.4累加求级数的和,循环改变正负号和分母加1。例2.5判断素数课后认真思考,加深算法的概念<>第二章程序的——算法C语言程序设计§
2.3
算法的特性<>有穷性—在合理范围内可完成确定性—无歧义性有零个或多个输入—从外界得到信息有一个或多个输出—问题的答案有效性—每步有确定的结果第二章程序的——算法C语言程序设计§
2.4
怎样表示一个算法自然语言表示2.2节例。易懂,文字冗长,易歧义性流程图表示用流程图符号构成,直观,易懂N-S流程图表示伪代码表示计算机语言表示顺序结构选择结构循环结构<>C语言程序设计第二章
程序的
——算法、可读性差,所以应该传统流程图流向采用结构化流程图。结构化程序设计基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)结构化程序:由三种基本结构反复嵌套构成的程序优点:结构清晰,易读,提高程序设计质量和效率三种基本结构顺序结构ABAB流程图N-S图<>C语言程序设计第二章程序的——算法PAB真假真
P
假AB选择结构kA1A2AiAnk=k2k=k1k=knk=ki......二分支选择结构多分支选择结构<>C语言程序设计第二章程序的——算法循环结构当型循环结构直到型循环结构PA假真当P为真AAP假A直到P为真真注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构<>C语言程序设计第二章程序的——算法三种基本结构的共同特点:只有一个
;只有一个出口;结构内的每一部分都有机会被执行到;结构内不存在“死循环”。<>C语言程序设计第二章程序的——算法§
2.5
结构化程序设计方法结构化程序:用三种基本结构组成的程序基本设计思路:复杂问题分解成几个最基本问题,再分别处理。采用的方法:自顶向下;逐步细化;模块化设计:复杂问题按功能分成多个子模块结构化编码:正确采用三种基本结构实现<
>C程序设计第二章
程序的 :算法本章小结本章的内容是十分重要的,是学习后面各章的基础。学习程序设计的目的不只是学门特定的语言,而是学习进行程序设计的方法。掌握了算法就是掌握了程序设计的,再学习有关的计算机语言知识,就能够顺利编写任何一种语言的程序。关键是算法。有了正确的算法,用任何语言进行编码都不应该有什么。在本章中只是初步介绍了有关算法的基本知识,并没有深入介绍如何设计各种类型的算法。在以后的章节中将结合实例陆续介绍有关的算法。<
>第3章最简单的C程序设计——顺序程序设计C语言程序设计
第三章
顺序程序设计C数据类型、表达式
C语句数据输入输出的概念及在C语言中的实现字符数据的输入输出格式输入与输出顺序结构程序设计举例C语言程序设计第三章顺序程序设计C的数据类型常量与变量整型数据实型数据
字符型数据变量赋初值各种数值型数据间的混合运算算术运算符和算术表达式赋值运算符和赋值表达式逗号运算符和逗号表达式§
3.1
C数据类型、表达式C语言程序设计第三章顺序程序设计§
3.1.1
C的数据类型C数据类型基本类型构造类型指针类型空类型void整型实型(浮点型)单精度型float双精度型double数组类型结构体类型共用体类型短整型short整型int长整型long字符型char枚举类型enum数据类型决定:数据占内存字节数数据取值范围可以进行的操作<>C语言程序设计
第三章顺序程序设计常量和符号常量定义:程序运行过程中,其值不能被改变的量(常数)分类:直接常量、符号常量<>§
3.1.2
常量与变量类型示例整型常量12
、0、-3实型常量4.6
、-1.23字符常量‘a’
、‘b’符号常量PRICE
、PAIC语言程序设计
第三章顺序程序设计符号常量:用标识符代表常量一般用大写字母:
PRICE
、
PI定义格式:
#define
符号常量
常量其值在作用域内不能改变和再赋值。例3.1
符号常量举例#define
PRICE
30#include<stdio.h>voidmain(){intnum,total;num=10;total=num*PRICE;printf("total=%d\n",total);total=300运行结果:符号常量的优点是:<>}见名知意、一改全改C语言程序设计第三章顺序程序设计变量定义:其值可以改变的量。定义格式:数据类型
变量名;变量应该有名字,并在内存中占据一定的 单元。变量名和变量值有不同的含义变量名实为一个符号地址a3例变量的使用main(){inta;a=3;printf(“a=%d",a);变量名变量值单元<>}第三章顺序程序设计C语言程序设计标识符定义:标识变量名、符号常量名、函数名、数组名、文件名的字符串序列——名字。命名规则:且第一个字符不TC允许最长32个字符,建议长度不超过8个字符使用:先定义、后使用标识符应该“见名知意”,如total,max标识符应该“不宜
”,如
l与1
,
O与0只能由字母 数字
划这些标识符合法吗?1A、M.D.John、¥123、#33、Tatol、int、max<>C语言程序设计
第三章顺序程序设计§
3.1.3
整型数据整型常量(整常数)的三种表示方法十进制整数:由数字0~9和正负号表示.如 123,-456,0八进制整数:由数字0开头,后跟数字0~7表示.如
0123,011十六进制整数:由0x开头,后跟0~9,a~f,A~F表示.如
0x123,0xff<>C语言程序设计第三章顺序程序设计§
补充知识:字节和位内存以字节为单元组成每个字节有一个地址一个字节一般由8个二进制位组成每个二进位的值是0或17
6
5
4
3
2
1
0012345678910……...7654321<>810C语言程序设计
第三章顺序程序设计数值的表示方法——原码、反码和补码原码:最 为符号位,其余各位为数值本身的绝对值反码:正数:反码与原码相同负数:符号位为1,其余位对原码取反补码:正数:原码、反码、补码相同负数:最
为1,其余位为原码取反,再对整个数加119-5=49+7=16=(14)12<>C语言程序设计第三章顺序程序设计原码反码补码-7100001111111100011111001-0100000001111111100000000数的范围01111111~11111111(-127~+127)01111111~10000000(-127~+127)01111111~10000000(-128~+127)(用一字节表示数)负数补码转换成十进制数:最不动,其余位取反加1例补码:11111001取反:10000110加1:10000111=-7<>C语言程序设计
第三章顺序程序设计整型变量整型数据在内存中的存放形式数据在内存中以二进制补码形式存放每一个整型变量在内存中占2个字节10的原码反码补码-10的原码取绝对值反码补码0000000000001010000000000000101000000000000010101000000000001010000000000000101011111111111101011111111111110110整数的最左二进制位是符号位,
0正、1负<
>C语言程序设计第三章顺序程序设计整型变量的分类三类整型变量有符号无符号基本型(简称整型)intunsigned
int短整型short或short
intunsigned
short长整型long或long
intunsigned
long整数类型和取值范围TURBO
C所占位数最小取值范围int16-32768~short16--32768~long322147483648~unsigned
int16470~65535unsigned
short160~65535unsigned
long320~<
>C语言程序设计第三章顺序程序设计整型变量的定义先定义后使用——强制类型定义int
a
b;
(指定变量a、b为整型)d为无符号短整型)(指定变量e、长整型)00
00
00
0001000000000000000000000000000long
型符号位例3.2
整型变量的定义与使用#
nclude
<stdio
h>voidmain(){int
a,b,c,d;unsigned
u
;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n",c,d);
ned
long
型}指定abcd为整型变量指定u为无符号整型变量定义放在函数开
hort
c,
d;
(指定变量头的 部分long00
00
00
0作用域0不同类型混合运算,类型自动转换结果:a+u=22,b+u=
-14定义与赋值同时进行:inta=12;<
>C语言程序设计第三章顺序程序设计01111111111111
111000000000000000整型数据的溢出整型变量最大值32767加1后是–32768的补码形式此情况称为“溢出”,运行时不报错,编程时要注意例3.3
整型数据的溢出#include<stdio.h>void
main(
){inta,b;a=32767;b=
a+1;printf("%d
,
%d
\n
",a,b);}32767,
-32768运行结果:改为:long
b;结果是什么?<>C语言程序设计第三章顺序程序设计范围内,编译整型常量的类型整型常量的值在-32768~器认为是int类型整型常量的值超过上述范围,而在-2147483648
~
7范围内,编译器认为是long类型当系统定义short
int与int占内存长度相同,则两种类型常量均可以赋给int和short
int型变量在整型常量后面加大写L或小写l,则告诉编译器,把该整型常量作为long类型处理。例:123L、0L在整型常量后面加u,则按无符号整型方式存放,负数转换成补码再按无符号整型方式存放。<><
>C语言程序设计
第三章顺序程序设计§
3.1.4
浮点型数据浮点型常量的表示方法浮点数(float)又称为实数(real)两种表示方法:十进制小数形式:必须有小数点如0.123
、.123
、123.0
、0.0
、123.指数形式:e或E之前后必须有数字;指数必须为整数如123.456e0、12.3456e1
、1.23456e2
、0.123456e3
、0.0123456e4
等规范化指数形式只有一位非零整数的指数形式是指数的输出形式6.28e-2
表示
6.28×
10
-2-3.0824e4
表示–3.0824×10
4C语言程序设计
第三顺序程序设计浮点型变量浮点型数据在内存中的存放形式浮点型数据在内存中占4个字节(32位)在内存中分成3部分,指数为2的幂次+.3141591数符小数部分指数浮点型变量的分类类
型位数有效数字单精度float32位6~7双精度double
型64位15~16长双精度long
double型128位18~19float
x,y;double
z;long
double
t;(指定x、y为单精度浮点型变量)(指定z为双精度浮点型变量)(指定t为长双精度浮点型变量)<
>C语言程序设计
第三章顺序程序设计浮点型数据的舍入误差数据超过有效位数,则产生误差要避免一个很大的数与一个很小的数加减例3.4
浮点型数据的舍入误差#include<stdio.h>voidmain(){floata,b;a=123456.789e5;b=a+20;printf("%f
\n",b);}舍入误差使1.0/3*3
的结果并不等于1!12345678848.000000运行结果:浮点型常量的类型浮点型常量一般按双精度64位处理,数后加F或f按单精度浮点型常量不分float和double<
>C语言程序设计
第三章顺序程序设计§
3.1.5
字符型数据字符常量定义:用单引号括起来的单个字符或转义字符如
‘a’
‘A’
‘\n’ ‘\t
’字符常量的值:该字符的ASCII码值如
‘a’——97
,‘A’——65‘\n’——10,
‘\t’——9定义格式:char
变量名=值char
ch=65
与char
ch=‘A’与char=‘\101’是等效的转义字符:反斜线后面跟一个字符或一个代码值表示<
>C语言程序设计第三章顺序程序设计表1
转义字符及其含义转义字符含义转义字符含义\n换行\t水平制表(右移8格)\v垂直制表\b退格\r回车(不换行)\f换页\a响铃\\反斜线\‘单引号\“双引号\ddd3位8进制数代表的字符\xhh2位16进制数代表的字符例3.5
转义字符的使用#include<stdio.h>void
main(
){
printf(“
ab c\t
de\rf\tg\n”);printf(“h\ti\b\bj
k”);}fhgdej
k显示结果:打印结果:fabhgdejik<
>第三章顺序程序设计C语言程序设计字符变量存放字符常量,占用一个字节,存放一个字符定义形式:char
c1,c2;字符数据在内存中的赋值:c1=‘a’;c2=‘b’;形式及其使用方法以二进制存放字符的ASCII码值(0~255整数)与整数的 形式类似以字符或整数形式输出例3.6
向字符变量赋整数#include<stdio.h>void
main(
){
char
c1,c2
;c1=97
;c2=98
;printf(“%c
%c
\n",c1,c2);printf(“%d
%d\n",c1,c2);}97
98输出形式取决于printf函数中的格式符格式符为“%c”时输出的变量值为字符格式符为“%d"时运输行出结的果变:量值a
为整b数<
>C语言程序设计
第三章顺序程序设计对字符数据进行算术运算实质是对其ASCII值进行算术运算例3.7
大小写字母的转换#include<stdio.h>void
main(
){char
c1,c2
;c1=‘a’
;c2=‘b’
;c1=c1-32;c2=c2-32;printf(“%c
%c
",c1,c2);}运行结果:
A
B字符型与整型间互相赋值h>void
main(
){int
c1;char
c2
;c1=‘a’
;c2=98
;c1=c1-32;c2=c2-32;printf(“%c
%c
",c1,c2);}小写字母比大写字母的ASCII码大(32)10<
>第三章顺序程序设计C语言程序设计字符串常量定义:引号(“”)括起来的字符序列hello\0“How
do
you
do”
,
“CHINA” ,
“a”
,
“$123.45”:每个字符串尾自动加一个‘\0’作为字符串结束标志例
字符串“
o”在内存中例
空串
“”\0字符常量与字符串常量不同a例:
char
ch;ch=‘A’;例
‘a’
“a”
没有字符串变量,只能用字符数组存放<
>C语言程序设计
第三章顺序程序设计§
3.1.6
变量赋初值变量的使用:先定义,后使用变量定义位置:一般放在函数开头变量初始化:可以在定义时赋初值例:inta=1,b=
-3,c;float
data=3.67;charch=‘A’;int
x=1,y=1,z=1;int
x=y=1;(×
)编译程序根据变量定义为其分配指定字节的内存单元…...地址int a=1,
b=-3,c;abc2字节2字节2字节地址地址内存…...1-3随机数错!int
a=b=c=3<
>C语言程序设计
第三章顺序程序设计§
3.1.7
各类数值型数据间的混合运算整型、实型、字符型数据间可以混合运算自动转换什么情况下发生运算转换------不同类型数据混合运算时赋值转换------把一个值赋给与其类型不同的变量时输出转换------输出时转换成指定的输出格式函数调用转换------实参与形参类型不一致时转换运算转换规则:不同类型数据运算时先自动转换成同一类型<
>C语言程序设计第三章顺序程序设计doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例charch;int
i;float
f;double
d;intch/i
+
f*d
-
(f+i)int
double
doubledouble
doubledoubledoubleintdoubledoubledoubledoubledouble例int
i;float
f;double
d;long
l;10+‘a’
+i*f
-
d/lint
double<
>C语言程序设计
第三章顺序程序设计强制转换(见P56强制类型转换运算符部分)一般形式:(类型名)(表达式)例:(int)(x+y)(int)x+y(double)(3/2)(int)3.6,说明:强制转换得到所需类型的中间变量原变量类型不变例3.8main(){
float
x;int
i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生强制类型转换运算符表达式仅一个#include
<stdio
变量时,括号可以省略<
>C语言程序设计
第三章顺序程序设计§
3.1.8
算术运算符和算术表达式C运算符算术运算符:(+
-
*
/%++--)关系运算符:(<
<=
==>>=!=)逻辑运算符:((!
&&||)位运算符
:(<<
>>~
|^&)赋值运算符:(= 及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*
&)求字节数
:(sizeof)强制类型转换:(类型)分量运算符:(. ->)下标运算符:([])其它
:((
) -)学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型<
>C语言程序设计第三章顺序程序设计算术运算符和算术表达式+
-
*
/
%基本算术运算符:结合方向:从左向右优先级:
-
---->*
/
%
----->
+
-(2)
(3)
(4)说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据
+-*/运算的两个数中有一个数为实数,结果是double型例
5/2 =
2-5/2.0
=
-2.5例
5%2-5%21%10===1-115%1=0<>5.5%2()C语言程序设计第三章顺序程序设计自增、自减运算符++--作用:使变量值加1或减1种类:前置
++i,
--i (先执行i+1或i-1,再使用i值)后置
i++,i-- (先使用i值,再执行i+1或i-1)例j=3;j=3;j=3;j=3;k=++j;k=j++;printf(“%d”,++j);printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//4,j=4//3,j=4//c=20,a=4//c=15,a=4<>C语言程序设计第三章顺序程序设计例-i++i=3;
-(i++)printf(“%d”,-i++);
//-3几点说明:++--不能用于常量和表达式,如
5++,(a+b)++++
--
结合方向:
自右向左优先级:-++-------->*/%----->+-(2)
(3)
(4)该运算符常用于循环语句中,使循环变量加减1有关表达式使用中的问题说明不同系统对运算符和表达式的处理次序不同,尽可能写通用性强的语句不要写有歧义和不知系统如何执行的程序<>C语言程序设计
第三章顺序程序设计§
3.1.9
赋值运算符和赋值表达式简单赋值运算符符号:格式:=变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量左侧必须是变量,不能是常量或表达式例a=3;d=func();
c=d+2;例3=x-2*y;a+b=3;
(×)<
>类型转换赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例
float
f
; int
i=10;
f=i;则
f=10.0例inti;i=2.56;
//结果i=2;复合赋值运算符种类:+=
-=
*=
/= %=
《=
》=
&=含义:
exp1
op=exp2
exp1
=
exp1^=
|=op
exp2a+=3x*=y+8x%=3a=a+3x=x*(y+8)x=x%3C语言程序设计第三章顺序程序设计赋值表达式形式:<变量><赋值运算符><表达式>赋值表达式的值与变量值相等,且可嵌套例:
a=b=c=5a=(b=5)a=5+(c=6)//表达式值为5,a,b,c值为5//
b=5;a=5//表达式值11,c=6,a=11a=(b=4)+(c=6)
//表达式值10,a=10,b=4,c=6a=(b=10)/(c=2)
//表达式值5,a=5,b=10,c=2<>C语言程序设计
第三章顺序程序设计§
3.1.10
逗号运算符和逗号表达式形式:表达式1,表达式2,……表达式n结合性:从左向右优先级:15,级别最低逗号表达式的值:等于表达式n的值用途:常用于循环for语句中例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3)x=a=3,6*a例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);//a=15,表达式值60//a=15,表达式值20//赋值表达式,表达式值18,x=18//逗号表达式,表达式值18,x=3//1,2,3//3,2,3<>C语言程序设计第三章顺序程序设计例:逗号表达式使用main(){ intx,y=7;floatz=4;x=(y=y+6,y/z);printf("x=%d\n",x);}X=3运行结果:本章的内容散乱而复杂,但却是程序设计的基础,要认真看书,通过编程序才可以深入理解。<><
>§
3.2
C语句C程序结构:一个C程序可以由多个源程序文件构成一个源程序文件由若干函数、预编译命令及全局变量
部分构成函数包括数据定义部分和执行部分,执行部分是C语言语句,完成对数据的操作C语言程序设计
第三章
顺序程序设计源程序文件1预处理命令全局变量函数首部局部变量执行语句函数体函数1函数n源程序文件2源程序文件nC程序C语句分为5类控制语句:共9种完成一定的控制功能,这些语句能够根据一定的测试条件决定某些语句是否被执行,如分支、循环、跳转等语句。C语言程序设计
第三章
顺序程序设计(条件语句)(循环语句)if()~else~for()~while(
)~do~while(
)continueswitchbreakgotoreturn(结束本次循环语句)(多分支选择语句)(终止switch或循环语句)(转向语句)(从函数返回语句)§
3.2.1
语句的作用和分类<>C语言程序设计第三章顺序程序设计空语句:只有一个“;”,什么也不做<>表达式语句:由表达式加“;”组成典型的是赋值语句,由赋值表达式加分号构成,如:y=x+1是表达式,而y=x+1;则是赋值语句。实际上函数调用语句也属于表达式语句。函数调用语句:由函数加“;”组成printf(“This
is
a
Cprogram”);a=3;i++
;for(i=0;i<100;i++){;}C语言程序设计
第三章
顺序程序设计复合语句:用{…}括起来的一组语句,也称作程序块。一般形式:inti=0,sum=0;while(i<=100){sum=sum+i;i=i+1;}<>说明复合语句“}”后不加分号语法上和其它语句相同复合语句可嵌套§
3.2.2
赋值语句基本格式:赋值表达式+;赋值表达式可以包含在其它表达式中,而赋值语句不可以。C语言程序设计第三章顺序程序设计例:if((a=b)>0)t=a;不可写为:if((a=b;)>0)t=a;<>C语言程序设计第三章顺序程序设计表达式中允许出现运算符号、变量、数值、函数序号语句含义右侧表达式包括1a=5常量2S=pi*r*r求圆面积变量、乘号3average=(a+b)/2求平均数变量、常数、括号4x=l*cos(q)求横坐标变量、函数5i=0x30+255十进制、十六进制6ch=ch-
‘A’变量、字符常量7m=a[1]+a[2]数组变量8x=*px++指针变量、增1运算<><
>C语言程序设计
第三章
顺序程序设计另一种形式的赋值语句<变量><运算符>=<表达式>;示例含义a+=表达式a=
a+(表达式)a-=表达式a=
a-(表达式)a
*=表达式a=
a
*(表达式)a/=表达式a=
a/(表达式)a%=表达式a=a%(表达式)我们可以理解为:<变量>=<变量><运算符><表达式>;只适合于整型变量<
>连续赋值语句C语言程序设计第三章顺序程序设计int
a
,
b
,
c
;a=b=c=1
;把常数1
赋给变量c,表达式(c=1)的值为1;把表达式(c=1)赋给变量b,表达式(b=(c=1))的值为1;将右侧表达式的值1赋给a
,a
=1
。步骤:连续赋值语句应“从右向左”计算a=b=c=1
;等价于:a=(b=(c=1));int a=b=c=1
;<
>§
3.3
数据输入输出的概念及在C语言中的实现C语言程序设计
第三章
顺序程序设计标准输入输putchar
输出函数出字符,scanf
格式输入,p入字符,printf
格式输出,guts
输出字符串ets
输入字符串所谓数据的输入输出是从计算机角度出发的。C语言本身没有I/O语句,所有I/O都由函数来实现。C语言的标准库函数在系统中,不是C语段才与源程序编调用#include<相关的头文件>,使相应序中。#include<stdio.h>getchar
输或#include
”stdio.h”言TurboC
2.0可以注意在调用C语言库函数时,需要使
不加#include命令由编
常用头文件:库函
stdio.h
定义输入输出函数译成
string.h
定义字符串操作函数函
math.h
定义sin、cos等数学函数<
>§
3.3.1
字符数据的输入输出putchar
函数(单字符输出函数)C语言程序设计第三章顺序程序设计格式:putchar(‘字符’);或putchar(
字符变量);强调:被输出的单个字符必须被‘’括起输来出一个字符:运行结果:BOY/*
例
4.1
putchar(字符变量)
*/#include<stdio.h>voidmain(){ char
a,b,c;a='B';
b=‘O';
c=‘Y';putchar(a);
putchar(b);putchar(c);}结果当然还是一样的!输出控制字符C语言程序设计第三章顺序程序设计/*
例
putchar(‘控制字符’)
*/#include<stdio.h>voidmain(){ char
a,b;a=‘O';b=‘k';putchar(a);
putchar(‘\n’);putchar(b);}运行结果:Ok输出转义字符/*例
putchar(
)
含有转义符*
/#include<stdio.h>voidmain(){ char
a;a='B';putchar('\101');
putchar(a);}<>运行结果:ABC语言程序设计
第三章
顺序程序设计getchar
函数(单字符输入函数)。格式:
getchar(
)
;强调:输入单个字符后,必须按一次回车,计算机才接受输入的字符。#include
<stdio.h>不能少!/*例4.2
*/
#include<stdio.h>voidmain(){
char
c;c=getchar(
);putchar(c);}<>运行结果:a
a§
3.3.2
格式输入与输出printf函数(格式输出函数)printf函数的一般格式C语言程序设计第三章顺序程序设计格式:printf(格式控制,输出表列);格式控制:
引号括起来的字符串,包含两种信息格式说明:%[修饰符]格式字符,指定输出格式可普通字符:原样输出输出表列:要输出的数据,没有,多个时以“,”分隔)例:printf(“%d
%d”,a,b);printf(
“a=%d
b=
%d\n”,a,b);符符普通字
输出表列<>C语言程序设计第三章顺序程序设计/*从最简单的学起*/#include<stdio.h>voidmain(){printf(“ o
World
!”
);}运行结果:o
World!调用printf()时可以省略#include
命令!<><
>C语言程序设计
第三章
顺序程序设计格式字符d格式符:输出十进制整数,有3种用法%d格式:按数据实际长度输出,数据范围
-32768~32767。/*
%d
格式的printf()函数使用*/#include<stdio.h>voidmain(){inta=3
,
b=4;printf(“%d %d\n”,a,b);printf(“a=%d
,
b=%d\n”,a,b);}运行结果:3
4a=3,b=4格式说明决定最终输出的格式格式说明应与输出列表项个数相同,顺序一致格式说明通常用小写字母表示<
>%md格式:m指定输出字段的宽度数据位数小于m,左端补空格,反之按实际输出。C语言程序设计第三章顺序程序设计inta=123
, b=12345
;printf(“%4d %4d
”, a,b);%ld格式:输出长整型数据可以用%mld格式指定输出列宽longc=135790printf(“%ld
\n”,
c);135790printf(“%8ld
”,
c);135790135790>32767(int
型数据的最大值)
123
12345<
>inta=
-1;printf(“%d
,
%o
,
%8o
,
%x
”, a,a,a,a);输出:-1,177777,_
_177777,ffff1111111111111111-1在内存的存放形式(补码)C语言程序设计
第三章
顺序程序设计o格式符:八进制输出整数是将内存中的二进制位整个按八进制输出,所以输出值没有符号。可以指定输出宽度%mo,长整型可以用%lo格式输出。x格式符:十六进制输出整数同o格式符,无符号,即无负十六进制数。可以指定输出宽度%mx
,长整型可以用%lx格式输出。C语言程序设计
第三章
顺序程序设计u格式符:十进制输出unsigned型数据int型可以用%u格式输出,unsigned型也可以用%d、%o和%x格式输出。<>例4.3
无符号数据的输出#include<stdio.h>voidmain(){
unsignedinta=65535;intb=
-2;printf(“a=%d
,
%o
,
%x
,
%u\n”,a,a,a,a);printf(“b=%d
,
%o
,
%x
,
%u\n”,b,b,b,b);}运行结果:a=
-
1,177777,ffff,65535b=
-
2
,
177776
,
fffe
,65534C语言程序设计第三章顺序程序设计c格式符:输出一个字符值在0~255的整数,可以用%c形式输出为字符例4.4
字符数据的输出#include<stdio.h>voidmain(){
char
c=‘a’;inti=97;printf(“%c
,
%d\n”,c,c);printf(“%c
,
%d\n”
,i
,i);}运行结果:<>a,97a,97运行结果:CHINA
,
_
__
_
_CH
,
CHIN
,
CHI
__C语言程序设计
第三章
顺序程序设计s格式符:输出一个字符串有%s,%ms,%-ms,%m.ns,%-m.ns五种用法例4.5
字符串的输出
#include<stdio.h>voidmain(){printf(“%3s,
%7.2s
,
%.4s
,%-5.3d\n
”,
“CHINA”,“CHINA”,
“CHINA”,
“CHINA”);}m自动=n<>#invoi{
flcdopr,f);}C语言程序设计
第三章
顺序程序设计f格式符:输出实数%f格式:整数部分全部输出,小数6位。可以有非有效数字输出,因为单精度有效位7位,双精度16位。%m.nf格式:占m列,其中n位小数,左补空格。%-m.nf格式:右补空格例4.
例4.7 %f格式输出双精度实数时的有效位数#include<stdio.h>voidmain(){
double
x,y;a=1111111111111.111111111;b=2222222222222.222222222;printf(“%f\n”
x+y);运行结果:123.456001__123.456001______123.46__123.46__123.46____3333333333333.333010<>C语言程序设计
第三章
顺序程序设计e格式符:指数形式输出实数%e格式:不指定m和n,小数6位,指数部分共5位,其中e和指数符号各1位,指数值3位。%m.ne和%-m.ne格式:m、n、-的含义同前面。没有n时,自动=6g格式符:输出实数可以自动根据数值大小选择
f
或e
格式(选列少的)不输出无意义的零<>C语言程序设计第三章顺序程序设计格式字符表<>d十进制整数int
a=100;printf
(
“%d”,a);100x,X十六进制无符号整数int
a=255;printf(“%x”,a);ffo八进制无符号整数int
a=8;printf(“%o”,a);10u不带符号十进制整数int
a=100;printf(“%u”,a);100c单一字符char
a=65;printf(“%c”,a);As字符串printf(“%s”,“ABC”);ABCe,E指数形式浮点小数float
a=567.789;printf(“%e”,a);5.677890ef小数形式浮点小数float
a=567.789;printf(“%f”,a);.789000g,Ge和f中较短一种float
a=567.789;printf(“%g”,a);567.789%%百分号本身printf(“%%”);%<
>scanf
函数(格式输入函数)一般形式功能:按指定格式从键盘读入数据,存入地址表指定的单元中,并按回车键结束格式控制:含义同printf函数地址表列:变量地址或字符串地址,地址间“,”分隔。强调:地址列表中每一项必须以取地址运算符&开头。C语言程序设计第三章顺序程序设计格式:scanf(格式控制,地址表列);例4.9
用scanf函数输入数据#include<stdio.h>voidmain(){ inta,b
,c
;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,
%d,
%d\n”,a,b,c)
;}输入:3_4_5输出:3,4,5<
>C语言程序设计第三章顺序程序设计例scanf(“%3d%*4d%f”,&k,&f);输入12345678765.43则123k,8765.43f例scanf(“%2d
%*3d
%2d”,&a,&b);输入12
345
67则
12a,
67b例scanf(“%3c%2c”,&c1,&c2);输入
abcde
则‘a’c1,
‘d’
c2例scanf(“%4d%2d%2d”,&yy,&mm,&dd);输入
19991015
则1999yy,10
mm,
15
dd<
>输入数据时,遇
输入则认为数据结束其它字符做分隔符:格式串中两个格式符间有其它字符,则输入时对应位置也要有相同的字符。C语言程序设计输入分隔符的指定一般以空格、TAB或回车键作为分隔符第三章顺序程序设计例scanf(“%d:%d:%d”,&h,&m,&s);输入12:30:45则12
h,30m,
45s例scanf(“%d%c%f”,&a,&b,&c);输入1234a123o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 10KV供配电工程施工环保方案
- 职业院校实习实践基地方案
- 济宁学院《传感器原理及应用》2021-2022学年第一学期期末试卷
- 济宁学院《美术教学与技能训练》2021-2022学年第一学期期末试卷
- 高档楼盘真石漆施工方案
- 航空服务与乘务专业人才培养方案
- 医院内深静脉血栓监控和防治制度
- 防排烟课程设计实践
- 教育机构中层领导梯队建设方案
- 青春舞曲课程设计
- 2024至2030年中国高岭土行业投资前景与发展前景预测分析报告
- 证券投资学期末考试卷及答案2套
- 中华人民共和国建筑法(2019年版)知识培训
- 水电站生态风险评估与预警
- 3.9 秦统一中国 课件 2024~2025学年统编版七年级历史上册
- 广东省2024年中考历史真题试卷【附真题答案】
- 个人胜任项目经理岗位的认识
- 2024至2030年中国大型铸锻件行业市场深度研究及投资规划建议报告
- DB11-T 2291-2024 建设工程电子文件与电子档案管理规程
- 07J901-1实验室建筑设备(一)
- 异地就医备案的个人承诺书
评论
0/150
提交评论