C语言学习笔记(一)

        记录了自学Ç语言遇到的问题。有的是ç语言的语法问题,有的是算法问题。

一,数据基础:

                 1,如111,在二进制中表示7;即    ;

                 2,int型的范围是-32768~32767;

                 3,%x以十六进制表示整数,

二,字符的问题:

             1,遇到同时输入数字和字符型的,键入空格时,由于%C会读入字符空格,所以需要将%C间隔一个空格输入。

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

             2,的getchar()会读取一个输入的字符;的getchar()与的putchar()函数专门用于处理字符问题;

getchar()不含参数,如ch = getchar()使用效果同scanf(%c,&ch); 类似的,的putchar()函数包含参数,参数为待打印的字符,用于输出字符,的putchar(CH);

             3,刷新缓冲区:使用函数fflush()或使用换行符“\ n”(从缓冲区把数据传递到屏幕或文件成为刷新缓冲区)

              4,字符用''; 而字符串用双引号表示“”; 而在Ç语言中没有字符串类型,需要使用字符数组来定义字符串;

              5,函数strlen的()读取字符串长度;

              6,约定的编程习惯中#difine符号常量一般用大写;还可以使用关键字/ * const int * /;但注意此时声明的是变量;

              7,若要在程序中使用INT_MAX或INT_MIN等符号常量,则需要在头文件中声明<limits.h>; (可以用文本编辑器打开的.h文件查看相应的符号常量。)

               8,对于浮点数要想控制小数点后位数,则可以%。2f; 即表示小数点后两位;而对于%d型,可以在%后添加标记

如%-10D,表示有十个空格宽度, “ - ” 表示数字从左开始显示;

               9,函数pirntf()也具有返回值,它的返回值是待打印的字符数目;

              10,函数pirntf()字符串拼接的方法:printf(“**** \ n”“***”);

              11,函数scanf()的读取基本变量的值要使用&取地址,但若将字符串读入数组中,不需要加&;但注意,除了%C型,其他类型都会跳过空格;还有,scanf()的的返回值是读入的项数,若读取有错误,返回0;

              12,C语言中给出了专门处理字符的头文件文件ctype.h,这里给出字符映射函数,tolower的():将参数返回小写字母;

在toupper():将参数返回大写字母;

              13,使用EOF,EOF的值为-1时,包含在文件stdio.h中,的getchar()与scanf()的检测到文件结尾时返回EOF;

while((ch = getchar()) != EOF)

{
    ;
}

三,C语言不等式

                以下这种形式

a<=x<=b;    /*表示(1)<=b,因为C语言中1表示运算正确*/

而真正的不等式应表示为

(a<=x)||(x<=b);

四,对小数点后的四舍五入

                方法一:应用强制类型转换

for(i=1,s=1;i<=n;i++)
    {   
    (int)(a*10*s+0.5);    /*n为小数点后位数*/
    s=10*i;
    }

                方法二:应用向下取整函数floor()/ * PS:向上取整函数为ceil()* /

for(i=1,s=1;i<=n;i++)                        /*n为小数点后位数*/
{
    if(floor(a*10*s)>=0.5)        
    {
    b=floor(a*10*s)+1;
    }
    else
    {
    b=floor(a*10*s);
    }
    s=i*10;
}

五,C语言的运算符:

        1,除法:/浮点数相除结果仍为浮点数,而整数除法结果仍为整数。

        2,求模运算:%,即取余数。

        3,++与 - :若单独作为一条语句使用,二者作为前缀与后缀均无区别,但如果与其他运算符连用,做前缀时是先递变再进行运算,而作为后缀则是先进行运算再递变。

        4,sizeof(int)或sizeof f;具体变量名;获取右侧的对象的字节数;

        5,re%= 3; // re = re%3;对于其他运算符+ = - = * = / =同样适用。   

        6,三目条件运算符:有些时候比如果​​选择语句更为简便。如max =(a> b)?a:b;

        7,切换选择语句要与break; 连用,否则会造成执行除了相应标签外的剩下语句;

六,循环

        1,while while循环是先执行完循环体,再执行测试条件。但注意,而语句后面要接“;”。

七,数组

        1,int a [10]; //表示可以存储10个int型,但下标是从a [0]开始,此例中一直到a [9];

        2,如果char类型数组中,末尾为'\ 0',那么就构成了一个字符串;

        3,数组的名也是一个指针,地址为数组首个元素的地址,用指针的增减来表示数组的元素挺方便的。

猜你喜欢

转载自blog.csdn.net/wfy_1999/article/details/79491053