C语言程序设计,主讲:王奇志,,4 课时,第3章 顺序程序设计,《C语言程序设计》,导航目录,知识点、重点、难点,知识点: 数据的存储 C中常见的类型 变量和常量 运算符和表达式 重 点: C中常见的类型 变量和常量 运算符和表达式 难 点: 数据在计算机内部的存储 运算符的优先级和结合性,算法是程序的灵魂,一、算法是程序的灵魂 1.算法与数据结构 一个程序应包括以下两方面内容: 数据结构(data structure):对数据的描述,在程序中要指定数据的类型和数据的组织形式。 算法(algorithm): 对操作的描述。即操作步骤, “数据是原料,算法是工艺,程序是产品” 计算机科学家沃思(Nikiklaus Wirth)提出一个公式 数据结构 + 算法 = 程序 算法与语言无关,数据结构与语言有关。 算法可以分为两大类别:数值运算算法和非数值运算算法。,算法是程序的灵魂-续1,2 .算法的表示 (1)自然语言 [举例]求1+2+3+…+100的和并输出 ①i=1,s=0 ②s=s+i ③i=i+1 ④如果i不大于100,则到②,否则到⑤ ⑤输出s的值 (2)流程图(传统),算法是程序的灵魂-续2,[举例]求1+2+3+…+100的和并输出 (3)N-S流程图 [举例]求1+2+3+…+100的和并输出,算法是程序的灵魂-续3,(4)使用伪代码表示 [举例]求1+2+3+…+100的和并输出 i=1 s=0 while i=100 s=s+I i=i+1 end while print s,程序的三种基本结构,二、程序的三种基本结构 1.顺序结构 2.分之结构 3.循环结构,C语句总述,三、C语句综述 严格意义上的语句是用来向计算机系统发出操作指令,语句经编译后产生若干条机器指令,c语句都是用来完成一定操作任务的。声明部分的内容不应称为语句。如:int a; 不是一个c语句,它不产生机器操作,而只是对变量的声明。 一个函数包含声明部分和执行部分,执行部分即由语句组成。 程序应该包括数据描述(由声明部分来实现)和数据操作(由语句来实现)。数据描述主要定义数据结构(用数据类型表示)和数据初值。数据操作的任务是对已提供的数据进行加工。,C语句总述-续1,1.C语句分类 (1) 控制语句 完成一定的控制功能。C只有9种控制语句: ① if()~else~ (条件语句) ② for()~ (循环语句) ③ while()~ (循环语句) ④ do~while() (循环语句) ⑤ continue (结束本次循环语句) ⑥ break (中止执行switch或循环语句) ⑦ switch (多分支选择语句) ⑧ goto (转向语句) ⑨ return (从函数返回语句),C语句总述-续2,(2)函数调用语句 由一次函数调用加一个分号构成一个语句,例如:printf(“this is a c statement.”); (3) 表达式语句 由一个表达式构成一个语句,最典型的是,由赋值表达式构成一个赋值语句。 a=3 /*赋值表达式*/ a=3;/*赋值语句*/ 任何表达式都可以加上分号而成为语句,例如i++;,,有人把c语言称作“表达式语言”。,C语句总述-续3,(4) 空语句 下面是一个空语句: ; 即只有一个分号的语句,它什么也不做。有时用来做被转向点,或循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。 (5)复合语句 可以用 {}把一些语句括起来成为复合语句,又称分程序。如下面是一个复合语句。 { z=x+y; t=z/100; printf(“%f“,t); },赋值表达式和赋值语句,四、赋值表达式和赋值语句 1.赋值运算符 “=”是一个赋值运算符,其他大多数语言中赋值号不是运算符。 “赋值表达式”的概念,例如: if((a=b)>0)t=a; *复合的赋值运算符 a+=4 (a=a+4) x*=y+8 ( x=x*(y+8)) += -= *= /= %= 2.赋值表达式 格式: 变量名=表达式,赋值表达式和赋值语句-续1,理解下列表达式: a=3 b=a+3 c=b=a=10 a=5+(c=6) a=(b=4)+(c=6) a=3*4=c 3.赋值中的类型转换 变量 i 表达式 int = double float float = double int = char char = int long short signed = unsigned unsigned = signed,赋值表达式和赋值语句-续2,4.赋值语句 a=3; a=b=c=4; if ((a=3;)0) t=a 5.变量赋初值 int a=3; char c1=‘a’,c2; [思考]如果变量不赋值,是否可用,可有默认值?,数据的输入与输出,五、数据的输入与输出 1. 输入/输出的概念 C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。 C标准函数库中提供printf函数和scanf函数,用于格式化输入输出,使用他们,应包含”stdio.h”头文件,数据的输入与输出-续1,2.字符数据的输入输出 (1)putchar函数(字符输出函数) putchar函数的作用是向终端输出一个字符 例如: putchar(c) 例子:输出字符 运行结果: b o y,#include main() { char a,b,c; a='b';b='o';c='y'; putchar(a);putchar(‘\n’); putchar(b);putchar(‘\n’); putchar(c); },数据的输入与输出-续2,(2)getchar函数(字符输入函数) 此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。getchar函数没有参数,其一般形式为 getchar() 函数的值就是从输入设备得到的字符。例如: 例 输入单个字符 getchar()只能接收一个字符, getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分,#include main() {char c; c=getchar(); putchar(c); },数据的输入与输出-续3,[演示] 简单的打字练习程序,直到按”/”结束(add3-1.c)[查看] 3.简单的格式输入输出 (1)printf函数 格式: printf(格式控制,输出表列) “格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,它包括两种信息:,#include “stdio.h“ main() { char c; while((c=getchar())!='/') { putchar(c);} },数据的输入与输出-续4,① 格式说明,由“%”和格式字符组成,如%d,%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。 ② 普通字符,即需要原样输出的字符。例如上面printf函数中双引号内的逗号、空格和换行符。 “输出表列”是需要输出的一些数据,可以是表达式。 (2) 格式字符 ① d格式符 按十进制整型数据的实际长度输出,可以使用“%md” 指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 如 printf(“%4d,%4d“,a,b); 若a=123,b=12345,则输出结果为: 123,12345,数据的输入与输出-续5,② %i 作用同%d,少用。 ③%c 用来输出一个字符。 char ch=‘A’; printf(“%c”,ch); 注意:整数也可以以%c格式来输出。 [演示] 输出ASCII表中的可见字符(add3-2.c)[查看] ④%s 用来输出一个字符串。 ⑤%f 用来输出实数(单、双精度)。 [演示] 输出实数时的有效位数(3-5.c)[查看],数据的输入与输出-续6,[演示] 输出双精度时的有效位数(3-2.c)[查看] ⑥%e 以指数形式输出实数 printf(“%e“ ,123.456); 输出为: 1.234560e+002 (2)scanf函数 格式: scanf(格式控制,地址表列) “格式控制”的含义和printf中格式控制含义基本一致。地址列表是有若干个变量的地址或字符串的首地址组成的列表。 [演示] 使用scanf函数输入数据(3-3.c)[查看],数据的输入与输出-续7,说明: ①对unsigned型变量,可用%u、%d、%o,%x格式 ②可以指定输入数据所占列数,系统自动按它截取所需数据。 如,scanf(“%3d%3d“,&a,&b); 输入: 123456 系统自动将123赋给a,456赋给b。此方法也可用于字符型: 如:scanf(“%3c“,&ch); 如果从键盘连续输入3个字符abc,由于ch只能容纳一个字符,系统就把第一个字符‘a’赋给ch。 ③ 如果在%后有一个“*”附加说明符,表示跳过它指定的列数。 如:scanf(“%2d %*3d %2d”,&a,&b);,数据的输入与输出-续8,如果输入如下信息: 12 345 67 将12赋给a,%*3d表示读入3位整数但不赋给任何变量。然后再读入2位整数67赋给b。 也就是说第2个数据“345”被跳过。在利用现成的一批数据时,有时不需要其中某些数据,可用此法“跳过”它们。 ④输入数据时不能规定精度,例如, scanf(“%7.2f“,&a); 是不合法的,不能企图用这样的scanf函数并输入1234567而使a的值为12345.67,scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); /*如何正确输入?*/,数据的输入与输出-续8,⑤在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入: scanf(“%c%c%c“,&c1,&c2,&c3); 如输入 a b c 字符‘a’送给c1,字符‘ ’送给c2,字符‘b’送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此‘ ’作为下一个字符送给c2。 ⑥在输入数据时,遇以下情况时该数据认为结束。 遇空格,或按“回车”或“跳格”(tab)键。 按指定的宽度结束,如“%3d”,只取3列。 遇非法输入。,提高部分,1.有符号整数赋值给长度相同的无符号整型变量 按字节原样传送 [分析] P77页例3.10 2.无符号整数赋值给长度相同的有符号整数整型变量 按字节原样传送 [分析] P77页例3.11 3.复杂格式的输出 4.复杂格式的输入 5.C++的输入输出 cinabc; cout“a=“a“,b=“b“,c=“c; #include “iostream.h“ [演示] C++的输入/输出(add3-3.c)[查看],顺序结构程序设计举例,[演示] P73例3.7[查看] [演示] P74例3.8[查看] [演示] P75例3.9[查看],课堂小结,本章介绍的是C程序设计的一些基础,语句、三种基本结构、C中如何实现输入、输出,格式化的输入、输出是难点,希望通过实践来掌握。,作业,课后作业: 1. 复习本讲内容 2. P87-88习题 3 . 预习第4章 上机作业: 1. 上机调试课件的例题 2. 《指导》实验3,完成实验报告,csharp-blog.blog.163.com,

