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

{



推荐阅读
  • 那你就是学的c语言,跟我学c语言
    本文目录一览:1、如何学习C语言?2、新手如何 ... [详细]
  • c语言基础编写,c语言 基础
    本文目录一览:1、C语言如何编写?2、如何编写 ... [详细]
  • C语言判断正整数能否被整除的程序
    本文介绍了使用C语言编写的判断正整数能否被整除的程序,包括输入一个三位正整数,判断是否能被3整除且至少包含数字3的方法。同时还介绍了使用qsort函数进行快速排序的算法。 ... [详细]
  • 利用空间换时间减少时间复杂度以及以C语言字符串处理为例减少空间复杂度
    在处理字符串的过程当中,通常情况下都会逐个遍历整个字符串数组,在多个字符串的处理中,处理不同,时间复杂度不同,这里通过利用空间换时间等不同方法,以字符串处理为例来讨论几种情况:1: ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • C语言自带的快排和二分查找
    Author🚹:CofCaiEmail✉️:cai.dongjunnexuslink.cnQQ😙:1664866311personalPage&#x ... [详细]
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼*madebyebhrz*#include#include#include#include#include#include#include ... [详细]
  • 2017电大最新题库电大Java语言与WWW技术形成性考核填空题1、Java具有的特点简单、面向对象、与平台无关、解释型、多线程、安全、动态的语言。2、开发与运行Java程序需要经 ... [详细]
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社区 版权所有