C语言——第一次笔记 2019-11-16


学习内容

一 、注释的作用

  • // 单行注释 但 不能换行
  • /...../ 多行注释 但 可换行

二 、 #include的作用

  • include 宏 导入头文件。如果系统已经提供某些功能的实现,只需要使用include将这些功能所在文件导入进来就可以了。
  • < > 用来导入系统提供的类库。 例 : stdio.h   stdlib.h   math.h   string.h
  • " " 用来导入自己定义的文件。例 : calculate.h
  •   #include 编译器首先从系统的类库里面去查找这个头文件,如果没有,再到自己的文件中查找,否则报错。
  •   #include "stdio.h" 编译器首先在自己的文件中去查找这个头文件,如果没有再到系统的类库里面查找,否则报错。

三 、 main函数介绍

  • main函数 = 代码块 = 完成特定功能,  所有程序的入口点都是main函数。
  • int 返回值,用来记录当前程序的运行状态,0: 正常结束 资源自由分配, 非0:异常结束 没收资源。
  • int argc : 参数个数 argument count ,char* argv[ ] : 每个参数组成的字符串数组。
int main(int argc,char *argv[ ] ){
  printf("%d\n",argc);
  printf("%s\n",argv[ ]);
 return 0;
}
输出:
        1

四 、printf函数格式类型

  • printf输出语句,用来让终端输出数据。
  • 打印常量字符串 : printf("hello world");
  • 转义字符: \n 的意识是回车换行,讲当前位置移到下一行的开头。 \r 的意思是回车,将当前位置移到本行的开头。\t 的意思是水平制表符,将当前位置移到下一个tab位置。
int main(int argc,char *argv[ ]) {
printf("hello world\t");
printf("%d\n",argc);
printf("%s\r",argv[0]);
getchar();
return 0;
}

输出结果 : hello world           1

五 、 C语言的基本数据类型

C语言——第一次笔记 2019-11-16_第1张图片
212BC96B81580EAAA723E30768F44A28.jpg
#include 
#include 

