当前位置:文档之家› 谭浩强C++程序设计第二版第13章

谭浩强C++程序设计第二版第13章

第13章输入输出流

13.1 C++的输入和输出

13.2 标准输出流

13.3 标准输入流

13.4 文件操作与文件流

13.5 字符串流

以前所用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上。从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件。除了以终端为对象进行输入和输出外,还经常用磁盘(光盘)作为输入输出对象,磁盘文件既可以作为输入文件,也可以作为输出文件。

程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件。C++的输入与输出包括以下3方面的内容:

13.1 13.1 C++

C++的输入和输出 13.1.1 输入输出的含义

(1)对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。

(2)以外存磁盘文件为对象进行输入和输出,即从磁盘文件输入数据,数据输出到磁盘文件。以外存文件为对象的输入输出称为文件的输入输出,简称文件I/O。

(3)对内存中指定的空间进行输入和输出。通常指定一个字符数组作为存储空间(实际上可以利用该空间存储任何信息)。这种输入和输出称为字符串输入输出,简称串I/O。

C++采取不同的方法来实现以上3种输入输出。

为了实现数据的有效流动,C++系统提供了庞大的I/O类库,调用不同的类去实现不同的功能。

在C 语言中,用printf 和scanf 进行输入输出,往往不能保证所输入输出的数据是可靠的、安全的。在C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译。因此C++的I/O 操作是类型安全(type safe)的。C++的I/O 操作是可扩展的,不仅可以用来输入输出标准类型的数据,也可以用于用户自定义类型的数据。C++对标准类型的数据和对用户声明类型数据的输入输出,采用同样的方法处理。C++通过I/O 类库来实现丰富的I/O 功能。C++的输入输出优于C 语言中的printf 和scanf ,但是比较复杂,要掌握许多细节。

13.1.2 13.1.2 C++

C++的I/O 对C 的发展——类型安全和可扩展性

C++的输入输出流是指由若干字节组成的字节序列,这些字节中的数据按顺序从一个对象传送到另一对象。流表示了信息从源到目的端的流动。在输入操作时,字节流从输入设备(如键盘、磁盘)流向内存,在输出操作时,字节流从内存流向输出设备

(如屏幕、打印机、磁盘等)。流中的内容可以是ASCII 字符、二进制形式的数据、图形图像、数字音频视频或其他形式的信息。

实际上,在内存中为每一个数据流开辟一个内存缓冲区,用来存放流中的数据。流是与内存缓冲区相对应的,或者说,缓冲区中的数据就是流。

13.1.3

13.1.3 C++C++的输入输出流

在C++中,输入输出流被定义为类。C++的I/O库中的类称为流类(stream class)。用流类定义的对象称为流对象。

cout和cin并不是C++语言中提供的语句,它们是iostream类的对象,在未学习类和对象时,在不致引起误解的前提下,为叙述方便,把它们称为cout 语句和cin语句。

在学习了类和对象后,我们对C++的输入输出应当有更深刻的认识。

iostream类库中有关的类

1. 1. iostream

C++编译系统提供了用于输入输出的iostream类库。iostream这个单词是由3个部分组成的,即i-o-stream,意为输入输出流。在iostream类库中包含许多用于输入输出的类。常用的见书中表13.1。

ios是抽象基类,由它派生出istream类和ostream 类,两个类名中第1个字母i和o分别代表输入(input)和输出(output)。istream类支持输入操作,ostream 类支持输出操作,iostream类支持输入输出操作。iostream类是从istream类和ostream类通过多重继

承而派生的类。其继承层次见图13.1表示。

图13.1

C++对文件的输入输出需要用ifstream和ofstream 类,两个类名中第1个字母i和o分别代表输入和输出,第2个字母f代表文件(file)。ifstream支持对文件的输入操作,ofstream支持对文件的输出操作。类ifstream继承了类istream,类ofstream继承了类ostream,类fstream继承了类iostream。见图13.2。

图13.2

I/O类库中还有其他类,见图13.3。

图13.3

2. 与iostream类库有关的头文件

