AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、〖第15题〗33) 若有以下定义:char s='\092'; 则该语句()。

A
 使s的值包含1个字符
B
 定义不合法,s的值不确定
C
 使s的值包含4个字符
D
 使s的值包含3个字符

答案解析

正确答案:B

解析:

这道题考察的是 C 语言中**转义字符**的语法规则,特别是八进制转义序列和字符常量的合法性。 ### 核心解析 1. **转义字符规则**: 在 C 语言中,以反斜杠 `\` 开头的字符序列称为转义序列。其中,`\ddd` 表示 1 到 3 位**八进制**数字所代表的字符。 * **关键点**:八进制数字只能包含 `0` 到 `7`。**数字 `8` 和 `9` 不是合法的八进制数字**。 2. **分析题目中的定义**: 语句为:`char s = '\092';` * 编译器在解析 `\092` 时,会尝试将其识别为八进制转义字符。 * 它从 `\` 后面开始读取数字: * 第一个数字是 `0`(合法八进制)。 * 第二个数字是 `9`。**错误出现**:因为 `9` 超出了八进制的范围(0-7),所以 `\09` 不能构成一个合法的八进制转义序列。 3. **编译器的行为**: * 在标准的 C 语言编译器中,遇到非法的转义序列(如包含非八进制数字的 `\092` 或非十六进制数字的 `\xG` 等),通常会被视为**语法错误**或**非法字符常量**。 * 因此,该定义语句是**不合法**的,无法通过编译。既然无法通过编译,变量 `s` 也就没有被成功定义和赋值,其值自然是不确定的(或者说程序根本跑不起来)。 4. **选项分析**: * **A. 使s的值包含1个字符**:如果转义合法(例如 `'\092'` 改为 `'\102'`),则 `s` 存储一个字符。但此处非法,故排除。 * **B. 定义不合法, s的值不确定**:正确。因为 `9` 不是八进制数字,导致转义序列非法,整个字符常量定义出错。 * **C. 使s的值包含4个字符**:`char` 类型只能存储 1 个字节(1 个字符),不可能包含 4 个字符。且单引号内如果是多字符常量(如 `'abcd'),其行为是实现定义的,但这里是因为转义错误导致非法,而非多字符问题。 * **D. 使s的值包含3个字符**:同理,`char` 只能存 1 个字符。 ### 结论 由于 `\092` 中含有非八进制数字 `9`,导致转义序列非法,因此该定义语句不合法。 **正确答案是:B**
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码