2027 天津软件学院专升本 · 第一章 C语言基础知识(讲义 P1-12 全覆盖)
答题进度
0/0
首页 第一章 答题测试 第二章 第三章

一进制转换

对应讲义正文第 1-3 页

在计算机内部,程序、数据和信息均采用 二进制 表示。

1. 不同进制的表示方法

进制数字表示方法
十进制(默认)0~9(365)10
二进制0 和 1(1010)2
八进制0~7(307)8
十六进制0~9,A~F(2EF)16

2. 非十进制(二、八、十六)转十进制

方法:按权展开求和法
例 1:将 (123)8 转为十进制

【第一步】按权展开:1×8² + 2×8¹ + 3×8⁰

【第二步】求和:64 + 16 + 3 = 83

答案:(123)8 = (83)10
例 2:将 (10011)2 转为十进制

【第一步】按权展开:1×2⁴ + 0×2³ + 0×2² + 1×2¹ + 1×2⁰

【第二步】求和:16 + 2 + 1 = 19

答案:(10011)2 = (19)10
例 3:将 (F4)16 转为十进制

【第一步】按权展开:15×16¹ + 4×16⁰

【第二步】求和:240 + 4 = 244

答案:(F4)16 = (244)10

3. 十进制转非十进制(二、八、十六)

方法:除 N 倒取余
例 1:将 (13)10 转为二进制

13÷2=6 余 1 6÷2=3 余 0 3÷2=1 余 1 1÷2=0 余 1

倒取余数:1101

答案:(13)10 = (1101)2
例 2:将 (168)10 转为八进制

168÷8=21 余 0 21÷8=2 余 5 2÷8=0 余 2

答案:(168)10 = (250)8
例 3:将 (511)10 转为十六进制

511÷16=31 余 15(F) 31÷16=1 余 15(F) 1÷16=0 余 1

答案:(511)10 = (1FF)16

4. 十进制和二进制互相转换的结论

【结论一】二进制各位全为 1 时:n 个 1 = 2n - 1
【结论二】二进制 1 后面跟 n 个 0:= 2n
例 1:将 (11111111)2 转为十进制

8 个 1 = 2⁸ - 1 = 256 - 1

答案:255
例 2:将 (31)10 转为二进制

31 = 2⁵ - 1,即 5 个 1

答案:(11111)2
例 3:将 (1000000)2 转为十进制

1 后面 6 个 0 = 2⁶

答案:64

5. 二进制和八进制互相转换

方法:421 法(三位一组,每组三位二进制权值分别为 4、2、1)
例 1:将 (11100111)2 转为八进制

从右往左三位分组(不足补 0):011 | 100 | 111

011=3,100=4,111=7

答案:(347)8
例 2:将 (521)8 转为二进制

5→101 2→010 1→001

答案:(101010001)2

6. 二进制和十六进制互相转换

方法:8421 法(四位一组,每组四位二进制权值分别为 8、4、2、1)
例 1:将 (110110100101)2 转为十六进制

四位分组:1101 | 1010 | 0101

1101=D,1010=A,0101=5

答案:(DA5)16
例 2:将 (F7B)16 转为二进制

F→1111 7→0111 B→1011

答案:(111101111011)2

进制转换练习工具

→
结果将显示在这里

二原反补码和无符号数

对应讲义正文第 3-5 页

整数在计算机内部采用 补码 的形式表示。

1. 原码(8 位二进制)

表示方法:符号位 + 数值部分
  • 符号位:最高位(最左边),用于表示整数的正负,其中 0 代表"正",1 代表"负"。
  • 数值部分:后 7 位,用于表示整数的数值大小。
10011011
符号位数值部分
例 1:求 -3 的原码(8 位)

3 的二进制为 0000011,负数符号位置 1

答案:1000 0011
例 2:求 5 的原码(8 位)
答案:0000 0101

2. 反码(8 位二进制)

  • 1)正数的反码等于正数的原码。
  • 2)负数的原码符号位不变,数值部分每一位取反(0 变 1,1 变 0)就得到了负数的反码。
例 1:求 -7 的反码(8 位)

-7 原码:1000 0111 → 符号位不变,数值位取反

答案:1111 1000

3. 补码(8 位二进制)

  • 1)正数的补码等于正数的原码。
  • 2)负数的补码等于负数的反码 + 1(二进制加法)。
例 1:求 -13 的补码(8 位)

原码:1000 1101 → 反码:1111 0010 → 补码(反码+1):1111 0011

答案:1111 0011
例 2:已知八位补码为 11101011,求该补码所对应的十进制整数

符号位为 1,是负数。补码减 1 得反码:1110 1010;数值位取反得原码:1001 0101 = -21

答案:-21