iostream类库中不同的类的声明被放在不同的头文件中,用户在自己的程序中用#include命令包含了有关的头文件就相当于在本程序中声明了所需要用到的类。可以换一种说法: 头文件是程序与类库的接口,iostream类库的接口分别由不同的头文件来实现。常用的有

?iostream包含了对输入输出流进行操作所需的基本信息。

?fstream用于用户管理的文件的I/O操作。?strstream用于字符串流I/O。

?stdiostream用于混合使用C和C++的I/O机制时。?iomanip在使用格式化I/O时应包含此头文件。

3. 在iostream 头文件中定义的流对象

在iostream 头文件中定义的类有

ios ios,,istream istream,,ostream ostream,,iostream iostream,,istream istream _ _ _withassign withassign withassign,

, ostream ostream__withassign withassign,,iostream iostream_

_withassign 等。iostream

iostream.h .h 包含了对输入输出流进行操作所需的基本信息。因此大多数C++程序都包括iostream iostream.h

.h 。在iostream iostream.h

.h 头文件中不仅定义了有关的类,还定义了4种流对象,见书中表13.2。

cin 是istream 的派生类istream istream_

_withassign 的对象,它是从标准输入设备(键盘)输入到内存的数据流,称为cin 流或标准输入流。cout 是ostream 的派生类

ostream

ostream__withassign 的对象,它是从内存输入到标准输出设备(显示器) 的数据流,称为cout 流或标准输出流。

cerr 和clog 作用相似,均为向输出设备(显示器) 输出出错信息。因此用键盘输入时用cin 流,向显示器输出时用cout 流。向显示器输出出错信息时用cerr 和clog 流。

在iostream 头文件中定义以上4个流对象用以下的形式(以cout 为例):

