第四章 顺序结构程序设计.

Slides:



Advertisements
Similar presentations
课前回顾 数据类型 基本类型 构造类型 指针类型 空类型 常量与变量 常量及常量的类型 变量 标识符及有关规定 变量声明格式 赋值运算符.
Advertisements

C语言实验 第一课 标题:学号+姓名.
第三讲 数据输入与输出 数据输出 数据输入.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第三章 结构化程序设计.
第3章 顺序结构程序设计 本章要点: 格式化输出函数──printf() 格式输入函数——scanf() 字符输出函数——putchar()
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
数据类型 第3章 3.1 C数据类型概述 3.2 常量 3.3 变量 3.4 基本输入与输出.
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
基础篇 基础知识 —C语言程序设计 学习目标 掌握C语言中三种常见的基本类型及其使用方法 掌握常见的算术运算符和表达式的使用
走进编程 程序的顺序结构(二).
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
C语言程序设计 第四章 顺序程序设计.
C语言是结构化程序设计语言,提供了功能丰富的控制语句,本章开始陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章主要介绍三种结构化设计的基本概念,格式输入输出函数printf()和scanf(),字符输入输出函数putchar()和getchar()等内容,要求重点掌握顺序结构设计的基本思想及程序编写方法,熟练掌握常见输入、输出库函数的调用。
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第二章 顺序结构 1 数据类型和标识符、常量与变量 2 运算符和表达式 3 简单的输入输出 4 程序举例.
第四章 C 语言中的输入和输出.
第二章 基本数据类型与输入输出.
第三单元 数据的输入、赋值处理与输出 从现在开始,将详细讲述C语言的方方面面。第一章中的所有疑惑,都将一一消灭。
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C语言程序设计基础 刘新国.
C程序设计 第三章 简单的c程序——顺序结构
第2章 数据类型、运算符和表达式.
程序设计基础 谭浩强 著 清华大学出版社.
C卓越工程师班 授课老师:龚涛 信息科学与技术学院 2016年9月 教材:《C程序员成长攻略》 网络课程网址:
C语言大学实用教程 第三章 简单的C程序设计 西南财经大学经济信息工程学院 刘家芬
第三章 顺序结构程序设计 主讲教师 贾月乐 电话:
第3章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 3.1 格式化输出——printf()函数 3.2 格式化输入——scanf()函数.
目录 3.1结构化程序设计 3.2传统流程图及N-S结构化流程图 3.3C语句概述 3.4赋值语句 3.5数据输入输出函数调用语句
第五章 习题课 电子信息与计算机科学系 曾庆尚.
2.1 C语言的数据类型 2.2 常量与变量 2.3 变量赋初值 2.4 各类数值型数据间的混合运算 2.5 C语言的运算符和表达式
第七章 函数及变量存贮类型 7.1 函数基础与C程序结构 7.2 函数的定义和声明 7.3 函数的调用 7.4 函数的嵌套与递归
第4章 顺序程序设计.
第三章 顺序结构程序设计 计算机科学学院.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
C语言概述 第一章.
C语言程序设计.
C程序设计.
C语言程序设计 教案 崔武子制作
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
輸出與輸入(I/O).
本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第4章 Excel电子表格制作软件 4.4 函数(一).
C++程式設計入門 變數與運算子 作者:黃建庭.
第九节 赋值运算符和赋值表达式.
第2章 数据类型、运算符与表达式 本章要点: 基本数据类型 常量和变量 算术运算符和算术表达式 关系运算符和关系表达式
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
第二章 基本数据类型 ——数据的表示.
第三章 基本的輸出與輸入函數 (Basic Output & Input Function)
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第四章 C 语言中的输入和输出.
2.6 字符型数据 一、 字符常量 1、字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。
第4章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 4.1 格式化输出——printf()函数 4.2 格式化输入——scanf()函数.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
第3章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 3.1 格式化输出——printf()函数 3.2 格式化输入——scanf()函数.
程序设计基础A(C语言) 第一章 C语言概述 主讲教师: 许 康
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
数据表示 第 2 讲.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

