C语言 课件CLanguage_3_IO
合集下载
C语言PPT课件

第34页/共92页
3.2 C语言的基本数据类型及其表示
3.2.4 字符型数据及其表示 4.字符串常量 说明: C语言对字符串常量的长度不加限制,编译程序总是自动地在字符串的结 尾加上一个转意字符’\0’(即ASCII码是0,所对应的字符是空),作为 字符串常量的结束标志。对字符串操作时,这个结束标志是非常重要的。
3.2.1 常量与变量 2.符号常量 在C语言中,常量还可以用标识符来表示。 C语言中用宏定义命令对符号常量进行定义,其定义形式如下: #define <标识符> <常量>
第18页/共92页
3.2 C语言的基本数据类型及其表示
3.2.1 常量与变量
3.变量 变量是在程序运行过程中可以改变的量。
C语言提供的基本变量类型有:
无值类型(空类型) void
第16页/共92页
3.2 C语言的基本数据类型及其表示
3.2.1 常量与变量
1.常量 常量是指在程序运行时其值不能改变的量。C语言提供的常量有:
整型常量
数值常量Байду номын сангаас
常量
实型常量
字符常量
字符常量
字符串常量
例如,123,3.14,-3000等都是常量。
第17页/共92页
3.2 C语言的基本数据类型及其表示
第5页/共92页
2.2 C程序的基本结构
2.2.1 简单的C程序介绍 2.2.2 C程序的基本组成
第6页/共92页
2.2.1 简单的C程序介绍
例1 (P24例2-1) /*文件名:A1.C*/ /*This is a hello C program.*/ main() { printf("*********************\n"); printf(" Happy New Year!\n"); printf("*********************\n"); } 说明:双引号内的字符串按原样输出,“\n”是换行符。
3.2 C语言的基本数据类型及其表示
3.2.4 字符型数据及其表示 4.字符串常量 说明: C语言对字符串常量的长度不加限制,编译程序总是自动地在字符串的结 尾加上一个转意字符’\0’(即ASCII码是0,所对应的字符是空),作为 字符串常量的结束标志。对字符串操作时,这个结束标志是非常重要的。
3.2.1 常量与变量 2.符号常量 在C语言中,常量还可以用标识符来表示。 C语言中用宏定义命令对符号常量进行定义,其定义形式如下: #define <标识符> <常量>
第18页/共92页
3.2 C语言的基本数据类型及其表示
3.2.1 常量与变量
3.变量 变量是在程序运行过程中可以改变的量。
C语言提供的基本变量类型有:
无值类型(空类型) void
第16页/共92页
3.2 C语言的基本数据类型及其表示
3.2.1 常量与变量
1.常量 常量是指在程序运行时其值不能改变的量。C语言提供的常量有:
整型常量
数值常量Байду номын сангаас
常量
实型常量
字符常量
字符常量
字符串常量
例如,123,3.14,-3000等都是常量。
第17页/共92页
3.2 C语言的基本数据类型及其表示
第5页/共92页
2.2 C程序的基本结构
2.2.1 简单的C程序介绍 2.2.2 C程序的基本组成
第6页/共92页
2.2.1 简单的C程序介绍
例1 (P24例2-1) /*文件名:A1.C*/ /*This is a hello C program.*/ main() { printf("*********************\n"); printf(" Happy New Year!\n"); printf("*********************\n"); } 说明:双引号内的字符串按原样输出,“\n”是换行符。
《C语言的基本知识》PPT课件

