C语言学习笔记系列一:程序设计和C语言

前言

进行程序设计,要解决两个问题:

(1)算法:解决问题的思路和方法

(2)实现算法:用计算机语言编写程序

算法是灵魂,语言是工具。

1. 什么是计算机程序

程序:一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操作。

计算机的一切操作都是通过程序来控制的

计算机的本质是程序的机器,程序和指令是计算机系统种最基本的概念。

2 .什么是计算机语言

机器语言:(machine langugae)用二进制代码表示的指令的集合。从根本上讲,计算机只能识别和接受0和1组成的指令。计算机直接识别和接受的二进制代码机器指令(machine instruction)

汇编语言:(high level language)符号语言,用助记符表示的指令。*符号汇编语言*(sysmbolic assembler language),低级语言(low level language),

高级语言:用接近自然语言的语法表示的指令。

编译程序:

源程序(source program)————>目标程序(object program)————>可执行程序(executable program)

高级语言经历的不同的发展阶段:

(1)**非结构化的语言**。BASIC,FORTRAN,ALGOL

(2)**结构化的语言**。程序必须有良好特性的基本结构(***顺序结构、选择结构、循环结构***)构成,不允许随意跳转,从上而下执行。C语言,QBASIC,FORTRAN77。

(3)**面向过程的语言**。程序必须有特定的功能,必须有特定的数据结构。C++语言、Java。

3 .C语言的发展及其特点

1972年,D.M Ritchie在B语言的基础上设计了C语言。

1973年,ken Thompson和D.M Ritchie合作把UNIX的90%以上用C语言改写。

1978年,Brin W.Kernighan和Dennis M.Rithchie合著了影响深远的名著,***The C Programming Language***。

1989年,ANSI标准发布,C89。

1999年,ISO标准发布,C99。

C语言是一种用途广泛、功能强大、使用灵活的过程性(***procedural***)编程性语言,既可以用于编写应用软件,又可以编写系统软件。

C语言的主要特点:

(1)语言简洁、紧凑、使用方便、灵活。**37个关键词**,**9种控制语句**,程序书写形式自由,主要用小写字母表示。

    C语言是一个很小的内核语言,只包括极少的与硬件有关的成分,其不直接提供输入和输出语句、有关文件操作的语句和动态内存管理语句(这些操作是由编译系统所提供的**库函数**来实现)。

(2)运算符丰富。**34种运算符**

(3)数据类型丰富。**整型、浮点型、字符型、数组类型、枚举型、指针型、结构体类型和共用体类型**,C99扩充了**复数浮点类型、超长整型(long long)和布尔型(bool)**,尤其是**指针类型**使用十分灵活和多样化,能实现各种复杂的数据结构的运算。

(4)结构化的控制语句。***if...else语句;while语句;do...while语句;for语句***。用函数作为程序的模块单位,便于实现程序的模块化。C语言是完全模块化和结构化的语言

(5)语法限制不太严格,程序设计自由度大。

(6)C语言允许**直接访问物理地址,能进行位操作**,能实现汇编语言的大部分功能,可以对硬件进行操作。双重性,既是高级语言,又是低级语言。既是成功的系统描述语言,又是通用程序设计语言。

(7)用C语言编写的程序**可移植性好**。

(8)生成目标代码质量高,程序执行效率高。

------------------------------------------------------------------------------------------------

4. 最简单的C语言程序

例 1.1在屏幕输出一行信息

//在屏幕输出一行信息

例如:我是要成为嵌入式开发工程师的男人

'''

    #include <stdio.h>

    int main()

    {

        printf("我是要成为嵌入式开发工程师的男人\n");

        return 0;

    }  

'''

输出结果:

我是要成为嵌入式开发工程师的男人

例 1.2求两个整数之和

//求两个整数之和

'''

#include <stdio.h>

int main()

{

    int a,b,sum;

    a=512;

    b=1314;

    sum=a+b;

    printf("sum=%d\n",sum);

    return 0;

}

'''

输出:

sum=1836

例 1.3求两个整数中的较大者

//求两个整数中的较大者

'''

#include <stdio.h>

int main()

{

    int a,b,max;

    a=512;

    b=1314;

    if(a>b)

    {

        max=a;

    }

    else

    {

        max=b;

    }

    printf("max=%d\n",max);

    return 0;

}

'''

