zoukankan      html  css  js  c++  java
  • C语言专业课复试整理

    C复试专业基础测试整理

    运行C程序的步骤和方法

    编辑、编译、连接和运行 。

    • 编辑是用户把编写好的C语言源程序输入计算机,以文本文件的形式存放在磁盘上。其标识为:“文件名.c”。

    • 编译是把C语言源程序翻译成用二进制指令表示的目标文件。编译过程由C编译系统提供的编译程序完成。 其标识为:“文件名.obj”。

    • 程序连接过程是用系统提供的连接程序将目标程序、库函数或其他目标程序连接装配成可执行的目标程序。 其标识为:“文件名.exe”。

    • 运行程序是指将可执行的目标程序调入内存投入运行。

    C语言的基本数据类型 (字节数都是在64位机器中,Vscode测试)

    • 基本类型
      • 整形
        • 短整型(short int 2字节)
        • 基本整形 (int 4字节)
        • 长整型 (long int 4字节)
      • 字符型(char 1字节)
      • 浮点型
        • 单精度浮点型(float 4字节)
        • 双精度浮点型(double 8字节)
        • 长双精度浮点型(long double 16字节)
      • 枚举类型(enum)
    • 构造类型
      • 数组类型
      • 结构类型(struct)
      • 共用体类型(union)
    • 指针类型(* 8字节)
    • 空类型(void)

    常量与变量的概念,定义与使用方法

    值不会改变的量称为常量,值可变的量称为变量。

    可与数据类型结合起来分类,例如,可分为整形常量,整型变量,浮点常量,浮点变量,字符常量,字符变量等。

    掌握不同数据类型的输入和输出函数:getchar、putchar以及scanf、printf等.

    getchar 函数的功能是从键盘上输入一个字符。其一般形式为: getchar()。

    putchar 函数是字符输出函数,其功能是在显示器上输出单个字符。其一般形式为:putchar(字符变量) 。

    scanf 函数

    ​ scanf(格式控制,地址表列),例如 scanf("%d%d%d", &a,&b.&c); 地址表列是由若干个地址组成的表列,可以是变量的地址或者字符串首地址,&是地址运算符,用在地址表列中。“%d%d%d”表示按照十进制整形输入三个数,输入时俩个数据之间以一个 空格或多个空格间隔,也可以用 enter 键、Tab 键。

    printf 函数

    1)d 格式符,用来输出十进制整数。

    • ① %d,按照十进制整型数据,实际长度输出。

    • ② %md,数据所占列数小于 m,左端补空格。(指定宽度)数据所占列数大于 m,原样输出。

    • ③ %ld,输出长整形数据。

    2)o 格式符(把内存单元的二进制数按照八进制数字输出)。

    3)x格式符,以十六进制输出,不带正负号,可以用%lx, 也可以指定宽度。

    4)u 格式符,%u 无符号,十进制输出,可以用%lu ,也可以指定宽度。

    1. c 格式符,用来输出一个字符。

    6)s 格式符,用来输出一个字符串。

    • ① %s, For example : printf(“%s”,”china”);

    • ② %ms, 数据所占列数小于 m,左端补空格。数据所占列数大于 m,原样输出。

    • ③ %-ms, 数据所占列数小于 m,右端补空格。数据所占列数大于 m,原样输出。

    • ④ %m.ns,在地址中要 m 个位置,取字符串的前 n 个放在 m 个位置的偏右点,左端补空格。如果 m<n,相当于%ms输出。

    • ⑤ %-m。ns 在地址中要 m 个位置,取字符串的前 n 个放在 m 个位置的偏左点,右端补空格。如果 m<n,相当于%-ms输出。。

    注:不写 m 自动认为 m=n,n不写不行。

    运算之间的优先级和结合性

    优先级 运算符 名称或含义 使用形式 结合方向 说明
    1 [] 数组下标 数组名[整型表达式] 左到右
    () 圆括号 (表达式)/函数名(形参表)
    . 成员选择(对象) 对象.成员名
    -> 成员选择(指针) 对象指针->成员名
    2 - 负号运算符 -算术类型表达式 右到左 单目运算符
    (type) 强制类型转换 (纯量数据类型)纯量表达式
    ++ 自增运算符 ++纯量类型可修改左值表达式 单目运算符
    -- 自减运算符 --纯量类型可修改左值表达式 单目运算符
    * 取值运算符 *指针类型表达式 单目运算符
    & 取地址运算符 &表达式 单目运算符
    ! 逻辑非运算符 !纯量类型表达式 单目运算符
    ~ 按位取反运算符 ~整型表达式 单目运算符
    sizeof 长度运算符 sizeof 表达式
    sizeof(类型)
    3 / 表达式/表达式 左到右 双目运算符
    * 表达式*表达式 双目运算符
    % 余数(取模) 整型表达式%整型表达式 双目运算符
    4 + 表达式+表达式 左到右 双目运算符
    - 表达式-表达式 双目运算符
    5 << 左移 整型表达式<<整型表达式 左到右 双目运算符
    >> 右移 整型表达式>>整型表达式 双目运算符
    6 > 大于 表达式>表达式 左到右 双目运算符
    >= 大于等于 表达式>=表达式 双目运算符
    < 小于 表达式<表达式 双目运算符
    <= 小于等于 表达式<=表达式 双目运算符
    7 == 等于 表达式==表达式 左到右 双目运算符
    != 不等于 表达式!= 表达式 双目运算符
    8 & 按位与 整型表达式&整型表达式 左到右 双目运算符
    9 ^ 按位异或 整型表达式^整型表达式 左到右 双目运算符
    10 | 按位或 整型表达式|整型表达式 左到右 双目运算符
    11 && 逻辑与 表达式&&表达式 左到右 双目运算符
    12 || 逻辑或 表达式||表达式 左到右 双目运算符
    13 ? : 条件运算符 表达式1? 表达式2: 表达式3 右到左 三目运算符
    14 = 赋值运算符 可修改左值表达式=表达式 右到左
    /= 除后赋值 可修改左值表达式/=表达式
    *= 乘后赋值 可修改左值表达式*=表达式
    %= 取模后赋值 可修改左值表达式%=表达式
    += 加后赋值 可修改左值表达式+=表达式
    -= 减后赋值 可修改左值表达式-=表达式
    <<= 左移后赋值 可修改左值表达式<<=表达式
    >>= 右移后赋值 可修改左值表达式>>=表达式
    &= 按位与后赋值 可修改左值表达式&=表达式
    ^= 按位异或后赋值 可修改左值表达式^=表达式
    |= 按位或后赋值 可修改左值表达式|=表达式
    15 , 逗号运算符 表达式,表达式,… 左到右 从左向右顺序结合

    位运算

    运算符 意义 示例 运算结果
    & x&y 如果 x 和 y 都为 1,则得到 1;如果 x 或 y 有一个为0,则得到 0
    | x|y 如果 x 和 y 都为 0,则得到 0;如果 x 或 y 有一个为 1,则得到 1;
    ^ 异或 x^y 如果 x 或 y 的值不同,则得到 1;如果两个值相同,则得到 0
    ~ ~x 如果 x 为 0,则得到 1,如果 x 是 1,则得到 0

    结构化程序设计的三种基本结构

    顺序结构,选择结构, 循环结构 。

    三种基本结构的共同特点:

    • 只有一个入口;
    • 只有一个出口;
    • 结构内的每一部分都有机会被执行到;
    • 结构内不存在“死循环”。

    字符串处理函数

    1. 字符串输出函数 puts
      格式:puts (字符数组名)
      功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串。
    2. 字符串输入函数 gets
      格式: gets (字符数组名)
      功能:从标准输入设备键盘上输入一个字符串。
    3. 字符串连接函数 strcat
      格式: strcat (字符数组名 1,字符数组名 2)
      功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“”。 本函数返回值是字符数组 1 的首地址。
    4. 字符串拷贝函数 strcpy
      格式: strcpy (字符数组名 1,字符数组名 2)
      功能:把字符数组 2 中的字符串拷贝到字符数组 1 中。串结束标志“”也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。
    5. 字符串比较函数 strcmp
      格式: strcmp(字符数组名 1,字符数组名 2)
      功能:按照 ASCII 码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
      字符串 1=字符串 2,返回值=0;
      字符串 2 > 字符串 2,返回值 > 0;
      字符串 1 < 字符串 2,返回值 < 0。
      本函数也可用于比较两个字符串常量,或比较数组和字符串常量。
    6. 测字符串长度函数 strlen
      格式:strlen(字符数组名)
      功能:测字符串的实际长度(不含字符串结束标志‘’) 并作为函数返回值。

    常用宏定义的格式和文件操作

    // 求两个整数相除的余数
    #define MOD(a, b) a % b
    // 交换两个元素
    #define swap(x, y) 
        {              
            int t;     
            t = x;     
            x = y;     
            y = t;     
        }
    // 判断是否是字母
    #define ISALPHA(c) ((c >= 'A' && c < 'Z') || (c > 'a' && c < 'z') ? 1 : 0)
    
    // fopen(文件名,访问模式) 函数来打开文件
    FILE *p = fopen("D:\Vscode_coding\Blog\test.txt", "r"); //文件目录用中文会出错
    // 读取一个文件的一个字符
    c = getc(p);
    // 给文件写入一个字符
    putc('a', p);
    // 按行读取,当读到文件尾时结束,返回NULL。
    fgets(s, sizeof(s), p);
    // 按行写入
    fputs("hello world", p);
    // 从文件中读取输入
    fscanf(p, "%d%d", &a, &b);  //文件内容为:1 2
    // 将结果写入到文件里
    fprintf(p, "arr[%d] = %d
    ", i, arr[i]);
    

    局部变量和全局变量

    在一个函数内部定义的变量是内部变量,它只在本函数范围内有效。也就是说只有在本函数内才能使用它们。在此函数以外是不能使用这些变量。
    说明:

      1. 主函数中定义的也只有主函数中有效,主函数也不能使用其他函数中定义的变量。
    • 2)不同函数可以使用相同名字的变量,他们代表不同的对象,互不干扰。
    • 3) 形参也就是局部变量。
    • 4)在一个函数内部,可以在复合语句中定义变量,此变量只在本复合语句中有效,这种语句叫做分程序或程序块。

    在函数外部定义的变量是全局变量,全局变量可以为本文件中其他函数所共用,他的有效范围从定义变量的位置开始到本源文件结束。
    说明:

    • 1)设置全局变量的作用是为了增加函数间数据联系的渠道。 (一个函数能有好几个返回值)
    • 2)建议不在必要时候不要使用
      ① 全局变量在程序的全部执行过程中都占有存储单元,而不仅在需要时候 才开辟的。
      ② 它使函数的通用性降低。
      ③ 使用全局变量过多,程序清晰性降低。
      ④ 在一个源文件中,外部变量和局部变量同名,则在局部变量的作用范围 内,外部变量被屏蔽。 P187

    动态存储方式和静态存储方式

    变量存在的时间来分,可以分为动态存储方式和静态存储方式。

    所谓静态存储,是指在程序运行期间由系统分配固定的存储空间的方式
    动态存储是指程序运行期间,根据需要进行动态的分配存储空间的方式。

    在动态存储区中存放以下数据: ① 函数形参 ② 自动变量 ③ 函数调用是的现场保护和返回地址等

    直接访问与间接访问

    直接访问:已知变量 i 的地址。根据此地址直接对变量 i 的存储单元进行存取访问。
    间接访问:先找到存放 i 地址的变量。从其中得到变量 i 的地址再找到 i 的存储单元进行访问。
    一个变量的地址称为该变量的指针。存放指针的变量叫做指针变量。

  • 相关阅读:
    优化网站设计(一):减少请求数
    ASP.NET MVC 计划任务(不使用外接程序,.net内部机制实现)
    ASP.NET MVC 母版页
    ASP.NET MVC 系统过滤器、自定义过滤器
    大流量网站的底层系统架构分析
    如何开发高性能低成本的网站之技术选择
    使用Sqlserver事务发布实现数据同步(sql2008)_Mssq l数据库教程
    xpath路径表达式
    减负!云端编译构建,这样让你的开发省时省力……
    SVN如何迁移到Git?
  • 原文地址:https://www.cnblogs.com/52dxer/p/12856573.html
Copyright © 2011-2022 走看看