热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言实验指导刘海,浙江大学刘海C语言课件1.doc

第1章C程序设计基础本章重点1.C语言程序的结构。2.变量与常量的表示方法。3.运算符与表达式。4.指针的概念及变量地址与指

第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,然后执行语句2,最后执行语句3,顺序结构的程序是最简单的程序。

图1.1 顺序结构的程序段

分支结构:若在程序执行过程中,程序的流程可由多路分支组成,根据不同的条件去执行不同的任务。例如在图1.2中程序执行到条件表达式时,首先判断条件是否为“真“,如为真执行语句1,否则执行语句2。

假 真

图1.2 分支结构的程序段

循环结构:如在程序中需要根据某项条件重复地执行某项任务若干次或直到满足或不满足某条件为止,这就构成循环结构。例如在图1.3中程序执行到循环条件表达式时,首先判断循环条件是否为“真“,如循环条件为“真“,执行循环语句,循环语句执行完成后,又转去判断循环条件,如循环条件仍为真,再次执行循环语句,如此反复,直到循环条件为假,退出此循环。

思考:同学起床后,先穿衣、洗脸、吃饭,然后看看课表,根据课表带上所需的课本,去教室,上午上五节课,先上一节课,还没到五节课,再上一节,还没到五节,再上一节课,......,直到五节课上完,早上的学习任务结束。根据此段话,用程序流程来分析的话,经历了哪些程序结构?请画出程序流程图。

图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) /*函数返回值类型、函数名及形式参数的声明*/

{



推荐阅读
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 本文介绍了一种基于选择排序思想的高效排序方法——堆排序。通过使用堆数据结构,堆排序能够在每次查找最大元素时显著提高效率。文章详细描述了堆排序的工作原理,并提供了完整的C语言代码实现。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • KMP算法是一种高效的字符串模式匹配算法,能够在不进行回溯的情况下完成匹配,其时间复杂度为O(m+n),其中m和n分别为文本串和模式串的长度。本文将详细介绍KMP算法的工作原理,并提供C语言实现。 ... [详细]
  • 本文介绍如何利用栈数据结构在C++中判断字符串中的括号是否匹配。通过顺序栈和链栈两种方式实现,并详细解释了算法的核心思想和具体实现步骤。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 由二叉树到贪心算法
    二叉树很重要树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。单就面试而言,在 ... [详细]
  • 对于许多初学者而言,遇到总线错误(bus error)或段错误(segmentation fault/core dump)是极其令人困扰的。本文详细探讨了这两种错误的成因、表现形式及解决方法,并提供了实用的调试技巧。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 1、字符型常量字符型常量指单个字符,是用一对单引号及其所括起来的字符表示。例如:‘A’、‘a’、‘0’、’$‘等都是字符型常量。C语言的字符使用的就是 ... [详细]
  • 本文探讨了在C语言编程中,如何有效避免多文件项目中的重定义问题,通过合理使用预处理器指令和extern关键字,确保代码的健壮性和可维护性。 ... [详细]
  • 本文提供了一个C语言程序示例,用于计算一个班级中3名学生在4门课程上的平均成绩和班级总平均成绩。代码可在Visual C++或Visual Studio等环境中直接运行,包含详细的注释以帮助理解。 ... [详细]
  • (详细)快速幂算法及效率分析 大数幂乘 快速幂取余(附测试时间)
    快速幂问题:求a^b%m,即a的b次方对m取余的结果。只要学过C语言的循环就可以写出最简单的朴素版本:朴素版typedeflong ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有