输出:

max=1314

例 1.4求两个整数中的较小者

//求两个整数中的较小者

'''

#include <stdio.h>

int main()

{

    int max()

    {

        int max(int x,int y)

        int a,b,c;

        scanf("%d%%d",&a,&b);

        c=max(a,b);

        printf("c=%d\n",c);

        return 0;

        }

    //求较大者函数

    int max(int x,int y)     //定义max函数

    {

        int z;

        if(x>y)z=x;

        else z=y;

        return z;

    }

}

'''

输入:

520 1314

输出:

1314

C语言的程序结构

特点:

(1)**一个程序由一个或多个源程序文件组成**。一个源程序文件可以包括3个部分。

    ①**预处理指令**。

    ②**全局声明**。函数之外进行的数据声明

    ③**函数定义**。

(2)**函数是C程序的主要组成部分**

   程序几乎全部工作都是由各个函数分别完成的,函数是C程序的基本单位,在设计良好的程序时,**每个函数都用来实现一个或几个特定的功能**。

   一个程序——>若干个源程序;一个源程序——>若干个函数;

(3)**一个函数包括两个部分**。

    ①**函数首部**。即函数的第一行,包括函数名、函数类型、函数参数。***int main(viod)***,括号内写函数的参数名及其类型,如果函数没有参数可写**void**。

    ②**函数体**。即函数首部下面的花括号内的部分。函数体一般包括两部分:

        **声明部分**:包括,定义在本函数要用到的变量;对本函数所调用函数进行声明;

        **执行部分**:由若干语句组成,指定在函数中所进行的操作。

(4)**程序总是从main函数开始执行**,与位置无关。

(5)程序要求计算机完成的**操作是由函数中的C语句完成**的**。

(6)**C语言本身不提供输入输出语句**。

(7)程序应当包含**注释**。'**//注释、/*注释*/**'。

5. 运行C程序的方法和步骤

**源程序(.c)**——>编译——>**目标程序(.obj)**——>连接处理——>**可执行程序(.exe)**(executive program)——>运行得到结果

6. 程序设计的任务

从确定问题到完成任务,六步骤:

问题分析——>设计算法——>编写程序——>对源程序进行编辑、编译和连接——>运行程序,分析结果——>编写程序文档

(1)**问题分析**。问题抽象化,建立模型。

(2)**设计算法**。设计出解题的方法和步骤。

(3)**编写程序**。根据得到的算法,用一种高级语言编写。

(4)**对源程序进行编辑、编译和连接**,得到可执行文件。

(5)**运行程序,分析结果**。

(6)**编写程序文档**。用户使用说明书,又称为用户文档,help,readme形式。

-----------------------------------------------------------------------------------------------------

习题

1.什么是程序?什么是程序设计?

①**程序是一组计算机能识别和执行的指令**。每一条指令使计算机执行特定的操作 。

②**程序设计是指从确定任务到得到结果、写出文档的全过程**。

2.为什么需要计算机语言?高级语言有哪些特点?

①计算机语言解决了人和计算机交流信息的语言问题,其是计算机和人都能识别的语言。

②高级语言的特点:

第一,数据结构丰富。高级语言的数据结构要比汇编和机器语言丰富;

第二,执行效率没有低级语言高。高级语言与具体机器结构的关联没有汇编以及机器语言密切;

第三,可读性强。高级语言更接近自然语言更容易掌握;

第四,需要编译。高级语言编写的程序要经过编译或解释计算机才能执行。

3.编写一个C程序,运行时输入a,b,c三个值,输出其中最大者。

'''

//重构

#include<stdio.h>

//主函数

int main()

{

    int max(int x,int y,int z);

    int a,b,c,n;

    printf("请输入a,b,c三个值:");

    scanf("%d,%d,%d",&a,&b,&c);

    n=max(a,b,c);

    printf("最大值n=%d",n);

    return 0;

}

//定义最大者函数

int max(int x,int y,int z)

{

    int k;

    if(x>y&&x>z)k=x;

    else if (y>x&&y>z) k=y;

    else k=z;

    return k;

}

'''

'''

输入:

请输入a,b,c三个值:520,1314,965

'''

'''

输出:

最大值n=1314

'''

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值