新手入门C语言

        许多大一新生在初学C语言是总会遇到各种各样的问题与疑惑,我今天就在这里为大家进行充分的答疑与解惑,让大家走出C语言的无误区,以及能够少模仿与学习网络上的各种错误代码。

        我们将讲解C语言的基础语法知识以及它们的一些简单运用。(此文感谢李祥老师,文章持续更新中)

目录

高级语言程序设计——C语言篇(基础语法)

一、基础知识

        1.数值与转换

                (1)十进制

                (2)二进制

                (3)十六进制

                (4)科学计数法

                (5)小数与分数的转换

                (6)十进制转换为二进制

        2.程序设计语言

                (1)什么是程序?

                (2)什么是计算机程序?

                (3)程序设计与程序设计语言

                (4)低级语言与高级语言

                (5)什么是翻译程序?

                (6)什么是解释程序?

                (7)什么是编译程序?

                (8)什么是连接程序?

                (9)程序开发的基本过程

        3.C语言简介

                (1)C语言的特点

                (2)C与C++的区别

                (3)C语言的保留字

二、基本运算

        1.整数及其运算

        2.字符及其运算

        3.实数及其运算

        4.表达式

三、基本模块

        1.函数基础

        2.预处理命令

        3.变量

        4.指针初步

四、流程控制

        1.流程图

        2.语句分类

        3.项目组织

五、选择结构

        1.选择语句

        2.判断函数

        3.递归函数

        4.条件编译命令

六、循环结构

        1.循环语句

        2.穷举法

        3.迭代法

        4.静态变量

七、数组

        1.一维数组

        2.字符串

        2.二维数组


高级语言程序设计——C语言篇(基础语法)

一、基础知识

        1.数值与转换

                我们学习C语言,必然对于计算机有或多或少的了解,也常常会听到“二进制”之类的话语

        ,在这一节中,我们就来了解什么是数制以及他们之间的转化。

                我们常用的数值为:十进制、二进制、十六进制、二十进制、六十进制等等。

(1)十进制

                数码:0, 1, 2, 3, 4, 5, 6, 7, 8, 9

                规则:逢十进一

                10^3  10^2  10^1  10^0  10^{-1}  10^{-2}

                 2      4      0      5.      8        7

                2405.87 = 210^3 + 410^2 + 010^1 + 510^0 + 810^{-1} + 710^{-2}

(2)二进制

                数码:0, 1

                规则:逢二进一

十进制二进制十进制二进制十进制二进制十进制二进制
0016100003210000048110000
1117100013310000149110001
21018100103410001050110010
31119100113510001151110011
410020101003610010052110100
510121101013710010153110101
611022101103810011054110110
711123101113910011155110111
8100024110004010100056111000
9100125110014110100157111001
10101026110104210101058111010
11101127110114310101159111011
12110028111004410110060111100
13110129111014510110161111101
14111030111104610111062111110
15111131111114710111163111111

              

                 2^3  2^2  2^1  2^0  2^{-1}  2^{-1} 

                 1     1    0    1.   1     1

                (1101.11)^{_{2}} = 12^3 + 12^2 + 0 *  2^1 + 12^0 + 12^{-1} + 1 *  2^{-1}

(3)十六进制

                数码:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F(或a, b, c, d, e, f)

                规则:逢十六进一

                16^2  16^1  16^0  16^{-1}  16^{-2}

                 3      0      E.      5       8

                (30E.58)_{16} = 316^2 + 016^1 + E16^0 + 516^{-1} + 816^{-2}

(4)科学计数法

                十进制科学计数法:

                        -12345.6 = -1.23456 * 10^{4}

                        0.0003532 = 3.532 * 10^{-4}

                二进制科学计数法:

                        11100.11 = 1.110011 * 10^{100}

                        -0.00001011 = -1.00 * 10^{-101}

                注:有效数字、底数、指数均为相应进制

(5)小数与分数的转换

                此处只举二进制数的例子,其余进制数类似:

                        10.101 = 10 + \frac{101}{1000}

                        10.\dot{1}0\dot{1} = 10 + \frac{101}{111}

                        10.10\dot{1}0\dot{1} = 10 + \frac{10}{100} + \frac{101}{11100}

