书签 分享 收藏 举报 版权申诉 / 277
上传文档赚钱

类型C与C程序设计教程-第一章课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2493675
  • 上传时间:2022-04-25
  • 格式:PPT
  • 页数:277
  • 大小:4.02MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C与C程序设计教程-第一章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    程序设计 教程 第一章 课件
    资源描述:

    1、2022-4-25C与C+程序设计教程-第一章2计算机系统组成图计算机系统硬件系统软件系统主机外设系统软件应用软件CPU内存外存输入设备输出设备操作系统程序设计语言数据库系统服务性程序应用数据包用户程序2022-4-25C与C+程序设计教程-第一章3第一代:机器语言(低级语言):面向机器、可移植性差、效率高、不方便编程第二代:汇编语言第三代:高级语言:面向程序员、可移植性好、执行效率低、便于编程第四代:面向对象式语言第五代:智能语言程序设计语言2022-4-25C与C+程序设计教程-第一章4C C语言与其他高级语言的对比语言与其他高级语言的对比:C语言:系统软件和应用软件BASIC:初学者入门

    2、FORTRAN或PL/I:科学计算COBOL:商业和管理等数据处理领域PASCAL:教学,第一个结构化语言 2022-4-25C与C+程序设计教程-第一章51.1 C语言概述语言概述1.1.1 C语言发展简介语言发展简介1.1.2 C语言特点语言特点1.1.3 C语言的程序结构语言的程序结构1.1.4 Turbo C上机步骤上机步骤1.2 C语言的基本符号语言的基本符号1.2.1 基本符号集基本符号集1.2.2 标识符标识符1.3 数据的输入和输出数据的输入和输出1.3.1 字符输出函数字符输出函数putchar( )1.3.2 字符输入函数字符输入函数getchar( )1.3.3 格式输出

    3、函数格式输出函数printf( ) 1.3.4 格式输入函数格式输入函数scanf( ) 退出2022-4-25C与C+程序设计教程-第一章61.1.1 语言发展简介语言发展简介ALGOL语言:语言:1960,面向问题高级语言,不宜写系统程序,面向问题高级语言,不宜写系统程序CPL语言:语言: 1963,英剑桥,能够作较低层次的操作,但规模较大,英剑桥,能够作较低层次的操作,但规模较大,难以实现难以实现BCPL语言语言:(Basic combined programming language) 1967,英剑桥,英剑桥Martin Richards改进改进CPLB语言:语言: 1970,美贝尔

    4、实验室,美贝尔实验室Thompson简化简化BCPL,用,用B写写UNIX操作系统操作系统C语言:语言: 1972,贝尔实验室,贝尔实验室,Ritchie和和Kernighan设计,保持设计,保持B和和BCPL的的精炼与接近硬件,克服其简单和数据无类型的缺点。描述和实现精炼与接近硬件,克服其简单和数据无类型的缺点。描述和实现UNIX的工具语言的工具语言 1977,可移植语言编译程序可移植语言编译程序,与,与UNIX相辅相成相辅相成 1978,Kernighan和和Richie,The C Programming Language,标标准准C语言语言 1983,美国国家标准化协会(,美国国家标准

    5、化协会(ANSI),),ANSI C 1990,国际标准化组织(,国际标准化组织(ISO)通过)通过 返回2022-4-25C与C+程序设计教程-第一章71.1.2 C语言特点语言特点(1) 较低级语言(中级语言)(2) 结构化语言(3) 运算能力强(4) 数据类型多 (5) 有预处理能力(6) 可移植性好 (7) 语法不严格返回2022-4-25C与C+程序设计教程-第一章81.1.3 C语言程序的结构特点语言程序的结构特点例1.1 求两个数的和。 main() int a,b,sum; a=3;b=4; sum=add(a,b); printf(sum=a+b=%dn,sum);int a

    6、dd(int x,int y) int z; z=x+y; return(z); sum=a+b=71.函数型语言,函数是C程序的基本单位。2.函数由说明部分和函数体两部分组成函数的组成:函数的组成: 说明部分:函数类型函数类型 函数名(参数类型函数名(参数类型 参数名,参数名,) 例: int add(int x,int y) 或 int add(x,y) int x,y; 函数体: 变量定义;变量定义; 执行语句;执行语句; 3. 主函数main():程序中有且只有一个main()函数,可在任意位置,是程序运行开始和结束。4. 书写格式自由: 一行内可多条语句,空格和回车符不计。一个语句可

    7、多行,用“”续行。5. 每个语句后有“;”,函数说明部分除外。6. C语言本身没有输入输入语句,输入输出用库函数scanf()、printf()、getchar()、putchar()实现。 7. 可在任意位置加注释/* */,可多行,不可嵌套。2022-4-25C与C+程序设计教程-第一章9例1.3函数程序例。main()printf(This is a C program. ); 例1.最小的程序例。main() This is a C program.2022-4-25C与C+程序设计教程-第一章10例1.4求两个数中较小数。main() int a,b,c; scanf(%d,%d,&

    8、a,&b); c=min(a,b); printf(min=%d,c);int min(int x,int y) int z; if(xTC Windows下:双击图标(p5图1.1)打开:或-File-Load 输入要打开的文件名新建: -File-New 编辑: (p5表1.1)保存:或-File-Save 输入文件名编译:或Compile/MakeEXEfile ,修改错误运行:或Run-Run结果:或Run-User Screen退出:或-File-Quit 启动TC编辑源程序保存源程序编译、连接、运行退出TC打开/新建文件1.1.4 TC上机步骤上机步骤返回2022-4-25C与C+

    9、程序设计教程-第一章12 1.2 C语言的基本符号语言的基本符号1.2.1 基本符号集基本符号集(ASCII字符集字符集) 阿拉伯数字10个:0、1、2、9 大小写英文字母各26个:A,B,C,Z,a,b,c,z 下划线:_ 特殊符号:主要是运算符和操作符 返回2022-4-25C与C+程序设计教程-第一章13 1.2.2 标识符标识符字符序列,用作常量、变量、函数、文件指针、类型的名字。q 用户标识符用户标识符 q 保留字保留字/关键字关键字 q 预定义标识符预定义标识符 2022-4-25C与C+程序设计教程-第一章14 q用户标识符:用户标识符: 用户根据需要对C程序中用到的变量、符号常

    10、量、自己的函数或文件指针进行命名,形成用户标识符。构成规则: 由英文字母、数字、下划线组成,且第一个字符不能是数字; 英文字母区别大小写; 通常识别前8个字符; 取名遵循“简洁明了”和“见名知意”。 2022-4-25C与C+程序设计教程-第一章15 q保留字保留字/关键字关键字 是编译系统固有的,用做语句名、类型名的标识符。不允许作为用户标识符使用。(p9表1.2) q预定义标识符预定义标识符 允许用户作其他其途,但将失去系统规定的原意。 例define、include 返回2022-4-25C与C+程序设计教程-第一章161.3 数据的输入和输出数据的输入和输出 由一组库函数完成数据的输入

    11、和输出。 1.3.1 字符输出函数字符输出函数putchar( ) 程序开头要预编译命令: #include或#include “stdio.h”。 功能:把一个字符输出到标准输出设备(显示器)上。 调用形式: putchar(ch); ch是一个整型变量、字符型变量、整型常量或字符型常量。 2022-4-25C与C+程序设计教程-第一章17例1.5-1.6 输出字符B(变量为字符型、整型) #include “stdio.h” main() char c; | int c; c=B; | c=66; putchar(c); putchar(n); putchar(B); | putchar(

    12、66); 返回BB2022-4-25C与C+程序设计教程-第一章18 1.3.2 字符输入函数字符输入函数getchar( ) 程序开头要预编译命令: #include或#include “stdio.h” 功能:从标准输入设备(键盘)上读入一个字符。 调用形式:getchar( ); 无参数,键盘输入一个字符后,按回车,执行下一语句。 2022-4-25C与C+程序设计教程-第一章19 例1.7-1.9输入一字符B,变量是字符型、整型。 #include “stdio.h” main( ) char c; | int c; c=getchar( ); | putchar(getchar( )

    13、; putchar(c); 返回B B2022-4-25C与C+程序设计教程-第一章20 1.3.3 格式输出函数格式输出函数printf( ) 不需要预编译命令。 功能: 向输出设备(显示器或打印机)输出有一定格式的任意数据。 调用形式:printf(格式控制,输出项表格式控制,输出项表); 2022-4-25C与C+程序设计教程-第一章21 普通字符(原样输出) 格式说明 % +/- 0 m.n l 格式字符右对齐左对齐最小宽度左补0小数位数长整型d符十整o无八整x无16整c字符s字串f小六e指六2022-4-25C与C+程序设计教程-第一章22 注:格式控制部分用双引号括起来的字符串,分

    14、为普通字符和格式说明。 格式说明与输出项一一对应,若格式说明个数少于输出项时,多余输出项不输出;若格式说明多于输出项,对缺少项输出不定值。 函数值为整型,等于正常输出的数据个数。 2022-4-25C与C+程序设计教程-第一章23 例1.10输出格式举例。 main() char c=a; char str=“see you”; int i=1234; float x=123.456789; float y=1.2; printf (“1: %c,%s,%d,%f,%e,%fn”,c,str,i,x,x,y); printf (“2: %4c,%10s,%6d,%12f,%15e,%10fn”

    15、,c,str,i,x,x,y); printf (“3: %-4c,%-10s,%-6d,%-12f,%-15e,%-10fn”,c,str,i,x,x,y); printf (“4: %0c,%6s,%3d,%9f,%10e,%2fn”,c,str,i,x,x,y); printf (“5: %12.2fn”,x); printf (“6: %.2fn”,x); printf (“7: %10.4fn”,y); printf (“8: %8.3s,%8.0sn”,str,str); printf (“9: %dn”,i); 返回2022-4-25C与C+程序设计教程-第一章24 1.3.4

    16、格式输入函数格式输入函数scanf( ) 不需要预编译命令。 功能:把从终端(键盘)输入的数据传送给对应的变量。 调用形式: scanf(格式控制,输入项地址表格式控制,输入项地址表); 2022-4-25C与C+程序设计教程-第一章25scanf(格式控制,输入项地址表格式控制,输入项地址表); 普通字符(原样输入) 格式说明 % m h l * 格式字符最小宽度短整形不赋值长整形d符十整o无八整x无16整c字符s字串f小六e指六2022-4-25C与C+程序设计教程-第一章26注:格式控制部分用双引号括起来的字符串,分为普通字符和格式说明。 输入项地址表是若干变量的地址,而非变量名。 &变

    17、量名 格式说明与输入项一一对应。 输入时不能规定精度。 若格式控制字符串中无其他符号,则输入时用空格、回车或跳格分隔。 函数值为整型,等于正常输入的数据个数。2022-4-25C与C+程序设计教程-第一章27 例1.11输入数据举例。 main( ) char ch; int i; char str80; float x; scanf(“%c%d%s%f”,&ch,&i,str,&x); printf(“%c,%d,%s,%f”,ch,i,str,x); 返回w 123 hello 123.456w,123,hello,123.4560002022-4-25C与C+程序设计教程-第一章28第一

    18、次作业::p18-1、15、18、19第二次作业:P18-2、3、4、5、6、7、8、9、10、12、16、17、20、21Thank you !Thank you !2022-4-25C与C+程序设计教程-第一章302.1 C语言数据类型简介语言数据类型简介2.2 常量常量2.3 变量变量2.4 运算符和表达式运算符和表达式退出2022-4-25C与C+程序设计教程-第一章312.1 C语言数据类型简介语言数据类型简介基本类型基本类型 构造类型构造类型派生类型派生类型整型int结构体struct数组类型字符型char共用体(联合)型union指针类型实型float枚举型enum双精度型dou

    19、ble用户定义类型typedef 空值型void返 回数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作2022-4-25C与C+程序设计教程-第一章322.2 常量常量常量常量是指在程序运行过程中其值不能被改变的量。 2.2.1 数值常量2.2.2 字符常量和字符串2.2.3 标识符命名的常量2.2.4 换码序列常量 返 回2022-4-25C与C+程序设计教程-第一章332.2.1 数值常量数值常量1、整型常量、整型常量(简称为整数整数)u 三种形式:十进制十进制整型常量、八进制八进制整型常量(以0开头的07数字串)、十六进制十六进制整型常量(以0X或0 x开头的

    20、09/af/AF字符串);u 每种形式常量可表示成短常量短常量和长常量长常量(在整型常量后面紧跟L或l)。2、实型常量、实型常量(简称为浮点常量浮点常量或实数实数)u 两种形式:十进制小数形式十进制小数形式和指数形式指数形式(用E或e表示) 返 回例:12 30例:0123 0400例:0X123 -0 x11例:12L -9l例:0.123 123.例:345e+2 .5e-22022-4-25C与C+程序设计教程-第一章342.2.2 字符常量和字符串字符常量和字符串 1、字符常量、字符常量u 用单引号括起来,可以用作整数常量,可参与算术运算。u 特例:单引号,反斜线2、字符串、字符串u

    21、用双引号括起来的零个或多个字符序列。u 特例:字符串中的双引号”,字符串中的反斜线u 存储:编译时自动在字符串结尾加一个转义字符0作为字符串结束标志,即长度为n个字符的字符串占n+1个字节空间。 例:例:a ?例:例: “china” ”a” 例例 字符串字符串“China”China”在内存中在内存中C h i n a 0例:字符例:字符aa在内存中在内存中字符串字符串“a”a”在内存中在内存中a a 02022-4-25C与C+程序设计教程-第一章352022-4-25C与C+程序设计教程-第一章362.2.3 标识符命名的常量(符号常量)标识符命名的常量(符号常量) u 一般用大写字母表

    22、示,而变量一般用小写字母表示。符号常量使用之前必须预先定义,其定义格式为 #define #define 标识符标识符 常量常量 例: #define PI 3.14159 注:不是语句,后无;u 优点:清晰易懂; 易于修改。 2022-4-25C与C+程序设计教程-第一章37例2.3 标识符命名的常量举例。#define PI 3.1415926main() float radius,circum,area; scanf(%f,&radius); circum=2*PI*radius; area=PI*radius*radius; printf(circumference is %fn,ci

    23、rcum); printf(area is %fn,area); 返 回3 circumference is 18.849556 area is 28.2743342022-4-25C与C+程序设计教程-第一章382.2.4 换码序列常量(转义字符)换码序列常量(转义字符) u是特殊字符常量。以一个反斜杠”开头的字符序列,只代表某个特定的ASCII码字符。用单引号括起。 -整型(短整型)整型(短整型)-长整型长整型-实实型型-双精度型双精度型 - - 有符号型有符号型-无符号型无符号型返 回intintfloatfloatdoubledoublefloatdouble10+a +f*i - d

    24、/e例 int i; float f; double d; long e;u强制转换类型: (数据类型名)表达式(数据类型名)表达式例: (double)a (int)x+y2022-4-25C与C+程序设计教程-第一章462.3.4 存储类型和变量的作用域存储类型和变量的作用域1、局部变量和全局变量、局部变量和全局变量u局部变量(内部变量)局部变量(内部变量):在函数内部或复合语句内部定义的变量,作用域是从定义的位置起到函数体或复合语句结束止。u全局变量(外部变量)全局变量(外部变量):在函数外部定义的变量。作用域是从变量定义的位置起到本源文件结束止。注:同一源文件中,若局部变量与全局变量同

    25、名,则全局变量被屏蔽。 2022-4-25C与C+程序设计教程-第一章472、存储类型、存储类型u 自动变量自动变量(auto):auto可省略,局部变量,内存的堆栈区,不能赋初值。u 寄存器变量寄存器变量(register):保存在寄存器中,可说明局部变量和形式参数,使用最频繁,只能是int 或char。u 静态变量静态变量(static):内存的数据区,可说明局部变量和全局变量,随文件存在而存在。u 外部变量外部变量(extern):内存的应用程序区,只能说明全局变量,随程序存在且活动。 注:内存分为堆栈区(auto)、系统程序区、应用程序区(extern)和数据区(static)。202

    26、2-4-25C与C+程序设计教程-第一章48例2.7存储类型和作用域举例。#include file2.c int a=10; extern int add(); main() int b,c; scanf(%d,&b); c=add(b); printf(%d+%d=%dn,a,b,c);返 回2010+20=30extern int a; int add(x) register int x; int y; y=a+x; return(y); file1.cfile2.c全局变量局部变量自动变量全局变量外部变量局部变量寄存器变量局部变量自动变量2022-4-25C与C+程序设计教程-第一章4

    27、92.4 运算符和表达式运算符和表达式 2.4.1 运算符和表达式 2.4.2 赋值运算符和表达式 2.4.3 算术运算符和表达式 2.4.4 逗号运算符和表达式 2.4.5 关系运算符和表达式 2.4.6 逻辑运算符和表达式 2.4.7 条件运算符和表达式 2.4.8 位运算符和表达式 2.4.9 运算符的结合律和优先级返 回2022-4-25C与C+程序设计教程-第一章502.4.1 运算符和表达式运算符和表达式1、C运算符运算符 算术运算符:算术运算符: + - * / % -(取负取负) + - 关系运算符:关系运算符: = = = != 位运算符:位运算符: & | 逻辑运算符:逻辑

    28、运算符: ! & | 赋值运算符:赋值运算符: = 复合赋值符号复合赋值符号+= -= *= /= %= 条件运算符:条件运算符: ? : 逗号运算符:逗号运算符: , 指针运算符:指针运算符: * & 求字节数运算符:求字节数运算符:sizeof 强制类型转换运算符:强制类型转换运算符:类型类型 分量运算符:分量运算符: . - 下标运算符:下标运算符: 其他:其他: ( )函数调用运算符函数调用运算符 7227452022-4-25C与C+程序设计教程-第一章51学习运算符应注意(1) 运算符功能(2) 与运算量关系-要求运算量个数:单目、双目、三目-要求运算量类型(3) 运算符优先级别:

    29、15个级别(4) 结合方向:自左至右、自右至左(5) 结果的类型-(负号) &+ - * % ? :2、表达式:、表达式:是由数据和运算符组合而成的式子。是一种复合数据,定义如下: 常量、变量和函数是一个表达式; 运算符与表达式的组合是一个表达式。 返 回优先级运算符结合规则1 ( ) - . 从左至右2! + - - * & sizeof从右至左3* / %从左至右4+ -从左至右5从左至右6 =从左至右7= !=从左至右8&从左至右9从左至右10|从左至右11&从左至右12|从左至右13?:从右至左14= += -= *= /= %= &= = |= = . 从左至右2! + - - *

    30、& sizeof从右至左3* / %从左至右4+ -从左至右5从左至右6 =从左至右7= !=从左至右8&从左至右9从左至右10|从左至右11&从左至右12|从左至右13?:从右至左14= += -= *= /= %= &= = |= = . 从左至右2! + - - * & sizeof从右至左3* / %从左至右4+ -从左至右5从左至右6 =从左至右7= !=从左至右8&从左至右9从左至右10|从左至右11&从左至右12|从左至右13?:从右至左14= += -= *= /= %= &= = |= = . 从左至右2! + - - * & sizeof从右至左3* / %从左至右4+ -

    31、从左至右5从左至右6 =从左至右7= !=从左至右8&从左至右9从左至右10|从左至右11&从左至右12|从左至右13?:从右至左14= += -= *= /= %= &= = |= = = 关系赋值运算符 = = = = !=u 关系表达式:关系表达式:用关系运算符将两个表达式连接起来的式子。值是1或0。 表达式表达式1 1 关系运算符关系运算符 表达式表达式2 22.4.5 关系运算符和关系表达式关系运算符和关系表达式a+b . 从左至右2! + - - * & sizeof从右至左3* / %从左至右4+ -从左至右5从左至右6 =从左至右7= !=从左至右8&从左至右9从左至右10|从

    32、左至右11&从左至右12|从左至右13?:从右至左14= += -= *= /= %= &= = |= = b:%dn”,ab); printf(“ab:%dn”,a=b:%dn”,a=b); printf(“a=b:%dn”,ab:0a=b:0a关系&|赋值 -逻辑运算真值表(p43表2.11) 2.4.6 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式ab!a!ba&ba|b真假真假假假真真真假假假假假真真假假真真真假真真优先级运算符结合规则1 ( ) - . 从左至右2! + - - * & sizeof从右至左3* / %从左至右4+ -从左至右5从左至右6 =从左至右7= !=从左至右

    33、8&从左至右9从左至右10|从左至右11&从左至右12|从左至右13?:从右至左14= += -= *= /= %= &= = |= = b)&(n=cd)/m值为0,n值为1u逻辑表达式:逻辑表达式:用逻辑运算符连接运算量,并产生一个逻辑值。逻辑值是1或0。 -注: 逻辑运算结果中,1表示真,0表示假;而判断时,非0表示真,0表示假。 &和|一旦能够确定表达式的值,就不再继续运算下去。2022-4-25C与C+程序设计教程-第一章61u条件运算符:条件运算符: ? :u条件表达式:条件表达式:含有条件运算符的表达式。三目运算符。 表达式表达式1?表达式?表达式2:表达式:表达式3 -执行过程

    34、:先表达式1,为非0,则执行表达式2;为0,表达式3。 2.4.7 条件运算符和条件表达式条件运算符和条件表达式ab?a:ba=(b= =0)?c*d:c/d;if(b=0) a=c*d; else a=c/d;2022-4-25C与C+程序设计教程-第一章62例2.13用条件表达式求出输入的两个整型数中较小者。main() int a,b; scanf(“a=%d,b=%d”,&a,&b); printf(“The min is %d”,(ab)?a:b);返 回a=3,b=4The min is 32022-4-25C与C+程序设计教程-第一章63u 位运算表达式:位运算表达式:用位运算符

    35、连接运算量而组成的表达式。对运算量以二进制位为单位操作。u 位运算符:位运算符: & | 2.4.8 位运算符和位运算表达式位运算符和位运算表达式逻辑位运算符逻辑位运算符移位位运算符移位位运算符优先级运算符结合规则1 ( ) - . 从左至右2! + - - * & sizeof从右至左3* / %从左至右4+ -从左至右5从左至右6 =从左至右7= !=从左至右8&从左至右9从左至右10|从左至右11&从左至右12|从左至右13?:从右至左14= += -= *= /= %= &= = |= = =从右至左15,从左至右2022-4-25C与C+程序设计教程-第一章64abaa&ba|bab

    36、000110111 1、逻辑位运算、逻辑位运算 & | 逻辑位运算真值表(逻辑位运算真值表(p45p45表表2.12)2.12)1 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 2022-4-25C与C+程序设计教程-第一章65例2.14逻辑位运算。main() int a,b; scanf(a=%x,b=%x,&a,&b); printf(a=%xn,a); printf(a&b=%xn,a&b); printf(a|b=%xn,a|b); printf(ab=%x,ab) ;a=0 xb9,b=0 x83a=0 xff46a&b=0 x81a|b=0 xbbab=0 x3a2

    37、022-4-25C与C+程序设计教程-第一章662 2、移位位运算、移位位运算 :有符号数,左复制符号位 无符号数,左补0例:a=0 x1b; b=a2; 0 xfe 即 -21 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0补补1 1舍去舍去例:b=248; b=b2; 0 x3e 即62 舍去舍去0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0补补0 02022-4-25C与C+程序设计教程-第一章67例2.15移位位运算。#define S1 1#define S2 3main() int a; scanf(a=%d,&a); printf(%d%d=%dn,a

    38、,S1,aS1); printf(%d%d=%dn,a,S2,aS2); printf(%d%d=%dn,a,S1,aS1); printf(%d%d=%dn,a,S2,a1=133=031=63 . 从左至右2! + - - * & sizeof从右至左3* / %从左至右4+ -从左至右5从左至右6 =从左至右7= !=从左至右8&从左至右9从左至右10|从左至右11&从左至右12|从左至右13?:从右至左14= += -= *= /= %= &= = |= = 0) if (ab) c=a; else c=b;3、if嵌套语句(分支嵌套的一般形式)嵌套语句(分支嵌套的一般形式) if后和

    39、else后的语句可再包含if语句。注:else总是与前面最近的并且没有与其他else匹配的if相匹配。例 if (n0) if (ab) c=a; else c=b; 2022-4-25C与C+程序设计教程-第一章82例3.5 求一个点所在的象限。main() float x,y; printf(“Input the coordinate of a point n”); printf(“x=”); scanf(“%f”,&x); printf(“y=”); scanf(“%f”,&y); if(x0) if(y0) printf(“ The point is in 1st quadrant.n

    40、”); else printf(“ The point is in 4th quadrant.n”); else if(y0) printf(“ The point is in 2nd quadrant.n”); else printf(“ The point is in 3rd quadrant.n”); Input the coordinate of a point x=5 y=3 The point is in 1st quadrant. Input the coordinate of a point x=-2 y=-7 The point is in 3rd quadrant.返 回2

    41、022-4-25C与C+程序设计教程-第一章834、 if-else-if语句(分支嵌套的特殊形式)语句(分支嵌套的特殊形式) if(表达式表达式1) 语句语句1 else if(表达式(表达式2) 语句语句2 else if(表达式表达式n) 语句语句n else 语句语句n+1 表达式1假(0)语句2真(非0)语句1表达式2假(0)表达式n假(0)语句n+1语句n真(非0)真(非0)2022-4-25C与C+程序设计教程-第一章84例3.6 求解符号函数。main() int x,sign; printf(“Please input a numbern”); scanf(“%d”,&x);

    42、 if(x0) sign=1; else if(x=0) sign=0; else sign=-1; printf(“The sign is %dn”,sign);Please input a number -100 The sign is 1 Please input a number 2 The sign is 1 Please input a number 0 The sign is 02022-4-25C与C+程序设计教程-第一章85例3.10设计求ax2+bx+c=0的一元二次方程解的程序。 a,b,c=? 1,2,1The equation has two equal roots:

    43、 -1.0000a,b,c=? 1,2,2The equation has complex roots: -1.0000+1.0000i-1.0000-1.0000ia,b,c=? 2,6,1The equation has distinct real roots: -0.1771 and -2.8229#include math.hmain() float a,b,c,d,x1,x2,p,q; printf(a,b,c=?); scanf(%f,%f,%f,&a,&b,&c); printf(The equation); if(fabs(a)=1e-6) printf(is not quad

    44、ratic); else d=b*b-4*a*c; if(fabs(d)1e-6) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(has distinct real roots:%8.4f and %8.4fn,x1,x2); else p=-b/(2*a); q=sqrt(-d)/(2*a); printf(has complex roots:n); printf(%8.4f+%8.4fin,p,q); printf(%8.4f-%8.4fin,p,q); 输入a,b,ca=0?“非二次方程”d=b2-4acd=0?d0?相等实根不相等

    45、实根不相等虚根adb2iadab22ab2返 回2022-4-25C与C+程序设计教程-第一章865、 switch-case语句语句 (开关分支结构开关分支结构) switch (表达式表达式) case 常量表达式常量表达式1: 语句组语句组1 case 常量表达式常量表达式2: 语句组语句组2 case 常量表达式常量表达式n: 语句组语句组n default : 语句组语句组n+1注:表达式和常量表达式可为任何整型或字符型。 每一个case后的常量表达式值应互不相同。default位置任意,只作入口;若无default且无匹配常量表达式,则不执行任何操作。语句组不须加 break无条件

    46、转向本层复合结构的下一条语句。 计算表达式值语句组1语句组2语句组n语句组n+1常量表达式1常量表达式2常量表达式ndefault计算表达式值语句组1语句组2语句组n语句组n+1常量表达式1常量表达式2常量表达式ndefaultbreak; break; break; breakbreakbreak2022-4-25C与C+程序设计教程-第一章87例3.7根据考试成绩的等级打印百分制分数段。 main() char grade; printf(input the grade:); scanf(%c,&grade); switch(grade) case A: printf(85100n); b

    47、reak; case B: printf(7084n); break; case C: printf(6069n); break; case D: printf(=60n);break; case D:printf(=60 Input the grade: D 602022-4-25C与C+程序设计教程-第一章89例3.9 在case后面嵌套switch 语句的程序。 #include stdio.hmain() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+;break; case 1: b+;break; case 2

    48、: a+;b+;break; case 3: a+;b+; printf(a=%d,b=%dn,a,b); a=2,b=12022-4-25C与C+程序设计教程-第一章90程序举例:程序举例: 例3.11设计输入年、月,输出该月天数的程序。返 回Input year,month=? 1994,8 year=1994,month=8,days=31 Input year,month=? 1994,2 year=1994,month=2,days=28main()int year,month,days; printf(input year,month=?n); scanf(%d,%d,&year,

    49、&month); switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break; case 4: case 6: case 9: case 11: days=30;break; case 2: if(year%4=0)&(year%100!=0)|(year%400=0) days=29; else days=28;break; default: printf(month is errorn); printf(year=%d,month=%d,days=%dn,year,month,d

    50、ays); 年号能被4整除但不能被100整除,或者年号能被400整除的年均是闰年。2022-4-25C与C+程序设计教程-第一章916、goto语句(无条件分支结构)语句(无条件分支结构)(p64) goto 语句标号语句标号; 注:语句标号用标识符表示,用来表示程序的某个位置。 返 回无条件分支结构语句无条件分支结构语句的三种形式的三种形式: goto 语句:语句:转向标号所在位置。 continue 语句:语句:转向本层复合结构的末尾。 break 语句:语句:转向本层复合结构的下一语句。loop: if (i=100) sum=sum+i; i+; goto loop;2022-4-25

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C与C程序设计教程-第一章课件.ppt
    链接地址:https://www.163wenku.com/p-2493675.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库