这里记录的是我在牛客网刷题的笔记,标题是牛客网对应题目链接。从C语言基础题开始,循序渐进,刷题后我会总结回忆相关知识点以便于达到巩固的效果。零基础友友们可以跟着我一起哦!
1. 小飞机_牛客题霸_牛客网
#include <stdio.h>
int main()
{
printf(" **\n");
printf(" **\n");
printf("************\n");
printf("************\n");
printf(" * *\n");
printf(" * *\n");
return 0;
}
可以为了方便观看,将所有的“\n”对齐。这样小飞机的形状更加可观。
2. 牛牛学说话之-整数_牛客题霸_牛客网
输入描述:输入一个整数,范围在32位有符号整数范围内
输出描述:输出这个整数
#include <stdio.h>
int main()
{
int a = 0;//这里的int是(unsigned) int
scanf("%d",&a);
printf("%d",a);
return 0;
}
回忆:有符号短整型 (signed)short(int) 无符号短整型unsigned short(int)
有符号整型 (signed)int 无符号整型 unsigned int (int是没有被省略的)
有符号长整型 (signed)long (int) 无符号长整形unsigned long(int)
3. 牛牛学说话之-浮点数_牛客题霸_牛客网
输入描述 :输入一个浮点数
输出描述 :输出一个浮点数,保留三位小数
#include <stdio.h>
int main()
{
float a =0.0;
scanf("%f",&a);
printf("%.3f",a);//保留三位小数的方法
return 0;
}
回忆:保留三位小数的办法:% .m f(m表示保留到小数点后m位)
占位符的使用:
4. 牛牛学说话之-字符_牛客题霸_牛客网
输入描述 :输入一个字符,范围在ascii范围内
输出描述 :输出这个字符
回忆:ASCII码表
ASCII码表
ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 |
0 | NUL | 32 | (space) | 64 | @ | 96 | 、 |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | ” | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | ' | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | HT | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SO | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DCI | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 | 51 | 3 | 83 | X | 115 | s |
20 | DC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | TB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 | < | 92 | \ | 124 | | |
29 | GS | 61 | = | 93 | ] | 125 | } |
30 | RS | 62 | > | 94 | ^ | 126 | ~ |
31 | US | 63 | ? | 95 | — | 127 | DEL |
ASCII诠释部分
1.ASCII中的0~31为控制字符;32~126为打印字符;127为Delete(删除)命令。下表为控制字符释义。
十进制 | 十六进制 | 字符 | 十进制 | 十六进制 | 字符 |
0 | 00 | 空 | 16 | 10 | 数据链路转意 |
1 | 01 | 头标开始 | 17 | 11 | 设备控制 1 |
2 | 02 | 正文开始 | 18 | 12 | 设备控制 2 |
3 | 03 | 正文结束 | 19 | 13 | 设备控制 3 |
4 | 04 | 传输结束 | 20 | 14 | 设备控制 4 |
5 | 05 | 查询 | 21 | 15 | 反确认 |
6 | 06 | 确认 | 22 | 16 | 同步空闲 |
7 | 07 | 震铃 | 23 | 17 | 传输块结束 |
8 | 08 | backspace | 24 | 18 | 取消 |
9 | 09 | 水平制表符 | 25 | 19 | 媒体结束 |
10 | 0A | 换行/新行 | 26 | 1A | 替换 |
11 | 0B | 竖直制表符 | 27 | 1B | 转意 |
12 | 0C | 换页/新页 | 28 | 1C | 文件分隔符 |
13 | 0D | 回车 | 29 | 1D | 组分隔符 |
14 | 0E | 移出 | 30 | 1E | 记录分隔符 |
15 | 0F | 移入 | 31 | 1F | 单元分隔符 |
2.ASCII扩展字符——(为了适应更多字符)128~255,或者-128~-1,其中,-128对应128,依次递增对应。
十进制 | 十六进制 | 字符 | 十进制 | 十六进制 | 字符 |
128 | 80 | Ç | 192 | C0 | └ |
129 | 81 | ü | 193 | C1 | ┴ |
130 | 82 | é | 194 | C2 | ┬ |
131 | 83 | â | 195 | C3 | ├ |
132 | 84 | ä | 196 | C4 | ─ |
133 | 85 | à | 197 | C5 | ┼ |
134 | 86 | å | 198 | C6 | ╞ |
135 | 87 | ç | 199 | C7 | ╟ |
136 | 88 | ê | 200 | C8 | ╚ |
137 | 89 | ë | 201 | C9 | ╔ |
138 | 8A | è | 202 | CA | ╩ |
139 | 8B | ï | 203 | CB | ╦ |
140 | 8C | î | 204 | CC | ╠ |
141 | 8D | ì | 205 | CD | ═ |
142 | 8E | Ä | 206 | CE | ╬ |
143 | 8F | Å | 207 | CF | ╧ |
144 | 90 | É | 208 | D0 | ╨ |
145 | 91 | æ | 209 | D1 | ╤ |
146 | 92 | Æ | 210 | D2 | ╥ |
147 | 93 | ô | 211 | D3 | ╙ |
148 | 94 | ö | 212 | D4 | Ô |
149 | 95 | ò | 213 | D5 | ╒ |
150 | 96 | û | 214 | D6 | ╓ |
151 | 97 | ù | 215 | D7 | ╫ |
152 | 98 | ÿ | 216 | D8 | ╪ |
153 | 99 | Ö | 217 | D9 | ┘ |
154 | 9A | Ü | 218 | DA | ┌ |
155 | 9B | ¢ | 219 | DB | █ |
156 | 9C | £ | 220 | DC | ▄ |
157 | 9D | ¥ | 221 | DD | ▌ |
158 | 9E | ? | 222 | DE | ? |
159 | 9F | ƒ | 223 | DF | ? |
160 | A0 | á | 224 | E0 | α |
161 | A1 | í | 225 | E1 | ß |
162 | A2 | ó | 226 | E2 | Γ |
163 | A3 | ú | 227 | E3 | π |
164 | A4 | ñ | 228 | E4 | Σ |
165 | A5 | Ñ | 229 | E5 | σ |
166 | A6 | ª | 230 | E6 | µ |
167 | A7 | º | 231 | E7 | τ |
168 | A8 | ¿ | 232 | E8 | Φ |
169 | A9 | ? | 233 | E9 | Θ |
170 | AA | ¬ | 234 | EA | Ω |
171 | AB | ½ | 235 | EB | δ |
172 | AC | ¼ | 236 | EC | ∞ |
173 | AD | ¡ | 237 | ED | φ |
174 | AE | « | 238 | EE | ε |
175 | AF | » | 239 | EF | ∩ |
176 | B0 | ? | 240 | F0 | ≡ |
177 | B1 | ? | 241 | F1 | ± |
178 | B2 | ▓ | 242 | F2 | ≥ |
179 | B3 | │ | 243 | F3 | ≤ |
180 | B4 | ┤ | 244 | F4 | ? |
181 | B5 | ╡ | 245 | F5 | ? |
182 | B6 | ╢ | 246 | F6 | ÷ |
183 | B7 | ╖ | 247 | F7 | ≈ |
184 | B8 | ╕ | 248 | F8 | ≈ |
185 | B9 | ╣ | 249 | F9 | ? |
186 | BA | ║ | 250 | FA | · |
187 | BB | ╗ | 251 | FB | √ |
188 | BC | ╝ | 252 | FC | ? |
189 | BD | ╜ | 253 | FD | ² |
190 | BE | ╛ | FE | ■ | |
191 | BF | ┐ | 255 | FF | ÿ |
(此ASCII码表摘自CSDN博客文章,原文地址为:http://t.csdnimg.cn/T4zUt)
#include <stdio.h>
int main()
{
char c;
scanf("%c",&c);
printf("%c",c);//打印字符c
return 0;
}
5. 牛牛的第二个整数_牛客题霸_牛客网
输入描述:一行输入 3 个整数,用空格隔开。
输出描述:请输出第二个整数的值
数据的输入方式:多组可以使用数组,也可以利用循环的方法输入多组数据(如下)。
#include <stdio.h>
int main()
{
//可以用数组接受输入的整数
int arr[3]={0};
for(int i = 0;i<3;i++)
{
scanf("%d",&arr[i]);
if (i==1)
printf("%d",arr[i]);
}
return 0;
}
6. 牛牛的字符矩形_牛客题霸_牛客网
输入描述:一行读入一个 char 类型的字符。
输出描述:输出这个字符组成的 3*3 矩形。
常见的占位符:%c字符。对于字符图形的打印这种题型,最重要的是找到规律。
#include <stdio.h>
int main()
{
char ch = 0;
scanf("%c",&ch);
for(int i = 1;i<=9;i++)
{
printf("%c",ch);
if(i%3==0)
{
printf("\n");
}
}
return 0;
}
还有一种很重要的方法:利用数组实现多组数据的输入,但是这种方法不符合本题要求。
int main()/*方法二*/
{
char ch[3][3] = { 0 };
//输入字符
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
scanf("%c", &ch[i][j]);
}
}
//输出字符
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%c", ch[i][j]);
}
printf("\n");
}
return 0;
}
输入及其运行结果示例:
7. 字符转ASCII码_牛客题霸_牛客网
输入描述:一行,一个字符。
输出描述:一行,输出输入字符对应的ASCII码。
方法一:利用函数。getchar();返回的是读取的字符。当函数读取错误或者文件结束时返回EOF。
#include <stdio.h>
int main()
{
char ch = 0;
ch = getchar();//得到一个字符
printf("%d",ch);//输出对应的ASCII码值,ch被以数值的形式打印输出出来
return 0;
}
方法二:直接写,不用函数
int main()
{
char ch = 0;
char n = 0;
scanf("%c", &n);
printf("%d", n + '0' - 48);
return 0;
}
8. 牛牛的字符菱形_牛客题霸_牛客网
输入描述:输入一个char类型字符
输出描述:输出一个用这个字符填充的对角线长5个字符,倾斜放置的菱形
方法一:
#include <stdio.h>
//一行一行的输出(笨方法)
int main()
{
char ch = 0;
scanf("%c", &ch);
for (int i = 1; i <= 5; i++)
{
if (i == 1)
{
printf("%3c", ch);
printf("\n");
}
else if (i == 2)
{
printf("%2c%c%c", ch, ch, ch);
printf("\n");
}
else if (i == 3)
{
printf("%c%c%c%c%c", ch, ch, ch, ch, ch);
printf("\n");
}
else if (i == 4)
{
printf("%2c%c%c", ch, ch, ch);
printf("\n");
}
else
{
printf("%3c", ch);
printf("\n");
}
}
return 0;
}
方法二:
int main()
{
char ch = 0;
scanf("%c", &ch);
//打印第一行至第三行
for (int i = 1; i <= 3; i++)
{
for (int j = 0; j < 2 + i; j++)//1 3 2 4 3 5
{
//打印第一行
if (j < 3 - i)
{
printf(" ");//打印出的是空格
}
else
{
printf("%c", ch);//打印的是字符
}
}
printf("\n");//一行打印完,换行
}
//打印第四行至第五行
for (int i = 1; i <= 2; i++)
{
for (int j = 0; j < 5 - i; j++)//1 4 2 3
{
if (j < i)//1 1 2 2
{
printf(" ");
}
else
{
printf("%c", ch);
}
}
printf("\n");
}
return 0;
}