编程题2 练习2-3 输出倒三角图案
原题链接:练习2-3 输出倒三角图案 (pintia.cn)
参考答案
#include<stdio.h>
int main(){
printf("* * * *\n");
printf(" * * *\n");
printf(" * *\n");
printf(" *\n");
return 0;
}
答案详解
- 反斜杠n :
\n
是一种转义字符,在这里的作用是换行。
什么是转义字符?
-
字符集(Character Set)为每个字符分配了唯一的编码,比如题目中的
*
就是一个字符,他的八进制形式的编码值是52
。 -
在C语言中,一个字符除了可以用它的实体表示,还可以用编码值表示。
-
可以尝试如下代码看显示的结果。
#include<stdio.h>
int main(){
char c='\52';//用编码值表示*
printf("%c",c);
return 0;
}
-
这种使用编码值来间接地表示字符的方式称为转义字符。
-
转义字符以
\
或者\x
开头,以\
开头表示后跟八进制形式的编码值,以\x
开头表示后跟十六进制形式的编码值。 -
对于转义字符来说,只能使用八进制或者十六进制。
ASCII 编码是最简单的西文编码方案,在ASCII 编码中0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来表示。不过,直接使用 ASCII 码记忆不方便,也不容易理解,所以,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下:
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) | 009 |
\v | 垂直制表(VT) | 011 |
\' | 单引号 | 039 |
\" | 双引号 | 034 |
\\ | 反斜杠 | 092 |
\n
和\t
是最常用的两个转义字符:
\n
用来换行,让文本从下一行的开头输出;\t
用来占位,一般相当于四个空格,或者 tab 键的功能。
单引号、双引号、反斜杠是特殊的字符,不能直接表示:
- 单引号是字符类型的开头和结尾,要使用
\'
表示,也即'\''
; - 双引号是字符串的开头和结尾,要使用
\"
表示,也即"abc\"123"
; - 反斜杠是转义字符的开头,要使用
\\
表示,也即'\\'
,或者"abc\\123"
。
这个题目的答案也可以将所有输出写在一行代码里面
#include<stdio.h>
int main(){
printf("* * * *\n * * *\n * *\n *\n");
return 0;
}