ostream cout ostream cout ( ( (stdout stdout stdout);

);在定义cout 为ostream 流类对象时,把标准输出设备stdout 作为参数,这样它就与标准输出设备(显示器)联系起来,如果有

cout

cout<<3;<<3;就会在显示器的屏幕上输出3。

4. 在iostream 头文件中重载运算符

“<<”和“>>”本来在C++中是被定义为左位移运算符和右位移运算符的,由于在iostream 头文件中对它们进行了重载,使它们能用作标准类型数据的输入和输出运算符。所以,在用它们的程序中必须用#include 命令把iostream 包含到程序中。

#include

>在istream 和ostream 类(这两个类都是在iostream 中声明的)中分别有一组成员函数对位移运算符“<<”和“>>”进行重载,以便能用它输入或输出各种标准数据类型的数据。对于不同的标准数据类型要分别进行重载,如

ostream ostream operator << ( operator << ( operator << (int int int );//

);//用于向输出流插入一个int 数据ostream

ostream operator << (float ); // operator << (float ); //用于向输出流插入一个float 数据

ostream ostream operator << (char ); //

operator << (char ); //用于向输出流插入一个char 数据ostream ostream operator << (char operator << (char operator << (char *

*); //用于向输出流插入一个字符串数据等。如果在程序中有下面的表达式:

cout

cout<<<<″C++″;根据第11章所介绍的知识,上面的表达式相当于

cout

cout.operator<<(.operator<<(″C++″)″C++″的值是其首字节地址,是字符型指针(char

char**)类型,因此选择调用上面最后一个运算符重载函数,通过重载函数的函数体,将字符串插入到cout 流中,函数返回流对象cout 。

在istream 类中已将运算符“>>”重载为对以下标准

类型的提取运算符: : char,signed char,unsigned

char,signed char,unsigned char,short,unsigned short,char,short,unsigned short,int int int,unsigned ,unsigned ,unsigned int int int,

,

long,unsigned long,float, double,long double, ,signed char**,unsigned char

,unsigned char**等。

char**,signed char

char

在ostream类中将“<<”重载为插入运算符,其适用类型除了以上的标准类型外,还增加了一个void

void**类型。

如果想将“<<”和“>>”用于自己声明的类型的数据,就不能简单地采用包含iostream头文件来解决,必须自己用第11章的方法对“<<”和“>>”进行重载。

怎样理解运算符“<<”和“>>”的作用呢?它们指出了数据移动的方向,例如

>>a a

>>

箭头方向表示把数据放入a中。而

<<

<

箭头方向表示从a中拿出数据。++

13.2 标准输出流

标准输出流是流向标准输出设备(显示器)的数据。

ostream 类定义了3个输出流对象,即cout cout,,cerr cerr,clog ,clog 。分述如下。

1.

1. cout cout 流对象cout 是console output 的缩写,意为在控制台(终端显示器)的输出。

(1)

(1) cout cout 不是C++预定义的关键字,它是ostream 流类的对象,在iostream 中定义。

(2) 用“cout cout<<

<<”输出基本类型的数据时,可以不必考虑数据是什么类型,系统会判断数据的类型,并根据其类型选择调用与之匹配的运算符重载函数。

13.2.1

13.2.1 cout cout ,cerr 和clog 流

cout流在内存中对应开辟了一个缓冲区,用来存(3) cout

(3)

放流中的数据,当向cout流插入一个endl时,不论缓冲区是否已满,都立即输出流中所有数据,然后插入一个换行符,并刷新流(清空缓冲区)。

(4) 在iostream中只对“<<”和“>>”运算符用于标准类型数据的输入输出进行了重载,但未对用户声明的类型数据的输入输出进行重载。

cerr流对象

2. 2. cerr

cerr流对象是标准错误流。cerr流已被指定为与显示器关联。cerr的作用是向标准错误设备(standard error device)输出有关出错信息。cerr与标准输出

cout 流cout的作用和用法差不多。但有一点不同: : cout 流通常是传送到显示器输出,但也可以被重定向输出到磁盘文件,而cerr流中的信息只能在显示器输出。当调试程序时,往往不希望程序运行时的出错信息被送到其他文件,而要求在显示器上及时输出,这时应该用cerr。cerr流中的信息是用户根据需要指定的。

(完整版)谭浩强c程序设计课后习题答案

谭浩强c++程序设计课后答案 娄警卫

第一章1.5题 #include using namespace std; int main() { cout<<"This"<<"is"; cout<<"a"<<"C++"; cout<<"program."; return 0; 1.6题 #include using namespace std; int main() { int a,b,c; a=10; b=23; c=a+b; cout<<"a+b="; cout< using namespace std; int main() { int a,b,c; int f(int x,int y,int z); cin>>a>>b>>c; c=f(a,b,c); cout< using namespace std; int main() { int a,b,c; cin>>a>>b; c=a+b; cout<<"a+b="< using namespace std; int main() { int a,b,c; int add(int x,int y); cin>>a>>b; c=add(a,b); cout<<"a+b="<

C语言程序设计谭浩强第四版期末复习重点

C语言程序设计谭浩强第四版期末复习重点 Newly compiled on November 23, 2020

第一章 程 序设计和C 语言 .什么是计算机程序 程序.. :一组计算机能识别和执行的指令。只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作 计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。 什么是计算机语言 计算机语言:人和计算机交流信息的、计算机和人都能识别的语言。 计算机语言发展阶段:机器语言(由0和1组成的指令) 符号语言(用英文字母和数字表示指令) 高级语言(接近于人的自然语言和数学语言) 面向过程的语言(非结构化的语言、结构化语言);面向对象的语言 语言的发展及其特点 C 语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。因此C 语言问世以后得到迅速推广。 C 语言主要特点: 语言简洁、紧凑,使用方便、灵活。(只有37个关键字、9种控制语句;程序书写形式 自由,源程序短) 运算符丰富。(34种运算符;把括号、赋值、强制类型转换等都作为运算符处理;表达 式类型多样化) 数据类型丰富。(包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型;C99又扩充了复数浮点类型、超长整型、布尔类型;指针类型数据,能用来实现各种复杂的数据结构的运算。)

具有结构化的控制语句。(如if…else语句、while语句、do…while语句、switch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化;C语言是完全模块化和结构化的语言) 语法限制不太严格,程序设计自由度大。(对数组下标越界不做检查;对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用;C语言允许程序编写者有较大的自由度,因此放宽了语法检查) 允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。(C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件;这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言) 用C语言编写的程序可移植性好。(C的编译系统简洁,很容易移植到新系统;在新系统上运行时,可直接编译“标准链接库”中的大部分功能,不需要修改源代码;几乎所有计算机系统都可以使用C语言) 生成目标代码质量高,程序执行效率高。 1.C语言允许用两种注释方式:计算法 3.编写程序 4.对源程序进行编辑、编译和连接 5. 运行程序,分析结 6.编写程序文档 第二章算法——程序的灵魂 一个程序主要包括以下两方面的信息: (1) 对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式,这就是数据结构。 (2) 对操作的描述。即要求计算机进行操作的步骤,也就是算法。 数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。 着名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:算法 + 数据结构 = 程序

C程序设计第四版谭浩强完整版课后习题答案

C程序设计第四版谭浩强完整版课后习题答案集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

C程序设计(第四版)(谭浩强)第一章课后习题答案 P006 向屏幕输出文字. #include<>代码均调试成功,若有失误大多不是代码问题.自已找找. int main() { printf("Welcome to \n"); return 0; } P008 求两个数的和. #include<> int main() { int a,b,sum; a=5; b=4; sum=a+b; printf("The sum is %d .\n",sum);

return 0; } P008 调用函数比较两个数的大小. #include<> int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("The max is %d .\n",c); return 0; } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); }

P015 三个数的大小.(数字0表示课后练习题) #include<> int main() { int a,b,c,d; int max(int x , int y , int z); printf("Please input 3 numbers :\n"); scanf("%d %d %d",&a,&b,&c); d=max(a,b,c); printf("The max is :%d .\n",d); } int max(int x , int y , int z) { int m; if (x>y && x>z) m=x; if (y>x && y>z) m=y; if (z>y && z>x) m=z; return (m); }

C程序设计第四版谭浩强_习题&例题第7章

第7章函数 例7.1 #include int main() { void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0; } void print_star() { printf("***********************************\n"); } void print_message() { printf("How do you do!\n"); } 例7.2 int max(int x,int y) { int z; z=x>y?x:y; return(z); } #include int main() { int max(int x,int y); int a,b,c; printf("please enter two integer number:"); scanf("%d,%d",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; }

例7.3 #include int main() { int max(float x,float y); float a,b; int c; printf("please enter two integer number:"); scanf("%f,%f",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; } int max(float x,float y) { float z; z=x>y?x:y; return(z); } 例7.4 #include int main() { float add(float x,float y); float a,b,c; printf("please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); return 0; } float add(float x,float y) { float z; z=x+y; return(z); }

《C语言程序设计》_谭浩强版教案

《C 语言程序设计》教案 职称: 助教 ____________ 单 位:湖南理工职业技术学院 学院(教研室):风能工程学院 工业机器人专业 授课教师: 周常欣

教 学 重 占 八、、 和 难 占 八、、 一、 程序设计和 C 语言 重点:计算机程序、计算机语言、 C 语言编译软件的安装、最简单的 C 语言程序 二、 算法:程序的灵魂 重点:简单的算法举例、算法的特性、用流程图表示算法。 三、 顺序结构程序设计 重点:C 语言的数据类型、C 语句的种类、赋值语句、数据的输入输出及输入输出 中最常用的 控制格式。 四、 选择结构程序设计 重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、 二条分支语句的格 式及基本应用、多分支的选择语句。 五、 循环结构程序设计 重点:C 构成循环的四种方法,尤其是后三种方法、 break 与continue 语句的基本作 用。 难点:while 语句;do-while 语句;for 语句;循环的嵌套; break 与continue 语句。 六、 数组 重点:一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处 理函数及字符处理函数;数组的应用 难点:二维数组的定义与引用;字符数组;数组的应用 七、 函数 重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的 递归调 用;数组作为函数参数;变量作用域;量存储类别; 难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调 用;数组作 为函数的参数、变量的存储类别与作用域。 八、 指针 重点和难点:指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字 符串、指针 数组与二级指针;指针的应用 九、 建立自己的数据类型 重点和难点:定义和使用结构体变量、用指针处理链表、共用体类型 十、文件 重点:文件的基本知识、 fopen 、fclose 函数打开与关闭文件、顺序读与数据文件、 随机读写数据文件 难点:用二进制方式向文件读写一组数据。 十一、常见错误分析 重点和难点:文件的基本概念;文件的打开、关闭、常用读写方法。 十二、数组高级应用 重点:不定长数组与二维数组的应用 难点:不定长数组与二维数组的应用 十三、综合应用 重点:数组、if 语句、循环语句、函数知识的综合应用 难点:二维数组、指针 教材、 参 考书 教材:《C 程序设计》(第四版) 谭浩强著 清华大学出版社2010年6月 参考书:《C 程序设计语言》 Kernighan&Ritchie 机械工业出版社 《C 语言程序设计》教案 第1-2课时

C语言程序设计第四版第六章答案_谭浩强

1、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

谭浩强--C语言程序设计(第二版)习题答案

C语言程序设计(第2版)课后习题答案 第一章 1.请参照本章例题,编写一个C程序,输出以下信息: ************************** Very good! ************************** 解: #include void main() { printf("**************************"); printf("\n"); printf("Very good!\n"); printf("\n"); printf("**************************"); } 2.编写一个C程序,输入a、b、c三个值,输出其中最大值。 解: #include void main() { int a,b,c,max; printf("请输入三个数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max #include void main() { double P, r=0.1, n=10; P=pow((1+r), n);

printf("%lf\n", P); } 3.请编程序将"China"译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。例如,字母"A"后面第4个字母是"E","E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为'C'、'h'、'i'、'n'、'a',经过运算,使c1、c2、c3、c4、c5分别变为'G'、'l'、'm'、'r'、'e',并输出。 解: #include void main() { char c1='C',c2='h',c3='i',c4='n',c5='a'; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 第三章 3.用下面的scanf函数输入数据,使a=3, b=7, x=8.5, y=71.82, c1='A', c2='a'。问在键盘上如何输入? 解: #include void main() { int a, b; float x, y; char c1, c2; scanf("a=%d, b=%d", &a, &b); scanf(" x=%f, y=%e", &x, &y); scanf(" c1=%c, c2=%c",&c1, &c2); } a=3, b=7 x=8.5, y=71.82 c1=A, c2=a 5. 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后2位数字。请编程序。 解: #include void main() { float r,h,C1,Sa,Sb,Va,Vb; scanf("%f,%f",&r,&h);

