C语言-002

AI4天前发布 beixibaobao
4 0 0

一、变量定义与命名规则

(一)变量定义

  1. 一般形式:<类型名称> <变量名称>;
    • 示例:int price; int amount;
  2. 多个变量同时定义:<类型名称> <变量1>, <变量2>;
    • 示例:int price, amount;
  3. 变量初始化:定义变量时直接赋予初始值
    • 单个变量初始化:<类型名称> <变量名称> = <初始值>;
    • 示例:int price = 0; int amount = 100;
    • 多个变量组合初始化:可单独为每个变量赋值
    • 示例:int price = 0, amount = 100;

(二)变量命名规则(标识符规则)

  1. 标识符由字母、数字和下划线组成
  2. 数字不能出现在标识符的第一个位置
  3. 不能使用 C 语言的关键字(保留字)作为标识符

(三)C 语言保留字

auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while、inline、restrict

二、变量类型与数据类型

(一)变量类型核心规则

  1. C 语言是强类型语言,所有变量使用前必须定义或声明
  2. 变量必须具有确定的数据类型,只能存放对应类型的数据
  3. 程序运行过程中不能改变变量的类型

(二)基本数据类型

数据类型 描述 输入格式符 输出格式符 示例
int 整数类型,用于存储整数,运算速度快、占用空间小 %d %d int age = 20;
double 双精度浮点数,用于存储带小数点的数值(推荐使用) %f %f double weight = 62.5;
float 单精度浮点数,用于存储带小数点的数值 %f %f float height = 1.75f;

(三)整数类型特性

  1. 不能表达小数部分,整数与整数运算结果仍为整数(如 10 / 3 = 3
  2. 日常大量计算场景适用,实用性强

(四)浮点数类型特性

  1. 浮点数(浮点型):指带小数点的数值,小数点可 "浮动",是计算机表达非整数的主要方式
  2. 与整数混合运算时,C 语言会先将整数转换为浮点数,再进行浮点运算
  3. 注意:10(整数)和 10.0(浮点数)在 C 语言中是完全不同的数据类型

三、常量

(一)直接量(字面常量)

程序中直接书写的固定不变的数,如 1003.14 等,示例:int change = 100 - price; 中的 100

(二)const 修饰的常量

  1. 定义格式:const <类型名称> <常量名称> = <初始值>;
    • 示例:const int AMOUNT = 100;
  2. 特性:
    • const 是修饰符,给变量添加 "不可修改" 属性
    • 常量初始化后不能再修改,若试图修改会被编译器报错
    • 推荐使用:增强程序可读性和可维护性

四、输入与输出

(一)输入函数 scanf

  1. 读取整数:scanf("%d", &变量名);
    • 注意:变量名前必须加取地址符 &,示例:scanf("%d", &price);
  2. 读取浮点数:scanf("%f", &变量名);
    • 示例:scanf("%f", &weight);

(二)输出函数 printf

  1. 输出整数:printf("%d", 变量名/表达式);
    • 示例:printf("找您%d元。n", change);
  2. 输出浮点数:printf("%f", 变量名/表达式);
    • 示例:printf("体重为%fkgn", weight);

(三)变量定义位置差异(ANSI C 与 C99)

标准 变量定义位置 示例
ANSI C 只能在代码开头定义 int price = 0; int change = 0; scanf("%d", &price); change = 100 - price;
C99 可在代码中间按需定义 int price = 0; scanf("%d", &price); int change = 100 - price;

五、表达式与运算符

(一)表达式

  1. 定义:由一系列运算符和算子组合而成,用于计算一个值
  2. 示例:
    • amount = X * (1 + 0.033) * (1 + 0.033) * (1 + 0.033);
    • total = 57;
    • count = count + 1;
    • value = (min / 2) * lastValue;

(二)基本概念

  1. 运算符:进行运算的动作,如 +(加)、-(减)、*(乘)等
  2. 算子:参与运算的值,可为常数、变量或方法返回值

(三)运算符优先级与结合关系

优先级 运算符 运算 结合关系 示例
1 + 单目不变 自右向左 a * +b
1 单目取负 自右向左 a * -b
2 * 自左向右 a * b
2 / 自左向右 a / b
2 % 取余 自左向右 a % b
3 + 自左向右 a + b
3 自左向右 a - b
4 = 赋值 自右向左 a = b

(四)特殊运算符

  1. 赋值运算符
    • 赋值是运算,有返回值(返回被赋予的值)
    • 链式赋值:a = b = 6 等价于 a = (b = 6),结果 ab 均为 6
  2. 复合赋值运算符
    • 由算术运算符(+-*/%)与赋值运算符 = 组合而成
    • 包括:+=-=*=/=%=
    • 示例:total += 5; 等价于 total = total + 5;
    • 注意:两个运算符中间不能有空格
  3. 递增 / 递减运算符(++--
    • 单目运算符,算子必须是变量
    • 作用:给变量加 1(++)或减 1(--
    • 等价关系:
      • count++; 等价于 count += 1;count = count + 1;
      • count--; 等价于 count -= 1;count = count - 1;
    • 前缀与后缀区别:
运算 表达式 表达式的值
给 count 加 1 count++(后缀) count 原来的值
给 count 加 1 ++count(前缀) count+1 以后的值
给 count 减 1 count–(后缀) count 原来的值
给 count 减 1 –count(前缀) count-1 以后的值

#include <stdio.h>

int main()
{
    int price = 0;
    
    printf("请输入金额(元)");
    scanf("%d",&price);
    
    int change = 100 – price;
    
    printf("找您%d元n",change);
    
    return 0;
    
 } 

#include <stdio.h>

int main()
{
    int a;
    int b;
    
    printf("请输入两个整数:"); 
    scanf("%d %d",&a,&b);
    printf("%d + %d = %dn",a,b,a+b); 
    return 0;
    
 } 

#include <stdio.h>

int main()
{
    printf("请分别输入身高的英尺和英寸,"
    "请输入"5 7"表示五英寸七英尺");
    
    double foot;
    double inch;
    
    scanf("%lf %lf",&foot,&inch);
    
    printf("身高是%f米。n",
        ((foot + inch /12)*0.3048));
    
    return 0;
 } 

#include <stdio.h>

int main()
{
    int hour1, minute1;
    int hour2, minute2;
    
    scanf("%d %d", &hour1, &minute1);
    scanf("%d %d", &hour2, &minute2);
    
    int t1 = hour1 * 60 + minute1;
    int t2 = hour2 * 60 + minute2;
    
    int t = t2-t1;
    
    printf("时间差是%d小时%d分。",t/60,t%60);
    
    return 0;
 } 

#include <stdio.h>

int main()
{
    int a=5;
    int b=6;
    int t;
    t=a;
    a=b;
    b=t;
    printf("a=%d,b=%dn",a,b);
     
    return 0;
 } 

© 版权声明

相关文章