C语言整理-1

C语言基础

1、     进制:

进制:进位机制。用普通的话讲,应该为人为的定义一种度量来标识一样东西。

计算机常用的进制有:十进制、二进制、八进制和十六进制。

Ø  十进制:0-9(十个指头)(进制表示基数:10)

Ø  二进制:0,1(基数为2)

Ø  八进制:0-7(基数为8)

Ø  十六进制:0-9,A-F(基数为16)

       可以有很多进制,比如分钟为60进制等等。

2、     位权

为了进制之间转换而出的一个概念。

:一个通用的描述方式。最低位为第0位。之后依次+1。

例如:9AF(F为第0位,A为第1位,9为第2位)

:进制是几,权就是几。

 

位权某位上的数*权^该位

例如:231,权为:10,位是:2,位权1为10^0,位权3为10^1,位权2为10^2

3、     进制转换

       十进制转X进制:连除倒取余数(取余数是从下往上取)

 

       用通俗的话讲:十进制的某个数转化为其他进制时,将该数除以进制,依次将余数写在除法每一步的旁边,一直除完为止。则所对应的转化后的值,从下往上按顺序记录余数,该余数即为转化后的结果。

X进制转十进制:按权求和

 

用通俗的话讲:用位权的计算方法,将某进制的数,从第0位开始,把第0位上得数*进制(权)的0次方,加上第1位上得数*进制(权)的1次方….以此类推,直至该进制的数的最高位,所得到的和,即为转化所得的十进制的结果。

 

进制修饰(区别什么数是什么进制):

Ø  十进制:什么都不加修饰 如:111

Ø  八进制:在前加0  如:0111

Ø  十六进制:在前加0X   如:0X111

Ø  二进制:在前加0b 如:0b111

当程序员不想自己用笔来计算较大的进制转换时,点击右上角搜索按钮spotlight 搜索“计算器”。command+1(简单型计算器)2为科学型,3为编程型

4、     基本数据类型

记忆基本数据类型的时候,这样记——三大类:

Ø  字符:

(关键字)char :字符型  占字节:1 = 8位 写得出来的都是字符’1’ ‘2’ ‘A’ 。对应十进制0~255之间任意 任意一个数都可以表示,但是>256的不能存储。

 

Ø  整型:

(关键字)short 短整型: 字节:2 = 16位 0~65535

(关键字)int 整型:      字节:4 = 32位 0~2^33-1

(关键字)long 长整形: 字节:8或4(C语言没有给一个明确的数字,而是这样定义的,long型的数不小于int型的数。Int型的数不小于short型的数)

 

Ø  浮点:

(关键字)float 单精度浮点型:  字节:4

(关键字)double 双精度浮点型: 字节:8

 

字节:1字节 = 8位

 

看一个数是正数还是负数,看最高位是啥:0为正,1为负

5、     常量

不可改变的量。

如: 719,‘A’,‘a’等等。    

6、     变量

变量:变量相当于一个容器或位置.

//定义一个变量

        //整型

        int num1 = 10;

        //短整型

        short s1=111;

        //长整型

        long l1=123456789;

        //浮点型(单精度)

        float f1=1.2;

        //浮点型(双精度)

        double d1=2.22;

        //字符型

        char c1= '1';

       

 

 

 

 

变量命名规则

 

Ø  数字0~9,下划线_,字母 a~z,A~Z 组成,不能以数字开头

Ø  不可以用系统保留字

Ø  不能使用重复变量名

Ø  见名之意。(规范)定义一个变量,要明显知道变量名的意思。

Ø  使用驼峰命名法

 

赋值运算符: 可以给一个变量赋值。

 

//赋值运算符:=,可以给一个变量赋值。

        //交换两个变量中的值。

        int number1=10;

        int number2=20;

        //准备另一个变量,用于临时存放

        int temp=0;

        printf("number1:%d \n",number1);

        printf("number2:%d \n",number2);

       

        temp=number1;

        number1=number2;

        number2=temp;

       

        printf("number1:%d \n",number1);

        printf("number2:%d \n",number2);

       

 

 

 

 

