2.C语言知识点总结

1.程序结构:  顺序结构 、选择结构(分支结构)、循环结构

2.bit:位 ,是指为0 或者1;byte :字节, 一个字节 = 八个位。

3.编译预处理不是C语言的一部分,不占运行时间,不要加分号。

4.#define PI 3.1415926; ,这个写法是错误的,一定不能出现分号。

5.每个C语言程序写完后,都是先编译(.c),后链接(.obj),最后运行(.exe)。

6.标识符:是由字母,数字,下划线组成,并且第一个必须为字母或下划线。

7.进制转化代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int TenNum(char a[],int B);              //将输入的数字转换成10进制数
void Numchange(int m, int B);            //将转换好了的10进制数转换为所需进制数
int TenNum(char a[], int B)
{
    int len, i, num;
    int sum = 0;     
    len = strlen(a);                    //求得字符串长度
    for (i = 0; i < len; i++)
    {
        if (a[i] >= '0' && a[i] <= '9')
            num = a[i] - '0';
        else if (a[i] >= 'A' && a[i] <= 'F')
            num = a[i] - 'A' + 10;
        sum = sum * B + num;
    }
    return sum;
}
void Numchange(int m, int B)
{
    int n;
    if (m)
    {
        Numchange(m / B, B);
        n = m % B;
        if (n < 10)
            printf("%d", n);           //小于10直接输出
        else
            printf("%c", n + 55);      //大于10转换成字符输出
    }
}
int main()
{
    int B, b,m;
    char a[20];       
    printf("请输入待转换数的进制(2-16):");
    do {
        scanf_s("%d", &B);         
    } while (B < 2 && B > 16);
    printf("请输入待转换数:");
    getchar();  //将输入数据存入缓冲区,然后用后面的gets_s函数将缓冲区中的数据存在数组中         
    gets_s(a,19);                        //将输入的n进制数存放在数组a中
    //gets(buffer) //函数对输入长度不加以限制   
    //gets_s(buffer,size)  //其中第二参数就是允许的输入长度  
    m = TenNum(a, B);             //将输入的数字转换成十进制数
    printf("请输入需要转成几进制数(2-16):");
    do {
        scanf_s("%d", &b);
    } while (b < 2 && b > 16);
    printf("%d进制数%s转换为%d进制数的结果为:",B,a,b);
    Numchange(m, b);                 //将十进制数转换为所需进制数
    printf("\n");
    system("pause");
    return 0;
}


8.C语言中的八进制规定要以0开头、十六进制规定要以0x开头。

9.整型一般是4个字节, 字符型是1个字节,双精度一般是8个字节。

10.“/” 两边都是整型的话,结果就是一个整型。 3/2的结果就是1;

     “/” 如果有一边是小数,那么结果就是小数。 3/2.0的结果就是1.5;

     “%”符号请一定要注意是余数,%符号两边要求是整数。

11.int x=y=10: 错啦,定义时,不可以连续赋值。

     int x,y;x=y=10;   定义完成后,可以连续赋值。

12.自加自减:++a表示将a先加上1后再使用;a++ 表示a先使用后再加上1;

13.逗号表达式:z=(2,3,4)(整个是赋值表达式) 这个时候z的值为4。(等于括号中最右边的值)

                           z=  2,3,4 (整个是逗号表达式)这个时候z的值为2。

14.强制类型转换:

  一定是 (int)a 不是  int(a),注意类型上一定有括号的。

   注意(int)(a+b) 和(int)a+b 的区别。前是把a+b转型,后是把a转型再加b。

15.字符与字符串:

  '1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。

  '0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。

  字符是可以进行算术运算的,记住: '0'-0=48

  大写字母和小写字母转换的方法: 'A'+32='a'  相互之间一般是相差32。

16.使用printf和scanf函数时,要在最前面加上#include“stdio.h”。

17.格式说明:

(其中带前导表示:八进制带0,十六进制带0x)

18.输入格式scanf(“%d,%d”,&x,&y)。

19.putchar ,getchar 函数的考查:

     char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。

     putchar(‘y’)把字符y输出到屏幕中。

20.switch语句:判断其中ap等于多少时执行相应语句:

21.循环语句:for() ; while();  do- while()

22.输入123,输出321逆序输出数据

     int i=123;       

     while(i!=0)

     {

        printf(“%d”,i%10);

        i=i/10;}

23.如何判断a是否为质数:

     void  iszhishu( int a )

      {  for(i=2;i<a/2;i++)

          if(a%i==0) printf(“不是质数”);

          printf(“是质数!”);

       }

24.求n! 

   int fun(int n)

      {  int p=1;

         for(i=1;i<=n;i++) p=p*i;

         return p;

        }

25.int *p 中   *p和p的差别:简单说*p是数值,p是地址!

     *p可以当做变量来用;*的作用是取后面地址p里面的数值

      p是当作地址来使用。

26.  *p++是 地址会变化。      口诀:取当前值,然后再移动地址!

      (*p)++ 是数值会要变化。 口诀:取当前值,然后再使数值增加1。

27.指针变量两种初始化

     方法一:int a=2,*p=&a;(定义的同时初始化)

     方法二:int a=2,*p;  (定义之后初始化)

         p=&a;

28.int x=5,int a[x];           不合法,因为个数是x,是个变量,非法的,

     define P 5  int a[P]       合法,define 后的的P是符号常量,只是长得像变量

29.int a[2][]={1,2,3,4,5,6};                不合法,不可以缺省列的个数。

     int a[][3]={1,2,3,4,5,6};                合法,可以缺省行的个数。

30.一维数组a[10]:a是地址常量,也就是元素a[0]的地址,a+1是跳一列。

     二维数组a[3][3]:a是地址常量,是元素a[0][0]的地址,a+1是跳一行,其中a[0]、a[1]、a[2]也都是地址常量,a[0]+1,               a[1]+1,a[2]+1都是跳一列。

31.strlen 和 sizeof的区别:sizeof求的是数据类型所占空间的大小,而strlen是求字符串的长度。

     char *c="abcdef";

     char d[]="abcdef";

     printf("%d%d/n",sizeof(c),strlen(c));

     printf("%d%d/n",sizeof(d),strlen(d));

     输出结果:

        4 6

        7 6

32.char a[]={‘a’,’b’,’c’};  数组长度为3,字符串长度不定。sizeof(a)为3。

     char a[5]={ ‘a’,’b’,’c’}  数组长度为5,字符串长度3。sizeof(a)为5。

33.数据输入:good good study!

     scanf(“%s”,a); 只会接收 good.不可以接收空格。

     gets(a); 会接收good good study!可以接收空格。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值