Advertisement

【C语言】入门基础知识一

阅读量:

一、程序设计语言
程序设计语言包含三个主要要素:语法、语义与语用。
语法规定了程序的语言结构及其构成要素。
语法部分通常以数学公式int a;的形式进行描述。
语义决定了程序表达的概念和意义。
语义部分则通过变量声明如int a;来体现。
语用揭示了一个程序与使用者的相互作用关系。
例如,在C语言中通过函数调用如printf("Hello, World!");来实现人机交互功能。

随着发展, 程序设计语言逐渐划分为四个阶段. 机器语言、汇编语言、高级语言及第四代通用编程语言(4GL)构成了这一分类体系. 机器语言基于二进制代码0和1, 由计算机直接执行. 其特点包括: 编程难度大、调试困难且难以维护; 同时需要开发者直接分配内存空间, 导致程序运行效率较低; 现多被废弃使用

  1. 汇编语言:是一种基于指令集的编程方式。机器指令的符号化表示方法是由操作码标识和操作数指定所组成的一种指令系统。
    特点:
    (1)学习难度较大、易出错且维护成本较高等缺点
    (2)可以直接访问计算机系统接口,并且使用汇编程序将机器代码生成后的机器级程序运行效率较高。
    (3) 维护困难且不适合作为初学编程者的首选编程范式
    MOV R1, R2
  2. 高级语言:通过算术表达式描述运算过程,并采用面向用户的方式进行编程设计,在很大程度上实现了与计算机硬件架构的独立性。
    特点:
    (1)其形式上接近于算术表达式以及自然语言的形式,在概念层面上也较为接近于人们日常生活中所使用的概念。
    (2)适合于程序员理解和编写代码;由于其语义易于记忆且通用性较强,在各类编程任务中具有广泛的应用场景。
    JAVA C# C++
  3. 第四代语言(简称4GL)
    4GL是一种非过程化的编程范式,在进行程序设计时只需要说明"要做些什么"即可。
    典型代表:
    数据库查询工具及应用程序生成器类的应用软件开发平台。
    特点:
    (1)显著缩短了应用软件的开发周期
    (2)大大降低了程序维护所需的成本
    (3)最大限度地减少了程序调试过程中可能出现的问题
    (4)界面友好度高

三、C语言特点:
1.语言精炼明了(书写方便灵活)。
2.运算符种类繁多。
3.数据结构类型极为丰富(提供多种数据组织方式)。
4.具备结构化控制结构(如if-else、for循环等)。
5.语句使用较为宽松(相对严格的编程约束)。
6.C语言可以直接访问物理地址(便于底层操作)。
7.生成的目标代码质量较高(运行效率显著)。
8.相比汇编语言具有更好的可移植性

四、C语言程序的结构
1.包含头文件#include "stdio.h"属于预处理语句
2.main()函数是主函数;括号不可省略,并用{ }包裹形成函数体
3.注释语句由/* */标识,在程序运行时被忽略,并用于解释说明

#include "stdio.h"
main()
{
函数体;
}
注意:有且仅有一个主函数。

例题:编程实现:输出3+2的值。

#include "stdio.h"
main()
{
int a=3;
int b=2;
int c;
c=a+b; /变量存储a+b的值/
printf("%d",c);

}

小结:
1.构成C程序的基本单元是各种功能模块。任何一个完整的C程序都必然包含一个入口点功能模块(通常是main函数)。
2.任何合法运行的C程序都必定从主功能模块启动执行过程。
3.允许在一个代码行中嵌入多个独立指令代码项,并支持跨行断行组织代码结构。
4.C语言编程规范规定:每个控制指令必须以分号结束;其中特别指出的是预处理指令和标准库声明前后及闭合花括号时禁止使用分号。
5.C语言编程实践表明:不提供专门的输入输出指令这一特点使得开发效率得到显著提升。

二、数据类型的特征包括所占用字节数及其数值表示范围。
数据类型的分类如下:

  1. 整数类型使用int变量,在占用2个字节的情况下可表示从-32768到32767的数值。
  2. 长整数类型由long或long int变量实现,在占用4个字节的情况下可表示更大范围的数值。
  3. 单精度浮点数使用float变量,在占用4个字节的情况下可表示较小范围的小数值。
  4. 双精度浮点数通过double变量实现,在占用8个字节的情况下能够精确表示较大的数值。
  5. 字符类型由char变量定义,在占用1个字节的情况下可存储基本字符信息。

整数类型又分为有符号整型和无符号整型

无符号整型主要用于存储真实的数值数据,并采用从零开始到六万五千五百三十五(即2¹⁶减一)的计数范围。
有符号整型通过最高有效一位来标识正负号,在其中一位设置为负号时其数值范围是从负三万二千七百六十八到正三万二千七百六十七。
一个字节由八位组成,在有符号情况下第一位代表的是符号信息。
在十六进制计算机架构中,默认情况下最左边的一位置用于标识数值的正负属性。

二进制数:
00000000 00000101---->5
10000000 00000101---->-5

原码:等同于二进制数的表示。最高位用0表示正,用1表示负。
00000000 00000101---->5 原码
10000000 00000101---->-5 原码

反码:机器补码是指用于计算机中表示有符号整数的一种编码方式。对于正整数值来说,在机器补码下的表示与在自然二进制下的表示完全一致。而对于负整数值,则是其绝对值对应的二进制形式经过每一位数字进行取反操作后得到的结果,并且保留最高有效位作为符号位以区分正负数值。例如,在机器补码下表示-5的数值形式是通过将5对应的二进制各位数字取反后得到的,并且在该过程中最高有效位保持不变作为符号标记使用

00000000 00000101---->5 反码
11111111 11111010---->-5的反码

补码:具有相同形式的正数值与原值一致;而对于负数值,则为其反值加一的结果。亦即,在原始编码体系下(不考虑符号位),其余位取反后增一即可得到其complement code形式。
其complement code表示为 5;
其反code表示为 -5。

00000000 00000000----> 0
01111111 11111111——> 32767

10000000 00000000--->-32768
10000000 00000001--->-1

完成练习一

完成练习一

完成练习一

完成练习一

练习2:写出x=+1101001的原码、反码和补码
x:
二进制数:01101001
原码:01101001
反码:01101001
补码:01101001

练习3:写出y=-1101001的原码、反码和补码
y:
二进制数:11101001
原码:11101001
反码:10010110
补码:10010111

三、常量

练习题:在以下四个选项中,八进制与十六进制数均为正确的为(A)。

(二)字符常量
由一对单引号引出的单一字符即为字符常量。'a'
转义字符:
换行符\n用于换行。\n
制表符\t用于水平制表。\t
垂直制表符\v用于垂直制表。\v
退格键backspace\使用\b表示。\b
反斜杠\使用\表示。\
单引号'使用'表示。'
双引号"使用"表示。\"
八进制转义\ddd采用\xhh表示1~3位八进制数对应字符。\xhh
十六进制转义\d d采用\xhh表示1~2位十六进制数对应字符。\xhh
'\101'具体表示'A'。\101:A
'\102'具体表示'B'。\102:B
'\134'则具体实现为反斜杠。\134:Backspace

(三)、String literals
String literals are enclosed in a pair of double quotes and can contain zero or more characters.
The empty string is represented by "" and its length represents the number of characters it contains.
For example, in programming, common scenarios include strings like "my name is 'xing', ok?".
The output will be: my name is "xing", ok?

例如2:下面程序的执行结果是___re'hi'you


#include "stdio.h"
main()
{

printf("a\bre'hi'y\ \bou\n");
}

全部评论 (0)

还没有任何评论哟~