第一课:C语言编程

时间:2022-06-01 19:14:51
(http://www.cnblogs.com/kenshincui/p/3840294.html   C语言基础知识)

C语言编程
{}:大段的内容
<>:三段论:什么条件下使用; 达到什么的效果; 发生变化的条件
第一讲 c基础

一.简单程序的一般形式
main.c   
main.m
{主函数”(主功能的地方:一段实现某种功能的代码,可以供其他代码调用)<比如有个“做菜”程序,那么“ 做菜 ”这个过程就是“主函数”。在主函数中,根据情况,你可能还需要调用“买菜,切菜,炒菜”等子函数。>:每个程序都需要,程序体; 整个程序的运行; 大多数是必须存在的,也有例外DLL模块和机器人芯片,<比如windows编程中可以编写一个动态链接库(dll)模块,这是其他windows程序可以使用的代码。由于DLL模块不是独立的程序,因此不需要main函数。再比如,用于专业环境的程序——如机器人中的控制芯片--可能不需要main函数。>}
<每个程序都需要,程序体; 整个程序的运行; 大多数是必须存在的,也有例外DLL模块和机器人芯片>
int main   ()
      {
      }
<在不需要运算,即需要标记的时候,用; 实现绿字标识; 可以多于两个,两个以上效果相同>
//注释:提示代码是做什么的,提示写代码人的思路。
//注释不是代码,不参与执行
//单行注释(没有回车就是一行)
<需要注释的地方.不必每行//; 多行注释一个/**/就行; 不能/*/* */*/>
/*
 多行注释
 可以任意多行
 */

{对于哲学,或者逻辑学,数学乃至由此而产生的现代电子技术来说,0就是表示“没有,不存在”,1就是表示“存在”。这个意义是非常深远的。
(多进制的作用:二进制最符合计算机基本运算原理和实现,即通过电路开关的二态来实现运算。
八进制和十六进制和三十二进制和二进制非常易于互转,所以用来表示字节,指令等,可以包含更多信息而不必使用二进制那么长的形式,尽管最终都要转为二进制来交给cpu处理。
十进制是人类生活通用的,在应用层面必然使用十进制,否则大家就要经常性的玩10~2或者10~8 10~16互转游戏了。)
}
<大数据,少硬件;简短,快捷,轻便,小;不同的不同>
1.进制

 进制:进位机制
 基数:也叫底数,基数为几代表几进制
 进制位权
      一个通用的描述方式,最低为0位,最后依次加一;
      进制为几,权就为几;

 进制转换
      十进制到n进制,连除倒取余;
      n进制转十进制,按权求合;
(http://baike.baidu.com/link?url=wkyy9iynlCDLeJl7WI8SI6oBPJFD0KqCdc6ax_SxKmRsB4nHHWz288zlWBWwog2kfdug5vrIeLH0FSVPSypIJa 进制的转换:原码,反码.补码:四种存在的意义:数制,尽可能的减少硬件,更简短,加0意义不变)

 进制修饰
     十进制什么都不加
      八进制加0
     十六进制加0x
     二进制0b(binary system)

 {库函数(Library function)是把函数放到库里,供别人使用的一种方式。.方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的。}

   stdio标准输入输出
   库 函数库 别人写好的一对代码提供给我们使用
   return 返回
   
(http://www.cnblogs.com/onedime/archive/2012/11/21/2780149.html数据类型)
例子:数据类型:见过藕煤球的那个东西吧?(没见过?煤球总见过吧)。那个东西叫藕煤器,拿着它在和好的煤堆里这么一咔,一个煤球出来了。半径12cm,12 个孔。不同型号的藕煤器咔出来的煤球大小不一样,孔数也不一样。这个藕煤器其实就是个模子。
现在我们联想一下,short、int、long、char、float、double 这六个东东是不是很像不同类型的藕煤器啊?拿着它们在内存上咔咔咔,不同大小的内存就分配好了,当然别忘了给它们取个好听的名字。


 二.基本数据类型
<定义一个数据的类型,有助于确定占的字节数,有利于分类型的数据特点归纳运用; 定义变量,打印,占位; >
 关键字         说明                字节大小          printf 转化符    scanf占位符
 char          字符类型               1                        %c               
 short         短整型类型            2                        %sd
 int             整型类型               4                        %d
 float         单精度浮点类型      4   带小数的          %f              %lf
 long          长整形类型           4或8                    %ld
 double      双精度浮点类型      8                        %f               %lf

最高位是符号位,0正1负
1~127  -128~ -1





三.常量(程序运行中不可改变的量)和变量(相当于一个容器或位置),运算符
<需要一个定值; 调用的时候需要; 不可变>
整型常量:23 , 5 , -1
浮点型常量:4.6 , -1.23
字符型常量:’A’,’9’
数字做符号来用的话,必须加单引号

<一个容器和位置; 赋值的时候; 可变的>
变量代表一个存储区域.
存储区域内存储的内容就是变量的值,变量的值可以在程序运行期间改变
变量由三部分组成: 类型修饰符 变量名 = 初始值;(初始值决定底数吗)
例如: int age = 23;
注意:在使用变量之前必须对变量进行定义.
 
 变量命名规定
 只能由数字/字母/下划线组成.并且数字不能开头.
 不可能与系统保留字同名
 不能使用重复的变量名
 见名知意(规范)
 
<赋值; 有值; 添加改变>
赋值运算符
用于给变量赋值,将右边的值赋给左边的变量.
age = 24;
赋值运算符优先级较低.

算术运算符
算术运算符         说明            注意事项
+                    加法运算
-                     减法运算
*                     乘法运算
/                    除法运算        整型相除取整;除数不为0
%                   取余运算        两边均为整数
++                  递增运算       运算符在前,先执⾏;运算符在
                                         后,后执⾏。

复合运算符
算术运算符        语法             含义
+=                   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;
(http://www.cnblogs.com/-ljj/p/3711317.html基本运算符)

4.优先级
    * 逻辑运算符的优先级别顺利为:小括号() > 负号 - >!> 算术运算符 > 关系运算符 >&&>||

    * 表达式!(3>5) || (2<4) && (6<1) :先计算 !(3>5)、(2<4)、(6<1),结果为1,式子变为1 || 1 && 0,再计算1 && 0,式子变为1 || 0,最后的结果为1

    * 表达式3+2<5||6>3 等价于 ((3+2) < 5) || (6>3),结果为1

    * 表达式4>3 && !-5>2 等价于 (4>3) &&  ((!(-5)) > 2) ,结果为0



四.表达式
 表达式:常量/变量与运算符的组合.
3+5
a+=b
注:表达式都会返回值.

语句
 语句是程序执行的最小单位,以分号结尾.
 
五.基本输入输出函数

 1.格式化输出函数printf
语法形式: printf(格式串,表达式1,表达式2,…);
                 格式串:由普通字符和转换符构成;
转换格式控制
最少占四位:
printf(“%04d”,12);        //不足位补0
printf(“%4.2f”,1.2345); //保留小数点后两位
printf(“%-4d”,112);      //左对齐
转义序列
转义字符   说明
\n           回车符
\\            打印\
%%          打印%
2.格式化输入函数
语法形式scanf(格式串,表达式1,表达式2,…);
如果读出的数据项类型与格式符匹配,继续读入;
否则不再查看剩余的部分,立即返回.
scanf注意事项
以回车确定输入结束.切记:只有大回车才会结束输入.
scanf(“%d%d”,&num1,&num2); //限制输入格式
不要在格式串后面假’\n’字符,否则会抵消人工输入回车.


    //百分号中间的数字,表示预留位置,如果预留位置小于实际,则按照实际位置来,如果预留位置大于实际位置,补空格,如果数字前加零则补零.
    printf("%05d",12);
    //.x表示保留小数点后几位;小数点也占位
    printf("%4.2f",1.23456);
    //整数表示右对齐,负数表示左对齐
    printf("%-4d",123);
    printf("%-4dabc",123);
    
    
    printf("123\n456");
    printf("\\");
    printf("%%");
    
    //输入时需要一个变量,用来保持输入的值
    int n4 = 0;
    printf("请输入一个数字:");
    scanf("%d",&n4);
    printf("n1=%d",n4);
    
    double d1=0;
    scanf("%lf",&d1);
    */
    
    //scanf中,比能加\n,不推荐写占位符以外的东西
    int num1=0;
 
 */

   


//main函数
//  一个程序的开始(入口)

int main()
{
    
    /*
    //代码
    printf("带你们装B,带你们飞...");
    
     //定义一个变量
    //整型
    int num1=10;
    //短整型
    short s1=1;
    //长整形
    long l1=11110;
    //浮点型(单精度)
    float f1=1.2;
    //双精度浮点型
    double d1=65.87;
    //字符型
    char c1='A';
    
    //赋值运算符=:可以给一个变量赋值
    int number1=10;
    int number2=20;
    //准备另外一个变量,用于临时存放
    int temp=0;
    temp=number1;
    number1=number2;
    number2=temp;
    
    //课后思考题
    //交换两个值不使用第三个变量
    //有两种方式
    */
    /*
    //算术运算符
    //+
//    int n1=10+20;
//    int n2=n1+10;
//    int n3=n1+n2;
//    int n4=n1+n2+n3;
    //-
//    int n1=30-20;
//    int n2=n1-10;
//    int n3=n2-n1;
//    int n4=n3-n2-n1;
    //*
//    // 除法;使用/0不能做除数
//        int n1=10/0;
//    //除号两边都是整数,结果也是整数.小数点后的数全部舍去
//        int n2=3/2;
//    //如果除号两边的数都是浮点型,结果也是浮点型.
//    float n3=3.0/2.0;
    
    //%取余运算符两边必须都为整型,取余之后一定小于除数
  //  int n1=3%2;n1=1;
    
    
    //++在后
//    //n1=0
//    int n1=0;
//    //n1++;//n
//    //如果++在后面,只要这条语句没有执行完,n1++表示的都是原来的值'
//    int n3=n1++;
//    //n1=1
//    int n2=n1;

//    //++在前
//    int n1=0;
//    //++在前先加1,再赋值
//    int n2=++n1;
//
    
    
    int n1=10;
    int n2=30;
    int n3=n2+n1;
         (n3 += n2;)        这个有问题,原来的应该是怎么
    */
    /*
    
    //基本输入输出函数
    //
    printf("蓝欧class20150305");//打印
    //格式输出
    int n1 = 10;
    int n2 = 20;
    //占位符
    printf("n1 = %d,n2 = %d",n1,n2);
    
    //输出printf的占位符
    //  对应类型 转化符
    //int     %d
    //char  %c
    //long  %ld
    //short %sd
    //float double %f
    
    //练习
    int n3 = 20;
   // n3*0.5-9;
    printf(“%f",n3*0.5-9);

    //百分号中间的数字,表示预留位置,如果预留位置小于实际,则按照实际位置来,
      如果预留位置大于实际位置,补空格,如果数字前加零则补零.
    printf("%05d",12);
    //.x表示保留小数点后几位;小数点也占位
    printf("%4.2f",1.23456);
    //整数表示右对齐,负数表示左对齐
    printf("%-4d",123);
    printf("%-4dabc",123);
    
    
    printf("123\n456");
    printf("\\");
    printf("%%");
    
    //输入时需要一个变量,用来保持输入的值
    int n4 = 0;
    printf("请输入一个数字:");
    scanf("%d",&n4);
    printf("n1=%d",n4);
    
    double d1=0;
    scanf("%lf",&d1);
    */
    
    //scanf中,不能加\n,不推荐写占位符以外的东西
   //%lf
    int num1=0;
    int num2=0;
    scanf("%d",&num1);
    scanf("%d",&num2);
    printf("num1=%d,num2=%d",num1,num2);
    

//

//注释:提示代码是做什么的,提示写代码人的思路。
//注释不是代码,不参与执行

//单行注释(没有回车就是一行)

/*
 多行注释
 可以任意多行
 */


//进制
/*
 
 进制:进位机制
 基数:也叫底数,基数为几代表几进制
 进制位权
      一个通用的描述方式,最低为0位,最后依次加一;
      进制为几,权就为几;
 进制转换
      十进制到n进制,连除倒取余;
      n进制转十进制,按权求合;
 进制修饰
     十进制什么都不加
      八进制加0
     十六进制加0x
     二进制0b(binary system)
 
 
 */


  /*
   stdio标准输入输出
   库 函数库 别人写好的一对代码提供给我们使用
   return 返回
   
   
   */

//main函数
//  一个程序的开始(入口)

int main()
{
    
    /*
    //代码
    printf("带你们装B,带你们飞...");
    
     //定义一个变量
    //整型
    int num1=10;
    //短整型
    short s1=1;
    //长整形
    long l1=11110;
    //浮点型(单精度)
    float f1=1.2;
    //双精度浮点型
    double d1=65.87;
    //字符型
    char c1='A';
    
    //赋值运算符=:可以给一个变量赋值
    int number1=10;
    int number2=20;
    //准备另外一个变量,用于临时存放
    int temp=0;
    temp=number1;
    number1=number2;
    number2=temp;
    
    //课后思考题
    //交换两个值不使用第三个变量
    //有两种方式
    */
    /*
    //算术运算符
    //+
//    int n1=10+20;
//    int n2=n1+10;
//    int n3=n1+n2;
//    int n4=n1+n2+n3;
    //-
//    int n1=30-20;
//    int n2=n1-10;
//    int n3=n2-n1;
//    int n4=n3-n2-n1;
    //*
//    // 除法;使用/0不能做除数
//        int n1=10/0;
//    //除号两边都是整数,结果也是整数.小数点后的数全部舍去
//        int n2=3/2;
//    //如果除号两边的数都是浮点型,结果也是浮点型.
//    float n3=3.0/2.0;
    
    //%取余运算符两边必须都为整型,取余之后一定小于除数
  //  int n1=3%2;n1=1;
    
    
    //++在后
//    //n1=0
//    int n1=0;
//    //n1++;//n
//    //如果++在后面,只要这条语句没有执行完,n1++表示的都是原来的值'
//    int n3=n1++;
//    //n1=1
//    int n2=n1;

//    //++在前
//    int n1=0;
//    //++在前先加1,再赋值
//    int n2=++n1;
//
    
    
    int n1=10;
    int n2=30;
    int n3=n2+n1;
         (n3 += n2;)        这个有问题,原来的应该是怎么
    */
    /*
    
    //基本输入输出函数
    //
    printf("蓝欧class20150305");//打印
    //格式输出
    int n1 = 10;
    int n2 = 20;
    //占位符
    printf("n1 = %d,n2 = %d",n1,n2);
    
    //输出printf的占位符
    //  对应类型 转化符
    //int     %d
    //char  %c
    //long  %ld
    //short %sd
    //float double %f
    
    //练习
    int n3 = 20;
   // n3*0.5-9;
    printf("%f",n3*0.5-9);
    //百分号中间的数字,表示预留位置,如果预留位置小于实际,则按照实际位置来,如果预留位置大于实际位置,补空格,如果数字前加零则补零.
    printf("%05d",12);
    //.x表示保留小数点后几位;小数点也占位
    printf("%4.2f",1.23456);
    //整数表示右对齐,负数表示左对齐
    printf("%-4d",123);
    printf("%-4dabc",123);
    
    
    printf("123\n456");
    printf("\\");
    printf("%%");
    
    //输入时需要一个变量,用来保持输入的值
    int n4 = 0;
    printf("请输入一个数字:");
    scanf("%d",&n4);
    printf("n1=%d",n4);
    
    double d1=0;
    scanf("%lf",&d1);
    */
    
    //scanf中,比能加\n,不推荐写占位符以外的东西
    int num1=0;
    int num2=0;
    scanf("%d",&num1);
    scanf("%d",&num2);
    printf("num1=%d,num2=%d",num1,num2);
    
    
 
    
    
    
    
    
    
    
    //
//    
    
    
    
//返回,我OK了,
    return 0;
    
    //
    
}




#include <stdio.h>

int main1(int argc, const char * argv[])
{

    // insert code here...
    printf("Hello, World!\n");
    return 0;
}




/*
 2.基本数据类型
 关键字  说明     字节大小
 char    字符类型   1
 short  短整型类型 2
 int      整型类型    4
 float  单精度浮点类型  4   带小数的
 long   长整形类型  4或8
 double 双精度浮点类型 8
 */
//最高位是符号位,0正1负
//1~127  -128~ -1




/*
 3.常量(程序运行中不可改变的量)和变量(相当于一个容器或位置)
 数字做符号来用的话,必须加单引号
 定义一个变量,整型
 
 变量命名规定
 只能由数字/字母/下划线组成.并且数字不能开头.
 不可能与系统保留字同名
 不能使用重复的变量名
 见名知意(规范)
 
 
 
 
 5.复合运算符

 a=a+b
 a+=b
 
6.表达式
 表达式:常量/变量与运算符的组合.
 7.语句
 语句是程序执行的最小单位,以分号结尾.
 
 8.基本输入输出函数
 
 
 */
    
//返回,我OK了,
    return 0;
    
    //
    
}




#include <stdio.h>

int main1(int argc, const char * argv[])
{

    // insert code here...
    printf("Hello, World!\n");
    return 0;
}





(库函数:http://baike.baidu.com/link?url=evBXQk2wgRMM5L4GrlhIdV0qSadNHl0HmJWSFezYH1FmPfOCwWJ5qGDzE2SX2Kr_3j401u5UIiKbwqeZtFAVQ_)
int getchar()//从标准输入设备读入一个字符
int putchar()//向标准输出设备写出一个字符
int scanf(char*format[,argument…])//从标准输入设备读入格式化后的数据
int printf(char*format[,argument…])//向标准输出设备输出格式化字符串
char gets(char*string)//从标准输入设备读入一个字符串
int puts(char*string)//向标准输出设备输出一个字符串
int sprintf(char*string,char*format[,…])//把格式化的数据写入某个字符串缓冲区