欢迎光临
我们一直在努力

《C 语言总复习(第一章):10 大核心高频考点,吃透稳拿基础分》

C语言核心高频知识点
一、C语言基础与发展

  • C语言是编译型计算机语言,最初为开发Unix系统设计,1972年由丹尼斯·里奇发明,1988年ANSI完成标准化,至今仍广泛应用
  • 核心编译器:msvc(VS2022)、clang(XCode)、gcc(CodeBlocks/DevC++);
    ** 二、编译与链接+VS项目基础**
  • 编译链接流程:源文件(.c)经编译器生成目标文件(.obj),多个.obj文件搭配库文件,经链接器生成可执行文件(.exe);一个工程中可存在多个.c文件,但只能有一个main函数,且最终仅生成一个.exe文件
  • VS项目文件类型:源文件(.c,编写核心代码)、头文件(.h,声明函数/宏/标识符等);VS中直接运行C代码快捷键为Ctrl+F5,无需调试直接出结果
    三、main函数+第一个C语言程序(程序入口核心)
    核心代码
  • #include <stdio.h>
    int main() // 程序唯一入口,不可拼写为mian
    {
    printf("hello C\\n");
    return 0; // 与main前int呼应,整型返回0表示程序正常结束
    }

    必考要点

  • main函数有且仅有一个,是程序执行的起点,其后的圆括号()不可省略,大括号{}必须成对出现​
  • 代码中严禁使用中文符号,括号、分号、逗号等均需用英文符号,且每条语句结束必须加英文分号;
  • 四、常用头文件及对应核心库函数

    <stdio.h>

    printf()、scanf()、getchar()、putchar()

    <string.h>

    strlen()、strcpy()、strcat()、strcmp()、memset()、memcpy()

    <math.h>

    sqrt()、pow()、abs()、fabs()、floor()、sin()、cos()、tan()

    <stdlib.h>

    malloc()、free()、realloc()、atoi()、atof()、rand()、srand()

    <stdbool.h>

    定义bool类型,提供true、false布尔常量

    <assert.h>

    assert()

    <time.h>

    time()、localtime()

    <windows.h> Sleep()、system(“cls”)、system(“pause”)
    通用规则:使用库函数必须先包含对应头文件,否则编译报错;<windows.h>为MSVC编译器专属扩展头文件,非C语言标准头文件
    五、关键字

  • C语言有32个核心关键字,C99标准新增inline、restrict等,应试重点掌握核心32个,如int、char、if、for、return、static、break、continue等
  • ​必考规则:关键字是C语言保留字,全部为小写,有固定语法意义,程序员不能将其用作标识符(变量、函数、宏名等)
  • 六、字符与ASCII编码
    必记ASCII码核心值

  • 大写字母A ~ Z对应ASCII码 65 ~ 90,小写字母a ~ z对应97 ~ 122,同一字母的大小写ASCII码差值为32,可通过此规律实现大小写转换
  • 数字字符09对应ASCII码4857,注意是字符’0’而非数字0,二者ASCII码不同
  • 常用转义字符ASCII码:换行符\\n为10,空字符\\0为0;ASCII码0~31为不可打印字符,无法在屏幕上显示
  • 核心代码(字符与ASCII码互转)

    #include <stdio.h>
    int main()
    {
    printf("%d\\n", 'A'); // 输出A的ASCII码65
    printf("%c\\n", 97); // 输出ASCII码97对应的字符a
    printf("%c\\n", 'b'32); // 小写b转大写B,输出B
    return 0;
    }

    七、字符串与\\0+strlen和sizeof对比(重中之重)
    字符串与\\0核心规则

  • C语言中双引号括起来的一串字符为字符串,字符串末尾会自动隐藏\\0,\\0的ASCII码为0,是字符串的唯一结束标志
  • 字符数组两种初始化的区别: char arr1[] = {‘a’,‘b’,‘c’} 仅存字符,无\\0; char arr2[] = “abc” 自动在末尾添加\\0,这是应试高频易错点
  • 无\\0的字符数组,使用printf打印、strlen计算长度时会出现乱码/计算错误,需手动添加\\0
  • strlen与sizeof核心对比(应试必考,易混淆)

  • 本质区别:strlen是库函数,需包含头文件string.h,作用是计算字符串的有效长度;sizeof是C语言关键字/操作符,无需头文件,作用是计算变量/数组/类型在内存中占用的字节数

  • 计算规则:strlen从起始位置开始,遇到\\0立即停止,不计算\\0;sizeof会计算整个变量/数组的内存大小,包含\\0(若存在),且计算数组时不会因\\0停止。​

  • 必考对比代码

  • #include <stdio.h>
    #include <string.h> // 包含strlen头文件
    int main()
    {
    char arr1[] = "abc"; // 自动加\\0,数组长度4
    char arr2[] = {'a','b','c'}; // 无\\0,数组长度3
    // strlen计算
    printf("strlen(arr1):%d\\n", strlen(arr1)); // 遇\\0停,输出3
    // printf("strlen(arr2):%d\\n", strlen(arr2)); // 无\\0,随机值,报错风险
    // sizeof计算
    printf("sizeof(arr1):%d\\n", sizeof(arr1)); // 计算总字节,含\\0,输出4
    printf("sizeof(arr2):%d\\n", sizeof(arr2)); // 计算总字节,输出3
    printf("sizeof(char):%d\\n", sizeof(char)); // 字符类型占1字节,输出1
    return 0;
    }

    八、转义字符(常考,识别+应用)

  • 核心定义:转义字符以\\开头,作用是转变原有字符的含义,如\\n不是普通字符n,而是换行符;\\0是字符串结束标志,属于转义字符的一种
  • 常用转义字符:\\n(换行)、\\(表示反斜杠\\)、‘(表示单引号’)、“(表示双引号”)、\\t(水平制表符,Tab键)、\\r(回车)、\\b(退格);\\ddd(1-3位八进制数字,如\\130对应字符X)、\\xdd(2位十六进制数字,如\\x30对应字符0)
  • 核心应用代码
  • #include <stdio.h>
    int main()
    {
    printf("abc\\ndef"); // \\n换行,输出abc后换行打印def
    printf("c:\\\\test\\\\code.c\\n"); // \\\\表示\\,输出c:\\test\\code.c
    printf("%s\\n", "\\"应试C语言\\""); // \\"表示",输出"应试C语言"
    printf("%c\\n", '\\130'); // \\130八进制转十进制88,输出X
    return 0;
    }

    九、C语言语句分类(5类,应试考特征+识别)
    C语言代码由一条一条语句构成,共分5类,应试重点掌握各类语句的特征,能快速识别即可。

  • 空语句:仅一个英文分号;,用于“需要语句但无需执行任何操作”的场景。​2.
  • 表达式语句:在任意表达式后加英文分号,如 int a = 10; 、 b = a + 5; 、 a++; 。​3.
  • 函数调用语句:函数调用后加英文分号,如 printf(“hehe\\n”); 、 strlen(“C语言”); 、 Add(2,3); 。​4.
  • 复合语句:由成对大括号{}包裹的代码块,如main函数的{}、for/if循环的{},函数体本身也是复合语句。​5.
  • 控制语句:共9种,分3类,用于控制程序执行流程,是后续学习重点;分支语句(if、switch)、循环语句(while、do while、for)、转向语句(break、continue、goto、return)。
    语句识别核心代码
  • #include <stdio.h>
    int Add(int x, int y)
    {
    return x + y; // 转向语句return
    }
    int main()
    {
    ; // 空语句
    int a = 5; // 表达式语句
    printf("a=%d\\n", a); // 函数调用语句
    if(a>3) // 分支控制语句
    {
    a *= 2; // 复合语句(代码块)
    }
    return 0;
    }

    十、注释(应试考格式+避坑要点)

  • 注释核心作用:对代码进行说明,编译器会忽略注释,不影响程序执行;仅给程序员阅读,需写必要注释,避免过度注释或无注释。​2.
  • 两种注释格式:单行注释//(C99标准),注释范围从//到行尾;多行注释/* 注释内容 */,可跨行,但不支持嵌套。​3.
  • 应试必记避坑要点 – 多行注释若忘记写结束符*/,会导致后续所有代码被注释,编译报错。​- 双引号内的注释符号(//、/、/)无效,会被视为普通字符,失去注释作用,如 printf(“// 这不是注释 \\n”); 会直接打印内容。​- 编译时注释会被替换为一个空格,如 min/注释/Value 会被解析为 min Value ,而非 minValue 。
    注释规范代码
  • #include <stdio.h>
    /* 多行注释:
    功能:实现两数相加
    入参:x、y为待相加的整型数
    返回值:两数之和
    */

    int Add(int x, int y)
    {
    return x + y;
    }
    int main()
    {
    int a = 2, b = 4; // 单行注释:定义两个整型变量
    // printf("a=%d, b=%d\\n", a, b); // 注释掉此行,该行不执行
    printf("两数之和:%d\\n", Add(a,b));
    return 0;
    }

    赞(0)
    未经允许不得转载:171主机测评 » 《C 语言总复习(第一章):10 大核心高频考点,吃透稳拿基础分》
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址