C语言的基本运算-关系运算
运算符 > < == >= <= !=
名称 大于 小于 等于 大于等于 小于等于 不等于
例子 a>b a<b a == b a >= b a <= b a != b
运算功能 a大于b a小于b a等于b
a大于等于b a小于等于b
a不等于b
C语言的基本运算-逻辑运算
运算符 && ‖ !
一个元素都属于同一个数据类型 结构体:struct 公用体:union 无符号数:unsigned(unsigned int;unsigned char)
C语言的基本运算-算术运算
运算符 名称
+
加
-
减
*
乘
/
除
% 取余
++ 自增
-- 自减
-
取负
例子 a+b a-b a*b a/b a%b a ++
cmd
操作
返回按键的键值,该值是2个字节的整型数,若没有
0 键按下,则该函数一直等待,直到有键按下。当按
下时,若返回值的低8位为非零,则表示为普通键, 其值代表该键的ASCII码。若返回值的低8位表示为 扩展的ASCII码,表示按下的是特殊功能键。
1 此时,该函数则用来查询是否有键按下。若返回非0
值,则表示有键按下,若为0,表示没键按下。
00001110
1
方法1:先右移n位,再与“0x01”进行与运算
bit = (byte>>n)&0x01;
方法2:使用屏蔽字
unsigned char MASK[8] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
C语言谭浩强完整课件

2020/12/15
1.3 C语言的发展及其特点
➢C语言是国际上广泛流行的计算机高级
语言。 ➢C语言的发展:
具有多种数据类型
BCPL语言
B语言
C语言
2020/12/15
精练、接近硬件,但 过于简单, 无数据类型
1.3 C语言的发展及其特点
• 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
2020/12/15
函数体
1.4.1 最简单的C语言程序举 例
#include <stdio.h>
int main( )
{
printf (”This is a C program.\n”);
return 0;
输出函数
}
2020/12/15
输出语句
1.4.1 最简单的C语言程序举 例
#include <stdio.h> int main( ) {
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 运算符丰富。 • 有34种运算符 • 把括号、赋值、强制类型转换等都作为运算符处理 • 表达式类型多样化
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 数据类型丰富。 • 包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型 • C99又扩充了复数浮点类型、超长整型(long long)、布尔类型(bool) • 指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
会自动地、有条不紊地进行工作 ➢计算机的一切操作都是由程序控制的,
离开程序,计算机将一事无成
2020/12/15
1.3 C语言的发展及其特点
➢C语言是国际上广泛流行的计算机高级
语言。 ➢C语言的发展:
具有多种数据类型
BCPL语言
B语言
C语言
2020/12/15
精练、接近硬件,但 过于简单, 无数据类型
1.3 C语言的发展及其特点
• 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。
2020/12/15
函数体
1.4.1 最简单的C语言程序举 例
#include <stdio.h>
int main( )
{
printf (”This is a C program.\n”);
return 0;
输出函数
}
2020/12/15
输出语句
1.4.1 最简单的C语言程序举 例
#include <stdio.h> int main( ) {
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 运算符丰富。 • 有34种运算符 • 把括号、赋值、强制类型转换等都作为运算符处理 • 表达式类型多样化
2020/12/15
1.3 C语言的发展及其特点
• C语言主要特点: • 数据类型丰富。 • 包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型 • C99又扩充了复数浮点类型、超长整型(long long)、布尔类型(bool) • 指针类型数据,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。
会自动地、有条不紊地进行工作 ➢计算机的一切操作都是由程序控制的,
离开程序,计算机将一事无成
2020/12/15
C语言课件第三章

三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加1或减1
1)该运算符为单目运算符,其运算对象只能是 变量,不能为常量或者表达式。 例如: i++ 、x- - 都是正确的 5++ 、(x+y)++ 都是错误的
2)该运算符作前缀、后缀都可以 例如 i++、++i、i- - 、- -i 都是正确的
3)对变量而言 i++ 或者++i都相当于i=i+1 i- -或者- -i都相当于i=i-1
例如: main( ) { int i=3 , j=3; +i+++i; j---j;; printf (“%d, %d\n”, i, j ); }
运行结果:4,2
4)但如果作为表达式,前缀和后缀则不同: 后缀:先取值再运算(i++,先取i值,i再自加) 前缀:先运算再取值(++i,i先自加,再取i值)
2)强制类型转换运算符优先级高于算术运算符
float x=3.6; int y; y=(int)x%3+2;
x = ?3.6 y=?2
计算下列表达式的值 设 x=2.5, a=7,y=4.7
x+a%3 * (int)(7x7+.2y ) % 2 / 4
设 a=2,b=3,x=3.5,y=2.5
(float5).(0a+b )/2+(int3)(x)%(int2)(y)
例如: main() { int i=3; printf(“%d\n”+, +i+i+ ); printf(“%d”, i ); }
计算机二级考试C语言辅导PPT课件