C程序设计第四版谭浩强完整版课后习题答案

C程序设计(第四版)(谭浩强)第一章课后习题答案 #include<>代码均调试成功,若有失误大多不是代码问题.自已找找. int main() { printf("Welcome to \n"); return 0; } #include<> int main() { int a,b,sum; a=5; b=4; sum=a+b; printf("The sum is %d .\n",sum); return 0; } P008 调用函数比较两个数的大小. #include<> int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("The max is %d .\n",c); return 0; } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); }

P015 三个数的大小.(数字0表示课后练习题) #include<> int main() { int a,b,c,d; int max(int x , int y , int z); printf("Please input 3 numbers :\n"); scanf("%d %d %d",&a,&b,&c); d=max(a,b,c); printf("The max is :%d .\n",d); } int max(int x , int y , int z) { int m; if (x>y && x>z) m=x; if (y>x && y>z) m=y; if (z>y && z>x) m=z; return (m); } C程序设计(第四版)(谭浩强)第2章课后 习题答案 算法——程序的灵魂 P017 计算机1-5相乘的积. #include<> int main() { int i,s=1; for(i=1;i<6;i++) { s=s*i; n",s); return 0; } #include<> int main() { int i,s=1; for(i=1;i<12;i++) 可以是i=i+2 { if(i%2!=0) s=s*i; else continue; }

