C程序设计.

Slides:



Advertisements
Similar presentations
第6章 基本的程序语句 6.1 基本数据类型及取值范围 6.2 标识符、变量和常量 6.3 基本运算符、表达式及运算的优先级
Advertisements

课前回顾 数据类型 基本类型 构造类型 指针类型 空类型 常量与变量 常量及常量的类型 变量 标识符及有关规定 变量声明格式 赋值运算符.
C语言实验 第一课 标题:学号+姓名.
第三讲 数据输入与输出 数据输出 数据输入.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第四章 顺序结构程序设计.
第三章 结构化程序设计.
第3章 顺序结构程序设计 本章要点: 格式化输出函数──printf() 格式输入函数——scanf() 字符输出函数——putchar()
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
C程序设计.
数据类型 第3章 3.1 C数据类型概述 3.2 常量 3.3 变量 3.4 基本输入与输出.
走进编程 程序的顺序结构(二).
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
C语言程序设计 第四章 顺序程序设计.
C语言是结构化程序设计语言,提供了功能丰富的控制语句,本章开始陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章主要介绍三种结构化设计的基本概念,格式输入输出函数printf()和scanf(),字符输入输出函数putchar()和getchar()等内容,要求重点掌握顺序结构设计的基本思想及程序编写方法,熟练掌握常见输入、输出库函数的调用。
第二章 基本元素、类型和概念 七、输出函数printf 八、输入格式转换函数scanf.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第二章 顺序结构 1 数据类型和标识符、常量与变量 2 运算符和表达式 3 简单的输入输出 4 程序举例.
第三单元 数据的输入、赋值处理与输出 从现在开始,将详细讲述C语言的方方面面。第一章中的所有疑惑,都将一一消灭。
C语言程序设计基础 刘新国.
C程序设计 第三章 简单的c程序——顺序结构
第二章 Java语言基础.
第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数据输入输出函数调用语句
第4章 顺序程序设计.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
第三章 C程序设计初步 3.1 结构化程序设计思想 3.2 C语句概述 3.3 赋值语句 3.4 文件包含 3.5 流和文件初步
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第一章 函数与极限.
第三章 顺序结构程序设计 计算机科学学院.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
C语言程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
第4章 Excel电子表格制作软件 4.4 函数(一).
C语言程序设计 李祥 QQ:
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第3章 数据类型、运算符与表达式.
第九节 赋值运算符和赋值表达式.
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
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 类型转换
复习 标签(label)、文本框(text)控件 按钮:点击事件
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
数据表示 第 2 讲.
第二章 数据类型、运算符和表达式 §2.1 数据与数据类型 §2.2 常量、变量和标准函数 §2.3 基本运算符及其表达式 目 录 上一章
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
学习目标 1、什么是列类型 2、列类型之数值类型.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C程序设计

第4章 最简单的C程序设计—顺序程序设计 在第1章中介绍了几段简单的C程序,在第3章中介绍了程序中用到的一些基本要素(常量、变量、运算符、表达式等),它们是构成程序的基本成分。本章将介绍几种简单的C语句以及怎样利用它们编写简单的程序。

4.1 C语句概述 C语言的语句用来向计算机系统发出操作指令。一个语句经编译后产生若干条机器指令。一个实际的程序应当包含若干语句。C语句都是用来完成一定操作任务。声明部分的内容不应称为语句。如 “int a;”不是一条C语句,它不产生机器操作,而只是对变量的定义。

C程序结构:

C语句分为以下5类: (1)控制语句。控制语句用于完成一定的控制功能。C只有9种控制语句: if() … else … for() … while() … do … while() continue break switch goto return

(2)函数调用语句。函数调用语句由一个函数调用加一个分号构成。 (3)表达式语句。表达式语句由一个表达式加一个分号构成。 (4)空语句:;。 (5)复合语句。可以用{}把一些语句括起来成为复合语句。

4.2 赋值语句 赋值语句是由赋值表达式加上一个分号构成。 /*int i; if(i=1 > 0) printf("i > 0\n"); else printf("i <= 0\n");*/

4.3 数据输入输出的概念及在C语言中的实现 (1)所谓输入输出是以计算机主机而言的。从计算机向外部输出设备(如显示器、打印机等)输出数据成为输出,从输入设备(如键盘、鼠标、扫描仪等)向计算机输入数据称为输入。 (2)C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的。C语言函数库中有一批“标准输入输出函数”,它是以标准的输入输出设备为输入输出对象的。其中有putchar、getchar、printf、scanf、puts、gets。 (3)在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。在头文件中包含了调用函数时所需的有关信息。

4.4 字符数据的输入输出 4.4.1 putchar函数 putchar函数(字符输出函数) 的作用是向标准输出设备输出一个字符。 函数原型:int putchar(char ch);

[例4.1]输出单个字符 #include <stdio.h> void main() { char a, b, c; a=‘B’; b=‘O’; c=‘Y’; putchar(a); putchar(b); putchar(c); putchar(‘\n’); }

4.4.2 getchar函数 getchar函数(字符输入函数)的作用是从标准输入设备输入一个字符。 函数原型:int getchar(); 函数的值就是从输入设备得到的字符。