7、     算术运算符

算数运算符,主要是看什么,主要是看+,-,*,/ ,++,--,这几个运算符的用法,+,-,*就不说了,/(除法)主要是要看除数不能为0,虽然计算机不报错(因为语句都符合C语言的标准,程序会执行。),但是在运行后,给出的结果不正确。

++和—运算比较特殊,应该这样记:++在前则先++,++在后则后++。--和++一样。

要明白一点就是,运算过程中,会出现自动数据类型转换。

//+

//        //n1=30

//        int n1 = 10+20;

//        //n2=40;

//        int n2 = n1+10;

//        //n3=70

//        int n3=n1+n2;

//        //n4=140;

//        int n4= n1+n2+n3;

       

        // -

//        // n1=10;

//        int n1 = 30-20;

//        //n2=0;

//        int n2 = n1-10;

//        //n3=-10;

//        int n3 = n2-n1;

//        //n4=-20;

//        int n4 = n3-n2-n1;

       

        // *

       

        //除法:/

       

//        //使用除号/,注意0不能坐除数! xcode不报错,只提出警告,并能运行。

        int n1 = 10 / 0;

//        //除号两边都是整数,结果也是整数,不论除尽的小数点后面是什么值,都舍去。

//        int n2 = 3 / 2;

//        //除号两边都是浮点型,结果也是浮点型。n3=1.5

//        float n3 = 3.0/2.0;

//        //参与运算的数,如果运算符两边,只要有一个是浮点型,结果都为浮点型。n4=1.5

//        float n4 = 3/2.0;

       

        //取余 %

       

//        //n1 = 1

//        int n1 = 3 % 2;

//        //n2 = 0

//        int n2 = 4 % 2;

//       

//        //取余运算符两边的数,必须都为整型;

        int n3 = 5.0 % 2.0;

//       

//        //取余之后的结果 <除数,一定小于除数。

       

       

        //++在后

//        //n1=0

//        int n1 = 0;

//        //n1=0

//        //如果++在后面,只要这条语句没有执行完,n1++都表示原来的值。

//        //n3=0

//        int n3 = n1++;

//        //n2= 1

//        int n2 = n1;

       

        //++在前

       

//        int n1 = 0;

//        //++在前,先加1,再赋值。n2=1

//        int n2 = ++n1;

       

        //符合运算符

//        int n1 = 10;

//        int n2 = 30;

//        n2 = n2 + n1;

        n2 += n1;n2 = n2 + n1;等效;

 

 

 

        // *

       

        //除法:/

       

//        //使用除号/,注意0不能坐除数! xcode不报错,只提出警告,并能运行。

        int n1 = 10 / 0;

//        //除号两边都是整数,结果也是整数,不论除尽的小数点后面是什么值,都舍去。

//        int n2 = 3 / 2;

//        //除号两边都是浮点型,结果也是浮点型。n3=1.5

//        float n3 = 3.0/2.0;

//        //参与运算的数,如果运算符两边,只要有一个是浮点型,结果都为浮点型。n4=1.5

//        float n4 = 3/2.0;

       

        //取余 %

       

//        //n1 = 1

//        int n1 = 3 % 2;

//        //n2 = 0

//        int n2 = 4 % 2;

//       

//        //取余运算符两边的数,必须都为整型;

        int n3 = 5.0 % 2.0;

//       

//        //取余之后的结果 <除数,一定小于除数。

       

       

        //++在后

//        //n1=0

//        int n1 = 0;

//        //n1=0

//        //如果++在后面,只要这条语句没有执行完,n1++都表示原来的值。

//        //n3=0

//        int n3 = n1++;

//        //n2= 1

//        int n2 = n1;

       

        //++在前

       

//        int n1 = 0;

//        //++在前,先加1,再赋值。n2=1

//        int n2 = ++n1;

       

//符合运算符

//        int n1 = 10;

//        int n2 = 30;

