- 0
- 0
- 约2.52万字
- 约 29页
- 2016-08-31 发布于贵州
- 举报
第1章 C语言导论
为什么称之为C语言?这通常是C程序设计语言初学者最先提出的问题之一。答案为C语言是从B语言演变而来!但B语言不是从A语言演变而来,而是从BCPL(Basic Combined Programming Language)语言演变而来。BCPL是由Martin Richards 在1967年设计出来的,是一种无数据类型的语言,它直接处理机器系统的字和地址。在BCPL的启发下,Ken Thompson在1970年开发了无数据类型的程序设计语言B,B语言和汇编语言被用来开发UNIX操作系统的第一个版本。1972年,Dennis Ritchie设计出了C语言,该语言既吸收了BCPL和B语言的许多思想,又具备数据有类型的特色(整型、浮点型等)。
直到1989年,C语言的定义还是沿用了Brian W.Kernighan和Dennis M.Ritchie在The C Programming Language(Englewood Cliffs,NJ:Prentice-Hall,1978)一书中的描述,我们称C语言的这个版本为传统C语言。由于该语言的发展和扩充、最初定义中有一些不明确之处以及出于其他方面的考虑,1983年,美国国家标准化协会(ANSI)组织一个委员会“提供明确的和与机器无关的C语言的定义”,并于1989年通过了所制定的标准。本书介绍的C语言基于ANSI C标准,此后简称为标准C语言。
本章将举例介绍一些基本的语言概念:C语言程序的结构、标识符、while和do while循环、条件语句(if-else)、输入、输出和文件,在以后的章节中会就这些主题展开详细描述。
1.1 第一个C语言程序
下列程序打印输出的信息如下:
ANSI -- A kinder and gentler C!
/* 该程序打印输出如下信息:
ANSI -- A kinder and gentler C! */
#include stdio.h
main()
{
printf( ANSI -- A kinder and gentler C!\n );
}
在C语言中,符号/*标记注释行的开始,符号*/标记注释行的结束,编译器忽略注释行。
如下行是一条预处理指令(preprocessor directive):
#include stdio.h
它表示在把程序实际翻译成机器代码之前还需要做某个预处理动作(预处理器在编译之前执行预处理指令,将在4.6节详细介绍预处理器)。预处理指令总是以井号(#)开头。这里的#include 预处理指令使得预处理器把名为stdio.h的文件内容准确地插入到#include行出现的地方,这样的文件称为头文件(header file)-- A kinder and gentler c!\n );
C语言中的单条语句,如:
printf( ANSI -- A kinder and gentler C!\n);
是以分号“;”结束的。
除了特殊的字符如反斜杠“\”之外,函数printf简单地复制两个双引号里面的字符到视频显示器上。因此如下语句:
printf(ANSI -- A kinder and gentler C!\n);
在屏幕上打印输出:
ANSI -- A kinder and gentler C!
反斜杠“\”作为特殊的转义字符。字符组合\n的意思是换行,并使下一个输出从下一行的行首开始,这里下一个输出是系统提示符。
像大部分现代高级语言编译器一样,C语言编译器不需要程序的语句以任何特定的格式出现。本书格式化编写的程序,尤其是采用缩排的形式,目的是便于阅读。
附录F描述如何在Borland C++和Windows下的Microsoft Visual C++中编译、连接和运行C语言程序。附录E讨论UNIX C编译器。
练习
1.在你的系统上编译运行本节的程序。
2.修改并运行本节的程序。尝试删除程序的某部分,例如省略如下行:
#include stdio.h
再如,省略一个大括号,省略一个双引号。若有错误的话,说明是什么错误,并解释这些错误。
1.2 应用举例:长度转换
◇问题
从键盘读入以码(yd)为单位的长度,把该长度转化成对应的英尺(ft)和英寸(in),并将转换后的长度输出到屏幕上。假设输入的长度是非负整数(如:0,1,2,…中的一个),程序以输入负数结束(如:-1,-2,…中的一个)。这些单位之间的换算关系如下:
1 yd = 3 ft
1 yd = 36 in
◇输入/输出举例
输入部分用斜体字标出,输出部分用黑体字标出,如下所示:
Enter next length 2
您可能关注的文档
- 2013学年高政治 第二单元《为人民服务的政府》精品教案 新人教版必修2.doc
- 2013最新南网院大学语文期末考试答案.doc
- 2014 心理康与心理调 (1).doc
- 2014.5小教研简报.doc
- 2014-205丰台区高三第一学期期末地理试卷及答案_精华学校.doc
- 2014-205丰台区高三第一学期期末政治试卷及答案_精华学校.docx
- 2014八年级文下册第一次月考试题及答案 - 副本.doc
- 2014版《创设计·高考语文》总复习限时规范训练 第5部分 第1单元.doc
- 2014北师大历史七年级上册期末测试题.doc
- 2014高考历大二轮 专题复习与增分策略 教师使用文档+题库练习专题五 近代欧美代议制及社会主义理论与实践.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 肺隔离症诊疗指南(2025年版).docx
- 2021届贵州省遵义市高三年级第一次统考物理试卷含答案.pdf VIP
- 精品解析:北京市海淀区2025-2026学年九年级上学期期末考试物理试题(解析版).docx VIP
- 2025年山西省中考数学备考全指南(知识点归纳,必考知识点、真题模拟试卷及解析).docx VIP
- 心血管疾病的风险评估与管理课件.pptx VIP
- 离婚协议书(2026官方标准版).docx VIP
- HG_T 3706-2014 工业用孔网钢骨架聚乙烯复合管.doc VIP
- 湖北省学位英语考试真题2023.pdf VIP
- 船舶焊接 垂直气电焊 垂直气电焊.ppt VIP
- 2024湖北省学位英语考试真题及答案.docx VIP
原创力文档

文档评论(0)