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


学习内容

一 、注释的作用

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

二 、 #include的作用

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

212BC96B81580EAAA723E30768F44A28.jpg
#include <stdio.h>
#include <stdbool.h>

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 
= 赋值 
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 <stdio.h>

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 <stdio.h>

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 <stdio.h>
//输入年龄 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;
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容