4. 补码的范围

  • 1)8 位补码能表示的整数范围为 -128 ~ 127。其中 -128 的补码为 1000 0000,127 的补码为 0111 1111。
  • 2)16 位补码能表示的整数范围为 -32768 ~ 32767。其中 -32768 的补码为 1000 0000 0000 0000,32767 的补码为 0111 1111 1111 1111。

5. 无符号数

无符号数,顾名思义没有"符号位",所以无符号数不能表示负数,只能表示 0 和正数。对于无符号数,全部的二进制位都用于表示数值大小。

  • 1)8 位无符号数能表示的整数范围为 0~255,其中 255 的无符号数为 1111 1111。
  • 2)16 位无符号数能表示的整数范围为 0~65535,其中 65535 的无符号数为 1111 1111 1111 1111。

三ASCII 码

对应讲义正文第 5 页

西文字符在计算机内部以 ASCII 码的形式表示,ASCII 码分为 7 版本和 8 版本,其中 7 版本是国际通用版本,有 128 个不同的编码。

字符0~9A~Za~z
ASCII 码(十进制)48~5765~9097~122
记忆口诀:'0' = 48,'A' = 65,'a' = 97,同字母小写比大写大 32。

四C 程序的执行过程

对应讲义正文第 5 页
  • 1)C 语言是一种高级语言,高级语言编写的程序叫作源程序。
  • 2)由 C 语言编写的源程序的扩展名为 .c。
  • 3)C 的源程序经过编译后生成目标程序(.obj),再经过链接后生成可执行文件(.exe)。
流程:源程序(.c) →【编译】→ 目标程序(.obj) →【链接】→ 可执行文件(.exe)
例 1:C 语言的执行过程分为 ______ 和 ______
答案:编译、链接
例 2:文件 "text.obj" 是( )

A. 源程序 B. 可执行程序 C. 目标程序 D. 系统文件

答案:C .obj 是编译后生成的目标程序。

五C 程序的基本结构

对应讲义正文第 5 页
  • 1)高级语言分为面向过程高级语言和面向对象高级语言,C 语言是一种面向过程语言。
  • 2)C 语言有三种基本结构:顺序结构、选择结构和循环结构。

六C 程序的特点

对应讲义正文第 5-6 页
  • 1)一个 C 程序是由若干个函数组成,函数是组成 C 程序的基本单位。
  • 2)C 程序有且只有一个主函数(main),主函数在程序中的位置可以任意。
  • 3)C 程序总是由主函数开始执行,并且结束于主函数。
  • 4)每条 C 语句是以分号结束,一行可以写多条语句,一条语句也可以写成多行。
例 1:判断对错(6 小题)

1)C 程序中的主函数只能放在最前面(×)—— 位置任意

2)C 程序总是从第一个函数开始执行(×)—— 从 main 开始

3)C 程序包括过程和函数这两种(×)—— 只有函数

4)编写 C 程序时,每行只能写一条语句(×)—— 一行可写多条

5)函数是 C 程序的基本单位(√)

6)C 程序最少包括一个函数,该函数为主函数(√)

七简单的 C 程序

对应讲义正文第 6-8 页

1. 简单的输出

例 1:第一个 C 程序 Hello World
/* 欢迎来到徐小贱升本课堂
   这是你学到的第一个C程序 */
#include <stdio.h>
int main()
{
    printf("Hello World");  //调用printf函数将Hello World显示到屏幕上
    return 0;
}
  • printf 函数:C 语言库函数(自带函数),用于输出(显示信息)。
  • printf 基本格式:printf("此处写输出的内容");
例 2:\n 换行
#include <stdio.h>
int main()
{
    printf("Hello\nWorld\n");
    return 0;
}

\n 的作用:换行。输出为两行:Hello / World

例 3:%d 格式控制符
#include <stdio.h>
int main()
{
    printf("一年有%d天\n",365);
    return 0;
}

%d:十进制整型的格式控制符。输出:一年有365天

例 4:%% 输出百分号
#include <stdio.h>
int main()
{
    printf("一年有%%%d天\n",365);
    return 0;
}
输出结果:一年有%365天(%% 输出一个 %,%d 输出 365)

2. 简单的计算

例 1:两数相加
#include <stdio.h>
int main()
{
    int a,b,c;
    a = 2,b = 3;
    c = a+b;
    printf("%d加%d的结果为:%d\n",a,b,c);
    return 0;
}
输出结果:2加3的结果为:5

3. 简单的输入

例 1:键盘输入两个数求和(运行时输入 5 7<回车>)
#include <stdio.h>
int main()
{
    int a,b,c;
    scanf("%d%d",&a,&b);
    c = a+b;
    printf("%d加%d的结果为:%d\n",a,b,c);
    return 0;
}
  • scanf 函数:C 语言库函数(自带函数),用于输入(从键盘上获取)。
  • scanf 基本格式:scanf("输入格式",输入列表);
  • 注意:变量前要加取地址符 &。输入 5 7 后输出:5加7的结果为:12