第四章 顺序结构程序设计

4.1 语句 4.2 输出函数 4.3 输入函数 4.4 常用的数学函数 4.5 顺序结构程序设计举例

§4.1 语句 定义:用来向计算机系统发出操作的指令。 分类: (1)控制语句 (2)函数调用语句 (3)表达式语句 (4)空语句:; (5)复合语句 { 语句1; 语句2; … 语句n; }

几个知识点: 赋值表达式后加一个分号既为一个赋值语句 赋值表达式可以放在其他表达式中,而赋值语句不可以放在其他表达式中 (a=3)+4  if ((a=b)>0) t=a

几个知识点: 即 C语言无I/O语句,I/O操作由函数实现 #include <stdio.h> 输入:从输入设备(鼠标、键盘、扫描仪等)向计算机输入数据。 输出:从计算机向输出设备(显示屏、打印机等)输出数据。 C不提供输入输出语句,输入输出数据是由系统提供的函数来完成的,输入输出函数在系统文件stdio.h中定义,在主函数前用预处理命令将其包含: #include <stdio.h> 即 C语言无I/O语句,I/O操作由函数实现 #include <stdio.h>

§4.2 格式输入/输出函数 #include <stdio.h> main() { int num; printf(“input a number:"); scanf("%d",&num); printf(" \nthe square of the %d is %d \n", num,num*num); } 输入/输出函数 (printf/scanf) 用于接受和显示数据或信息 格式字符 转义字符

printf 函数4-1 int visitor_count = 150; printf (" %d" , visitor_count); 将一些信息按照指定的格式送到标准输出(显示器) 将按指定的格式显示该变量的值 转换字符串 说 明 %d 将参数按整数形式转换输出,对应参数应是int 类型 %ld 将参数按长整数形式转换输出,对应参数应是long 类型 %c 输出一个字符,对应参数应该是一个字符 %s 输出一个字符串,对应参数应该是一个字符串 %f 将参数按带小数点数形式输出,对应参数应是double 类型,默认情况下精确到 6 位小数 %o, %x, %u %e, %g

printf 函数4-2 输出结果:150 int visitor_count = 150; printf (" %d" , visitor_count); 输出结果:150

printf 函数4-3 输出结果: 5500 int salary = 5500; printf (" %10d" , salary); 输出结果: 5500 输出结果的左边显示了 6 个空格

printf 函数4-4 输出结果:78.530000 9.478679 float circumference = 78.53; printf (" %f" , circumference); 9.4786789; 输出结果:78.530000 9.478679 默认情况下精确到六位小数

printf 函数5-5 输出结果: 168.23 double mercury_level = 168.2251074; printf ("%7.2f" , mercury_level); " %7.2f" 输出结果: 168.23 宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。 精度(精确到小数点后多少位)

转义序列 转义序列 名称 描述 输出结果: Name: Audrey Hepburn Movie: ‘Roman Holiday’ 代码: 警告 产生一则警告。 \b 退格 将光标回退一格。 \f 换页 将光标移到下一页的第一格。 \n 换行 将光标移到下一行的第一格。 \r 回车 将光标移到当前行的第一格。 \t 水平制表 将光标移到下一个水平制表位置。 \v 垂直制表 将光标移到下一个垂直制表位置。 \' 单引号 产生一个单引号。 \" 双引号 产生一个双引号。 \? 问号 产生一个问号。 \\ 反斜线 产生一条反斜线。 \0 空 产生一个空字符。 输出结果: Name: Audrey Hepburn Movie: ‘Roman Holiday’ 代码: printf(“Name: Audrey Hepburn \n Movie: \‘Roman Holiday\’”); 转义序列允许在输出结果中包括特殊字符

printf 函数使用示例 #include <stdio.h> void main() { float radius=1.5, high=2.0; float pi=3.14159, vol; /*计算体积*/ vol=pi*radius*radius*high; /*输出体积的值*/ printf("vol=%7.2f\n",vol); } 内存 radius pi high 1.5 2.0 3.14159 vol 14.14 输出: vol= 14.14