展开阅读全文

c语言%3c与 的优先级,C语言程序设计第3章顺序程序设计.ppt相关推荐

  1. C语言输入函数换行符赋给变量B,C语言程序设计第3章顺序结构程序设计.pptx-资源下载在线文库www.lddoc.cn...

    C语言程序设计第3章 顺序结构程序设计.pptx 第 6章 数组第 7章 函数第 8章 结构体.共用体和枚举类型第 9章 指针第 10章 文件目录页 Contents page第 1章 初识 C语言第 ...

  2. c语言程序设计教程第三版答案9.5,C语言程序设计-第5-9章习题解答.ppt

    C语言程序设计-第5-9章习题解答 华中科技大学计算机学院 C语言程序设计 第5-9章 部分习题解答 作业中问题较多的习题 第5章5.4(2) 第6章6.1,6.3,6.5(6),6.8 第7章无 第 ...

  3. 保留两位小数有右对齐c语言,[理学]3 C语言 第三章顺序控制语句.ppt

    [理学]3 C语言 第三章顺序控制语句 1.C语句分五类: 控制语句.函数语句.表达式语句.空语句.复合语句. 其中控制语句又有9条. 2.结构化程序的三种基本结构: 顺序结构.分支结构.循环结构 3 ...

  4. c语言设计程序中的选择控制结构,C语言程序设计第5章 选择控制结构.ppt

    C语言程序设计第5章 选择控制结构 Important Rule ! switch (expression) { case value1 : statement1; break; case value ...

  5. C语言学习笔记:(五)结构化程序设计方法与顺序程序设计举例

    目录 目录 一.基本思路 二.具体方法 (1)自顶向下,逐步细化 (2)模块化设计 (3)结构化编码 三.顺序程序设计举例 一.基本思路 结构化程序设计的基本思路为:把一个复杂问题的求解过程分阶段进行 ...

  6. c语言表达式的计算优先级,C语言运算符优先级(超详细)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言运算符优先级(超详细) 当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! ...

  7. c语言逻辑或逻辑与优先级,c语言逻辑运算符的优先级介绍

    c语言逻辑运算符的优先级介绍 发布时间:2020-07-02 09:37:11 来源:亿速云 阅读:76 作者:Leah 这期内容当中小编将会给大家带来有关c语言逻辑运算符的优先级介绍,文章内容丰富且 ...

  8. C语言设计调研报告,C语言程序设计第12章调研报告.ppt

    第12章 C语言综合应用程序示例; 一个有实用价值的C语言应用程序往往较大,需要划分成不同的模块,分配给不同的程序员去完成.因此,在实用软件的开发中,往往需要采用多模块编程技术.;2.然后用编译器进行 ...

  9. C语言程序设计 谭浩强 顺序程序设计 知识点

    格式化输入输出 在输入多个数值数据时,若格式控制串中没有非法格式字符作输入数据中的间隔则可用空格,tab或回车作间隔,c编译在遇到空格,tab,回车或非法数据(如"%d"输入12A ...

最新文章

  1. 订单×××的算法研究与实现
  2. Java开发web的几种开发模式
  3. Mysql -- SQL常用命令实例
  4. VM虚拟机里,如何将Linux Ubuntu系统改为简体中文及下载拼音的打字法
  5. linux5中文支持,centos安装中文支持
  6. MySQL基础 - 注意事项
  7. 2022年推出?特斯拉人形机器人被批就是个笑话
  8. 加快FineReport报表设计的几个心得体会
  9. mysql 转ascii_MySQL ascll()函数
  10. EDI Party Resolution in Biztalk R2
  11. Unix和Windows比较
  12. 电信光猫DDNS的设置经历
  13. [笔录]博客及源程序 出处
  14. java 计算0.1 0.2,为什么0.1+0.2不等于0.3?原来编程语言是这么算的……
  15. VBA的LENB()和Excel的LENB()区别
  16. 面试技巧---白话文
  17. 域用户绑定计算机,域批量绑定用户帐户与计算机帐户
  18. 地图附近名片流量主小程序开发
  19. ServiceMesh到底好不好
  20. AsyncTask——AsyncTask串行and并行

热门文章

  1. 分析方法的基础 — 1. 拆分能力,分析师的第一技能
  2. 2016 CCF大数据与计算智能大赛——活动报名表
  3. 【软件工程】软件复用
  4. 求最小连续和(洛谷P1614题题解,Java语言描述)
  5. 强调 “范围、时间、成本、质量” 的项目经理
  6. 记录console的使用
  7. 文本处理三剑客awk的使用
  8. js中的对象、原型链机制、构造函数
  9. 读书笔记《Spring Boot实战 —— Java EE 开发的颠覆者》
  10. 引用js实现checkbox批量选中