int main(){
    int count = 0; 
    count = 3;
    //%d
    //%02d 不足两位的用0补齐 
    printf("i have %02d dogs\n",count);
    
    long size = 230;
    printf("%ld\n",size);

    float score = 3.1415926;
    printf("%.2f\n",score);
    
    //中文占据2个字符 
    //%c 字符
    //%d 字符对应ASCII码值 
    char choose = 'c'; 
    printf("%c\n",choose); 
    printf("%d\n",choose); 

六 、scanf函数的格式化输入

  • scanf输入语句,用来向终端你输入数据。
int  a = 0;
scanf("%d",&a);
printf("%d",a);
  • 当用户在终端输入数据时,数据会被存放到缓冲流,scanf用于在缓冲流中找到数据将其放到指定位置。
  • 放入到给定位置就是保存输入的数据,保存数据需要用到变量,我们只需要把数据送到对应变量的地址
    ,就存储好了该数据,就可以通过该变量使用数据,所以使用&获得变量a的地址。
int a = 0;
scanf("jack%d",&a);
printf("%d  %d",a , b);
  • 此时输入的数据必须按照   jack+数据 的格式,才可以将数据送入到变量中。所以,scanf函数中" "里面的内容用来控制输出格式。
int a = 0;
scanf("%d  %d", &a,&b);
printf("%d  %d",a,b);
  • 利用上面的输入格式一次性输入两条数据

七 、变量

  • 变量是程序可操作的存储区名称;变量的类型决定了变量的大小;变量的名称可以有下划线,字母,数字组成,它必须以字母或者下划线开头。简单地说变量就是用来记录数据的。
  • 变量的声明 : 没有分配内存空间,使用的时候才会分配, 如 :int a;
  • 变量的定义 :立刻为我们分配内存空间 赋初值 ,如 :int a = 0;
  • 变量的使用 :
int num1,num2;
scanf("%d  %d",&num1,num2);
printf("%d\n",num1,num2);
  • bool类型的变量(需要导入stdbool.h),其值非零即真 ,零为假。
bool status =  -3;
printf("%d\n",status);

八、 运算符

+ - * 加减乘
/ 除 取整数部分 7 / 3 = 2
% 取余数部分  7 % 3 = 1 
x % 16 + 1 = 1 ... 16;
x % 51 + 50 = 50 ...100

&& 且 两个同时成立 1>2 && 2>1; 
|| 或 只要一个成立就可以1>2 || 2>1
 
++ 自增 a++,++a;
-- 自减 
+=  a += 2; 
!=  1 != 2
== 判断  a==2 
= 赋值 
C语言——第一次笔记 2019-11-16_第2张图片
4C5852B2B0441E71990FF90235A1DD35.jpg
float r = 3 / 2;
    printf("%f\n",r); 
    
    int a = 20;
    if(++a ==20){ 
        printf("a = 20\n");
        printf("a = %d\n",a);
    }else{
        printf("a != 20\n");
        printf("a = %d\n",a);
    }
    printf("a = %d\n",a);
    
    if(a==2){
        printf("a = 2\n");
    }
    return 0;

九、 循环 : if

  • if语句的形式:C语言吧任何非0和非null的值假定为ture,把0和null假定为false。
if(){
    } 
    
    if(){
    }else{
    } 
    
    if(){
    }else if(){
    }else if(){
    }else{
    }
    */
    /*当某种条件成立 才做事情
    if(条件-true非0 -false=0){
        成立要做的事情 
    }


十、工资实战

优化前

#include 

int main(){
    int salary = 0;//记录工资 
    int pay = 0; //税后工资 

    //接收输入 
    printf("请输入工资:");
    scanf("%d",&salary); 
     
    //开始计算
    if(salary < 5000){
        pay = salary; 
    }else if(salary > 5000 && salary < 8000){
        int tax = (salary - 5000)*0.1;
        pay = salary - tax;
    }else if(salary > 8000 && salary < 10000){
        int tax = (salary-8000)*0.15 + 3000*0.1;
        pay = salary - tax;
    }else{
        int tax = (salary - 10000)*0.2 + 2000*0.15 + 3000*0.1; 
        pay = salary - tax;
    }
    
    printf("到手工资: %d",pay);
    return 0;
}

优化后

#include 

int main(){
    int salary = 0;//记录工资 
    int tax = 0; //税 

    //接收输入 
    printf("请输入工资:");
    scanf("%d",&salary); 
     
    //开始计算
    if(salary < 5000){
        pay = salary; 
    }else if(salary > 5000 && salary < 8000){
        int tax = (salary - 5000)*0.1;
    }else if(salary > 8000 && salary < 10000){
        int tax = (salary-8000)*0.15 + 3000*0.1;
    }else{
        int tax = (salary - 10000)*0.2 + 2000*0.15 
        + 3000*0.1; 
    }
    
    printf("到手工资: %d",salary - tax;);
    return 0;
}

十一、年龄转换实战

#include 
//输入年龄 20
//your age is twenty; 

int main(){
    int age = 0;
    
    //保存个位数 21%10 = 1 
    char* gewei[] = {"","one","two","three","four","five","six","seven","eight","nine"}; 
    //保存10-19
    char* temp[] = {"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
    //保存十位 
    char* shiwei[] = {"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"}; 
    
    printf("请输入年龄:");
    scanf("%d", &age);
    
    char *name;//保存每次取出的字符串 
    if(age < 10){
        //直接访问各位数数组
        name = gewei[age];
    }else if(age >= 10 && age <= 19){
        //获取个位数  
        int index = age % 10;
        name = temp[index];
    } else{
        //获取个位数 
        int g = age % 10; 
        //获取十位数 
        int s = age / 10;
        //取出对应的单词
        int sString = shiwei[s-2];
        int gString = gewei[g];
        
        printf("your age is %s-%s\n"
        ,sString,gString); 
        
        //程序还未运行完毕就提前结束
        return 0; 
    } 
    
    printf("your age is %s\n",name);
     
    return 0;
}

你可能感兴趣的:(C语言——第一次笔记 2019-11-16)