printf 函数总结 2.一般格式:printf("格式控制串",输出表) 普通字符:原样输出 转义字符:原义输出 格式说明:%格式字符 1.作用:向计算机系统默认的输出设备(一般指终端或显示器)输出若干个任意类型的数据。 2.一般格式:printf("格式控制串",输出表) 说明: ①格式控制串:包含三种信息 普通字符:原样输出 转义字符:原义输出 格式说明:%格式字符 ②输出表:要输出的常量或变量、表达式,相邻的两个输出项用逗号分隔 例: printf("a=%d,c=%c\n",5,'a'); printf("a=%d,c=%c\n",a,c); printf("a=%d,c=%c\n",3*5,97);

printf 函数总结 格式字符 不同类型的数据用不同的格式字符(%d、%f、%c、%s) 格式字符要用小写输出(除了X,E,G外) 格式字符的个数与输出项的个数应相同,类型相一致,按先后顺序一一对应; 输出字符%应写成printf("%%");

scanf 函数 scanf("%d",&num); 变量的名称 &符号(附在读取的每个变量上)用于指明变量在内存中的位置 转换字符串 转换字符串 参数变量的类型 要求的实际输入 %d int 十进制数字序列 %ld long %f float 十进制数,可以有小数点及指数部分 %lf double

scanf float tax_rate; scanf (" %f" , &tax_rate); 在内存中分配一块 32 位存储空间 提示用户输入一个值 输入的值存储在变量中(因为 scanf 提供此变量的地址) 12.234

scanf 函数使用示例 #include <stdio.h> void main() { double radius,high,vol; printf("请输入圆柱体底面积的半径和圆柱体的高: "); scanf("%lf%lf",&radius,&high); vol=3.14*radius*radius*high; printf("radius=%7.2f, high=%7.2f, vol=%7.2f\n", radius,high,vol); } 内存 radius high 5 10 vol 785 请输入圆柱体底面积的半径和圆柱体的高: 5 10 radius= 5.00, high= 10.00, vol= 785.00

§4.3 字符输入/输出函数 getchar函数 putchar函数

接受并显示字符 字符型数据 getchar() 字符型数据 putchar() 字符型变量

getchar() 函数 getchar() char variablename; variablename = functionname; 语法: char variablename; variablename = functionname; 例如: char c; c=getchar(); getchar()

getchar()和putchar()示例 内存 #include <stdio.h> void main() { char a,b; printf(" 请输入两个字符:\n"); a=getchar(); b=getchar(); putchar(a); putchar(b); putchar('\n'); } a b O K 输出: 请输入两个字符: O K

§ 4.4 常用的数学函数

§ 4.5 顺序结构程序设计 在顺序结构程序中,各语句(或命令)是按照位置的先后次序,顺序执行的,且每个语句都会被执行到。 § 4.5 顺序结构程序设计 在顺序结构程序中,各语句(或命令)是按照位置的先后次序,顺序执行的,且每个语句都会被执行到。 例: 输入任意三个整数,求它们的和及平均值。 main() {int num1,num2,num3,sum; float aver; printf("Please input three numbers:"); scanf("%d,%d,%d",&num1,&num2,&num3);/*输入三个整数*/ sum=num1+num2+num3; /*求累计和*/ aver=sum/3.0; /*求平均值*/ printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3); printf("sum=%d,aver=%7.2f\n",sum,aver); } [程序演示] 思考题:能否将"aver=sum/3.0;"中"3.0"改为"3"?

<例>求方程ax2+bx+c=0的实数根。要求a,b,c由键盘输入,a≠0且b2-4ac>0。 #include "math.h" main() { float a,b,c,disc,x1,x2; printf("enter coefficient: "); scanf("%f,%f,%f",&a,&b,&c); disc=b*b-4*a*c; x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("x1=%7.2f\nx2=%7.2f\n",x1,x2); }

