第二章 · 数据类型和运算符 · 答题测试
首页 第一章 第二章 答题测试 第三章
说明

本页为第二章《数据类型和运算符》的答题测试。每节先列知识点,再进行测试;题型为判断题 + 选择题。题目在覆盖讲义/习题册原题的基础上,补充了天软考纲与历年真题风格的高频题。做错自动收入错题本。

一变量、常量与整型

对应讲义正文第 13-16 页

知识点

  • 变量的值在程序运行中可以改变,常量的值无法修改。定义格式:数据类型名 变量名;
  • C 语言能表示的进制:十进制(默认)、八进制(前导 0)、十六进制(前导 0x/0X);不能表示二进制。
  • 格式控制符:%d 十进制、%o 八进制、%x/%X 十六进制;定义有前导、输出无前导。
  • 整型数据在计算机中以补码形式存储;int 占 2 字节时范围 -32768~32767,超出会溢出。
  • unsigned 无符号:2 字节时范围 0~65535,用 %u 输出;-1 以 %u 输出得 65535。
天软考点 · 进制常量判断

八进制前导 0 不能出现 8、9(018、029 非法);十六进制只能含 0~9、a~f(0xcdg 非法);C 语言没有二进制常量。这三类是必考的"非法常量"判断题。

本节测试 · 选择题

本节测试 · 判断题

二实型

对应讲义正文第 17-18 页

知识点

  • 实型常量:小数形式(必须有小数点,如 .5、5.)和指数形式(e/E 两边必须有数字,右边必须是整数)。
  • float 占 4 字节(%f),double 占 8 字节(%lf)。
  • 用 %f / %lf 输出实型时,默认保留六位小数。
天软考点 · 指数形式陷阱

1.5e(右边无数字)、e3(左边无数字)、2e4.5(右边是小数)均非法;带正号 +1e+1 合法。sizeof(double)=8 常考。

本节测试 · 选择题

本节测试 · 判断题

三字符型

对应讲义正文第 18-24 页

知识点

  • 字符以 ASCII 码存储,一个字符占 1 个字节;'0'=48、'A'=65、'a'=97。
  • 字符常量用单引号括单个字符;字符串用双引号,末尾自动加结束标志 '\0'。
  • 转义字符:\n 换行、\t 跳格、\b 退格、\\ 反斜杠、\ddd(1~3 位八进制)、\xhh(1~2 位十六进制)。
  • sizeof 字符串含 \0,strlen 求长度不含 \0;%c 输出字符原型(无单引号)。
  • char 本质是整型:可用 ASCII 码值赋值,运算时用 ASCII 码值运算。
天软考点 · 转义字符陷阱

'\018' 非法(8 不是八进制数字);'\0x2e' 非法(应为 '\x2e');'\x111' 非法(最多 2 位);'\101' 合法(=65='A')。sizeof("double")=7 常考。

本节测试 · 选择题

本节测试 · 判断题

四算术运算

对应讲义正文第 24-26 页

知识点

  • 优先级:*、/、% 高于 +、-;结合性自左向右。优先级指结合的优先次序,不是计算的先后顺序。
  • 除法 /:两个整型相除结果为整型(舍去小数);有一边是实型则结果为实型。
  • 求余 %:两边必须是整型;结果的正负与左边一致。
  • 取位公式:个位 n%10、十位 n/10%10、百位 n/100%10、千位 n/1000。
天软考点 · 奇偶与整除

n%2==0 为偶数,n%2==1 为奇数;n%k==0 表示 n 能被 k 整除。3/5=0、3/5.0=0.6、-5%3=-2、6%-5=1 都是经典考题。

本节测试 · 选择题

本节测试 · 判断题

五赋值运算

对应讲义正文第 26-29 页

知识点

  • 赋值运算符 = 及复合赋值 +=、-=、*=、/=、%=;结合性自右向左,优先级倒数第二(仅高于逗号)。
  • 赋值号左边必须是变量,不能是表达式或常量;C 语言不允许连等于初始化(int a=b=2; 非法)。
  • 复合赋值右边整体先算:a -= 2+b 等价于 a = a-(2+b)。
  • 只有赋值运算和 ++、-- 才能改变变量的值。
天软考点 · 链式复合赋值

a+=a-=a*a 类题目自右向左算:先 a-=a*a(a=-6),再 a+=a(a=-12)。实型赋给整型舍去小数(a=b+1.5 若 b=2,a 得 3)。

本节测试 · 选择题

本节测试 · 判断题

六加加、减减运算

对应讲义正文第 29-32 页

知识点

  • ++、-- 为单目运算符,优先级正数第二,结合性自右向左;运算对象必须是变量。
  • 在前:先加 1(减 1),再使用变量的值;在后:先使用变量的值,再加 1(减 1)。
  • 单独的加加、减减(如 a++;)不区分在前在后。
  • 需要区分的 4 种情况:printf 输出时、与其他运算符混合运算时、判断条件中、函数实参。
天软考点 · 先用后加易错点

a+++3 等价于 (a++)+3;int a=017; printf("%d",a++) 先转十进制 15 再输出 15(a 后变 16)。(a+2)++、5++ 均非法。

本节测试 · 选择题

本节测试 · 判断题

七逗号运算与强制类型转换

对应讲义正文第 32-34 页

知识点

  • 逗号运算符优先级最低,自左向右依次计算,整个表达式的值取最后一项。
  • 赋值优先于逗号:c = a, b*2; 使 c=a;c = (a, b*2); 才取 b*2。
  • 强制类型转换 (类型名)表达式:单目运算符,结合性自右向左,不改变变量本身的值。
天软考点 · 混合运算

(a=2, a++, a*2) 的值为 6(每项都执行);c = a, b*2 中 c 得到的是 a(逗号优先级最低)。(int)a 后 a 的值不变,常考判断题。

本节测试 · 选择题

本节测试 · 判断题

已作答 0 / 0 答对 0 正确率 -- | 错题本 0 题

📖 错题本

做错的题自动收录;"不太会却蒙对"的题,点击题目下方的「加入错题本」手动收录。答对即可移除。