[自用] 浙大翁凯老师C语言学习笔记--第二周

Week 2 计算

1` 变量

//找零程序
#include 
int main()
{   
    int price = 0;
    printf("请输入金额:");
    scanf("%d", &price);
    int change = 100 -price;
    printf("找您%d元", change);
    return 0;
}
  • 变量定义的一般形式是: <类型名称><变量名称>
int price = 0;		//这一行定义一个变量, 名称为price, 类型为int, 初始值为0
int amount, price;	//同类型可一起定义
  • 变量需要一个名字,变量的名字是一种“标识符”. 标识符有标识符的构造规则. 基本的原则是: 标识符只能由字母, 数字和下划线组成, 数字不可以出现在第一个位置上, C语言的关键字不可以用做标识符。
  • 在C语言中,所有的变量在使用前必须声明类型;数据类型表示在变量中可以存放什么样的数据;与Python语言不同,C语言程序运行过程中不能改变变量的类型
  • ANSI C 只能在代码开头的地方定义变量, 而C99(新)则可以在任何位置.
scanf("%d", &price);	//读入下一个整数,读到.的结果赋值给变量price
					  //&和指针有关
  • scanf函数的说明: 出现在其中的是要你输入的, 而不是他输出的.

    int price = 0, amount = 0;
    scanf("%d,%d", &price,%amout);
    printf("d,%d",price amount);
    
    I:1 2
    O:1 0
        
    I:1,2
    O:1 2
    
    scanf("%d,%d ", &price,%amout);		//如果后面有空格,则必须接收到空格才能继续
    
  • 可以在程序前定义常量, 增加程序的可读性, 同时便于修改.

    const是个修饰符, 加在int的前面, 用来给这个变量加上一个const (不变的)的属性。这个const的属性表示这个变量的值一旦初始化,就不能再修改了。

    const int AMOUNT = 100;
    
  • 与Python不同的是,在C中,一个变量即使没有被赋值,程序运行的过程中也不会报错

    #include 
    int main()
    {
        int i;
        int j;
        j = i + 10;
        printf("%d\n", j);
        
        return 0;
    }
    
    O:234455445564
    

    2` 数据类型

//身高转换
#include 
int main()
{
int height = 0, inch = 0;
printf("请输入您的身高:");
scanf("%d %d", &height, &inch);
printf("您的身高是%f米\n", (height + inch/12)*0.3048);
return 0;
}
// 第一次尝试
I: 5 6
O: 1.524000
// 第二次尝试
I: 5 7
O: 1.524000

两个整数的运算结果只能是整数 (自动舍弃小数部分); 但当浮点数和整数一起运算时, C会先将整数转换为浮点数.

字符 缩写 含义
int %d 整数
double 输入%f, 输出%lf 双精度浮点数
float 输入%f, 输出%lf 单精度浮点数

计算机计算整数会比较快, 因此区分两种数据类型.

//MyTest
#include 
int main()
{
   int a,b,c;
   float d,e,f;

   a = d = 1;
   b = e = 1.0;

   printf("a=%d b=%d d=%d e=%d\n",a,b,d,e);
   printf("a=%f b=%f d=%f e=%f",a,b,d,e);
   return 0;
}

这个例子说明了: 赋值的数据类型可以定义的不同, C会自动更正(d和b); 但是输出时如果类型选择错误就会出错.

2· 格式化

printf("%m.nd/h",<输出队列>);

3` 表达式

运算符和算子

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

嵌入式赋值不推荐

复合运算: 中间不能有空格,
"++“和”–"分别表示+1, -1, ++和–可以放在变量的前面,叫做前缀形式,也可以放在变量的后面,叫做后缀形.

表达式 运算 表达式的值
count++ 给count+1 count原来的值
++count 给count+1 count+1
count– 给count-1 count原来的值
–count 给count-1 count-1

Week 3 控制语句

判断语句

if条件语句的使用

//判断语句
if(a=0){
    printf("条件成立\n");
}else if{
    printf("条件不成立\n");
}else{
    printf("hehe\n");
}
//如果条件成立后只用执行一行代码, 也可以不带花括号
if(a=0)
    printf("条件成立\n");
else
    printf("条件不成立\n");

关系运算

  • 当两个值的关系符合关系运算符的预期时,关系运算的结果为整数1,否则为整数0

    #include 
    int main()
    {
        printf("%d\n", 2==2);
        printf("%d\n", 2==3);
        return 0;
    }
    //输出:1 0
    
  • 所有的关系运算符的优先级比算术运算的低,但是比赋值运算的高

    #include 
    int main()
    {
        printf("%d\n", 3 >= 2+1);
        return 0;
    }
    //输出: 1
    
  • 判断是否相等的 == 和 != 的优先级比其他的低;而连续的关系运算是从左到右进行的

    5>3 == 9>4
    6 > 5 > 4
    a == b ==6
    

注释

//有两种注释的方法

//这是第一种注释

/*
这是第二种注释
/*

循环语句

//先判断, 在运行
while(x>0){
    n++
};

//先运行,再判断
do{
    xxx
}while(xxx);

//for循环
for(i=1;i<2;i++){
    xxx
};

你可能感兴趣的:([自用] 浙大翁凯老师C语言学习笔记--第二周)