[例4.2]输入单个字符 #include <stdio.h> void main() { char c; c=getchar(); putchar(c); putchar(‘\n’); } char c1,c2,c3; c1=getchar(); c2=getchar(); c3=getchar(); //getchar只能接受一个字符 printf(“%c\n”,c1); printf(“%c\n”,c2); printf(“%c\n”,c3); 如果输入123456 ,输出结果为123 Getchar 是从键盘缓冲区获取一个字符。

4.5 格式输入与输出 C语言的格式输入输出的规定比较繁琐,用的不对就得不到预期的结果,而输入输出又是最基本的操作,几乎每一个程序都包含输入输出。

4.5.1 printf函数 printf函数(格式输出函数)的作用是向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。 格式控制是用双撇号括起来的字符串,包括两种信息。 ①格式说明。格式说明由“%”和格式字符组成,作用是将输出的数据转换为指定的格式输出。 ②普通字符。普通字符即需要原样输出的字符。 输出表列是需要输出的一些数据。可以是表达式。

2、格式字符 输出时对不同类型的数据要使用不同的格式字符。 (1)d格式符:用来输出十进制整数。 ①%d:按十进制整型数据的实际长度输出。 ②%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格。若大于m,则按实际位数输出。 ③%ld:输出长整型数据。 举例: 2 /*printf(“12345678901234567890\n”); // %md格式 int a=123; int d=12345; //printf("a=%4d\n", a); //printf("d=%4d\n", d); 3 long int c=135790; // %ld格式 printf("c=%8ld\n", c);*/ 问什么要输出控制符: 1、01组成的代码可以表示数据也可以表示指令; 2、如果01组成的代码表示的是数据的话,那么同样的01代码组合以不同的输出格式就会有不同的输出结果; 补充程序: 1、printf用法_1.cpp; 2、printf中%X及其相关的用法.cpp;

(2)o格式符:以八进制整数形式输出整数。由于是将内存单元中的各位的值按八进制形式输出,因此输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出。 printf("12345678901234567890\n"); Int a=-1; Printf(“%d%o”,a,a); //输出结果为-1,177777 ,要弄清楚为什么是这个值。

(3)x格式符:以十六进制数形式输出整数。同样不会出现负的十六进制数。 Int a=-1; Printf(“%x%d%o”,a,a,a); // ffff,177777,-1

(4)u格式符:用来输出unsigned型数据,即无符号数,以十进制整数形式输出。一个有符号整数(int型)也可以用%u格式输出;反之,一个unsigned型数据也可以用%d格式输出。按相互赋值的规则处理。unsigned型数据也可用%o或%x格式输出。

[例4.3]无符号数据的输出 #include <stdio.h> void main() { unsigned int a=65535; int b=-2; printf(“a=%d, %o, %x, %u\n”, a, a, a, a); printf(“b=%d, %o, %x. %u\n”, b, b, b, b); } 此程序注意在VC中演示并讲解结果为什么和书上不一样。 //unsigned int a=4294967295; //111111111111111111111111111 32个1 //signed int b=-2; //111111111111111111111111110 31个1, 最右边1位为0 //printf("a=%d,%o,%x,%u\n",a,a,a,a); //printf("b=%d,%o,%x,%u\n",b,b,b,b);

(5)c格式符:用来输出一个字符。一个整数,只要它的值在0~255范围内,也可以用字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;反之,一个字符数据也可以用整数形式输出。 [例4.4]字符数据的输出 #include <stdio.h> void main() { char c=‘a’; int i=97; printf(“%c, %d\n”, c, c); printf(“%c, %d\n”, i, i); }

(6)s格式符:用来输出一个字符串。 ①%s:将字符串的内容全部输出。 ②%ms:输出的字符串占m列,如果字符串本身长度大于m,则突破m的限制,将字符串全部输出。若串长小于m则左补空格。 ③%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。 ④%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。 ⑤%-m.ns:m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则m自动取n值,即保证n个字符正常输出。

[例4.5]字符串的输出 #include <stdio.h> void main() { printf(“%3s,%7.2s,%.4s,%-5.3s\n”, ”CHINA”,”CHINA”,”CHINA”,”CHINA”); }

(7)f格式符:用来输出实数(包括单、双精度),以小数形式输出。

[例4.6]输出实数时的有效位数 #include <stdio.h> void main() { float x, y; printf(“%f\n”, x+y); }

[例4.7]输出双精度数时的有效位数 #include <stdio.h> void main() { double x, y; printf(“%f\n”, x+y); }

②%m.nf:指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补空格。 ③%-m.nf:与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。

[例4.8]输出实数时指定小数位数 #include <stdio.h> void main() { float f=123.456; printf(“%f %10f %10.2f %.2f %-10.2f\n”, f, f, f, f, f); }

