12月30日刷题笔记

这里记录的是我在牛客网刷题的笔记,标题是牛客网对应题目链接。从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;
}

 

 

  • 34
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值