八标识符

对应讲义正文第 8-9 页

标识符可以简单的理解为 C 语言中的名字,写程序时由程序开发人员自定义,但是要符合标识符的命名规则,好的标识符会提高程序的可读性。

1. 标识符的命名规则

  • 1)由阿拉伯数字、英文字母和下划线组成。
  • 2)开头的不能为数字。
  • 3)区分大小写(例如 sum 和 SUM 在 C 语言中是两个不同的标识符)。
  • 4)不能采用 C 语言中的关键字作为标识符。

2. C 语言关键字(32 个,均为小写)

autoshortintlong
floatdoublecharstruct
unionenumtypedefconst
unsignedsignedexternregister
volatilevoidifelse
switchcasefordo
whilegotocontinuebreak
defaultstaticsizeofreturn
例 1:下列选项中标识符合法的是( )A.$ab B.2a C.int D._123
答案:D A 含 $;B 数字开头;C 是关键字。
例 2:下列选项中标识符合法的是( )A.a-b B.#C C.include D.sizeof
答案:C include 不是关键字(是预处理命令),可作标识符;D 是关键字。
例 3:以下有 4 组标识符,其中合法的一组是( )

A. For -sub Case  B. 5d Do Sum  C. x_5hao IF _1BC  D. hello void define

答案:C A 中 -sub 含减号;B 中 5d 数字开头;D 中 void 是关键字。注意 For、IF、Case 均合法(关键字均为小写,区分大小写)。

九本章习题(讲义 P9-12)

点击选项自动判分,做对变绿、做错变红并显示正确答案

十习题册第一章题库

选自《C语言程序设计习题册》第一章:选择题 25 + 填空题 12 + 判断题 5 + 编程题 1
已作答 0 / 0 答对 0 正确率 --

补天软考点补充(讲义外高频考点)

根据天津软件学院专升本 C 语言历年考情整理,补充讲义未覆盖但常考的内容
高频考点 1 · C 语言背景

C 语言于 1972 年由美国贝尔实验室的 Dennis Ritchie(丹尼斯·里奇)在 B 语言基础上设计,最初用于重写 UNIX 操作系统。C 语言是面向过程的结构化高级语言,兼有"高级语言易用"和"低级语言(汇编)可直接操作硬件"的双重特点,因此也被称为中级语言。

高频考点 2 · 编译型 vs 解释型

C 语言是编译型语言:源程序必须整体编译、链接生成 .exe 后才能运行,.exe 可脱离 C 开发环境独立运行(易错判断题!)。对比:BASIC、Python 属于解释型语言。编译过程能检查语法错误,但编译通过 ≠ 运行结果正确(可能存在逻辑错误)。

高频考点 3 · 注释

两种注释:/* 多行注释 */ 和 // 单行注释。注释可以出现在程序任何位置,编译时不被检查、不被执行,只起说明作用,可提高可读性。/* */ 不能嵌套。

高频考点 4 · main 函数细节

一个 C 程序有且仅有一个 main 函数;程序从 main 开始执行、在 main 结束,与其他函数位置无关;main 可以调用其他函数,但其他函数不能调用 main。

高频考点 5 · 进制与补码数字速记

8 位补码范围 -128~127(-128 无对应原码/反码,是经典陷阱);n 位补码范围 -2n-1 ~ 2n-1-1;n 位无符号范围 0 ~ 2n-1。常考 ASCII:'0'=48、'A'=65、'a'=97,'a'-'A'=32。

高频考点 6 · printf / scanf 细节

%% 输出一个 %;%d 对应十进制整型;scanf 中变量前必须加 &(取地址);输入多个数据时格式串无分隔符则用空格/回车分隔。printf、scanf 是库函数不是语句("属于 C 语句的是 x=x+1;" 这类题常考)。

高频考点 7 · 易混概念辨析
  • 标识符只能含 字母、数字、下划线,首字符不能是数字;含 $、#、-、空格均非法。
  • include 不是关键字(是预处理命令),可作标识符;main 不是关键字,Main(大写)是合法标识符且与 main 不同。
  • 关键字共 32 个,全部小写;If、FOR、Switch 等大写形式都是合法标识符。
  • 调试(debug)= 查错和排错,不是编译/链接。
  • C 语言通过函数实现模块化;C 语言本身没有输入输出语句,靠 printf/scanf 等库函数完成。
备考建议

第一章在天软 C 语言考试中以选择题、填空题、判断题为主,约占总分 8-12 分。重点掌握:① .c→.obj→.exe 流程及各环节名称;② main 函数的 4 个特点;③ 标识符合法性判断(必考 2-3 题);④ 32 个关键字混选;⑤ 进制互化计算(必考);⑥ 补码范围 -128~127。本章所有题库题目建议做到 100% 正确。