A)C语言程序是由过程和函数组成的 B)C语言函数可以嵌套调用,例如:fun(fun(x)) C)C语言函数不可以单独编译 D)C语言中除了main函数,其他函数不可作为单独文件形式存在
二、数据类型及其运算
1.C的数据类型(基本类型,构造类型,指针 类型,无值类型void)及其定义方法。
2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,
else max = y; 4)复合语句:用{ }把多个语句括起来称为复合语句,又
称分程序
(1)while ( x < 0 )
{y = - x ; x ++ ; }
(2) if ( x > y )
{ t =x ; x = y; y = t;}
1)字符输入函数: putchar( ) (功能,参数及其类型,返回值及其类型) putchar(‘a’); putchar(‘\023’);putchar(‘\x1a’);putchar(30+35); char x; int y; float z; putchar(x); putchar(y); putchar(z);
一个结果
printf(“%d”,x++,x+6,x+=7); 6)条件运算符: (1)唯一的一个三目运算符(2)结合性(3)规则
( (w)?x++:y++ 找等价 表达式1的值非0或0)
1)赋值转换:以变量类型为准
int a ; a = 2.3;
float b; b=7; 2)计算时自动转换:低精度向高精度转换,特别的是单
s1=s1+f1(i); for(j=1;j<=10;j++)
二、数据类型及其运算
1.C的数据类型(基本类型,构造类型,指针 类型,无值类型void)及其定义方法。
2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,
else max = y; 4)复合语句:用{ }把多个语句括起来称为复合语句,又
称分程序
(1)while ( x < 0 )
{y = - x ; x ++ ; }
(2) if ( x > y )
{ t =x ; x = y; y = t;}
1)字符输入函数: putchar( ) (功能,参数及其类型,返回值及其类型) putchar(‘a’); putchar(‘\023’);putchar(‘\x1a’);putchar(30+35); char x; int y; float z; putchar(x); putchar(y); putchar(z);
一个结果
printf(“%d”,x++,x+6,x+=7); 6)条件运算符: (1)唯一的一个三目运算符(2)结合性(3)规则
( (w)?x++:y++ 找等价 表达式1的值非0或0)
1)赋值转换:以变量类型为准
int a ; a = 2.3;
float b; b=7; 2)计算时自动转换:低精度向高精度转换,特别的是单
s1=s1+f1(i); for(j=1;j<=10;j++)
C语言课件(C语言概述)

