C语言:3.顺序结构程序设计

本文介绍了C语言中的基本概念,包括表达式语句(如算数运算符和赋值表达式)、数据类型(整型、浮点型、字符型及其常量)、变量的声明与赋值、类型转换,以及如何生成随机数的库函数rand()和srand()。此外,还讨论了指针变量的定义、初始化和使用。
摘要由CSDN通过智能技术生成

目录

语句分类

表达式语句

1.表达式:

2.算数运算符

3.赋值语句

数据类型

变量与常量

·整型变量与整型常量

·浮点型变量与浮点型常量

·字符变量与字符常量

·变量类型的转换

库函数(生成随机数)

·rand()

·srand()

指针变量


语句分类

(标红的为三种基本的顺序语句)

1.数据声明语句 :说明变量的数据类型,也可同时完成变量的初始化。

2.表达式语句:进行数据运算或处理的语句。

3.控制语句:完成一定的控制功能,常用于规定语句执行的顺序。

4.特殊语句:空语句。仅由一个分号构成,表示什么也不做。复合语句。由花括号括起来的在逻辑上相关的一组语句。

表达式语句

1.表达式

由运算符连接运算对象(操作数)所组成的式子。

·单个的常量、变量、函数也是表达式;

·算数表达式;(由算数运算符号和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子。)

eg:

num*money //进行乘法运算的表达式

·赋值表达式;(一般形式:变量=表达式

注:赋值表达式中“=”右边也可以是赋值表达式,“=”具有右结合性

2.算数运算符

+:加法,用于将两个值相加。
-:减法,用于将一个数从另一个数中减去。
*:乘法,用于将两个值相乘。
/:除法,用于将一个数除以另一个数得商。(若a,b是整数,则为整除)
%:求余,用于计算一个数除以另一个数的余数(a,b都必须为整数)

++/--:自增自减符(只能对变量处理)

注:

·操作数有一个是浮点型,结果也是浮点型。除法操作符 / 在整数运算时会进行截断,丢弃小数部分。如果需要得到浮点型的结果,应该使用浮点型变量或者强制类型转换。

·使用变量之前必须先定义;变量不能没赋值就使用;变量名要符合变量命名规则;变量名不能重名;语句不能漏掉分号。

3.赋值语句

赋值语句由赋值表达式加分号构成,一般形式为:变量名=表达式;

注:

·变量初始化时不允许给多个变量赋初值,可用逗号间隔给多个变量赋初值。

·语句不可以出现在表达式中。

·支持“+=,-=,*=,/=”等复合赋值运算符。

a+=b; /*等同于 a=a+b*/
a-=b; /*等同于 a=a-b*/
a*=b; /*等同于 a=a*b*/
a/=b; /*等同于 a=a/b*/
a%=b; /*等同于 a=a%b*/

数据类型

变量与常量

常量:其值保持固定不变;变量:随着程序的运行发生变化,长度用字节来描述。

8bit(位)=1byte(字节),1024byte=1KB,1024KB=1MB,1024MB=1GB,1024GB=1TB.

·整型变量与整型常量

整型变量:

定义大于0的整数类型,用到类型说明符unsigned

整数类型常见存储空间大小和取值范围
类型存储空间大小最小值最大值
char(与 signed char 或 unsigned char 相同)
unsigned char1个字节0255
signed char1个字节-128127
int2个或4个字节-32 768 或 -2 147 483 64832767 或 2 147 483 647
unsigned int2个或4个字节065 535 或 4 294 967 295
short2个字节-32 76832 767
unsigned short2个字节065 535
long4个字节-2 147 483 6482 147 483 647
unsigned long4个字节04 294 967 295
long long (C99)8个字节-9 223 372 036 854 775 8089 223 372 036 854 775 807
Unsigned long long (C99)8个字节018 446 744 073 709 551 615

整型常量:

十进制常量:由0-9组成的数字序列。例如:123
八进制常量:以0(零)开头,后跟0-7的数字序列。例如:0123
十六进制常量:以0x或0X开头,后跟0-9或A-F的数字序列。例如:0x7B

除此之外,还可以在整型常量末尾加上一个后缀,表示变量的类型。例如:

10L表示长整型常量
10U表示无符号整型常量
10UL表示无符号长整型常量

其中,L表示long,U表示unsigned,UL表示unsigned long。如果没有后缀,则默认为int类型的整型常量。

·浮点型变量与浮点型常量

浮点型变量:有两种类型,即float、double

float类型:存储单精度浮点数,占用4个字节的空间,范围约为±3.4e-38至±3.4e+38,精度约为7位小数。
double类型:存储双精度浮点数,占用8个字节的空间,范围约为±1.7e-308至±1.7e+308,精度约为15位小数。

注:

浮点型变量应该用%f格式化输出。
浮点型变量不应该直接与0比较,因为浮点数存在精度误差,应该用fabs函数判断一个浮点型变量是否等于0。
在计算时应该考虑到浮点数的精度问题,避免出现精度误差过大的结果。
浮点数的运算速度比整数慢,因此在需要高效运算的情况下应该尽可能使用整数运算。

浮点型常量:默认类型为double,和整型常量有后缀一样,浮点型常量末尾也可加上浮点型后缀,后缀f或F表示float型。

·字符变量与字符常量

字符变量:指被定义为 char 类型的变量。可以使用赋值运算符将一个字符值赋给一个字符变量。例如:

char ch;
ch = 'a';

这里定义了一个名为 ch 的字符变量,并将小写字母“a”赋给它。字符变量可以用于存储任何单个字母、数字或符号。

字符常量:指一个已知的、固定的字符值。在C语言中,字符常量用单引号('')括起来。例如:

char ch = 'a';

这里定义了一个名为 ch 的字符变量,并将小写字母“a”赋给它。在这种情况下,“a”被视为一个字符常量。

字符常量可以是任何单个字母、数字或符号。字符常量只能包含单个字符,而字符变量可以存储任何单个字符。

ASCII码:

ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)是一种将字符编码成数字的标准系统。它共定义了128个字符,包括数字、字母、符号和控制字符等。