练习 运行结果示例: please input two letter: A,B↙ the lower is a,b 输入一个华氏温度,要求输出摄氏温度。公式为c=5/8(F-32)。输出要有文字说明,取2位小数。 从键盘输入一小写字母,(1)输出对应的大写字母;(2)输出其前导字母与后续字母。 从键盘任意输入一个三位整数,编程将它逆序输出。例如输入127,输出为721。 从键盘输入x和y的值,求数学公式 的值。 从键盘输入用逗号隔开的两个大写字母,输出两个与之相应的小写字母及其ASCII码值。 运行结果示例: please input two letter: A,B↙ the lower is a,b the ascii is 97,98

总结 及补充 printf中出现的各种格式符 scanf的注意事项 字符型数据的输入输出

printf的各种格式符 (1)d格式符:用来输出十进制整数 ①%d:按整型数据的实际长度输出 ②%md:按m所指定的长度输出。 例:int a=123,b=12345; printf("a=%4d,a=%-4d,b=%4d",a,a,b); 结果:a=123,a=123,b=12345 ③%ld:输出长整型数据 %mld或%-mld :按m指定的长度输出长整型数 例:long a=1234567; printf("a=%ld\n",a); printf("a=%8ld",a); 结果:a=1234567 a=  1234567

printf的各种格式符 (2)o格式符:以八进制形式输出整数 将整数的补码转换成八进制,输出的数值不带符号 形式:①%o②%mo或%-mo ③%lo④%mlo或%-mlo 例:int a=1,b=-1; printf("a=%d,b=%d\n",a,b); printf("a=%o,b=%o\n",a,b); printf("a=%4o,b=%4o",a,b); 结果:a=1,b=-1 a=1,b=177777 a=   1,b=177777

printf的各种格式符 (3)x格式符:以十六进制形式输出整数 将整数的补码转换成十六进制,输出数值不带符号 形式:①%x②%mx或%-mx ③%lx④%mlx或%-mlx (若x为大写则输出的十六进制数中的字母也为大写) 例:int a=-1; printf("%d,%o,%x,%X",a,a,a,a); 结果: -1,177777,ffff,FFFF

printf的各种格式符 (4)u格式符:以十进制形式输出无符号型(unsigned)整数 形式:①%u②%mu或%-mu ③%lu④%mlu或%-mlu 例:unsigned int a=65535; printf("%u,%d",a,a); 结果: 65535,-1

printf(“x=%d, y=%d”, x, y); } main() { int x, y; x=32767; y = x + 1; printf(“x=%d, y=%d”, x, y); } x=32767, y=-32768

unsigned int a, b; a=65535; b=a + 1; printf(“b=%u\n”, b); 0 ~ 65535 1 1 unsigned int a, b; a=65535; b=a + 1; printf(“b=%u\n”, b); To understand: “ 无符号整型 ”

printf(“k=%d, k=%o, k=%x\n”, k,k,k); } main() { int k=11; printf(“k=%d, k=%o, k=%x\n”, k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b

main() { int k=011; printf(“k=%d, k=%o, k=%x\n”, k,k,k); } k=9,k=11,k=b

printf(“%d, %u, %o\n”, x,x,x); } EXAMPLE: main() { int x= -1; printf(“%d, %u, %o\n”, x,x,x); } A) -1, -1, -1 B) -1, 32767, -177777 C) -1, 32768, -177777 D) -1, 65535, 177777

printf(“%d, %u, %o\n”, x,x,x); } main() { int x=-1; printf(“%d, %u, %o\n”, x,x,x); } 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 原码 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 反码 从前面的内容中我们已经知道,补码的作用在于化减法为加法,实现类似于代数中 。。。 。。。 运算。 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 补码 -1 65535 177777

printf(“%d, %u, %o\n”, x,x,x); } main() { int x=-1; printf(“%d, %u, %o\n”, x,x,x); } A) -1, -1, -1 B) -1, 32767, -177777 C) -1, 32768, -177777 D) -1, 65535, 177777