②%m.ne和%-m.ne:m、n和-字符的含义与前相同。n指输出的数据的小数部分的小数位数。 ①%e:不指定输出数据所占的宽度和数字部分的小数位数,有的C编译系统自动指定给出数字部分的小数位数为6位,指数部分占5位(如e+002),指数符占1位,指数占3位。数值按规范化指数形式输出(即小数点前必须有而且只有1位非零数字)。 ②%m.ne和%-m.ne:m、n和-字符的含义与前相同。n指输出的数据的小数部分的小数位数。 //printf("%e\n", 123.456); //printf("%10e\n", 123.456); //printf("%10.2e\n", 123.456); //printf("%.2e\n", 123.456); //printf("%-10.2e|\n", 123.456);

(9)g格式符:用来输出实数,根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。

printf格式字符: 格式字符 说明 d,i 以带符号的十进制形式输出整数(正数不输出符号) o 以八进制无符号形式输出整数(不输出前导符0) x,X 以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出。用X时,则以大写字母输出 u 以无符号十进制形式输出整数 c 以字符形式输出,只输出一个字符 s 输出字符串 f 以小数形式输出单、双精度实数,隐含输出6位小数 e,E 以指数形式输出实数,用e时指数以“e”表示,用E时指数以“E”表示 g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0。用G时,若以指数形式输出,则指数以大写表示

在格式说明中在%和上述格式字符间可以插入以下几种附加符号(又称修饰符): l 用于长整型整数,可加在格式符d、o、x、u前面 m(代表一个正整数) 数据最小宽度 n(代表一个正整数) 对实数,表示输出n位小数;对字符串, 表示截取的字符个数 - 输出的数字或字符在域内向左靠

在使用printf函数时还有几点要说明: (1)除了X、E、G外,其他格式字符必须用小写字母,如%d不能写成%D。 (2)可以在printf函数中的“格式控制”字符串内包含“转义字符”。 (3)格式说明的一般格式: %[<修饰符>]<格式字符> (4)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示。

4.5.2 scanf函数 1、一般形式 scanf(格式控制,地址表列) “格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。 Scanf用法 1、scanf(格式控制,地址表列) 将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中; 2、scanf(非输入控制符 格式控制,地址表列 )将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中 ,非输入控制符必须以原样输出; 如何使用scanf编写出高质量的代码 1、使用scanf之前最好使用printf提示用户以什么样的方式输入; 2、scanf中尽量不要使用非输入控制符,尤其不要使用”\n”; 补充程序: 1、scanf用法_1.cpp 2、scanf用法_2.cpp 3、一次给多个变量键盘赋值.cpp 4、sacnf对用户非法输入的处理.cpp 5、scanf非常不好的一个用法.cpp

[例4.9]用scanf函数输入数据 #include <stdio.h> void main() { int a, b, c; scanf(“%d%d%d”, &a, &b, &c); printf(“%d,%d,%d\n”, a, b, c); }

2、格式说明 格式字符 说明 d,i 用来输入有符号的十进制整数 u 用来输入无符号的十进制整数 o 用来输入无符号的八进制整数 x,X 用来输入无符号的十六进制整数(大小写作用相同) c 用来输入单个字符 s 用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志’\0’作为其最后一个字符 f 用来输入实数,可以用小数形式或指数形式输入 e,E,g,G 与f作用相同,e与f、g可以互相替换(大小写作用相同)

scanf的附加格式说明字符: 字符 说明 l 用于输入长整型数据(可用%ld,%lo,%lx,%lu)以及double型数据(用%lf或%le) h 用于输入短整型数据(可用%hd,%ho,%hx) 域宽 指定输入数据所占宽度(列数),域宽应为正整数 * 表示本输入项在读入后不赋给相应的变量

说明: (1)对unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。 (2)可以指定输入数据所占列数,系统自动按它截取所需数据。 (3)如果在%后有一个“*”附加说明符,表示跳过它指定的列数。 (4)输入数据时不能规定精度。

3、使用scanf函数时应注意的问题 (1)scanf函数中的”格式控制“后面应当是变量地址,而不应是变量名。 (2)如果在”格式控制“字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。 (3)在用”%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。 (4)在输入数据时,遇以下情况时认为该数据结束。 ①遇空格,或按“回车”或“跳格”键; ②按指定的宽度结束,如“%3d”,只取3列; ③遇非法输入。

4.6 顺序结构程序设计举例 [例4.10]输入三角形的三边长,求三角形面积 其中s = (a+b+c)/2 #include <math.h> main() { float a, b, c, s, area; scanf(“%f, %f, %f”, &a, &b, &c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n”, a, b, c, s); printf(“area=%7.2f\n”, area); }

[例4.11]从键盘输入一个大写字母,要求改用小写字母输出 #include <stdio.h> void main() { char c1, c2; c1=getchar(); printf(“%c, %d\n”, c1, c1); c2=c1+32; printf(“%c, %d\n”, c2, c2); }

[例4.12]求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac>0 #include <math.h> main() { float a, b, c, disc, x1, x2, p, q; scanf(“a=%f, b=%f, c=%f”, &a, &b, &c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(“x1=%5.2f\nx2=%5.2f\n”, x1, x2); }

习题 4.8 输入圆半径,求圆周长、圆面积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。 4.9 输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(F-32)。输出要有文字说明,取2位小数。