C语言程序设计课后习题答案第四版谭浩强完整版

C语言程序设计课后习 题答案第四版谭浩强 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; }

1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.2简单的算法举例17 2.3算法的特性21 2.4怎样表示一个算法22 2.4.1用自然语言表示算法22 2.4.2用流程图表示算法22 2.4.3三种基本结构和改进的流程图26 2.4.4用N S流程图表示算法28 2.4.5用伪代码表示算法31 2.4.6用计算机语言表示算法32 2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42

C语言程序设计谭浩强重点笔记

C语言设计 学习笔记 早晨:06:40 起床 07:20——08:20 英语 1小时 新概念英语(单词、语法、听读背) 大学英语(单词、语法、听读背) 上午:08:30——10:30 计算机基础 2小时 10:50——11:30 计算机科学技术导论 计算机组成原理 微机原理及接口技术 Intel微处理器结构编程与接口 深入理解计算机系统 80x86汇编语言程序设计 8086-8088宏汇编语言程序设计教程 BIOS研发技术剖析 自己动手写操作系统 操作系统原理 Windows操作系统原理 Windows内部原理系列 Windows程序内部运行原理 计算机网络第五版 中午:12:00——02:00 午休 下午:02:30——04:30 计算机应用及编程 Windows用户管理指南、AD配置指南、网络专业 指南、Windows即学即会教程 Windows下32位汇编语言程序设计、C#编程 晚上:05:30——08:00 锻炼、晚餐 08:00——09:00 辅导 09:00——11:00 专业基础 2小时 大学数学、大学物理、电机及拖动、电力电子技 术、通信技术 11:30 休息