printf的各种格式符 (5)c格式符:输出字符型数据 在0~255范围内的整数可以用字符形式输出 字符型数据也可以用整数形式(ASCII值)输出 形式:①%c②%mc或%-mc 例:char c='a'; putchar(c); printf("%4c,%5d",c,c); 结果: aa,97

printf的各种格式符 (6)s格式符:输出一个字符串 形式:①%s:按字符串实际长度输出 ②%ms或%-ms:按m指定的宽度输出 ③%m.ns:共占m列,取字符串左端n个字符,左补空格 %-m.ns:共占m列,取字符串左端n个字符,右补空格 ④%.ns:没指定m,m自动取n的值 例: printf("%3s,%7.2s\n","china","china"); printf("%.4s,%-5.3s\n","china","china"); 结果: china,ch chin,chi

(7)f格式符:以小数形式输出单、双精度实数 形式:①%f:不指定宽度,整数部分全部输出,小数部分隐含保留6位 printf的各种格式符 (7)f格式符:以小数形式输出单、双精度实数 形式:①%f:不指定宽度,整数部分全部输出,小数部分隐含保留6位 ②%m.nf:共占m列,小数部分占n列,左补空格 %-m.nf:共占m列,小数部分占n列,右补空格 (8)e格式符:以指数形式输出 形式: ①%e:不指定宽度,按规范化指数形式输出,本书保留6位小数,5位指数部分(如e+002) ②%m.ne或%-m.ne (若e为大写则输出的指数中的字母也为大写E) 例:float f=123.456; printf("%f,%E,%10.2e,%.2e,%-10.2f\n",f,f,f,f,f); 运行结果: 123.456001,1.234560E+002,1.23e+002,1.23e+002,123.46

printf的各种格式符 (9)g格式符:输出实数,自动选用%f和%e格式中输出宽度较短的一种格式,不输出无意义的0 形式:①%g或%G 例: float f=123.468; printf("%f,%e,%g\n",f,f,f); 结果: 123.468000,1.234680e+002,123.468 10列 13列 7列

scanf的主意事项 1.一般格式:scanf("格式控制串",地址表列) scanf(“%d",&radius) 2.输入长整型数据或double型数据在格式字符前加l(%ld、%lo、%lx、%lf、) scanf(“%ld",&radius) 3. 如果相邻2个格式符之间,不指定数据分隔符(如逗号、冒号等),则相应的2个输入数据之间,至少用一个空格分开,或者用Tab键分开,或者输入1个数据后,按回车,然后再输入下1个数据。 4. “格式字符串”中出现的普通字符(包括转义字符形式的字 符),务必原样输入。

scanf("%d%d",&num1,&num2); 12 35<回车> 12 <回车> 35 <回车> scanf("%d,%d",&num1,&num2); 12 ,35<回车>

5。使用格式说明符“%c”输入单个字符时,空格和转义字符均作为有效字符被输入。 例如: scanf("%c%c%c",&ch1,&ch2,&ch3); printf("ch1=%c,ch2=%c,ch3=%c\n",ch1,ch2,ch3); 假设输入:ABC↙ 则系统将字母'A'赋值给ch1,空格''赋值给ch2,字母'B'赋值给ch3。 结果:ch1=A,ch2=,ch3=B

输入数据时,遇到以下情况,系统认为该数据结束: (a)遇到空格,或者回车键,或者Tab键。 (b)遇到输入域宽度结束。例如"%3d",只取3列。 (c)遇到非法输入。例如,在输入十进制数值数据时,遇到字母等非数值符号(数值符号仅由数字字符0-9、小数点和正负号构成)。 例:scanf("%d%c%f",&a,&b,&c); 如输入:1234a123o.45

6。如果在%后有一个“*”号,表示跳过它所指定的列数,该 输入项在读入后不赋给任何变量 例: scanf("%2d%*3d%2d",&a,&b); printf("a=%d,b=%d",a,b); 输入:1234567 结果:a=12,b=67 7。输入数据时不能规定精度 scanf("%7.2f",&a); 