在C语言中,每个ASCII字符都有一个对应的整数值:

0~9:48~57

大写字母A~Z:65~91

小写字母a~z:97~123

·变量类型的转换

自动类型转换:当表达式中包含不同数据类型的变量时,编译器会自动根据一定规则进行类型转换,使得表达式计算结果的类型与所赋值的变量类型相同。例如:

int a = 10;
double b = 3.14;
double c = a + b; // a会被自动转换为double型再与b相加得到c的值

转换规则如下

 降级:等级较高的类型被转换成等级较低的类型。

强制类型转换:可以通过在变量前加上需要转换的类型来进行强制类型转换。

一般形式:(类型说明符)(表达式)

例如:
 

int a = 10;
double b = 3.14;
int c = (int)(a + b); // 将a+b的结果强制转换为int型再赋值给变量c

注:在“降级”或强制类型转换时可能会造成精度损失或者溢出现象,编译器会把高位部分截断。

库函数(生成随机数)

C语言提供了rand()和srand()两个库函数用于生成伪随机数。

·rand()

rand()函数生成一个0到RAND_MAX(在stdlib.h头文件中定义)之间的伪随机整数。(每次生成随机数相同)

用法:

void rand(void)

设定范围:从X到Y,有Y-X+1个数,所以要产生从X到Y的数 k=rand()%(Y-X+1)+X


·srand()

srand()函数用于初始化rand()函数生成随机数所使用的种子值。如果不设置种子值,则每次程序运行时都会生成相同的随机数序列。

用法:

#include <stdlib.h>
void srand(unsigned int seed);

通常情况下,可以使用time()函数作为srand()函数的种子值,以确保每次生成不同的随机数序列:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    srand(time(NULL)); // 使用当前时间作为种子值
    int random_num = rand() % 10; // 生成0-9之间的随机数
    printf("The random number is: %d", random_num);
    return 0;
}

设定范围:从X到Y,有Y-X+1个数,产生从X到Y的数 k=rand()%(Y-X+1)+X,从0开始则可省略“+”以及后续内容。

指针变量

定义指针变量:一般形式为 类型名 *指针变量名

eg:

int *pa;

指针变量赋值:定义后不能直接使用,先给它赋值为某个变量的内存地址,然后使用。

eg:

int a=0;
int *pa; 
pa=&a; //给pa赋值为a变量的内存地址

指针变量初始化:定义指针变量的同时完成赋值称。

eg:

int a=0;
int *pa=&a;

通过指针间接访问变量:建立指向关系后,用间接访问符“*”作用与指针变量来得到需要的值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值