目录 第一章C语言概述................................................................................................................................. - 1 - 1.1 C程序结构特点16 ................................................................................................................ - 1 - 1.2 C程序上机步骤17 ................................................................................................................... - 1 -第二章程序的灵魂——算法23 ............................................................................................................ - 2 - 2.1 算法24 ..................................................................................................................................... - 2 - 2.2 算法的三种基本结构............................................................................................................... - 2 - 2.3 结构化程序设计方法42 .......................................................................................................... - 2 -第三章数据类型运算符与表达式48 .................................................................................................. - 2 - 3.1 C语言的基本元素48 ............................................................................................................... - 2 - 3.2 C的数据类型48 ....................................................................................................................... - 2 - 3.3 常量与变量48 .......................................................................................................................... - 3 - 3.4 基本类型................................................................................................................................... - 3 - 3.5 变量63 ..................................................................................................................................... - 4 - 3.6 不同类型数据间的混合运算................................................................................................... - 5 - 3.7 函数的调用过程(补充)....................................................................................................... - 5 -第四章最简单的C程序设计——顺序程序设计77 ........................................................................... - 5 - 4.1 字符数据的输入输出............................................................................................................... - 5 -第五章选择结构的程序设计97 ............................................................................................................ - 6 -第六章循环结构程序设计..................................................................................................................... - 6 - 6.1 语句标号................................................................................................................................... - 6 - 6.2 break语句和continue语句 ...................................................................................................... - 6 -第七章数组132 ...................................................................................................................................... - 6 - 7.1 构造类型................................................................................................................................... - 6 - 7.2 数组133 ................................................................................................................................... - 6 - 7.3 二维数组................................................................................................................................... - 7 - 7.4 字符串——字符数组............................................................................................................... - 7 - 7.5 字符串处理函数#include ...................................................................................... - 7 -第八章函数153 ...................................................................................................................................... - 8 - 8.1 c程序的结构154 ...................................................................................................................... - 8 - 8.2 函数调用参数传递................................................................................................................... - 8 - 8.3 函数变量的作用范围............................................................................................................... - 8 - 8.4 变量的存储类别....................................................................................................................... - 9 -第九章预处理命令197 ........................................................................................................................ - 10 - 9.1 预编译命令作用..................................................................................................................... - 10 -第十章指针211 .................................................................................................................................... - 11 - 10.1 变量的访问方式................................................................................................................... - 11 - 10.2 指针变量............................................................................................................................... - 11 -第十一章结构体270 ............................................................................................................................ - 12 - 11.1 结构体270 ............................................................................................................................ - 12 -

C语言程序设计(第三版)-谭浩强_笔记