(6)十进制转换为二进制

                (4.357)_{10} = (100.011)_{2}

                将十进制数分为整数部分4和小数部分0.357

                对于整数部分:

                        采用短除法(如图示)

                对于小数部分:

                        采用逐乘取整法(如图示)

        2.程序设计语言

                (1)什么是程序?

                        举一个番茄炒鸡蛋的例子:

                                我们进行烹饪这道菜时,首先洗净番茄,去皮、切块,再打散鸡蛋,然后平底

                        锅中加入适量盐,开火,将番茄炒至凝结后,调大火,加入番茄,至熟后,出锅、

                        结束。

                                这就是一个炒番茄的方法。

                        这种方法步骤,我们就叫它为程序。

                (2)什么是计算机程序?

                        简单来讲,就是在计算机内部进行的一连串操作,通常在内存中进行。

                (3)程序设计与程序设计语言

                        程序设计:

                                是设计、编制和调试程序的过程。它是目标明确的智力活动。

                        程序设计语言:

                                是用于计算机程序的语言。

                                语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是

                         语言。

                                在程序设计语言中,这些记号串就是程序

                (4)低级语言与高级语言

                        低级语言:

                                如汇编语言:

                                        MOV AX, x                           A1 0178           [0178]的值取至AX中

                                        ADD AX, y        \rightarrow汇编后     0306 018C       [018C]的值加至AX中

                                        MOV, z, AX                          A3 019E            AX的值存至[019E]中

                        高级语言:

                                                                                    A1 0178           [0178]的值取至AX中

                                        z = x * y;          \rightarrow编译后     0306 018C       [018C]的值加至AX中

                                                                                    A3 019E            AX的值存至[019E]中

                        

                        于是相比较而言:

                                低级语言:面向机器,与机器密切相关。功效高,但使用复杂、繁琐、易错。

                                高级语言:面向问题,与具体机器无关。易学、易维护,但其功效往往较低。

                (5)什么是翻译程序?

                        把一种程序设计语言所写的程序翻译成与之等价的另一种程序设计语言所表示的程

                序的软件。被翻译的程序称为源程序,翻译程序翻译出的程序称为目标程序。书写源程

                序所用的程序设计语言称为源语言,用于构成目标程序所用的语言称为目标语言

                (6)什么是解释程序?

                        按照源程序的指令或语句的动态执行顺序,逐条或逐句翻译,并立即执行的翻译程

                序。解释程序把源程序中的指令或语句翻译成对应的一条或一组机器指令,并立即执行,

                不生成目标程序。

                (7)什么是编译程序?

                        把用高级程序设计语言书写的源程序,翻译成等价的计算机汇编语言或机器语言的目

                标程序的翻译程序。编译程序的实现算法较为复杂,这是因为它所翻译的语句与目标语言

                的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存

                储分配、多种数据类型,以及语句间的紧密依赖关系。

                (8)什么是连接程序?

                        程序库:一些经常使用、经过检验的规范化程序或子程序的集合(如:开方、三角函

                数、指数和对数函数、代数方程、微分方程和积分方程的求解程序等)

                        连接装配程序:把多个经过编译或汇编的目标模块,以及系统的程序库,连接装配成

                一一个完整的可执行程序的软件。

                (9)程序开发的基本过程

                        以C语言为例子:

                        编译:调用编辑软件创建或修改源程序文件(.c)

                        编译:调用编译程序对源程序进行编译,生成目标文件(.o, .obj)

                        连接:调用连接程序将目标文件和系统库进行连接,生成可执行文件(.exe)

                        运行:运行可执行文件,输入所需要的数据,得到相应的输出结果

        3.C语言简介

                (1)C语言的特点

                        语言简介、紧凑、使用方便、灵活(32个关键字,9种控制语句,程序形式自由)

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

                        数据类型丰富(具有现代化语言的各种数据结构)。

                        完全模块化和结构化的语言(具有结构化的控制语句)。

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

                        兼有高级语言和低级语言的特点(允许直接访问物理地址,能进行位操作,能使实

                现汇编语言的大部分功能,可直接对硬件进行操作)。

                        目标代码质量高,程序执行效率高(只比汇编程序生成的目标代码效率低

                10%~20%)。

                        程序可移植性好。

                        C语言是程序员的语言。

                (2)C与C++的区别

                        C是面向过程的语言。

                        C++是C的超集,它的主要特点是面向对象。

                (3)C语言的保留字

                        标准C语言的32个保留字:
                                变量数据类型(14个):char  short  int  long  float  double  signed  unsigned 

                                                                    void  volatile  typedef  struct  enum  union

                                基本语句有关(12个):if  else  witch  case  break  default  for  do  while

                                                                   continue  goto  return

                                存储类型有关(5个):const  extren  static  register  auto

                                运算符(1个):sizeof

                (4)简单的C程序

                        C语言是由函数组成的语言下文代码中“int main()”就是一个函数首部,后面大括号

                内的就是函数体,“printf...”和“return 0”都是语句,其中后者的作用是返回函数值,并结

                束这个函数,其中名字为“main”的函数就是C语言的主要函数,任何C语言的执行都由这

                个函数开始,从这个函数结束。

#include <stdio.h>

int main()
{
    printf("Hello, world!");
    return 0;
}

二、基本运算

        1.整数及其运算

                (1)基本原理

                        无符号整数(以4位无符号整数举例):

                                值域:0 ~ 15 (0 ~ 2^{4} - 1)

                                模数:16 (2^{4})

10111110
+      0010+      0011
1101     1 0001
(11+2) mod 16(14+3) mod 16
=13 mod 16=17 mod 16
=13=1

类型名称字长模数值域
unsigned char8位256 (2^{8})0 ~ 256
unsigned short int16位65,536 (2^{16})0 ~ 65,536
unsigned long int 32位4,294,967,296  (2^{32})0 ~ 4,294,967,296
unsigned long long int64位18446744073709500000 (2^{64})0 ~ 18446744073709500000

                        符号整数(以4位符号整数举例):

                                符号的表示:

XXXX

                                                            (符号位)

                                                             0 表示,1 表示

                                符号整数的编码:原码,反码,补码(现代计算机符号整数采用补码表示)

                        原码:

                                正整数的原码:[x]_{yuan} = x, 0 \leqslant x < 2^3

                                求相反数的方法:颠倒最高位(1111的相反数为0111)

                                不能直接计算:

                                        ([x]_{yuan} + [x]_{yuan}) mod 2^{4} \neq [x + y]_{yuan}

        2.字符及其运算

        3.实数及其运算

        4.表达式

三、基本模块

        1.函数基础

        2.预处理命令

        3.变量

        4.指针初步

四、流程控制

        1.流程图

        2.语句分类

        3.项目组织

五、选择结构

        1.选择语句

        2.判断函数

        3.递归函数

        4.条件编译命令

六、循环结构

        1.循环语句

        2.穷举法

        3.迭代法

        4.静态变量

七、数组

        1.一维数组

        2.字符串

        2.二维数组

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值