c语言基础相关问题,大家进✀✀✀

2025-04-04 17:36:13
推荐回答(5个)
回答1:

A,应该不对,''里的东西应该是一个字符,或者一个转义符,'56'显然是两个字符,如果是a=56就对了,那么a就是asc码是56的字符。
B是对的,转义有以下几种格式:
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 问号字符 063
\' 单引号字符 039
\" 双引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
B是最后一种
C也不对,显然上面没这个格式

D不会报错的,但实际d指向的字符串不是你想要的,他的内容是'\012','7','\0'

你再去看看下面的,和你的问题很像,那里也有不错的回答。
答案AC,我去试了,AC编译不通过的,BD至少编译没问题

回答2:

C: \0 说明应该是8进制数,>>>>>特别对应楼主问题补充,赋值表示八进制是\零 \0,不是\o !<<<<< 因此这里后面 xab 不是8进制,是错的。

A:
a ='56' 虽然它是一个串,不合理,但是编译器会把a值等于最后一个字符。
相当于a='6';

答案应该是C;

===============================
还有反驳的么?。。!~

回答3:

不同的编译器有不同理解,不过 BD应该都没问题,这是D打印出来就还是空的,AC不要这么写,

回答4:

B答案只是一个字符串
C答案是指一个十六进制数,前缀0x指之后为十六进制数。

回答5:

在前加有“oX”表示十六进制的数字
只加“o”的表示的是八进制