C语言概述
为什么学习和使用C语言
C与C++(C加加,see-plus-plus)
贝尔实验室于二十世纪八十年代在C语言的基础上开发的。 C++是C语言的超集,包含了C语言的所有内容,同时增加 了面向对象编程方面的内容。
C与Java(爪哇)
Sun公司于1995年发布的面向对象编程语言。 Java也是基于C语言的。
汇编语言程序必须被翻译成机器语言程序才能被执行
汇编程序(Assembler)充当“翻译”
C语言概述
高级语言
高级语言(High-level language)使用数学符号和类似英语 的单词
例如,完成两个数相加的C语言程序
sum = n1 + n2;
从多方面提高了编程效率
不必考虑CPU的指令集 不必考虑CPU实现特定任务的精确步骤 采用接近人类思考问题的方式去书写程序
CPU有自己的工作区:包括若干个寄存器(Registers) CPU只能理解有限的指令(CPU的指令集)
指令能够完成的任务是具体的 例如,把一个数从内存移动到某一个寄存器
C语言概述
计算机程序和语言
存储在计算机中的一切内容都是二进制的数字形式
数据:数、字符、图片、声音、动画等等 指令
0110001100000110 0110010111001100 0000110000011011 0110001100000110 0110010111001100 0000110000011011
内存(Memory unit)
临时存储正在处理的数据和运行的程序 可以快速地访问 容量不大
C语言概述
计算机的组成
中央处理单元(Central processing
C语言详细教程(完整版)ppt课件

C语言有很多种,如:Microsoft C、Turbo C、
Quick C、Borland C++、Visual C等。本课程通
.
过Turbo C的环境来学习C语言。
C Programming Language
三、C程序格式和结构特点
例1.1 第一个程序 Hello,World!
/* example1.1 The first C Program*/
– 答疑时间:星期四 12:00~13:30 – 地点:鉴主-12楼-计算机技术研究所 – 第6周到第18周
考试
. C Programming Language
上机安排
地点:南湖计算中心机房
时间:待定 上机内容:随教学进度根据配套的实验书( 上机调试每次课堂作业) 要求:
• 所有作业必须独立完成
• 作业必须经上机调试通过
. C Programming Language
开始
N=0
N<10吗?
Y
输入 X
X>=0吗? N N=N+1
N
结束
Y 输出 X
[例1.4] 输入10个数,求它们的平均值。
N=0, SUM=0 当N<10 输入X SUM=SUM+X N=N+1 AVER=SUM/10 输出AVER的值
. C Programming Language
定点法
数制转换
数值数据:二进制
浮点法
数据
西文:ASCII
非数值数据:编码 汉字:国标码
. C Programming Language
图形:……
有符定点整数
ds dn dn-1 dn-2 ……..
c语言ppt课件

汇编语言的应用场景
汇编语言主要用于系统软件、嵌入式系统等领域 。
C语言与汇编语言的混合编程方式
01
直接调用汇编代码
在C语言中直接使用内联汇编, 通过关键字__asm__将汇编代码 嵌入到C代码中。
02
通过函数调用汇编 代码
将汇编代码封装成函数,在C语 言中调用。
03
使用编译器特定的 语法
一些编译器支持特定的语法来混 合C语言和汇编语言,如GCC中 的asm()函数。
广度优先搜索
从根节点开始,逐层访问相邻的节点 ,直到所有的节点都被访问过。
05 C语言与汇编语言 的混合编程
汇编语言的概述
1 2
汇编语言定义
汇编语言是一种面向机器的语言,使用特定的符 号表示机器指令,如MOV, ADD, SUB等。
汇编语言的特点
汇编语言执行速度快,代码可读性较差,不易维 护。
3
嵌入式系统的概述
嵌入式系统的定义
01
嵌入式系统是一种专为特定任务设计的计算机系统,
通常具有体积小、功耗低、可靠性高等特点。
嵌入式系统的应用范围
02 嵌入式系统广泛应用于工业控制、智能家居、汽车电
子等领域。
嵌入式系统的硬件和软件
03
嵌入式系统的硬件通常包括微控制器、传感器、执行
器等,软件则包括嵌入式操作系统、应用程序等。
THANKS
感谢观看
搜索算法
顺序搜索
逐个比较待搜索元素与表中的每个元素,直到找到目标元素或搜索完整个表。
二分搜索
在有序表中,取中间位置元素,如果中间元素正好是要查找的元素,则搜索过程结束;如果待查元素 大于中间元素,则在右半部分继续查找;若待查元素小于中间元素,则在左半部分继续查找。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
格式控制符 %d,%i %u %x,%X %o %c %f %e,%E %g,%G %s 对输入的要求 要求用户输入一个 10 进制有符号整数 要求用户输入一个 10 进制无符号整数 要求用户输入一个字符 要求用户输入一个实数 要求用户用指数形式输入一个实数 等价于%f 或%e 或%E 要求用户输入一个字符串(将在第 5 章介绍)
13
例子——标志在转换 上的效果 标志在转换%d上的效果 例子 标志在转换
转换说明 %8d %-8d %+8d %□8d %08d %-+8d %-□8d %+08d %□08d 对123应用转换说明的结果 对-123应用转换说明的结果 □□□□□123 123□□□□□ □□□□+123 □□□□□123 00000123 +123□□□□ □123□□□□ +0000123 □0000123
20
二,数据的输入
1,数据的格式化输入 ,
和printf函数一样,我们可以在格式转换字符和%之间插入一些辅助的 格式控制字符.但scanf函数的辅助格式控制符不如printf函数那样丰 富.scanf函数的格式控制符的一般形式是:
%[*][width] [l]Type
其中, [ ]表示[ ]中间的内容是可以缺省的,没有被[ ]括起来的是不能缺 省的; width是无符号的整数,表示输入数据所占的域宽. 是无符号的整数, 是无符号的整数 表示输入数据所占的域宽. Type就是上表列出的各种格式转换符. 如果在格式控制符种出现*号 则输入的数据不会赋值给相应的变量. 如果在格式控制符种出现 号,则输入的数据不会赋值给相应的变量. 字母l用来输入长整型数据(%ld,%lu,%lx,%lo)和double型数据 (%lf,%le).
8
输出函数printf详细解释 详细解释 输出函数 width:最小字段宽度,可选
如果字符的数量较少,无法达到width ,就会 用空格填满 如果超过width,就按实际宽度输出
9
输出函数printf详细解释 详细解释 输出函数 .precision:精度,可选,含义依赖于type
如果type是d,i,o,u,x或X,那么精度表示 最少字数位数,如果数字少于精度值,则添加 前导0; 如果type是e,E,f,那么精度表示小数点后 的数字位数; 如果type是g,G,那么精度表示最大有效数 字位; 如果type是s,精度则表示最大字符数 如果只有小数点,那么精度就为0
转换说明 %6s %-6s %.4s %6.4s %-6.4s 对"bogus"应用转换说明的 结果 □bogus bogus□ Bogu □□bogu bogu□□ 对"buzzword"应用转换说 明的结果 buzzword buzzword buzz □□buzz buzz□□
□表示空格
16
例子——%g的示例 在%e和%f之间切换 的示例,在 和 之间切换 例子 的示例
6
输出函数printf详细解释 详细解释 输出函数 %[flag][width][.precision][size]type
其中,[ ]表示[ ]中的内容是可以省略的 width和precision都必须是无符号的整数 precision前面的点.要与precision一起出现 type就是上页列出的各种格式转换符
3
输出函数printf详细解释 详细解释 输出函数 "Variable m=%d\tn=%d\n"中,
Variable m=以及\tn=和\n都是常规字符 而两个%d是格式控制符.
要想显示%,必须在格式控制字符串中使用 %%来代表单个%
(回忆一下转义字符开始符反斜杠\,\\表示 单个\)
4
输出函数printf详细解释 详细解释 输出函数 已知:int a=3; 函数调用: printf("3+5=%d, a+6=%d" , 3+5, a+6); 实际输出:3+5=8,a+6=9 由于printf函数按照一定的格式输出数据, 因此,利用printf函数输出数据又称为格式 化输出
数 123456 说明: 当指数>4或 <-4时,就使 用%e格式, 而在此之间 用%f格式 12345.6 1234.56 123.456 12.3456 1.23456 0.123456 0.0123456 0.00123456 0.000123456 0.0000123456 0.00000123456 对该数应用%.4g得到的结果 1.235e+05 1.235e+04 1235 123.5 12.35 1.235 0.1235 0.01235 0.001235 0.0001235 1.235e-05 1.235e-06
17
二,数据的输入
1,数据的格式化输入 ,
C语言中具有基本数据输入功能的库函数是scanf函数.调用scanf函 数的基本格式是: scanf("格式控制字符串 变量 的地址 变量 的地址 格式控制字符串",变量 变量2的地址,…,变量 地 变量n地 格式控制字符串 变量1的地址,变量 变量 址); 例如,下面的调用将接受用户的输入并将输入的数据存放在int型变量 a中: scanf("%d" , &a);//用户输入123<CR>,则a的值将是123 其中,&符号的功能是取地址. C语言中,变量名被用来表示变量的值,要获得变量的地址(变量在内 存中的位置),需要在变量名前加上&符号. 因此,&又被称为取地址运算符(与按位与运算符是同一个符号),它 与++,sizeof等运算符具有相同的优先级.
10
输出函数printf详细解释 详细解释 输出函数 Size:可选,h,l,L中的一个
当把这些字母用于显示整数时,h说明整数是 short型,l说明是long型 当和e或E,f,g或G使用时,L说明是long double型
11
输出函数printf详细解释 详细解释 输出函数 Size:可选,h,l,L中的一个
□表示空格
15
对123应用转换说明的结果 □□□□□173 □□□□0173 □□□□□□7b □□□□0x7b □□□□□□7B □□□□0X7B
对123.0应用转换说明的结果
□□□□□123 □123.000 □□□□□123 □123.000
例子——width和. Precision在%s上的效果 和 例子 在 上的效果
三,输入输出函数
指导教师: 电子邮件: 胡晓雁 huxy@
北京师范大学信息科学与技术学院
输入输出函数 输出函数
printf,putchar,puts
输入函数
scanf,getchar,getche,getch
2
输出函数printf详细解释 详细解释 输出函数
printf("格式控制字符串",表达式1,表达式2,…, 表达式n); 按照"格式控制字符串"的要求,将表达式1,表 达式2,…,表达式n的值显示在屏幕上 格式控制字符串中包含有两类字符: 常规字符(原样输出) 常规字符(原样输出):包括可显示字符和用 转义字符表示的字符 格式控制符:以%开头的一个或多个字符,比 格式控制符 如我们见过的%d,%f等等.其中,%后面的d 和f被称为转换说明符 转换说明符
7
输出函数printf详细解释 详细解释 输出函数 flag:标志,可选,允许多个标志同时出现
-:在字段域内左对齐 +:以+开头的正符号数(比空格优先) 空格:用空格作为正符号数的前缀 #:以0开头的八进制数,以0x或者0X开头的 十六进制数 0:用0在字段域内作填充,在d,i,o,u,x 或X的情况下可忽略标志0
运行结果(一): 格式化输入的例子 please input a number and a character like this "12,c" 55,j please input a number small than 1000 23 1 #include <stdio.h> long int data:89898989 input a a=55**b=23**ch='j'**L=89898989 2 main()
scanf("%d%d",&a,&b); scanf( % ,&a,&b); ,&a,&b)
19
二,数据的输入
1,数据的格式化输入 ,
printf函数中的格式控制符是用来控制相对应表达式数据的输出的, 而scanf函数中的格式控制符是用来控制用户输入数据的.不同的格式控 制符要求用户输入输入不同形式的数据,下表列出了不同的格式控制符对 用户的不同输入要求.
当把这些字母用于显示整数时,h说明整数是 short型,l说明是long型 当和e或E,f,g或G使用时,L说明是long double型
12
简单的例子 #include <stdio.h> main() { float a = 3; printf("\n%10.3e",a); printf("\n%10.3f",a); printf("\n%10.4f",a); } 3.000e+00 3.000 3.0000
□表示空格
14
□□□□-123 -123□□□□ □□□□-123 □□□□-123 -0000123 -123□□□□ -123□□□□ -0000123 -0000123
例子——标志#的效果 标志# 例子 标志
转换说明 %8o %#8o %8x %#8x %8X %#8X %8g %#8g %8G %#8G
13
例子——标志在转换 上的效果 标志在转换%d上的效果 例子 标志在转换
转换说明 %8d %-8d %+8d %□8d %08d %-+8d %-□8d %+08d %□08d 对123应用转换说明的结果 对-123应用转换说明的结果 □□□□□123 123□□□□□ □□□□+123 □□□□□123 00000123 +123□□□□ □123□□□□ +0000123 □0000123
20
二,数据的输入
1,数据的格式化输入 ,
和printf函数一样,我们可以在格式转换字符和%之间插入一些辅助的 格式控制字符.但scanf函数的辅助格式控制符不如printf函数那样丰 富.scanf函数的格式控制符的一般形式是:
%[*][width] [l]Type
其中, [ ]表示[ ]中间的内容是可以缺省的,没有被[ ]括起来的是不能缺 省的; width是无符号的整数,表示输入数据所占的域宽. 是无符号的整数, 是无符号的整数 表示输入数据所占的域宽. Type就是上表列出的各种格式转换符. 如果在格式控制符种出现*号 则输入的数据不会赋值给相应的变量. 如果在格式控制符种出现 号,则输入的数据不会赋值给相应的变量. 字母l用来输入长整型数据(%ld,%lu,%lx,%lo)和double型数据 (%lf,%le).
8
输出函数printf详细解释 详细解释 输出函数 width:最小字段宽度,可选
如果字符的数量较少,无法达到width ,就会 用空格填满 如果超过width,就按实际宽度输出
9
输出函数printf详细解释 详细解释 输出函数 .precision:精度,可选,含义依赖于type
如果type是d,i,o,u,x或X,那么精度表示 最少字数位数,如果数字少于精度值,则添加 前导0; 如果type是e,E,f,那么精度表示小数点后 的数字位数; 如果type是g,G,那么精度表示最大有效数 字位; 如果type是s,精度则表示最大字符数 如果只有小数点,那么精度就为0
转换说明 %6s %-6s %.4s %6.4s %-6.4s 对"bogus"应用转换说明的 结果 □bogus bogus□ Bogu □□bogu bogu□□ 对"buzzword"应用转换说 明的结果 buzzword buzzword buzz □□buzz buzz□□
□表示空格
16
例子——%g的示例 在%e和%f之间切换 的示例,在 和 之间切换 例子 的示例
6
输出函数printf详细解释 详细解释 输出函数 %[flag][width][.precision][size]type
其中,[ ]表示[ ]中的内容是可以省略的 width和precision都必须是无符号的整数 precision前面的点.要与precision一起出现 type就是上页列出的各种格式转换符
3
输出函数printf详细解释 详细解释 输出函数 "Variable m=%d\tn=%d\n"中,
Variable m=以及\tn=和\n都是常规字符 而两个%d是格式控制符.
要想显示%,必须在格式控制字符串中使用 %%来代表单个%
(回忆一下转义字符开始符反斜杠\,\\表示 单个\)
4
输出函数printf详细解释 详细解释 输出函数 已知:int a=3; 函数调用: printf("3+5=%d, a+6=%d" , 3+5, a+6); 实际输出:3+5=8,a+6=9 由于printf函数按照一定的格式输出数据, 因此,利用printf函数输出数据又称为格式 化输出
数 123456 说明: 当指数>4或 <-4时,就使 用%e格式, 而在此之间 用%f格式 12345.6 1234.56 123.456 12.3456 1.23456 0.123456 0.0123456 0.00123456 0.000123456 0.0000123456 0.00000123456 对该数应用%.4g得到的结果 1.235e+05 1.235e+04 1235 123.5 12.35 1.235 0.1235 0.01235 0.001235 0.0001235 1.235e-05 1.235e-06
17
二,数据的输入
1,数据的格式化输入 ,
C语言中具有基本数据输入功能的库函数是scanf函数.调用scanf函 数的基本格式是: scanf("格式控制字符串 变量 的地址 变量 的地址 格式控制字符串",变量 变量2的地址,…,变量 地 变量n地 格式控制字符串 变量1的地址,变量 变量 址); 例如,下面的调用将接受用户的输入并将输入的数据存放在int型变量 a中: scanf("%d" , &a);//用户输入123<CR>,则a的值将是123 其中,&符号的功能是取地址. C语言中,变量名被用来表示变量的值,要获得变量的地址(变量在内 存中的位置),需要在变量名前加上&符号. 因此,&又被称为取地址运算符(与按位与运算符是同一个符号),它 与++,sizeof等运算符具有相同的优先级.
10
输出函数printf详细解释 详细解释 输出函数 Size:可选,h,l,L中的一个
当把这些字母用于显示整数时,h说明整数是 short型,l说明是long型 当和e或E,f,g或G使用时,L说明是long double型
11
输出函数printf详细解释 详细解释 输出函数 Size:可选,h,l,L中的一个
□表示空格
15
对123应用转换说明的结果 □□□□□173 □□□□0173 □□□□□□7b □□□□0x7b □□□□□□7B □□□□0X7B
对123.0应用转换说明的结果
□□□□□123 □123.000 □□□□□123 □123.000
例子——width和. Precision在%s上的效果 和 例子 在 上的效果
三,输入输出函数
指导教师: 电子邮件: 胡晓雁 huxy@
北京师范大学信息科学与技术学院
输入输出函数 输出函数
printf,putchar,puts
输入函数
scanf,getchar,getche,getch
2
输出函数printf详细解释 详细解释 输出函数
printf("格式控制字符串",表达式1,表达式2,…, 表达式n); 按照"格式控制字符串"的要求,将表达式1,表 达式2,…,表达式n的值显示在屏幕上 格式控制字符串中包含有两类字符: 常规字符(原样输出) 常规字符(原样输出):包括可显示字符和用 转义字符表示的字符 格式控制符:以%开头的一个或多个字符,比 格式控制符 如我们见过的%d,%f等等.其中,%后面的d 和f被称为转换说明符 转换说明符
7
输出函数printf详细解释 详细解释 输出函数 flag:标志,可选,允许多个标志同时出现
-:在字段域内左对齐 +:以+开头的正符号数(比空格优先) 空格:用空格作为正符号数的前缀 #:以0开头的八进制数,以0x或者0X开头的 十六进制数 0:用0在字段域内作填充,在d,i,o,u,x 或X的情况下可忽略标志0
运行结果(一): 格式化输入的例子 please input a number and a character like this "12,c" 55,j please input a number small than 1000 23 1 #include <stdio.h> long int data:89898989 input a a=55**b=23**ch='j'**L=89898989 2 main()
scanf("%d%d",&a,&b); scanf( % ,&a,&b); ,&a,&b)
19
二,数据的输入
1,数据的格式化输入 ,
printf函数中的格式控制符是用来控制相对应表达式数据的输出的, 而scanf函数中的格式控制符是用来控制用户输入数据的.不同的格式控 制符要求用户输入输入不同形式的数据,下表列出了不同的格式控制符对 用户的不同输入要求.
当把这些字母用于显示整数时,h说明整数是 short型,l说明是long型 当和e或E,f,g或G使用时,L说明是long double型
12
简单的例子 #include <stdio.h> main() { float a = 3; printf("\n%10.3e",a); printf("\n%10.3f",a); printf("\n%10.4f",a); } 3.000e+00 3.000 3.0000
□表示空格
14
□□□□-123 -123□□□□ □□□□-123 □□□□-123 -0000123 -123□□□□ -123□□□□ -0000123 -0000123
例子——标志#的效果 标志# 例子 标志
转换说明 %8o %#8o %8x %#8x %8X %#8X %8g %#8g %8G %#8G