C语言程序设计(第三版)-谭浩强_笔记 第一章概述 1. C语言的特点 ①语言简洁、紧凑,使用方便、灵活。共有32个关键字,9种控制语句。 ②运算符丰富,公有34种运算符。 ③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。 ④具有结构化的控制语句(如if…else、while、do…while、switch、for) ⑤语法限制不太严格,程序设计自由度大。 ⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。 ⑦生成目标代码质量高,程序执行效率高。 ⑧可移植性好。 2. C语言的用途 C虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。现在很多大型应用软件也用C编写。 第二章数据类型、运算符与表达式 1. C的数据类型 C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。 2.常量与变量 常量其值不可改变,符号常量名通常用大写。变量其值可以改变,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。否则为不合法的变量名。变量在编译时为其分配相应存储单元。3.整型数据 整型常量的表示方法:十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e。 整型变量分为:基本型(int)、短整型(short int)、长整型(long int)和无符号型。不同机器上各类数据所占内存字节数不同,一般int型为2个字节,long型为4个字节。 4.实型数据 实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:0.12、.123、123 0.0等。指数形式如123e3代表123×10的三次方。 实型变量分为单精度(float)和双精度(double)两类。在一般系统中float型占4字节,7位有效数字,

C程序设计 谭浩强 期末考试题

一、填空题 1.输入一个不包含空格的字符串,将字符串反序输出,如:“abc12”的输出为“21cba”。 #include <> void f(char *p) { char *p1, *p2; char c; p1=p2= ; while( *p2++) ; ; while ( ) { c=*p1; *p1= ; *p2= ; p1++; p2--; } } void main() { char s[200]; printf(“输入一个字符串:”); scanf( ); f(s); printf(“字符串反序:%s\n”,s); } 2.输入1个长整数,求各位数字的平方和。 例如:输入 123,输出14。 #include <> void main( ) { int digit; long in,s; scanf("%ld", &in); ; ; while(in>0){ ; s=s+digit*digit; ; } printf("sum=%ld\n", s);

} 二、程序阅读题 1.写出下面程序运行结果(5分) #include <> #define MSIZE 8 void main() { char im[MSIZE][MSIZE+1]={ “********”, “########”, “#**#***#”, “####***#”, “********”, “#*******”, “********”, “########” }; int i,j; for(j= MSIZE -1;j>=0;j--) { for(i=0;i void main() { char *str1="", *str2=”123424315”; int x=0, i; for(i=0;str1[i]!='\0'&& str2[i]!='\0';i++) if(str1[i]==str2[i]) x++; printf("%d\n",x); 3.写出下列程序的输出结果(4分) #include <> main() { int a=4,b=6; printf("a=%d\n",a<<1); printf("b=%d\n",b>>1); } 4. 写出调用函数f(-123)的输出结果是多少。(6分)

.c程序设计谭浩强第二章习题与答案

习题 2.1什么是算法?是从日常生活中找三个例子,描述他们的算法? 答:对操作的描述,即操作步骤,就是算法。 广义的说;为解决一个问题而采取的方法和步骤,就称为“算法”。 例:(略) 2.2什么叫结构化的算法?为什么要提倡结构化的算法? 答:由基本节构所构成的算法属于“结构化”的算法。 结构化的算法便于编写、阅读、便于修改和维护。这就减少了程序出错的机会、提高了程序的可靠性,保证了程序的质量。 2.3试述三种基本结构的特点,你能否自己另外设计两种基本结构(要符合基本结构的特 点)。 2.4

答:基本结构有以下共同点: 1:只有一个入口。图2-14-------2-17中的a点为入口。 2:只有一个出口。图2-14-------2-17中的b点为出口。注意,一个判断框有两个出口,但一个选择结构只有一个出口。不能混淆。 3:结构内的每一部分都有被执行到的机会。也就是说,对每一个框来说,都应当有一条到出口的路径通过它。图2-20中就没有一条从入口到出口的路径通过A框。 4:结构内不存在死循环(无终止的循环)。图2-21就是一个死循环。 需要说明的是基本结构并不一定只限于以上3中,只要有以上四种特点就可以。人们可以自己定义之。例:如下两图

2.5用传统流程图表示求解一下问题的算法。 (1)有两个瓶子A和B,分别放醋和酱油,要求将他们互换。 #include void main() { int a; int b; int c; a=10;b=5; printf("%d,%d\n",a,b); c=a;a=b;b=c; printf("%d,%d\n",a,b); } (2)一次将10个数输入,要求将将其中最大的数输出。 #include void main() { int a[10]; int i;

相关主题
文本预览
相关文档 最新文档