白月紫藤 2021-12-01 10:05 采纳率: 100%
浏览 44
已结题

C语言试题,语法问题

有以下程序:
    char a,b,c,* d;
    a = '\';
    b = '\xbc';
    c = '\0xab';
    d = "\017";
    printf("%c%c%c\n",a,b,c,* d);
编译时出现错误,以下叙述中正确的是()

A.程序中只有a = ' \ ';语句不正确
B.b = ' \xbc ' ;语句不正确
C.d = " \017 " ;语句不正确
D.a = ' \ ' ;c = ' \0xab ' ;语句都不正确

正确答案(D)

我自己运行程序控制台报错也是这两个语句,百度也是这两个语句错误,但不明白原理,请问为什么
  • 写回答

3条回答 默认 最新

  • 小兔子编程 青少年编程领域优质作者 2021-12-01 10:32
    关注

    a = '' 题目应该是想输出斜杆符号(\),但是在c语言中如果要输出单个斜杆应该要写成: a = '\' ,因为默认一个\是转义字符的标识;所以不正确会报错

    b = '\xbc' 这里\x是转义字符表示后面的值以16进制的方式进行输出 16进制bc对应的十进制就是188,正确不会报错

    c = '\0xab'; 这里应该写成\xab就不会报错了,\0转义字符表示的是字符结尾,但是单引号只能是单个字符所以不正确,如果是字符数组
    char c[] = {"abc\0abc"},这样就正确,后面的abc不会显示输出

    d = "\017"; 这对应ASCII码值为15,输出语句是用指针指向这个对应的值,所以表示正确

    希望对您有帮助,如果有那么一丢丢帮助帮忙采纳下谢谢!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题