C Primer Plus 第三章查缺补漏

最近发现自己有些C语言基础还是有些不牢固,基础是很重要的。虽然学过C语言,但是真的功力不够。而这本书之前打算读却因为各种原因搁置了,现在重新拾起希望能够提升自己的C语言功底。从第三章数据类型开始读起,并采用全新的学习方法,因为会点C语言,本着高效学习的原则,打算读书把不熟悉的部分挑出整理并记住运用,认真完成课后题。

下面是我的查缺补漏,找出的不熟悉点:

1.Int 类型:
显示八进制:%o,显示十六进制:%x。另外,要显示个进制的前缀0,0x,0X必须使用%#o,%#x,%#X。

unsigned int —%u

long -------%ld

short 类型:使用h前缀。

h和l都可以和u一起用,用于表示无符号类型。如unsigned long ----%lu,long long有符号:%lld,无符号%llu

2.转义序列
\a 警报(ANSI C)
\b 退格
\f 换页
\r 回车
\t 水平制表符
\v 垂直制表符
\ 反斜杠
\’ 单引号
\” 双引号
? 问号
\0oo 八进制值(oo必须是有效的八进制数,即每个o表示0~7中的1个数)
\xhh 十六进制值(hh必须是有效的十六进制数,即每个h可表示0~f中的一个数)
(后两个表示ASCII码,即实际表示/字符)

3.浮点类型float 可以没有小数点或指数部分,但不能同时省略两者;可以省略小数部分或整数部分,但不能同时省略两者。
默认浮点常量是double类型,而浮点数加上后缀复F或f可覆盖默认设置,编程float类型,加上后缀L或l为long double 类型。
十六进制表示浮点型常量:在十六进制数前加上十六进制前缀0x或0X,用p或P代替e或E,用2的幂代替10的幂(即p计数法)。

%f打印十进制浮点数float或者double。
%e打印指数计数法的浮点数
%a打印十六进制格式浮点数
long double 加前缀L

4.复数与虚数
float_Complex,double_complex,long double_Complex
float_Imaginary,double_Imaginary,long double_Imaginary
Eg:float_Complex=float+flaot_Imaginary
若包含<complex.h>头文件
不冲突情况下则可用complex代替_Complex,imaginary代替_Imaginary,有I代表-1的平方根。

5.sizeof()以字节为单位给出指定类型的大小,%zd转换说明匹配sizeof的返回类型

下面是课后题编程练习部分:

#include<stdio.h>

void num1(void)
{
	printf("\n\n整数上溢: %d",2147483647+1);
	printf("\n浮点数上溢:%e",3.4E38*100.0f);
	printf("\n浮点数下溢:%e",0.1234E-10/10);
	
}

void num2(void)
{int a;
 printf("\n\n input ASCII:");
 scanf("%d",&a);
 printf("\n字符串表示 %c",a);
}

void num3(void)
{
	printf("\n\n\a Startled by the sudden sound, Sally shouted,\n\"By the Great Pumpkin, what was that!\""); 
}

void num4(void)
{   float b,c,d;
	printf("\n\n输入一个浮点数:");
	scanf("%f",&b);
	printf("\n小数点形式: %f",b);
	printf("\n指数形式: %e",b);
	printf("\np计数法: %a",b);
}

void num5(void)
{
float a;
printf("\n\n输入年龄:");	
scanf("%f",&a);
printf("\n换算为秒数:%e",a*3.156e7);
}

void num6(void)
{
float a;
printf("\n\n输入水的夸脱数:");	
scanf("%f",&a);
printf("\n水分子数量:%f",(a*9.5e25)/3);
}


void num7(void)
{
float a;
printf("\n\n输入身高:(英寸)");	
scanf("%f",&a);	
printf("\n厘米显示身高为%.2f",a*2.54);
}

void num8(void)
{
float a;
printf("\n\n输入杯数:");	
scanf("%f",&a);
printf("\n品脱数:%f",a/2);
printf("\n蛊司数:%f",a*8);
printf("\n汤勺数:%f",a*8*2);
printf("\n茶勺数:%f",a*8*2*3);
}

int main()
{
	num1();
	num2();
	num3();
	num4();
	num5();
	num6();
	num7();
	num8();
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独孤西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值