C基础(练习心得)

        >> C基本数据类型:char,short, int , long int, long long, float, double, long double,         bool 等等。

  • 32位的电脑:char占用1字节。short类型占用2字节。int占用4字节。long int 4字节。long long 8字节,float 4字,double 8字节,long double 8字节,bool 占1个字节。可用sizeof()获取数据类型的字节大小。
  •    int a;
       long b;
       float f;
       double d;
       char c;
       printf("\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\n char:%d\n",
                    sizeof(a),sizeof(b), sizeof(f),sizeof(d),sizeof(c));
    
    
    类型存储大小和值的范围:
char1 字节-128 到 127 或 0 到 255
unsigned char1 字节0 到 255
signed char1 字节-128 到 127
int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295
short2 字节-32,768 到 32,767
unsigned short2 字节0 到 65,535
long4 字节-2,147,483,648 到 2,147,483,647
unsigned long4 字节

0 到 4,294,967

例如:

    /*
    32767   0111  1111  1111  1111

    -32768  1000  0000  0000  0000

    */

    short int a,b;   //short int 占两个字节
     a=32767;
     b=a+1;     //b=-32768
     printf("a=%d\t b=%d  \n",a,b);

 逗号表达式:

    一般形式:表达式1, 表达式2
   其求值过程分别求两个表达式的值,
   并以表达式2的值作为整个逗号表达式的值

   int a=2,b=4,c=6,x,y;
   y=((x=a+b),(b+c));

   printf("y=%d,x=%d\n",y,x); //y=10,x=6;

C常用运算符:+,-,*,/,++,--(双目运算符基本为左结合,单目运算符基本为右结合性,"="号具有右结合性)。

三元运算符:表达式1?表达式2:表达式3,若表达式1为真,计算表达式2,结果为整个表达式的值;若表达式1为假,计算表达式3,结果为整个表达式的值;

   float a,b;
   char c;

   printf("input expression:a+(-,*,/,%)b\n ");

   scanf("%f%c%f",&a,&c,&b);

   switch(c)
   {
   case '+':
            printf("%f\n",a+b);
            break;

    case '-':
            printf("%f\n",a-b);
            break;

     case '*':
            printf("%f\n",a*b);
            break;

      case '/':
            printf("%f\n",a/b);
            break;

      case'%':
            printf("%f\n",a%b);
            break;
   }

循环类型:if,while、for ,do..while

循环语句:break,continue,goto

if-elseif:

  int score;
        printf("please input your score :\n");
        scanf("%d",&score);
        if(score <60)
        {
            printf("your score is E\n");
        }else if(score >=60 && score <70)
        {

            printf("your score is D\n");

        }
        else if(score >=70 && score <80)
        {

            printf("your score is C\n");

        }
        else if(score >=80 && score <90)
        {

            printf("your score is B\n");

        }
        else if(score >=90)
        {

            printf("your score is A\n");

        }

while或do...while:

        int a=0,n;
        printf("input n:\n");
        scanf("%d",&n);

        printf("====================\n");

        while(n--)
        {
            printf("%d\n",a++*2);    //相当于a*2,然后a++,输出为a*2的值
        }
        //do....while:先斩后奏 ,至少执行一次循环,while:先奏后斩

break,continue:

    float pi=3.14159,area,r;
    for(r=1;r<10;r++)
    {

        area=pi*r*r;
        if(area>100)
        {

            break;    //结束整个循环
        }
        printf("r=%f,area=%f \n",r,area);
    }


    char ch;
    for(;;)     //死循环
    {
        ch=getchar();

        if(ch==27)     //Esc键的ASCLL码为27
        {
            break;     //退出循环
        }

        if(ch==13)          //按Enter键,跳过字符输出语句
        {
            continue;     //结束本次循环

            putch(ch);          //显示输入的字符

        //    putchar(ch);
        }
        getch();            //让程序停一下,按任意键继续
        //getchar();

goto:

    int i,sum=0;
    i=1;
    loop:
        if(i<=100)
        {
            sum=sum+i;
            i++;
            goto loop;
        }
         printf("%d\n",sum);

数组基础:声明一个数组,需要指定元素的类型和元素的数量,

type arrayName [ arraySize ];

初始化数组:

大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。

如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。

例如:

 double score[10]={82,100,87.5,89,78,85,67.5,92.5,93,94};
    int i,j,sum=0,average,v[3];
    int a[5][3]={{80,75,92},{61,65,71},{59,63,70}};//5个人,三门成绩

    for(i=0;i<3;i++)
    {
        for(j=0;j<5;j++)
        {
            sum=sum+a[j][i];
        }
        v[i]=sum/5;
        sum=0;

    }
    average=(v[0]+v[1]+v[2])/3;
    printf("math=%d,chainese=%d,English=%d\n",v[0],v[1],v[2]);

    printf("total=%d\n",average);

函数

  • 返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void
  • 函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
  • 参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
  • 函数主体:函数主体包含一组定义函数执行任务的语句。

注意:

形参:在定义函数时函数名后面括号中的变量称为“形式参数”(形参)

在未出现函数调用时,它们并不占内存中的存储单元,
只有发生函数调用时,函数max中的形参才被分配内存单元,调用结束后,
形参所占的内存单元也被释放

实参:在主调函数中调用一个函数时,函数名后面括号中
的参数(可以是一个表达式)称为实际参数(实参)

在被定义的函数中,必须指定形参的类型

在C语言中,实参对形参的数据传递是“值传递”(相当于copy)
单向传递,只由实参传给形参,而不能由形参传回来给形参

#include <stdio.h>
#include <stdlib.h>
long square (int p);   //计算平方
long factorial(int q);  //计算阶乘
long recursion(int n);
int main()
{
    int i;
    long s=0;
    for(i=2;i<=3;i++)
    {
        s=s+square(i);

    }
    printf("%ld \n",s);

    printf("=======================\n");

    int n;
    long result;
    printf("please input a interger number : \n");


    scanf("%d",&n);

    result=recursion(n);

    printf("%d!=%d \n",n,result);


    return 0;
}


long square(int p)

{
    int k;
    long r;
    //long factorial(int);

    k=p*p;
    r=factorial(k);

      return r;

}


long factorial(int q)

{
    long c=1;
    int i;
    for(i=1;i<=q;i++)

    {
        c=c*i;

    }

    return c;
}

//递归函数
long recursion(int n)
{
    long temp_result;
    if(n<0)
    {
        printf("n<0,input error !\n");

    }else if(n==0 || n==1)
    {
        temp_result=1;
    }
    else{
        temp_result=recursion(n-1)*n;
    }
    return temp_result;
}

个人的一些浅薄的理解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值