C语言程序设计(理论课)第二章(理解)算法和第三章数据类型及其运算

本文详细介绍了C语言中的算法概念,强调了算法在程序设计中的重要性。接着深入讲解了数据类型,包括常量、变量、整型数据的分类与存储、浮点型数据的表示和误差、字符型数据以及运算符和表达式。内容涵盖整型数据的溢出、无符号整型、浮点型数据的舍入误差、字符常量与字符串常量的区别,以及算数、关系、逻辑、位运算符的使用。此外,还讨论了赋值运算符和条件运算符的应用。
摘要由CSDN通过智能技术生成

第二章算法——程序的灵魂

算法+数据结构=程序
数据结构
 对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。
算法
 对操作的描述。即要求计算机进行操作的步骤。
 广义的说,为解决一个问题而采取的方法和步骤,就称为“算法”。
 对同一个问题,可以有不同的解题方法和步骤。为了有效地进行解题,不仅需要保证算法的正确,还要考虑算法的质量,选择合适的算法

第三章数据类型及其运算

3.1常量和变量

在计算机高级语言中,数据的两种表现:
A常量   B变量
1、常量:在程序运行过程中,其值不能被改变的量。
1.整型常量…1000,122345,0,-345
2.实型常量…小数形式123.456;指数形式12.34e3,-34.8E-23
3.字符常量…普通字符‘a’,‘Z’,‘3’,’?’,’#’;转义字符‘\n‘,‘\012‘,‘h1B’
4.字符串常量…“123”,“boy”
5.符号常量…#definePI3.1416//注意行末没有分号

转义字符 字符值 输出结果
\’ 一个单撤号(’) 输出单撤号字符’
\" 一个双撤号(") 输出双撤号字符‘’
\? 一个问号(?) 输出问号字符?
\ \ 一个反斜杠() 输出反斜线字符\
\a 警告(alert) 产生声音或视觉信号
\b 退格(backspace) 将光标当前位置后退一个字符
\f 换页(form feed) 将光标当前位置移到下一页开头
\n 换行 将光标当前位置移到下一行的开头
\r 回车(carriage return) 将光标当前位置移到本行的开头
\t 水平制表符 将光标当前位置移到下一个Tab位置 (相当于空格)
\v 垂直制表符 将光标当前位置移到下一个垂直制表对齐点
\o、\oo或\ooo其中o代表一个八进制数字 与该八进制码对应的ASCII字符 与该八进制码对应字符
\xh[h…]其h代表一个十六进制数字 与该十六进制码对应的ASCII字符 与该十六进制码对应字符

2、变量
 变量代表一个有名字的、具有特定属性的一个储存单元
 变量用来存放数据,也就是存放变量的值。
 在程序运行期间,变量的值是可以改变的。
 变量必须先定义,后使用。(重要)
变量定义的一般形式:类型名 变量名=初值

int a,b,c				//定义a,b,c为整型变量
float m=3.5,n=-7.8,p	//定义m,n,p为浮点型变量并对m和n指定初值

3、标识符 (重要,考选择题)
 标识符就是一个对象的名字。用于标识变量、符号常量、函数、数组、类型等
 标识符只能由字母、数字和下划线 3种字符组成,且第一个字符必须为字母或下划线

注意:
· 变量名中区分大小写字母
· 不能使用关键字作为变量名
· 变量的名字应该尽量反应变量在程序中的作用与含义

C语言中的(32个)关键字

union联合数据类型 break case while
char字符 continue default do
double双精度 else switch return
float浮点型 for goto if
int整型 long长整型 extern外部变量(存储类型) const(其他)
short短整型 signed有符号类型 static静态变量(存储类型) sizeof(其他)
struct结构体 enum枚举类型 auto自动变量(存储类型) typedef(其他)
unsigned无符号型 void无返回值类型 register寄存器变量(存储类型) volatile(其他)

未标注的为数据类型关键字
黄色标注为控制语句关键字

3.2数据类型

 所谓类型,就是对数据分配储存单元的安排,包括储存单元的长度(占了多少字节)以及数据的存储形式。
 不同的类型分配不同的长度和存储形式

基本类型int
短整型 short int
整型类型 长整型long int
基本类型 *双长整型 long long int
字符型 char
*布尔型bool
单精度浮点型float
浮点类型 双精度浮点型double
复数浮点型float_complex,double_complex,long long_complex
数据类型 枚举类型enum
空类型void
指针类型 *
派生类型 数组类型[ ]
结构体类型 union
函数类型

3.3整型数据

整型常量的形式
1、 十进制整数
如:123,-456,4
2、 八进制整数
以0开头的数是八进制数,如:0123表示八进制数123
3、 十六进制整数
以0x开头的数是十六进制数,如:0x123表示十六进制123

1、整型数据在内存中的存储方式

int i;		//定义i为整型变量
i=10;		//给i赋以整数10

十进制10的二进制形式是1010,在内存中存放的情况:
0000000000001010
实际上数值是以补码表示的。正整数的补码与原码一样。负整数的补码值是
第一步:将此数绝对值的二进制形式;
第二步:除最高位符号位外其他数取反;
第三步:加1。-10的补码:
原码:1000000000001010
11111111111110101
补码: 1111111111110110

2、整型数据的分类

整型数据类型名称 整型数据类型 字节数 取值范围
基本型 int 4(基本型根据用的编辑器不同而不同,有的是2) -2147483648~ 2147483647(-2131~2131-1)
短整型 short int/short 2(字节数x8=16位) -32768~ 32767(-215~215-1)
长整型 long int/long 4 (32位) -2147483648~2147483647(-2131 ~ 231-1)
双长整型 long long int/long long 8 (64位) -9223372036854775807(-263~262-1)

说明:C标准没有具体规定各种类型数据所占用存储单元的长度,只要求sizeof(short)≤sizeof(int)≤sizeof(long)≤sizeof(long long),具体由各种编译系统自行决定的。
sizeof是测量类型或变量长度的运算符。

3、整型数据的溢出

【例3.1】整型数据的溢出

#include<stdio.h>
int main()
{
   
	short int a,b;
	a=32767;
	b=a+1;
	printf("a=%d,a+1=%d\n",a,b);
	return 0;
}

a:0111111111111111→32767
b:1000000000000000→ -32768
一个字节的短整型变量只能容纳-32768~32767的数,无法表示大于32768或小于-32768的数。遇到此情况就发生==“溢出”==,如果将变量b改为int或long型就能得到正确的结果32768。
** 说明** :用计算机实现计算和数学上的纯理论计算是不相同的,计算机的计算是通过工程的方法实现的。

在这里插入图片描述

4、无符号整型变量(重要)

在定义int,short int和long int类型变量时,都可以加 修饰符 unsigned,以指定为“无符号整数”。加修饰符signed或缺省,则表示“有符号整数”。
对无符号整数用“%u”格式输出,表示无符号十进制数。对有符号整数一般用“%d”格式输出。
在将一个变量定位为无符号整型后,不应向它赋予一个负值,否则会得到错误的结果。

<
整型数据类型 缺省形式的整型数据类型 字节数 取值范围
[signed] int int 4 -2147483648~ 2147483647(-2131~2131-1)
unsigned [int] unsigned 4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值