




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 最简单的C程序设计顺序程序设计,C语句概述,赋值语句,数据输入输出的概念及在C语言中的实现,字符数据的输入输出,格式输入与输出,顺序结构程序设计举例,表达式语句: 表达式;,4.1 C 语句概述 C语句包括:,控制语句 ( 9 ) 种 if ( ) else ; for ( ) ; while ( ) ; do while ; continue ; break ; switch ; goto ; return,控制语句,1,函数调用 语句 例如: y = cos(0.5); y = sin(cos(0.5); printf(“Hello”);,函数调用语句,2,复合语句 格式 语句1; 语句 n ; ,复合语句,5,空语句: ;,4.2 赋值语句 赋值语句由赋值表达式加上分号构成。 如: a = b ; C语言中将赋值表达式和赋值语句分开来, 其目的是增加表达式的种类和使用范围。 如: (1) if ( x 0 ) (2) if ( (a = b ) 0 ) t = a ;,4.4 字符数据的输入输出 C 程序的输入和输出完全依靠调用标准输入和输出函数来完成。 常用的 4个I/O 函数为 : scanf ( ) getchar ( ) printf ( ) putchar ( ),输出单个字符,输出转义字符,3.4 字符数据的输入输出 一、putchar 函数 (字符输出函数 ) 作用: 向终端(即系统隐含指定的输出设备, 如显示器,打印机) 输出一个字符。 格式: putchar ( ch ) ; 其中: ch 代表一个字符型或整型变量, 也可以是一个字符常量或整型常量。,输出单个字符 # include /* 包含I/O库有关变量定义和宏定义 */ main ( ) char a , b , c ; a = B ; b = O ; c = Y ; putchar ( a ) ; putchar ( b ) ; putchar ( c ) ; 输出结果: BOY,例如,输出单个转义字符 # include main( ) putchar ( 101 ) ; putchar ( ) ; putchar (n ) ; 输出结果: A,示例,4.4 字符数据的输入输出,二、 getchar 函数 (字符输入函数),作用: 从终端(即系统隐含指定的输入设备 ( 如键盘),输入一个字符。,说明: 1. 执行时,输入字符并按回车键后,才将其输入到缓冲区,只读取一个字符给变量。 getchar 函数接收的一个字符,可以赋给char型或 int 型变量,也可不赋给任何变量。 3.使用 putchar 和 getchar 函数需用预编译命令#include 将 “stdio.h” 包括进去。,例4.2:从键盘输入一个字符再输出。,#include “stdio.h” main ( ) char c ; c = getchar( ) ; putchar( c ) ; 若输入 : a 则输出 : a,实例,示例2,示例1,格式控制,输出表列,4.5 格式输入与输出 一、printf 函数 (格式化输出函数 ) 1. 格式: printf( , ); 作用: 向系统终端(或隐含的输出设备) 输出若干 个指定类型的数据。,2. 格式字符(共 9 种) 作用:控制不同类型数据的不同格式输出。 (1) d格式符:用于输出十进制整数 %d:按整型数的实际长度输出。 %md:m为指定的输出数据宽度,若数据位 数 m 则左补空格,反之则将数据全部输出。 %md:左靠齐,右补空格。 % ld:输出长整型数据。,printf 函数使用示例: main( ) int a=3, b=2; printf(“%d,%d”, a , b); printf(“sum is%d”, a+b); printf(“%d”, 123) ; printf(“%c”, getchar( ); ,举例,main() int a=123,b= 12345 ; long c = 135790 ; printf(“%4d,%4dn”, a, b); printf(“%4dn”, a) ; printf(“%ldn”, c) ; printf(“%8ld”, c) ; 输出: 123 , 12345 123 135790 135790,格式控制: 由双引号括起来的字符串表示,包括格式说明和普通字符两部分。,重点,输出表列: 需要输出的数据,可以是: 常量,变量,表达式 ,函数,字符串常量 。,重点,示例,d格式符说明: 在指定输出数据宽度,且实际宽度和指定宽度不等时,系统默认补空格。但可以改为补零。, 如希望数据输出宽度随计算结果而定,则可在 % 和格式字符之间加一个 号,且数据宽度由紧跟在 “控制字符串”后面的常量或变量的值确定。,补零或是补空格?,补零或是补空格? main() int a=123 ; printf(“%05d”, a ); 输出: 00123,提问,数据输出宽度的动态控制 main() int i = 15, k; printf (“%d n”, 8, i ) ; k = i 10; printf(“%dn”, k, i ) ; 输出为: 15 15,示例,域宽控制,s 格式符,(2) c 格式符: 用于输出一个字符 %c 控制字符常量或字符变量的输出。,(3) s 格式符: 输出一个字符串 %s %ms:规定输出字符串占的列宽。字符串 长度 m 时,全部输出。反之则右靠齐,左补 空格或左靠齐,右补空格。 %m.ns:规定输出字符串所占列宽,只取 字符串中左端 n个字符。输出右靠齐,左补空 格或左靠齐,右补空格。当 n m 时, 则 m 自动取 n 的值以保证 n 个字符正输出。, %mc:指定输出数据宽度,右靠齐,左补空格 %mc:左靠齐,右补空格。,例 3.3,格式符 c 用于输出一个字符 例 4.3 void main ( ) char c = a ; int i = 97 ; printf(“%c”,a); printf(“%c,%dn”, c, c); printf(“%c,%dn”, i, i); ,示例,格式符 c 用于域宽控制 main( ) char c = a ; printf(“%3cn” , c ) ; printf(“%3c%3c”, a, b ); 输出: a a b,示例,格式符 s 输出一个字符串 void main ( ) printf(“%3s,%7.2s,%.4s,%5.3s n”, “CHINA” “CHINA”, “CHINA”, “CHINA”) ; 输出: CHINA , CH , CHIN , CHI,示例,域宽控制,(4) f 格式符: 用于输出实数( 包括单,双精度 ) %f系统自动指定宽度,整数部分全部输出 并输出6位小数。但并非全部数字都是有效 数字。一般 单精度实数有效位为7 位。 双精度实数为16位。, %mf %m.nf 规定输出实数占的列宽,且有n 位小数如果数值长度 m ,则输出右靠齐, 左补空格 或左靠齐,右补空格。,例 4.7,例 4.5 111111.111+222222.222=?,浮点数丢失 精度,浮点数丢失 精度 void main ( ) float x , y ; x = 111111.111 ; y = 222222.22 ; printf ( “ %f ” , x + y ) ; 输出: 333333.328125,实型数据域宽控制 main ( ) float f = 123.456 ; printf(“%f%10fn”, f, f); printf(“%10.2f%.2fn”, f, f); printf(%10.2f”, f); 输出: 123. 455994123.455994 123.46123.46 123.46,例程执行及分析,例 3.2,(5) u 格式符: 用于按十进制形式输出unsigned 型数据。 说明: 有符号int 型与unsigned 型数据可以相互赋值,故 int 型可以用%u格式输出;unsigned 型也可以用 %d 格式输出。 unsigned 型还可以用%o和 %x格式输出。,u 格式符用于按十进制形式 输出unsigned型数据 例 3.2 void main ( ) unsigned int a = 65535 ; int b = 2 ; printf(“a=%d,%o,%x,%un”, a, a, a, a) ; printf(“b=%d,%o,%x,%un”, b, b, b, b) ; ,示例,例 4.2 输出结果: a = 1 , 177777 , ffff , 65535 b = 2 , 177776 , fffe , 65534 a = 65535 b = 2,示例,(6) e 格式符: 用于按指数形式输出实数 %e 由系统自动指定给出 6 位小数,指数部分占5 位(如 e + 002)。, %m . ne 规定输出实数占的列宽,且有 n 位小数。 如果数值长度 m ,则输出右靠齐,左补空格或左靠齐,右补空格。,例如,e 格式符: 用于按指数形式 输出实数 main( ) float f = 123.456 ; printf(“%e%10en”, f, f); printf(“%10.2e%.2e%10.2e”, f, f, f ) ; 输出: 1.234560e+0021.234560e+002 1.23e+0021.23e+0021.23e+002,示例,1. 输出项与格式符必须按照从左至右的顺序在 类型上一一匹配。 2. 格式字符要小写。如: %f %F 3. 如果格式字符的个数少于输出项数时,多余的输 出项不予输出。反之若格式字符的个数大于输出 项数时,各系统的处理不同。,printf函数使用的注意事项:,4. 注意常规 d e f o x u c s e g 等字符在“%” 后面与一般情形的区别。 如: print (“c=%c,f=%f,s=%s”, c, f, s) ; 5. 可以输出“%”号 例如: printf ( “ %f % % ” , 1.0/3 ) ; 输出: 0.333333%,了解,格式字符的个数 少于输出项数 例如: Turbo C中对于缺少项输出不定值,而VAX C则输出 0 值。 例如: printf(“%d,%f,%un”, x, y, z, t) ; printf(“%d,%f,%u,%en”, x, y, z); 请自行编程验证!,了解,二、scanf 函数 (格式化输入函数) 作用: 用于输入任何类型的多个数据 1. 格式: scanf ( 格式控制 , 地址表列 ) ; 格式控制同 printf 函数的格式控制含义一样。 地址表列由多个输入项的地址构成。可以是变 量的地址或字符串的首地址或数组元素的地址等。 例 3.9 void main ( ) int a , b , c ; scanf ( “ %d %d %d ” , 输入: 输出: 3 , 4 , 5,345,关于&,scanf函数 注意(1) “ ,重点,scanf函数注意(2) 在输入数据时,两个数据之间可以用一个或多个 空格,也可用回车键或跳格键 例如: scanf(“%d%d%d”, 则输入数据时只有 3 , 4 , 5 合法。,重点,scanf函数注意(3) 回车确认输入 输入数据,在键入一行字符并按回车键后,将该行字符输入到缓冲区中,然后scanf 函数从缓冲区按规定格式要求,读取数据赋值给指定变量。,重点,程序找错,抑制字符,指定输入数据宽度,关于%u的说明,2.格式说明 (1) 标准C中scanf 函数不使用 %u格式, Turbo C中可用。 (2) 可以指定整型变量输入数据宽度。 (3) 可以使用抑制字符 %* (4) 不能规定输入数据的精度(与 printf 函数不同),scanf 函数 格式说明 标准C中scanf 函数不使用 %u格式。对 unsigned型数据以 %d 或 %o , %x 格式输入。 而 Turbo C中可以使用 %u 格式来输入无符号数。,1,scanf 函数 指定输入数据宽度 main( ) int a, b; scanf(“%3d%3d”, 输入: abc 则ch得到字符a,2,scanf 函数 使用抑制字符 %* 如: scanf( “%2d%*3d%2d”, 输入: 1234567 则 a 是 12 b 是 67,3,scanf 函数 不能规定输入数据的精度 (与 printf 函数不同) 程序找错 main( ) float x; double y; scanf(“%7.2f”, 不能输入 123456789使 y =123456789,4,(5) 注意包含头文件,(4) 在输入数据时,遇到以下情况该数据认为结束。 空格或回车或“ Tab ”键 数据宽度结束 如: %3d 只取3列。 非法输入,(3) 使用 %c 格式时,空格字符,转义字符,回车 等都是有效字符。,3. 注意的问题: (1) scanf函数用变量的地址作参数。 (2)格式字符中可以有其它字符但此时输入数据应 将这些字符原样输入。,示例,示例,输入,输入2,输入1,示例2,示例1,错例,scanf函数参数 注意变量地址的作用 典型错误 main( ) int a, b; scanf ( “ %d %d ” , a , b ) ; printf(“sum=%d”, a + b); ,1,scanf函数参数 注意的问题(2) 格式字符中可以有其它字符,但此时输入数据应将这些字符原样输入。 main() int a, b; scanf(“%d,%d”, ,2,scanf函数参数 注意的问题(2) 格式字符中可以有其它字符,但此时输入数据应将这些字符原样输入。 main() int a, b; scanf ( “a=%d,b=%d”, ,2,scanf函数参数 注意的问题(3) 使用 %c 格式时,空格字符,转义字符,回车等都是有效字符。 main() char c1, c2, c3; scanf(“%c%c%c”, ,重点,注意的问题 (2) 输入应为: 3 , 4 若:输入 34 或 :3(Tab)4 都不合法!,重点,注意的问题 (2) 则输入应为: a = 12 , b = 13 ,重点,若输入:abc 则:c1=a,c2 =,c3=b 应输入: abc,重点,注意 在使用上述四个函数时, getchar 和 putchar函数需用预编译命令 #include 将 “stdio.h” 包括进去。 而printf 和scanf 函数则不需要。,重点,scanf函数参数 注意的问题(4) 在输入数据时,遇到以下情况该数 据认为结束。 空格或回车或“ Tab ”键 数据宽度结束 如: %3d 只取3列。 非法输入 如: scanf(“%d%c%f ”, 若输入:1234a123o.36 则: a = 1234 b = a c =123,重点,4.6 程序举例 例4.10 已知三角形的三条边长,计算三角形的面积。 数学公式:面积= (s*(sa)*(sb)*(sc)1/2 其中:s =1/2 *(a+b+c) main ( ) ,1.定义相关的变量,3.计算s和面积,4.输出三边长和面积,2.输入三角形三边长,float a , b , c , s , area ;,scanf(“%f,%f,%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文字失语面试题目及答案
- 文科英才面试题目及答案
- 速写美术面试题目及答案
- 领航八年级数学试卷
- 邳州期末初三数学试卷
- 屠宰加工车间环境控制与安全方案
- 柳州市三模数学试卷
- 去年中考娄底数学试卷
- 地基处理与加固施工方案
- 南京文科数学试卷
- 公司登记(备案)申请书、变更地址(适用于有限责任公司)
- 散货货代合同范本
- 大学生新时代劳动教育教程全套教学课件
- JT-GQB-015-1998公路桥涵标准钢筋混凝土圆管涵洞
- 新质生产力-讲解课件
- 2024年西安陕鼓动力股份有限公司招聘笔试冲刺题(带答案解析)
- 苏科版本数学全部概念
- 2024年四川发展(控股)有限责任公司招聘笔试冲刺题(带答案解析)
- 居住建筑节能设计标准(节能75%)
- 政务大模型产业图谱研究报告
- 垃圾分类巡检督导方案
评论
0/150
提交评论