C语言考研知识点

  1. C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。

  2. 运算符运算时ture为1,false为0

  3. strcmp() 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不同的字符,或者到达字符串末尾(遇见\0)。
    返回值:
    如果返回值 < 0,则表示 str1 小于 str2。
    如果返回值 > 0,则表示 str2 小于 str1。
    如果返回值 = 0,则表示 str1 等于 str2。

  4. int a[]={5,7,9}, *p;
    p=a;
    *p+++1=a[0]+1,且p指向了a[1]

  5. int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

  6. 输出格式
    %md: m为指定输出数据的宽度 如果位数小于m,则左端补以空格,如果大于m,则按实际位数输出
    显然a=1234的位数是4 大于%2d中指定的长度2 按实践位数输出 所以结果为1234
    %m.nf格式:指定输出数据宽度为m位,其中小数占n位,如果数值长度小于m,则左端补空格,%7.2f指定 输出的数据占7列,其中包括2位小数,注意小数点占一位。
    例如: printf("%20.15f\n",a/3); 运行结果: 0.333333333333333,即:3个空格,1个0,一个点,15个3。
    %-m.nf: 当数据不超过m时,数据向左靠,右端补空格。

  7. pow() 函数:
    用来求 x 的 y 次幂(次方),其原型为:
    double pow(double x, double y);

  8. 文件读写
    读写字符
    fgetc(fp):从fp指向的文件读入一个字符。返回值是读取的字符,如果发生错误则返回 EOF。
    fputc(ch,fp):把字符ch写到文件指针变量fp所指的文件中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回 EOF。

    读写字符串
    fgets(str,n,fp):从fp指向的文件读入一个长度为(n-1)的字符串,存放到字符数组str中。如果这个函数在读取最后一个字符之前就遇到一个换行符 ‘\n’ 或文件的末尾 EOF,读入即结束,但将所遇到的换行符“\n”也作为一个字符读入。
    fputs(str,fp):把str所指向的字符串写入到文件指针变量fp所指向的文件中。

    用格式化方式读写文本文件:
    fprintf(文件指针,格式字符串,输出表列)
    eg: fprintf(fp,"%d,%6.2f",i,f);
    fscanf(文件指针,格式字符串,输入表列)
    eg: fscanf(fp,"%d,%f",&i,&f);

    用二进制方式向文件读写一组数据:
    fread(buffer,size,count,fp)
    fwrite(buffer,size,count,fp)
    buffer: 是一个地址。对fread来说,它是用来存放从文件读入的数据的存储区的地址;对fwrite来说,是要把此地址开始的存储区中的数据向文件输出。(地址是指起始地址)
    size: 要读写的字节数。
    count:要读写多少个数据项(每个数据项长度为size)
    fp: FILE类型指针
    例如:
    fread(&stud[i],sizeof(struct Student_type),1,fp);
    fread(&stud[i],sizeof(struct Student_type),1,fp);

  9. “向上兼容”–即:不同数据类型的数据参与运算,数据类型要强制转换,转换的方向是: (unsigned)char,(unsigned)short->int->unsigned->long->unsigned long->float->double->longdouble。

  10. char类型数组中存储字符串末尾’\0’情况

  11. 很nice的一篇C语言总结 https://blog.csdn/qq_36657788/article/details/103678555

  12. 逗号表达式. c语言 提供一种特殊的 运算符 , 逗号运算符 ,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个 表达式 的值。. 如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14;a= (a=35,a4)的值是60,其中a=(35,a4)的值是60, a的值在逗号表达式里一直是15,最后被逗号表达式 赋值 为60,a的值最终为60。.

  13. 字符串函数 <string.h>

  14. &、&&的区别

1、最终结果一样。
2、&无论左边是false还是true,右边都执行。
3、&&具有短路效果,左边是false,右边不执行。
4、&&效率更高,项目中推荐使用。

|、||的区别

1、最终的结果一样。
2、|无论左边是false还是true,右边都会执行。
3、||具有短路效果,左边是true,右边不执行。
4、||效果效率更高,项目中推荐使用。
  1. “字符串长度的计算”+“strlen()和sizeof()的区别”
    参考文章(写得很详细):https://blog.csdn/qq_40638006/article/details/80629324.

  2. while(printf(" * ")) 表示打印*成功,则继续执行while循环体中的内容,否则跳出while循环。printf函数的返回值是打印字符的个数,这里printf()表达式肯定不会等于0,而‘0’是个非0的数值

void main(){
    int t=0;
    while(printf("*"))
    {
        t++;
        if(t<3) break;
    }
}

 17. <<左移运算符的运用。左移的位数写在右边。注意理解。
另外,左移一位相当于数字乘以2,右移一位相当于数字除以2.
1<<5,这里1左移5位相当于1乘以2的5次方,也就是32

更多推荐

C语言考研知识点