浙江大学刘加海C语言课件1
高质量CC++编程讲义
目录前言第1章文件结构1.1 版权和版本的声明1.2 头文件的结构1.3 定义文件的结构1.4 头文件的作用1.5 目录结构第2章程序的版式2.1 空行2.3 代码行内的空格2.4 对齐2.5 长行拆分2.6 修饰符的位置2.7 注释2.8 类的版式第3章命名规则3.1 共性规则3.2 简单的WINDOWS应用程序命名规则3.3 简单的UNIX应用程序命名规则第4章表达式和基本语句4.1 运算符的优先级4.2 复合表达式4.3 IF 语句4.4 循环语句的效率4.5 FOR 语句的循环控制变量4.6 SWITCH语句4.7 GOTO语句第5章常量5.1 为什么需要常量5.2 CONST 与#DEFINE的比较5.3 常量定义规则5.4 类中的常量第6章函数设计6.1 参数的规则6.2 返回值的规则6.3 函数内部实现的规则6.5 使用断言6.6 引用与指针的比较第7章内存管理7.1内存分配方式7.2常见的内存错误及其对策7.3指针与数组的对比7.4指针参数是如何传递内存的?7.5 FREE和DELETE把指针怎么啦?7.6 动态内存会被自动释放吗?7.7 杜绝“野指针”7.8 有了MALLOC/FREE为什么还要NEW/DELETE ?7.9 内存耗尽怎么办?7.10 MALLOC/FREE 的使用要点7.11 NEW/DELETE 的使用要点7.12 一些心得体会第8章C++函数的高级特性8.1 函数重载的概念8.2 成员函数的重载、覆盖与隐藏8.3 参数的缺省值8.4 运算符重载8.5 函数内联8.6 一些心得体会第9章类的构造函数、析构函数与赋值函数9.1 构造函数与析构函数的起源9.2 构造函数的初始化表9.3 构造和析构的次序9.4 示例:类STRING的构造函数与析构函数9.5 不要轻视拷贝构造函数与赋值函数9.6 示例:类STRING的拷贝构造函数与赋值函数9.7 偷懒的办法处理拷贝构造函数与赋值函数9.8 如何在派生类中实现类的基本函数9.9 一些心得体会第10章类的继承与组合10.1 继承10.2 组合第11章其它编程经验11.1 使用CONST提高函数的健壮性11.2 提高程序的效率11.3 一些有益的建议参考文献附录A :C++/C代码审查表附录B :C++/C试题附录C :C++/C试题的答案与评分标准前言软件质量是被大多数程序员挂在嘴上而不是放在心上的东西!除了完全外行和真正的编程高手外,初读本书,你最先的感受将是惊慌:“哇!我以前捏造的C++/C程序怎么会有那么多的毛病?”别难过,作者只不过比你早几年、多几次惊慌而已。
最新浙江大学Linux程序设计教学大纲与建议学时分配数-金国庆刘加海
浙江大学计算机学院、软件学院《Linux程序设计》教学大纲与教学日历一、课程基本情况课程代码:总学时数:32-64课程类型: 考试课+项目实训适用对象: 计算机专业本、理工科各专业及计算机软件工程师先导课程:C程序设计基础与实验后续课程:Linux数据库程序设计,Linux嵌入式程序设计。
使用教材:Linux程序设计,浙江大学出版社,金国庆、刘加海、季江民主编二、课程性质和目标1、课程的基本特性本课程是一门为计算机软件人员开设的一门计算机专业课程。
Linux作为具有良好特性的操作系统,C语言作为广泛使用的编程语言,两者的结合为用户提供了一个强大的编程环境。
2、课程的教学目标通过本课程的学习,学生能够熟悉Linux操作系统下的基本命令使用、shell程序设计、Linux环境下C程序的编辑、编译、调试及运行,掌握Linux环境下系统函数的使用,掌握文件操作、非缓冲文件的I/O操作,掌握进程控制的程序设计,掌握进程间共享内存、管道、队列及信号等通信的机理及编程方法,掌握图形、动画、文字及简单游戏程序的设计,掌握网络编程设计,掌握串行通信程序设计,初步了解驱动程序设计,使学生掌握Linux操作系统下C程序开发的方法和技巧,并具备开发大型应用程序的能力。
三、课程教学方法与手段本课程的教学主要以理论教学和上机实践教学相结合的方式进行。
四、课程教学内容、要求及重点、难点第一章终端的基本操作(一)主要教学内容第一节 Linux的常用命令第二节文件与网络常用命令第三节Linux的进程命令第四节Linux的安全常用命令(二)学习目的要求1.了解Linux下终端常用命令的操作2.熟悉网络命令的使用;3.熟悉安全命令的使用;(三)重点和难点教学重点:Linux下终端命令的操作。
教学难点:命令的使用格式。
第二章Shell程序设计(一)主要教学内容第一节 shell程序设计初步第二节 shell程序设计中表达式应用第三节循环程序设计第四节分支程序设计第五节综合实例(二)学习目的要求1.了解Linux下shell程序设计方法;2.掌握shell程序的顺序、分支、循环结构的程序设计。
C++语言程序设计 第1讲
(3) C++语言设计 谭浩强 清华大学出版
(4)
(5)
/ /
基本数据类型与表达式
控制结构
结 构 化 程 序 设 计
基础知识
数组与字符串 类和对象 面向对象 指针 函数 继承、模板、多态性
输入输出
struct 和union
基本数据类型与表达式
1. 算法研制 2. 编写程序; 3. 编辑源程序 4. 编译和连接 5. 反复上机调试程序, 直到改正了所有的编 译错误和运行错误。 6. 运行。
C++的运行环境
Microsoft公司的Visual C++ 6.0 Borland公司的Borland C++ 5.02等等
建立新文件(File)
a ( i 1) h
a ih
例 1-3:用梯形法计算定积分
使用梯形法计算定积分,其中a = 0,b = 1,被积函 数为sin(x),取积分区间等分数为 1000。
h
y
f(x)
a
xi
xi+1
b
x
#include <iostream> #include <cmath> using void namespace main() std;
{ d } ouble a, b; double h, sum; int n,i; a = 0; b = 1.0;
数据 类型?
变量 初值?
n = 1000;
h = (b-a)/n; sum = (sin (a)+ sin (b))/2; for(i=1; i<n; i=i+1) sum = sum+ sin (a+i*h); sum = sum*h; cout<<"The result is " << sum << endl;
浙江大学刘加海C语言课件
第5章指针与函数◆本章重点1. 函数指针的概念、定义及赋值。
2. 函数指针的应用。
3. 指针函数的定义。
4. 命令行参数的应用。
◆本章难点1. 函数指针的概念,函数指针的赋值及调用方法。
尤其是定义及调用中的形式参数及实际参数的使用。
2. 指针函数的概念以及与函数指针的区别。
3. 命令行参数编程中的文件名与命令的关系。
4. 命令行参数的赋值方法。
指针和函数的关系主要包括三个方面的内容:一是指针可以指向某个函数,即函数指针;二是函数的返回值可以是指针类型的变量,即指针函数;三是指针可以作为函数的参数。
5.1 指向函数的指针大家知道,变量a被分配到某个存储区域,若指针变量p的值为该存储区域的首地址,则称p为指向变量a的指针,通过对指针p的间接引用可以访问它所指向的变量a。
函数虽然不是变量,但是它经过编译后,其目标代码在内存中是连续存放的,该代码的首地址就是函数执行时的入口地址,它可以赋给指针变量,使得指针变量指向函数。
利用指向函数的指针变量,可以代替函数名,也可以作为函数的参数传递给其他函数。
也就是说可以用指针变量指向基本类型变量、字符串、数组等,也可指向一个函数。
一个函数在编译时被分配给一个入口地址。
这个入口地址就称为函数的指针。
可以用一个指针变量指向某函数,然后通过该指针变量调用此函数。
5.1.1 用函数指针变量调用函数1.函数指针的声明格式:数据类型(*指针变量名)(函数形参类型标识符列表);其中的“数据类型”是指函数返回值的类型。
例如:char (*f1)(char *,char);int (*f2)(int *,int);上述语句声明两个指向函数的指针:f1指向形参类型依次为char*、char,返回值类型为char的函数;f2指向形参类型依次为int *、int,返回值类型为int的函数。
注意f1、f2是不同类型的指针,因为它们各自所指向的函数的返回值类型,形参个数及各形参的类型不尽相同。
lesson1 概述与数据内存(9.5)
1.
2. 3. 4. 5.
6.
7.
可扩展性
平台可移植性
12
摘自网络博客
你只有用好你的语言的优点 而不是拿着语言去比较谁强 要看清楚市场 你的目的是创造有价值的软件 而不是去比较那个语言好 用好了 哪种语言都好
13
5.C++语言的特点
1.
2. 3. 4.
编译语言,执行效率高
相比汇编语言具有源代码级平台可移植性 封装性使之相较C在安全性能方面有所提升 面向对象的特性使之相较C在复杂系统方面 的设计能力更强,比如图形用户界面
运行应用程序 Program.exe
在内存中
分配空间
对所分配内存进行逻 辑划分
18
C++的数据类型
字符型 char 逻辑类型 bool 基本 数据类型 数据 类型
整型
实型
int short long
float double
枚举 enum 构造 数据类型 数组
不同数据 类型聚合
类
class
结构体 struct
2. 编译: 将程序的源代码转换为机器语言代
★
1. 编辑: 将源程序输入到计算机中,生成后
码.obj文件。
3. 连接: 将多个源程序文件以及库中的某些
文件连在一起,生成一个后缀为exe的可 执行文件。
4. 运行调试
8
3.简单C++程序
1. 简单程序示例(例1.1)
2. 基本结构特点 由若干数据、类和函数组成 有且仅有一个主函数
作业
1.安装Visual C++ (6.0, 2005,2008均可); 2.登陆教学平台 3.第2章课后习题(2.4.1~2.4.7)
浙大版C语言电子教案.讲义
计算机程序设计基础(C语言)北京石油化工学院信息技术教学与实验中心2008年8月20日C语言程序设计⏹教学要求☐掌握程序设计语言的基本知识☐常用算法☐初步的程序设计能力⏹学习方法☐自主学习☐重视上机实践如何尽快学会用C语言进行程序设计⏹了解程序设计语言(C语言)⏹模仿、改写、编写⏹通过不断的编程实践,逐步领会和掌握程序设计的基本思想和方法。
教材和参考书⏹C语言程序设计,何钦铭、颜晖主编,高等教育出版社,2008⏹C语言编程(第3版),[美]Stephen, G.Kochan,张小潘译,电子工业出版社,2006⏹C语言教程(第4版),[美]Al Kelley, Ira Pohl,徐波译,机械工业出版社,2007⏹标准C语言基础教程(第4版),[美]Gary J.Bronson,单先余等译,电子工业出版社,2006 ⏹C程序设计语言,[美]Brian W. Kernighan,Dennis M. Ritchie,徐宝文等译,机械工业出版社,2006目录⏹Chap 1 引言⏹Chap 2 用C语言编写程序⏹Chap 3 分支结构⏹Chap4 循环结构⏹Chap 5 函数⏹Chap 6 数据类型和表达式目录⏹Chap 7 数组⏹Chap 8 指针⏹Chap 9 结构⏹Chap 10 函数与程序结构⏹Chap 11 指针进阶⏹Chap 12 文件Chap 1 引言⏹一个C语言程序⏹程序与程序设计语言⏹C语言的发展历史与特点⏹实现问题求解的过程本章要点⏹什么是程序?程序设计语言包含哪些功能?⏹程序设计语言在语法上包含哪些内容?⏹结构化程序设计有哪些基本的控制结构?⏹C语言有哪些特点?⏹C语言程序的基本框架如何?⏹形成一个可运行的C语言程序需要经过哪些步骤?⏹如何用流程图描述简单的算法?1.1 一个C 语言程序例1-1求阶乘问题。
输入一个正整数n ,输出n!。
#include <stdio.h> /* 编译预处理命令 */ int main (void) /* 主函数 */ {int n; /*变量定义 */ int factorial (int n); /* 函数声明 */ scanf ("%d", &n); /* 输入一个整数 */ printf (“%d \n”, factorial(n)); /* 调用函数计算阶乘 */ return 0;}int factorial (int n) /* 定义计算 n! 的函数 */ {int i, fact = 1;for(i = 1; i <= n; i++) /* 循环 */ fact = fact * i;return fact;} 输入 4 输出 24 C 程序由函数组成 有且只有一个主函数main1.2 程序与程序设计语言⏹程序☐人们为解决某种问题用计算机可以识别的代码编排的一系列加工步骤。
C++课件第1章:基础知识
和unsigned四个关键字修饰
• short int长度小于等于2字节,long int长度大
于等于4字节(64位编译器下为8字节)
• signed int表示整数格式为补码(默认),而
unsigned int表示整数格式为纯数值类型。
• 可通过修改控制台的“代码页”属性来显示扩
展ASCII码。
实数类型float和double
• 单精度float和双精度型double都用来存放实
数,两者表示的实数精度不同。
• 实数在内存中以规范化的浮点数(IEEE754)存
放,包括尾数、数符和阶码。
• 数的精度取决于尾数的位数,32位机上单精度
• 字符常量的类型是char。
TIPS:注意单字符变量和字符常量的区别!
• 例: 'a'
//字符a
'@' //字符@
'4'
//字符4
''
//空格字符
转义字符(转义序列)
• 控制字符等无法直接显示的字符,可以用转义
字符来间接表示。
• I . 常用的转义字符
例: '\n' //换行 '\\' //字符\ '\t' //制表 '\'' //字符'
2
-32768 ~32767
2
0~65535
4
-231 (231-1)
4
0~232-1
4
-231 (231-1)
4
0~232-1
字符类型char
• 字符类型用来保存单个英文字符,存储的为该
浙江大学C语言程序设计复习课件
void main() { struct student s[SIZE];
int k,sub=0; for(k=0; k<SIZE; k++) { scanf("%s%d%d",s[k].name,&s[k].math,&s[k].eng); s[k].aver = (s[k].math+s[k].eng)/2.0 } for(k=1; k<SZIE; k++)
if(s[k].aver>s[sub].aver ) sub = k; printf("%10s%3d%3d\n",s[sub].name,s[sub].math,s [sub].eng); }
(4) 熟练掌握结构指针 (5) 掌握结构中含指针或数组 (6) 掌握嵌套结构 (7) 掌握指向指针的指针(二级) (8) 单向链表 掌握单向链表的建立和遍历 了解插入和删除单向链表中的一个节点
写出下列程序段的输出结果。 float x1, x2; x1=3/2; x2=x1/2; printf("%d, %.1f", (int)x1, x2) ;
表达式 sizeof(“key”) 的值是______。
A、1
B、2
C、3
D、4
static char s[ ]="student"; printf("%d,%c\n",sizeof(s),*(s+2));
2、函数的定义 (1) 熟练掌握函数定义的ANSI C格式 (2) 熟练掌握函数的参数(形式参数和实在参 数)及参数传递,包括指针作为函数的参数 (3) 熟练掌握函数的返回值,包括指针作为函 数的返回值
c++入门基础 ppt课件
10
第一个C++程序
#include<iostream.h> int main() {
cout<<“Hello, World!”<<endl; return 0; }
头文件 主函数
输出
PPT课件
返回
11
编程环境
• Visual C++ 6.0 • 如何建立C++文件(演示)
– “文件” ->“新建” – 选择“C++ Source File”,输入文件名,点
例: int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 与下面定义等价: int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
•
cout<<"矩形的周长是:"<<zc<<endl;
•
return 0;
•}
PPT课件
36
2.1.6 数组
• 数组是同类元素的集合,它的元素排列在 连续的空间中,按下标来标记
• 描述数组必须给出元素类型,元素个数
• 元素个数必须在编程时确定,任何变量都 不允许
• 数组的定义格式为: 类型名 数组名[常量 表达式]
PPT课件
32
小结
(1)C语言允许在定义变量的同时使变量初始化。 如: int a=3; // 指定a为整型变量,初值为型变量,初值 为3.56
char c= ‘a’; // 指定c为字符变量,初值为 ‘a’
PPT课件
33
小结
(2)可以使被定义的变量的一部分赋初值。 如: int a,b,c=5; 表示指定a、b、c为整 型变量,但只对c初始化,c的初值为5
浙江大学C++教材
void main ( ) {cout<< ” 同学们, 你们好! ”;}
返回
第二章 基本C++程序结构
(1)类型修饰符 :函数返回值的类型。 (2)函数名:非保留字的标识符。 (3)形式参数表:由一系列用逗号隔 开的参数组成。 (4)函数体:包含在一对{ }中的语句序列。
第二章 基本C++程序结构
返回
第二章 基本C++程序结构
4、插入空格:(空格符为’ ’)
如: cout<< 100<< ’ ’ <<200<<100+200; 屏幕输出 :100 200 300
第二章 基本C++程序结构
5、换行输出 ☆换行符号:’\n ’ ☆换行控制符:endl 如:cout<< 100\n<<200; cout<< 100<<endl<<200; 则这两个语句的输出结果相同: 100 200
第一章
C++编程基础
五、集成开发环境(IDE)
1、定义: 集文字处理、编译、连接、项目管理、程 序排误等多功能为一体的软件开发工具。 2、常见的集成开发环境: Borland C++,Visual C++
第一章
六、程序风格
C++编程基础
1、良好的编程风格,不仅有利于 自己对程序的调 试,而且会大 大增加程序的可复用机会。
返回
第二章 基本C++程序结构
六、cout和数据的显示输出 1、 cout:连接显示器的输出流对象。
2、 <<:输出操作符(插入操作符)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章C程序设计基础◆本章重点1.C语言程序的结构。
2.变量与常量的表示方法。
3.运算符与表达式。
4.指针的概念及变量地址与指针的关系。
5.指针与数组的初步基本概念。
◆本章难点1.C语言中常量的表示方法。
2.整型数在计算机中存储的形式。
3.不同类型数据的转换。
4.转义字符。
5.各种运算符与表达式的正确理解。
6.指针的运算与数组的赋值。
1.1 C程序的结构1.1.1 程序的概念程序是指人们将需要计算机做的工作写成一定形式的指令,并把它们存储在计算机的内部存储器中。
当人们给出命令之后,它就按指令操作顺序自动进行,把这种可以连续执行的一条条指令的集合称为“程序”。
目前,正在使用的计算机程序设计语言有上百种,有些语言是面向机器的,如二进制语言,而多数是面向问题的语言。
面向问题的语言都被称为计算机的“高级语言”,如C语言等。
当然把C++等称为面向对象的语言。
这些语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式,人们学习和操作起来感到十分方便。
目前的程序设计一般可分为非结构化程序设计、结构化程序设计和面向对象的程序设计,C语言是结构化程序设计语言。
程序设计的过程一般包括:(1)问题的提出、要求及所采用的数据结构。
(2)算法的确定、程序的编制。
(3)程序的调试及修改。
(4)整理并写出文档资料。
结构化程序设计由三种结构组成:顺序结构、选择结构、循环结构。
(1)顺序结构:顺序结构的程序是一条语句接一条语句顺序地往下执行的。
例如在图1.1中,先执行语句1,然后执行语句2,最后执行语句3,顺序结构的程序是最简单的程序。
图1.1 顺序结构的程序段(2)分支结构:若在程序执行过程中,程序的流程可由多路分支组成,根据不同的条件去执行不同的任务。
例如在图1.2中程序执行到条件表达式时,首先判断条件是否为“真“,如为真执行语句1,否则执行语句2。
图1.2 分支结构的程序段(3)循环结构:如在程序中需要根据某项条件重复地执行某项任务若干次或直到满足或不满足某条件为止,这就构成循环结构。
例如在图1.3中程序执行到循环条件表达式时,首先判断循环条件是否为“真“,如循环条件为“真“,执行循环语句,循环语句执行完成后,又转去判断循环条件,如循环条件仍为真,再次执行循环语句,如此反复,直到循环条件为假,退出此循环。
第1章C程序设计基础图1.3 循环结构的程序段用C语句所写的序列称为C源程序,它的后缀为.c,C源程序经过编译(compile)后生成一个后缀为.obj的二进制文件,最后由连接程序(link)把此.obj文件与C语言提供的各种库函数连接起来生成一个.exe文件,它就是可执行文件。
因而程序的设计过程如图1.4所示。
图1.4 程序的设计过程1.1.2 C函数的构成C语言是结构化的程序设计语言,C程序由一个或多个文件组成,而一个文件可由一个或多个函数组成。
C程序中必须有一个函数名为main的函数,且只能有一个main函数。
程序运行时从main函数开始,最后回到main函数。
C语言源程序可由一个或一个以上文件组成,而每个文件至少有一个函数,函数是C 语言的最基本的单位。
C函数由语句构成,语句结束符用“;”表示,语句由保留字、标识符、运算符和表达式构成。
其中“{”和“}”分别表示函数执行的起点与终点或程序块的起点与终点。
C程序中书写格式自由,一行内可写几个语句,但区分大小写字母。
用C语言写成的函数结构图如1.5所示。
图1.5 C函数定义的结构示意图例1.1函数结构的例子。
int add(int x,int y) /*函数返回值类型、函数名及形式参数的声明*/{ /*函数体开始*/int z; /* 数据定义部分,给变量分配内存空间*/z=x+y; /*执行语句*/return z; /*函数结束前返回一个整型值*/} /*函数体结束*/在程序中可以对程序进行注释,注释的目的主要是为了人们能读懂您的程序。
注释部分必须用符号“/*”和“*/”来界定,“/”和“*”之间不可以有空格。
注释可以用西文,也可以用中文。
注释可以出现在程序中任意合适的地方,注释部分对程序的运行不起作用。
在注释中可以说明变量的含义、程序段的功能,以便帮助人们阅读程序。
因此一个好的程序应该有详细的注释。
在上例中,如要在机器上运行必须要有一个main函数,通过main调用函数add函数,例如完整的程序代码为:#include<stdio.h> /*文件预处理,包含标准输入输出库,程序可调用输入、输出函数*/ int add(int x,int y){int z;z=x+y;return z;}void main( ){int add(int,int); /* 函数的说明,告诉系统在主函数中要调用add函数 */ int a=1,b=2,c; /* 变量的定义*/c=add(a,b); /* 函数调用 */printf("%d+%d=%d\n",a,b,c);/* 调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出*/ }此程序的执行结果如下:1+2=3分析:程序执行的步骤:1)从main函数中的符号‟{…开始执行;第1章C程序设计基础2)分配三个变量a、b、c的存储空间,并给a、b赋初值,分别为1、2,如图所示;图1.6 main函数中变量3)调用add函数,此时实在参数a、b的值传递给add函数中的形式参数x、y,此时x的值为1、y的值为2;4)在add函数中给变量z分配内存空间;图1.7 add函数中变量5)在add函数中,形参x与y的和赋给形参变量z;6)返回形参z的值给main函数中的变量c,同时释放形式参数x、y、z的内存空间;7)在main函数中输出变量a、b、c的值。
8)当遇‟}‟时程序执行结束。
良好的编程风格有助于对程序的阅读、理解和记忆,因而编程时应养成良好的习惯,并注意以下各点:(1)用“;”作为语句的结束记号,但main()、#include< >、#define不是语句,后面不能用“;”号。
(2)注解“/*”和“*/”及程序或复合语句的开始与结束“{”和“}”必须成对使用。
(3)程序中代码区分大小写。
(4)要有预处理,如#include<stdio.h>、#include<math.h>、#include<graphics.h>等。
(5)程序中必须有一个main函数,且只能有一个main函数。
(6)函数中定义的变量,含形式参数的作用范围只限在本函数内。
1.2 最简单的C程序C语言程序可由表达式、系统函数及自定义函数组成,程序可以很复杂,也可以很简单,但即使很简单的程序也应由main()及“{”、“}”组成,例如:例1.2 最简单的C程序。
/*最简单的C程序*/#include<stdio.h>void main( ){; }此程序没有什么意义,执行后什么也没做,可以认为是最简单的C程序了。
例1.3 字符串的输出。
/*功能打印字符,在屏幕上输出:Hello,world */#include<stdio.h>void main(){printf("Hello,world\n"); /*调用系统函数printf,\n为换行符*/}此程序执行后在屏幕上输出:Hello,world在C语言中,printf为格式输出函数,它是C语言的库函数。
包含在stdio.h库中,因而凡是用到printf函数都要包含函数库stdio.h。
在此函数中,除了格式控制符外,其他字符原样输出,因而此程序的运行结果为:Hello,world。
下面用一些例子来说明此printf函数在整型数、实型数、字符输出方面的应用。
例1.4 整型数输出的例子。
/*功能输出整型数 */#include<stdio.h>void main(){int x=2; /* 定义一个整型数x,并赋予初值2 */第1章C程序设计基础printf("%d %d\n",x,5); /* printf为输出函数,%d为整型数的输出格式*/ }此程序执行后在屏幕上输出:2 5在此例子中,语句int x=2; 表示定义一个整型x,并赋予初值2。
为什么在程序设计中要定义变量后才能使用呢?这是因为变量的数值存放在内存空间,因而必须给变量分配存储空间,而变量的定义就是给变量分配存储空间。
在程序设计中,经常要通过键盘输入,显示器输出。
在C语言中用于格式输入、输出函数分别为scanf、printf ,它们常用格式有:%d 用于十进制的输入、输出。
%f 用于实型数的输入、输出。
%lf 用于双精度数的输入、输出。
%c 用于字符的输入、输出。
%s 用于字符串的输入、输出。
更详细的一些细节见附录。
例1.5 从键盘输入一个双精度数,然后输出。
/*功能从键盘输入一个双精度数,然后输出 */分析:C语言中用于格式输入的函数为:scanf(“格式符序列”,变量地址序列);变量的地址表示为:&变量名;因而程序在设计时先定义一个双精度数:double x;然后用语句:scanf("%lf",&x);输入。
#include<stdio.h>void main( ){double x ;scanf("%lf",&x); /* &x 表示变量x的地址 */printf("%lf\n",x);}程序在运行时会出现一个空屏,此时您应输入一个数据,然后按回车键后在屏幕上输例1.6 从键盘输入一个字符串,然后输出的程序。
解析:在程序中先定义一个字符数组,然后提示输入,输入一个字符串后,最后输出在屏幕上。
分析:C语言中可用于存放字符串的为字符数组,字符数组的定义为:char 数组名[元素个数] ;例:char name[10];它表示在内存中分配10个字节的连续空间,这个连续空间的首地址用name表示。
/*功能:从键盘输入一个字符串,然后输出字符串的程序 */#include<stdio.h>void main(){char name[10] ; /*name表示存放字符串的首地址,可存放10个字符*/ printf("请输入您的姓名\n"); /*屏幕输出*/scanf("%s",name); /* 键盘读入字符串,以空格分隔,格式符为%s */printf("您的姓名是:%s\n",name);/*表示输出以name为首地址上的内容,直到字符串结束*/ }程序运行结果如图1.8所示。