第1章 (C语言) 程序设计与算法
C语言第1章C语言程序设计ppt课件
售市场份额高达60%以上
8
• 印度“硅谷”班加罗尔,可能就在一群横 七竖八躺在马路边的流浪者的正上方,赫 然悬挂着一幅巨大的某某.COM网络公司 的广告牌。
9
中印软硬件对比
2000年上半年 中国
印度
硬件与通信产品 86.12亿美元 出口额
55.9亿美元
20
四、 C语言的特点
1、C语言简洁、紧凑、方便、灵活 C语言一共只有32个关键字,9种控制语句,程序书写自由,
主要用小写字母表示。 #include "stdio.h" void main() {
int a,b, s; scanf("%d,%d",&a,&b); s=a*b; printf("s is %d\n",s);
的目标代码效率低10へ20%。
27
• 8、C语言适用范围大,可移植性好 C语言有一个突出的优点就是适合于多种操 作系统,如DOS、UNIX,也适用于多种机 型。
28
五、 简单的C语言程序介绍
用C语言编写的程序称为C语言源程序, 简称为C程序。
29
【例1.1】输出一行信息。
#include <stdio.h>育 从50年代起在全国陆续建起了6个“印度理工学院” (IIT)。 我国计算机方面的专门人才只有15万人,比印度要少 20万人。
• 语言 几乎人人懂英语是印度发展信息产业上的独有优势。
• 成本 印度编程人员的工资只有发达国家的1/8到1/5
12
1.4 我国软件的发展
• 巨大的内需 • 基础设施不错 • 社会的稳定
}
C语言程序设计(1-6章)
C语言程序设计第1章概论1.1 C语言有哪些主要特点?其主要用途是什么?1.2 程序设计语言的主要构成要素有哪些?1.3 程序设计语言的实现都有哪些方法?1.4 程序设计语言按照实现方法可分为哪几种类型?1.5 为什么要学习程序设计语言?1.6 将C语言和你所掌握的高级语言做一比较。
1.7 C程序的主要构成单位是什么?1.8 C语言的保留字和特定字有何区别?1.9 下面哪些是合法的C语言一般标识符?std-sex, Std-num, 2.13, _2.13, name, int, Int, var-num, yes_or_no, select, File_name, _DATA, define, a+c, new, ok?1.10 C程序从编辑到执行要经过哪些步骤?1.11 C函数主要由哪几部分构成?复合语句在C语言中是用什么标界的?又称为什么?1.12 填空。
1 . 一个C程序是由若干个函数构成的,其中必须有一个函数。
2 . 一个C语句最少应包含一个。
1.13 单项选择。
1. C语言程序的基本单位是( )。
(1) 子程序 (2) 程序 (3) 过程 (4) 函数2. 合法的C语言标识符是( )。
(1) _a1 (2) a+b (3) 3abc (4) AB,CD答案:1.1C语言主要用于编写系统软件,其主要特点如下:①语言简洁,紧凑,使用灵活②运算符丰富③具有数据类型构造和流控结构能力④语言生成的代码质量高⑤可移植性好⑥语言语法限制不严格,程序设计自由度大1.2程序设计语言的主要构成要素有:①数据。
②运算(操作)③控制结构④存储答理⑤固运算环境。
1.3 程序设计语言的实现方法主要有:1. 翻译或编译。
2. 软件模拟(软件解释)。
1.4 程序设计语言的按照实现方法有编译型和解释型两种。
1.5略 1.6 略1.7 C程序的主要构成单位是函数。
1.8 C程序的保留字和特定字的区别是,保留字不能用来表示用户自定义的对象,而特定字却不受此限(尽管不提倡这样做)。
C语言程序设计 第一章C语言概述
8.目标代码质量好,程序执行效率高
9.可移植性好
1.2 c语言的基本语法成分
1.C语言字符集:字符是C语言的最基本的元素,C语言字符 集由字母、数字、空白、标点和特殊字符组成(在字符串 常量和注释中还可以使用汉字等其它图形符号)。由字符 集中的字符可以构成C语言进一步的语法成分(如,标识 符,关键词,运算符等)
2.标识符 标识符用来标识变量名、符号常量名、函数名、
类型名、文件名等的有效字符序列。
3.关键字 C语言中一些具有特殊意义的标识符称为关键字。
这些关键字在任何时候都不得用作变量名、符号常量 名、函数名、类型名、文件名等。
4.运算符: 运算符将常量、变量、函数连接起来组成表达式,
表示各种运算。
5.分隔符:分号,空格。起分隔、间隔作用。
int x, y; /*对形参x、y作类型定义*/
{ int z;
/*max函用到的变量z,也要加以定义*/
z=y;
if (x>y) z=x;
return (z); /*将z的值返回,通过max带回调用处*/
}
通过分析,初步看出:
1. C程序全部由一个一个的函数构成。至少有一个 主函数main ( ), 其它函数可被主函数调用或相 互调用。其它函数可为C 函数库中函数,也可为自
1.1 c语言的特点 1.2 c语言的基本语法成分 1.3 c语言的程序结构
1.1 C语言的特点
C语言是在B语言的基础上发展起来的一种中级语 言。它具有高级语言和低级语言(汇编语言)双重功能的 特点,被广泛用于系统软件和应用软件的开发,成为目 前生命力最旺盛的高级语言之一。其主要特点有:
1.C语言源程序由多个相互独立的函数组成 2.语言简洁、紧凑,使用方便、灵活
C语言第一章
第一章 C语言概述
第1章 C语言概述
C语言发展历史 简单的C程序介绍 C语言数据类型概述
C语言程序设计
第一章 C语言概述
1.1 C语言的出现和发展历史
• 程序设计语言的发展
机 器 语 言
汇 编 语 言
高 级 语 言
面向过程
面向对象
用助记符号描述的指令系统,可进行地址、位操作 可读性,移植性好,编写应用程序 CPU指令系统,由0、1序列构成的指令码组成 C语言兼有高级和低级语言的功能 面向机器的语言适合写系统软件和应用软件 如 ADD A,一般较难实现汇编语言的某些功能 B 加 如:10000000 编写系统软件,直接对硬件操作,可读性,移植性差 如:地址和位的操作 10010000 减 又称中级语言 < >
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 可以进行的操作
C语言程序设计
第一章 程序的灵魂——算法
数值数据的表示
C语言中数值数据有两种:整型和浮点小数 1.整数表示形式 十进制:123,-567 八进制:011,072 十六进制:0x12 2.整数的存储空间为两个字节,即16个二进制位。 取值范围为-32768—32767 如果超过这范围,使用占4个字节的长整型,在整 数后面加上一个字母L,此时取值范围可以扩大到 -2147483648—2147483647
C语言程序设计
第一章 C语言概述
1.2 简单的C程序介绍
例1.1 第一个程序This is a c program . 注释 /* example1.1 The first C Program*/ #include <stdio.h> 编译预处理 void main() 主函数 { printf(“This is a c program.\n”); 语句 } 输出: This is a c program.
C程序设计(第五版)课后试题答案——第一章
被调用函数:由一个函数调用另一个函数,则称第二个函数为被调用函数。
第一章 程序设计和C语言
3、正确理解一下名词及其含义
库函数:一般是指编译器提供的可在C源程序中调用的函数。 可分为两类,一类是C语言标准规律的库函数,一类是编译器特定的库函数。
程序调试:是指将编制的程序投入实际运行前,用手工或编译程序等方法进行测试, 修正语法错误和逻辑错误的过程。 程序测试:是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检 测,以确保该程序能按预定的方式正确的运行。
高级语言的特点: 1、高级语言的数据要比汇编和机器语言丰富。 2、高级语言与具体机器结构的关联没有汇编以及机器语言密切。 3、高级语言更接近自然语言,更容易掌握。 4、高级语言编写的程序要经过编译或解释计算机才能执行。
第一章 程序设计和C语言
3、正确理解一下名词及其含义
源程序:指未编译的,按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。 目标程序:为源程序经编译可直接被计算机运行的机器码集合。在计算机文件上以.obj作扩展名。 程序编辑:上机输入或者编辑源程序 程序编译:先用C提供的“预处理器”,对程序中的预处理指令进行编译预处理,对源程序进行语法检查,判断 是否有语法错误,直到没有语法错误为止,编译程序自动把源程序转换为二进制形式的目标程序。 程序连接:将所有编译后得到的目标模块连接装配起来,在与函数库相连成为一个整体的过程称之为程序连接 程序:一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。 程序文件:程序的文件称为程序文件,程序文件存储的是程序,包括源程序和可执行程序。 函数:将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,来完成一定的功能。 主函数:又称为main函数,是程序执行的起点。
C语言第一章绪论详解
程序书写风格
同一层次大 括号对齐
分层缩进并对齐
24
int a, b, c; printf(“Please input a and b:\n”); scanf(“%d%d”, &a, &b);
c = a; a = b; b = c;
printf(“a = %d b = %d”, a, b) return 0; }
/*输入变量a和b的值*/ /*交换a和b*/ /*输出a和b的值*/
#include<stdio.h>
int add(int x, int y)
/*定义add()函数,求两个数之和*/
{
int z;
z = x + y;
return z;
}
int main(void)
/*定义主函数*/
{
int a,b,c;
printf(“Please input a and b:\n”);
第一章 绪 论
1
程序与程序设计语言
程序(Program)是为实现特定目标或解决特 定问题而用计算机语言编写的命令序列的集合, 是为实现预期目的而进行操作的一系列语句和指 令。用于编写计算机可执行程序的语言称为程序 设计语言,程序设计语言可分为:
机器语言 汇编语言 高级语言
完成两数相加的操作: 机器语言:10110011 …… 汇编语言:add ax, bx 高级语言:C=A+B
⑤ …… }
④
}
13
C语言程序的组成及书写规则
C程序是由一个或多个函数组成的,其中必须要有一个 且只能有一个main( )函数。无论这个函数的位置在哪里 ,程序总是从它开始执行。main( )函数可以调用其它函 数,但是其它函数不能调用main( )函数。
C语言第1章 程序设计和C语言
00000101
00000001
00000000
能直接被机器识别和执行的用二进制代码描述的指令称
为机器指令,机器指令的集合称为机器语言。由于它更靠 近机器,也称为低级语言
早期编程语言只有机器语言,由于它难于记忆和掌握, 因此少数人能参与到编程的工作中。
目前我们主要使用高级语言编程,但也必须翻译为机器 语言才能被机器识别和执行整。理课翻件 译工作由编译软件实现。
➢ 不同的部分是本程序的精华处 ➢ 解题思路:
设置3个变量 ➢ a和b用来存放两个整数
printf(”sum is %d\n”,sum); ➢ sum用来存放和数
return 0;
用赋值运算符“=”把结果传
}
送给sum
整理课件
一个C程序概貌
1.每个C程序前面都有一些固定语句,暂且称 为程序头
#include <stdio.h> //预处理命令
来 每个C语言程序应该至少有一个主函数,也就是有一个名 称为main的函数
#include <stdio.h> int main( ) { 主函数类型
printf (”This is a C program.\n”); return 0; }
整理课件
理解3:
C程序的细胞是函数,每个函数都有函数的类型,函数的 名称和函数体,函数体放在一对{ ...函数体...}中间定界起
#include <stdio.h>
int main( )
{ int a,b,sum; a = 123; b = 456;
变量a,b,sum的声明 提供数据
变量为数据 提供在内存 存储的空间
sum = a + b; 数据处理
大学课程《C语言程序设计基础》PPT课件:第1章
第1章 C语言程序设计概述
机器语言是计算机能够直接识别的语言,它是一组二进 制编码指令。在计算机应用初期,人们用机器语言编写程序。 但是机器语言是冗长的二进制代码,难理解、难记忆、难编 程,只有少数计算机专业人员才会使用。随着计算机应用技 术的发展,计算机语言一直朝着“人性化”的方向发展,先 后出现了汇编语言和不同种类的高级语言。
第1章 C语言程序设计概述
1.2.1 数据结构与算法 数据结构与算法具有密切的联系。数据结构是加工对象,
算法则是对数据结构加工处理的方法。不同的数据结构可能 需要采取不同的算法,不同的算法可以对不同的数据进行加 工处理。
1.数据结构
何谓数据结构?数据结构在程序中如何表示?
数据结构指的是数据的组织形式,例如,字符数组、方 程组系数矩阵、人员的基本信息表、反映部门组织机构关系 的树形图、反映网络结构及信息的网状图等都是不同的数据 结构。
组织和存储数据的目的是能被计算机处理,即对数据施 加各种运算。因此,可以在逻辑结构上定义运算集合,而在 存储结构上实现这些运算。
第1章 C语言程序设计概述
2.算法
何谓算法?算法如何表示?
所谓算法,是解决某一问题所采取的方法和步骤。程序 设计中的算法把解决问题的每一步骤具体化为计算机的操作, 即算法解决计算机在什么情况下应该“做什么”和“怎样做” 的问题。
第1章 C语言程序设计概述
高级语言的种类很多,不同的语言各有不同的特点与使 用场合,但从原理上看,各种语言都包含一些相同的功能和 结构。对初学者来说,只要选择有代表性的语言,掌握了程 序设计语言的规律和内在功能结构,就很容易学习和应用其 他语言。现在一般都把C语言作为程序设计的入门语言。
第1章 C语言程序设计概述
第1章 C语言与程序设计
学习C语言的理由
• C语言可以作为学习计算机程序设计语言的入 门语言 • C语言是编写操作系统的首选语言,与计算机 硬件打交道灵巧且高效 • C语言具有现在高级程序设计语言的基本语法 特征 • 常用的面向对象程序设计语言如C++和Java,其 基本语法来源于C语言 • 许多用C语言编写的系统需要维护
1.4 算法及其表示
【例1-2】某体育比赛中,有10个裁判为参赛选手打分,参赛 选手最后得分的计算方法是:去掉一个最高分和一个最低分 后其它分数的平均值。求参赛选手的最后得分。 ⑴数据描述 问题中的原始数据有10个,解题过程中求最高分、最低分和 最后得分。在程序中可定义1个数组s存储10个分数、3个实型 变量max,min,score分别存储最高分、最低分和最后得分,另 外还需要若干辅助变量。 ⑵处理步骤描述 第1步:输入10个任意数,存储在数组s中; 第2步:求10个数的最高分、最低分以及它们的和,并存储在 变量max、min和sum中; 第3步:从sum中减去max和min并且除以(10-2)(值为8)求得 最后得分,并将其存储在变量score中; 第4步:输出变量score的值,则得到问题所要求的结果。
C语言程序设计是一门实践性很强的课程。在学习过程 中,不仅要掌握基本概念、语法和语义等内容,还需要注 重实验环节,通过自己动手编写程序,在完成C语言程序的 编辑、编译、调试和运行的过程中,加深对C语言的理解 。
本课程学习目标
• 计算机语言—C语言的词法、语法和语义 • 程序设计
第1章 C语言与程序设计
1.1 C语言发展历史
图1-1 C语言的发展历程
1.2 C语言的特点
•C语言简洁、紧凑、灵活可移植 •表达方式简练、实用灵活 •具有丰富的数据类型 •具有低级语言的特点 •是一种结构化语言,适合于大型程序的模块化设计
C语言程序设计知识点—第1章 C语言与程序的算法
第一章:C语言与程序的算法主要知识点1.本章目标:了解程序、算法和流程图的概念熟练掌握C 程序的基本结构掌握C 程序的编译和运行过程使用Visual C++ 6.0 创建C程序2.什么是程序程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合3. C 程序的基本结构:#include <stdio.h>void main(){printf("Hello World\n");}以# 开始的语句称为预处理器指令#include语句不是必需的,但是,如果程序有该语句,就必须将它放在程序的开始处以.h为后缀的文件被称为头文件,可以是C 程序中现成的标准库文件,也可以是自定义的库文件。
stdio.h文件中包含了有关输入输出语句的函数main() 函数是C 程序处理的起点。
它表示函数的开始,后面是函数的主体main() 函数可以返回一个值,也可以不返回值。
如果某个函数没有返回值,那么在它的前面有一个关键字void在函数定义的后面有一个左大括号,即{大括号也可以用于将语句块括起来函数主体中的每个语句都以分号结束。
C 程序中的一个语句可以跨越多行,并且用分号通知编译器该语句已结束。
printf("Hello World\n");在屏幕上产生一行输出“Hello world”,并换行(\n)在函数定义的结尾处有一个右大括号,即}4. C 程序中的注释C 程序可以包含注释,以便向读者作一般说明编译器并不处理这些注释在程序中添加注释是一个好的编程习惯,可以增强程序的可读性。
两种注释:(1)/* 此程序由×××编写* 用来打印输出“Hello World”*/(2)// 此程序用来打印Hello World5.问题在以下程序中,完全正确的是()A.#include <stdio.h>main();{/*programming */}printf(“programming!\n”);}B. #include <stdio.h>main(){ /*/programming/*/printf(“programming!\n”);}C. #include <stdio.h>main(){ /*/*programming*/*/printf(“programming!\n”);}D. #include <stdio.h>main(){/*programming*/printf(“programming!\n”)}答案:B对于一个正常运行的C程序,以下叙述中正确的是()。
第01章 绪论 (《程序设计基础(第3版)(C语言)》(王红梅著 清华大学出版社出版)
3
1.1 程序、程序设计与程序设计语言
什么是程序?什么是程序设计?
程序:能够实现特定功能的指令序列的集合,这些指令序列描述了计算
机求解某一问题的工作步骤。
程
序
设
程序设计:给出解决特定问题的程序的过程,是软件构造活动中的重要
计 基
础
组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程
( 第
…
二进制编码 01010011 00110110 10001100 …
编译
程 序 设 计 基 础 ( 第 版 ) 清 华 大 学 出 版 社
Page 14
3
1.1 程序、程序设计与程序设计语言
3
程序设计语言的发展
助记符 MOV ADD SHL
…
推动力:抽象的更高要求,程序设计思想的更好支持
程
序
设
计
程
序
设
不同的程序设计语言对于标识符的构成遵循不同的规则,C语言中标识
计 基 础
(
பைடு நூலகம்
符的构成规则如下:
第
版
(1)以字母(大写或小写)或下划线“_”开始;
)
清
(2)由字母(大/小写)、下划线“_”或数字(0~9)组成;
华 大 学
出
(3)大写字母和小写字母代表不同的标识符。
版 社
A,P_o,P-o,from,_123,temp,int,6day,program, ok?
Page 10
3
1.1 程序、程序设计与程序设计语言
为什么要写程序?程序有什么用呢?
有问题需要解决的人
问题是丰富多彩的 人具有思维
可以解决问题的计算机
c语言课本 第1章
大学C/C++语言程序设计
第1章 程序设计概述
1.8 C语言程序结构
§C语言特点
语言简洁、紧凑、灵活 c语言共32个关键字,9种控制语句 运算符和数据类型丰富 程序设计结构化 允许直接访问物理地址,进行位操作 生成目标代码质量高 可移植性好
C语言程序设计
第一章 C语言概述
例 C语言与Pascal语言比较 C语言 Pascal语言 含义 { } BEGIN….END 复合语句 if(e) s; IF(e) THEN s 条件语句 int i ; VAR i:INTEGER 定义i为整型变量 int a[10]; VAR a:ARRAY[1..10] OF INTEGER 定义整型数组a int f(); FUNCTION f():INTEGER 定义f为返值整型 的函数 int *p; VAR p:INTEGER 定义p为指向整 型变量的指针 i+= 2; i=i+2 赋值i+2i i++,++i; i=i+1 i自增值 结论:C比 Pascal简练,源程序短。
语句
大学C/C++语言程序设计
第1章 程序设计概述
例1.2
#include <stdio.h> 预处理命令 int add(int x,int y); 函数 main() { int a,b,c; printf(”please input value of a and b:\n”); scanf(“%d %d”,&a,&b); 语句 c=add(a,b); printf(”c= %d\n“,c); } 运行结果: int add(int x,int y) 12 22 { sum=34 return(x+y); }
C语言程序设计 第1章 基本数据类型与运算
注意: ANSI C规定标识符的长度可达31个字符,但一般系统使用的标识符, 其有效长度不超过8个字符。 标识符不能采用系统的关键字(保留字)。区分大小写。
不合法的C语言标志符: call…name 39test -string1
1.5 常量与变量
常量
程序中值不发生变化的量。
整型 数值常量
实型
main() {int i,s,a[10]; for(i=0;i<10;i++)
scanf("%d", &a[i]); for(s=0,i=0;i<10;i++)
s=s+a[i]; printf("sum=%d",s); {
1.2 语言处理程序
用非机器语言书写的程序必须进行翻译,即用高级语言或汇编语 言编写的程序必须翻译成计算机能识别的指令序列,完成这一任
函数的构成
一个函数是由函数的说明部分和函数体两部分组成。
int max(int x,int y)
{ int z; if (x>y) z=x; else z=y; return(z) ;
① 函数的说明部分 int max(int x,int y)
函数返回值类型 函数名 函数参数列表
}
main( )
字符串常量 用双引号括起来的一串字符。如:"abcd " 双引号为字符常量标志。
注意: 'a' 和"a"的区别
'a' :字符常量,占一个字节存储空间,存储其ASCII码。
"a" :字符串常量,该字符串只有一个字符,占二个字节存储空 间。 字符串存储:除了存储所有字符外,系统还要存储字符串结束标 志'\0'。
第1章 程序设计和C语言
(2)添加源程序
右键单击工程名 ,在弹出的快捷菜单中选择[ 添加]-> [ 新建项] 。 在打开的“添加新项”窗口中,选择[ c ++ 文件] ,在“ 名称” 处输入 文件名“ hello” ,在 “位置”处单击[ 浏览] 按钮 ,可以修改代码文 件位置,这个位置要和工程 hello 的文件夹位置保持一致 。
1.1.3 算法的概念
用传统流程图表示算法的优点是形象直观、简单方便;缺点则是 这种流程图对于流程线的走向没有任何限制,可以任意转向,描述算 法时费时费力且不易阅读。
N-S结构图是由美国学者I.Nassi 和B.Shneiderman 在1973 年提 出的。这种流程图完全去掉了流程线,算法的每一步都用一个矩形框 来表示,把一个个矩形框按执行的次序连接起来就是一个算法描述。
●程序必须有且只能有一个主函数。无论主函数放在文件中什么 位置(开头、中间或最后),程序运行总是从主函数开始,最后在主 函数中结束。
●程序中除了main 函数外,还可以有若干个其他函数。其他函数 是由主函数直接或间接调用来执行的。但其他函数不能反过来调用主 函数。
(3)函数头和函数体 函数定义由两部分组成:函数头和函数体。 ●函数头包括函数名、函数类型机语言是人与计算机进行交流的工具。计算机语言分为机器 语言、汇编语言和高级语言3种。
对于计算机本身来说,它并不能直接识别由高级语言编写的程序, 只能接受和处理由0和1的代码构成的二进制指令或数据,这种直接面 向计算机的指令称为“机器语言”。
目前,使用比较广泛的语言,如Visual C++、Java 以及本书将要 介绍的C语言等,它们都被称为计算机的“高级语言”。高级语言使 用接近人们习惯的自然语言作为语言的表达形式,学习和操作起来十 分方便,并且用高级语言编写的程序具有良好的通用性和可移植性, 不依赖于具体的计算机类型。
《C语言程序设计》 第1章 概论
Chapter 1
Introduction
1.2.2 C 程序的基本结构
实例:输入两个数及其算术运算关系,输出运算结果。 int fun(int x,char op,int y) /* This is my first C program { filename:first.c int z; */ switch(op) #include <stdio.h> { void main(void) case ‗+‘: z=x+y; break; { case ‗-‗ : z=x-y; break; char ch; case ‗*‘: z=x*y; break; int iA, iB, c; case ‗/‘ : z=x/y; scanf(―%d%c%d‖, 子 } &iA,&ch,&iB); 函 return z; /*返回运算结果*/ c=fun(iA,ch,iB); 数 } 主printf(―%d%c%d=%d‖,iA, 函 ch,iB,c); chp1ex1 数 }
Chapter 1
Introduction
C 语言程序设计
C Language Programming
但愿她是你知识大厦的又一块基石。 但愿她是开启你智慧的又一把钥匙!
Chapter 1
Introduction
学习目的
通过学习掌握C语言的语法结构,理解程序设计的一般 方法和基本技术。 学习算法的概念以及结构化程序设计的一般方法,提 高分析能力和综合能力。 能够用C语言编程解决一定的实际问题,提高计算能力。
0111000011 0101000010
Chapter 1
Introduction
学习的层次
《C语言程序设计》课后习题答案(第四版)
第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>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<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。
第1章C语言程序设计初步
C语言程序设计概述
本章内容
1.1 计算机程序设计语言的发展 1.2 C语言的发展及特点 1.3 简单的C语言程序 1.4 C语言程序的开发步骤及调试方法 1.5 算法及其描述 1.6 格式化输入、输出函数 1.7 学生信息管理系统案例简介
程序设计语言发展
计算机语言是程序员 对计算机硬件系统进 行控制的工具, 程序员通过计算机语 言来指挥计算机。
7.2为附加格式说明符,表示输出宽度占7位,并保 留两位小数。 float单精度型变量和double双精度型变量都可以 存储实数,两者有何区别?
• 双精度型变量精度更高、能存储的数值范围更大。 • 双精度型变量占8个字节存储空间,有效数字达到 15位;而单精度型变量占4个字节存储空间,有效 数字只有6位。 • 一般情况下,采用单精度型变量就可以了。
3. 设臵断点(Insert Breakpoint) 程序运行到断点处会自动暂停
5. 关闭工作区
当一个程序执行完毕,想要建立下一个程序时,必 须先关闭当前文件所在的工作区,再建立新文件。
【例1-2】从键盘输入圆的半径,求圆的面积。
带小数点的变量可定义为float(单精度型),%f 为其格式说明符。
C语言程序设计001
和数据从程序的其余部分分离出去、隐藏起来。获得隔离的一个方法是调用使用局部(临时)
变量的子程序。通过使用局部变量,我们能够写出对程序其它部分没有副作用的子程序。这
使得编写共享代码段的程序变得十分简单。如果开发了一些分离很好的函数,在引用时我们
仅需要知道函数做什么,不必知道它如何做。切记:过度使用全局变量(可以被全部程序访
鼓励)分别编译,所以
C语言可使程序员方便地管理大型项目,最大限度地减少重复劳动。
1.3 C语言的程序结构
1.3.1 基本程序结构
任何一种程序设计语言都具有特定的语法规则和规定的表达方法。一个程序只有严格按
集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用
无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它
的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完
全不用关心,C + +、V B、D e l p h i就是典型代表。
执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而
运算效率是所有语言中最高的。机器语言,是第一代计算机语言。
2. 汇编语言
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字
母、符号串来替代一个特定的指令的二进制串,比如,用“
A D D”代表加法,“M O V”代表
是计算机的灵魂,没有软件,计算机是一台“裸机”,是什么也不能干的,有了软件,才能灵
动起来,成为一台真正的“电脑”。所有的软件,都是用计算机语言编写的。
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1 程序设计语言的发展1. 机器语言2. 汇编语言3. 高级语言1.2 c语言的特点1.2.1 C语言是中级语言1.2.2 C语言是结构化语言1.2.3 C语言是程序员的语言1.3 C语言的程序结构1.3.1 基本程序结构1.3.2 函数库和链接1.3.3 开发一个C程序1.4 算法1.4.1 流程图与算法的结构化描述1.4.2 用N-S图描述算法1.4.3 用PAD图描述算法1.1 程序设计语言的发展自1 9 4 6年世界上第一台电子计算机问世以来,计算机科学及其应用的发展十分迅猛,计算机被广泛地应用于人类生产、生活的各个领域,推动了社会的进步与发展。
非凡是随着国际互联网( Internet)日益深入千家万户,传统的信息收集、传输及交换方式正被革命性地改变,我们已经难以摆脱对计算机的依靠,计算机已将人类带入了一个新的时代—信息时代。
新的时代对于我们的基本要求之一是:自觉地、主动地学习和把握计算机的基本知识和基本技能,并把它作为自己应该具备的基本素质。
要充分熟悉到,缺乏计算机知识,就是信息时代的“文盲”。
对于理工科的大学生而言,把握一门高级语言及其基本的编程技能是必需的。
大学学习,除了把握本专业系统的基础知识外,科学精神的培养、思维方法的锻炼、严谨踏实的科研作风养成,以及分析问题、解决问题的能力的练习,都是日后工作的基础。
学习计算机语言,正是一种十分有益的练习方式,而语言本身又是与计算机进行交互的有力的工具。
一台计算机是由硬件系统和软件系统两大部分构成的,硬件是物质基础,而软件可以说是计算机的灵魂,没有软件,计算机是一台“裸机”,是什么也不能干的,有了软件,才能灵动起来,成为一台真正的“电脑”。
所有的软件,都是用计算机语言编写的。
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。
1. 机器语言电子计算机所使用的是由“ 0”和“1”组成的二进制数,二进制是计算机的语言的基础。
计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“ 0”和“ 1”组成的指令序列交由计算机执行,这种语言,就是机器语言。
使用机器语言是十分痛苦的,非凡是在程序有错需要修改时,更是如此。
而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。
但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。
机器语言,是第一代计算机语言。
2. 汇编语言为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ ADD”代表加法,“MOV”代表数据传递等等,这样一来,人们很轻易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。
然而计算机是不熟悉这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。
汇编语言同样十分依靠于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。
3. 高级语言从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依靠于计算机硬件,编出的程序能在所有机器上通用。
经过努力, 1954年,第一个完全脱离机器硬件的高级语言—FORTRAN问世了, 40多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASI C、LISP、SNOBOL、PL / 1、Pascal、C、PROLOG、Ada、C+ +、VC、VB、Delphi、AVA等。
高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。
相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。
6 0年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。
这一切,极大地震动了计算机界,史称“软件危机”。
人们熟悉到:大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。
程序的设计应易于保证正确性,也便于验证正确性。
1 9 6 9年,提出了结构化程序设计方法,1 9 7 0年,第一个结构化程序设计语言—Pascal语言出现,标志着结构化程序设计时期的开始。
8 0年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。
在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。
这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象( object)。
其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。
对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用关心,C+ +、VB、Delphi就是典型代表。
高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序语言。
1.2 C语言的特点1.2.1 C语言是中级语言C语言通常称为中级计算机语言。
中级语言并没有贬义,不意味着它功能差、难以使用、或者比BASIC、Pascal那样的高级语言原始,也不意味着它与汇编语言相似,会给使用者带来类似的麻烦。
C语言之所以被称为中级语言,是因为它把高级语言的成分同汇编语言的功能结合起来了。
表1 - 1表明了C语言在计算机语言中所处的地位。
表1-1 C语言在计算机语言中的地位高级 Ada、Modula-2、Pascal、COBOL、FORTRAN、BASIC中级 C、FORTH、Macro-assembler低级 Assembler作为中级语言,C答应对位、字节和地址这些计算机功能中的基本成分进行操作。
C语言程序非常轻易移植。
可移植性表示为某种计算机写的软件可以用到另一种机器上去。
举例来说,假如为苹果机写的一个程序能够方便地改为可以在IBM PC 上运行的程序,则称为是可移植的。
所有的高级语言都支持数据类型的概念。
一个数据类型定义了一个变量的取值范围和可在其上操作的一组运算。
常见的数据类型是整型、字符型和实数型。
虽然C语言有五种基本数据类型,但与Pascal或Ada相比,它却不是强类型语言。
C程序答应几乎所有的类型转换。
例如,字符型和整型数据能够自由地混合在大多数表达式中进行运算。
这在强类型高级语言中是不答应的。
C语言的另一个重要特点是它仅有3 2个要害字,这些要害字就是构成C语言的命令。
和IBM PC的BASIC相比,后者包含的要害字达1 5 9个之多。
1.2.2 C语言是结构化语言虽然从严格的学术观点上看, C语言是块结构( block - structured)语言,但是它还是常被称为结构化语言。
这是因为它在结构上类似于ALGOL、Pascal和Modula-2(从技术上讲,块结构语言答应在过程和函数中定义过程或函数。
用这种方法,全局和局部的概念可以通过“作用域”规则加以扩展,“作用域”治理变量和过程的“可见性”。
因为C语言不答应在函数中定义函数,所以不能称之为通常意义上的块结构语言)。
结构化语言的显著特征是代码和数据的分离。
这种语言能够把执行某个非凡任务的指令和数据从程序的其余部分分离出去、隐藏起来。
获得隔离的一个方法是调用使用局部(临时)变量的子程序。
通过使用局部变量,我们能够写出对程序其它部分没有副作用的子程序。
这使得编写共享代码段的程序变得十分简单。
假如开发了一些分离很好的函数,在引用时我们仅需要知道函数做什么,不必知道它如何做。
切记:过度使用全局变量(可以被全部程序访问的变量)会由于意外的副作用而在程序中引入错误。
结构化语言比非结构化语言更易于程序设计,用结构化语言编写的程序的清楚性使得它们更易于维护。
这已是人们普遍接受的观点了。
C语言的主要结构成分是函数C的独立子程序。
在C语言中,函数是一种构件(程序块),是完成程序功能的基本构件。
函数答应一个程序的诸任务被分别定义和编码,使程序模块化。
可以确信,一个好的函数不仅能正确工作且不会对程序的其它部分产生副作用。
1.2.3 C语言是程序员的语言也许你会问“所有的计算机语言不都是程序员使用的吗?”,回答是断然的“否”。
我们考虑典型的非程序员的语言C OBOL和BASIC。
COBOL的设计使程序员难以改变所编写代码的可靠性,甚至不能提高代码的编写速度。
然而COBOL设计者的本意却是打算使非程序员能读程序(这是不大可能的事)。
注重,这并不是攻击COBOL的优点,而是想指出,它没有被设计成为程序员的理想语言。
BASIC 的主要目的是答应非专业程序员在计算机上编程解决比较简单的问题。
与其形成鲜明对照的是C语言,由于程序生成、修改和现场测试自始至终均由真正的程序员进行,因而它实现了程序员的期望:很少限制、很少强求、块结构、独立的函数以及紧凑的要害字集合。
用C语言编程,程序员可以获得高效机器代码,其效率几乎接近汇编语言代码。
C语言被程序员广泛使用的另一个原因是可以用它代替汇编语言。
汇编语言使用的汇编指令,是能够在计算机上直接执行的二进制机器码的符号表示。
汇编语言的每个操作都对应为计算机执行的单一指令。
虽然汇编语言给予程序员达到最大灵活性和最高效率的潜力,但开发和调试汇编语言程序的困难是难以忍受的。
非结构性使得汇编语言程序难于阅读、改进和维护。
也许更重要的是,汇编语言程序不能在使用不同CPU 的机器间移植。
最初,C语言被用于系统程序设计。
一个“系统程序”是一大类程序的一部分,这一大类构成了计算机操作系统及实用程序。
通常被称为系统程序的有:• 操作系统。
• 翻译程序。
• 编辑程序。
• 汇编程序。
• 编译程序。
• 数据库治理程序。
随着C语言的普及,加之其可移植性和高效率,许多程序员用它设计各类程序。
几乎所有的计算机上都有C语言编译程序,这使我们可以很少改动甚至不加改动地将为一种机器写的C语言源程序在另一种机器上编译执行。