//        n2 = n2 + n1;

        n2 += n1;n2 = n2 + n1;等效;

 

 

8、     表达式

表达式:常量、变量与运算符的组合。

例如:3,3+1,n1+1,3+(也是表达式,但是是错误的表达式)

 

表达式都会有返回值

 

语句是程序执行的最小单位,以分号结尾。

例如:1; 1+7;

 

不以分号结尾的,不管前面写的再好,再标准,都不是语句。

 

9、     基本输入输出

基本输入输出函数  ,在C语言的第一个hello world程序里,有printf(“hello world”);这个语句,printf是标准输出函数,虽说打印语句都是程序里最简单的一个方法,但是在C语言中,printf函数输出,不仅仅是一个函数而已,它是由先人用汇编语言把计算机内存和显存的各种机理封装在了printf函数中,这个函数是在stdio.h这个库文件中的。

库文件:即为前人写好的代码,放在了一起,我们可以直接用。

 

输出:printf();

形式是这样的:printf(“%d”,100)这个是输出整型;printf(“%f”,100.0)这个是输出浮点型;printf(“%c”,’100’)这个是输出字符型的数据。

这个时候,输出整形还可以分:printf(“%sd”,100)这个输出短整型;printf(“%ld”,100)这个输出长整型。

输出函数printf还有一个要注意的地方:

Ø  %d中间的数字,代表预留几个位置:从右往左算。

Ø  如果预留位置小于实际位置,按照实际位置来。

Ø  如果预留位置大于实际位置,在输出的左边补上空格。

Ø  如果数字前加0,则把空格变为补0

例子:printf("%05d",12);输出结果:00012

Ø  .X表示保留小数点后X位,%4.2f表示保留小数点后2两位。.前为代表预留几个位置。

例如:printf("%4.2f",1.2345);//1.23

Ø  小数点也站位。

例如:printf("%4.1f",1.2345);//_1.2(下划线代表空格)

Ø  正数表示右对齐(如果给出预留位大于实际位,左边空格代替),负数表示左对齐(如果给出预留位大于实际位,右边空格)。

例如:printf("%-4dabc",123);//123_abc(下划线代表空格)

另外C语言推出一些解决输出转义字符的办法

printf("123\n456");//换行。

       

printf("\\");//打印\

       

printf("%%");//打印%

 

输入:scanf()

在用户输入一个数据时,需要在程序里定义一个变量来接收这个输入进来的值。

//        int n1 = 0;

//        printf("请输入一个数字,按回车结束:");

//        scanf("%d",&n1);

//        printf("n1 = %d",n1);

值得注意的是,scanf("%d",&n1);中变量需要用&n1表示。&表示取地址。后面会介绍。

关于输入数据类型,也需要注意,如果输入的数据类型和程序里定义的变量数据类型不匹配,则定义的变量拒绝接收输入进来的数据。

在输入函数中,与输出函数还有一个区别就是:输出函数的double类型占位符,用%f,但是输入函数的double类型占位符是%lf。

//        double d1 = 0;

//        scanf("%lf",&d1);

输入函数接收多个参数时,可以这样写:但是不推荐。

        //接收多个输入值。

//        int num1 = 0;

//        int  num2 = 0;

//        printf("请输入两个数字,按回车结束:");

        //不推荐这么写

//        scanf("%d%d",&num1,&num2);

//        printf("num1 = %d , num2 = %d",num1,num2);

 

推荐的时分开接收:

        //推荐分开写

//        int num1 = 0;

//        int  num2 = 0;

//        scanf("%d",&num1);

//        scanf("%d",&num2);

 

scanf中,不推荐写除了占位符以外的东西,因为输入的时候需要一一对应输入,否则不接收输入数据。

例如:scanf(“sum = %d”,&n1);则需要在控制台输入:sum=100,才能匹配,n1才能接收到数据,否则拒绝接收数据。

Scanf中的占位符,不能加\n,否则在输入数据时匹配回车将会和\n(换行)进行匹配后,无法得出结果。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值