第二章:C语言基础(三)

作业
1> 将今天的所有课堂代码重新实现一遍,并给出详细注释

cpp 复制代码
#include<stdio.h>

int main(int argc, const char *argv[])
{
	printf("%hu\n", 65530);         //正常输出无符号short类型的数据
	printf("%hd\n", 32760);         //正常输出有符号short类型的数据
	printf("%hd\n", -32760);         //正常输出有符号short类型的数据

	printf("***************************\n");
	printf("%hu\n", 65540);        // 4  因为数据超出了short类型的大小
	printf("%hd\n", 32770);        //-32766  因为达到了有符号short的最大值,则变成最小值
	printf("%hd\n", -32770);       //32766  因为达到了有符号short的最小值后,就变成的最大值

	printf("*****************************\n");
	//sizeof:系统提供的关键字,用于计算给定类型所在的字节数
	//sizeof求出的数据类型为size_t类型,输出格式控制为 %zd
	printf("sizeof(short) = %zd\n", sizeof(short));      // 2
	
	return 0;
}
cpp 复制代码
#include<stdio.h>

int main(int argc, const char *argv[])
{

	printf("%u\n", 4294967295);         //正常输出无符号int类型数据
	printf("%d\n", -2147483648);         //正常输出有符号int数据
	printf("%d\n", 2147483647);         //正常输出有符号int数据
	printf("********************************\n");

	printf("%u\n", 4294967295+1+3);      //3  //超过最大数,就变成最小数
	printf("%u\n", -1);             //4294967295
	printf("%d\n", 2147483650);      //-2147483646
	
	printf("********************************\n");
	printf("sizeof(int) = %zd\n", sizeof(int));      //4
	return 0;
}
cpp 复制代码
#include<stdio.h>

int main(int argc, const char *argv[])
{
	printf("%zd\n", sizeof(10));         //4 在int范围内的整数,默认都是整形

	printf("%zd\n", sizeof(2222222222));//超过有符号int数据范围,默认是长整形

	return 0;
}
cpp 复制代码
#include<stdio.h>

int main(int argc, const char *argv[])
{
	//定义float类型的数据存储小数
	float num = 3.14159265358979323;
	printf("%f\n", num);       //3.141593
	printf("%.10f\n", num);       //3.1415927410  超出精度后,会丢失数据

	//定义double类型的数据存储小数
	double key = 3.14159265358979323;
	printf("%lf\n", key);       //3.141593
	printf("%.10lf\n", key);       //3.1415927410  超出精度后,会丢失数据
	printf("%.17lf\n", key);       // 超出精度后,会丢失数据

	//测试所占字节数
	printf("sizeof(float) = %zd\n", sizeof(float));    //4
	printf("sizeof(double) = %zd\n", sizeof(double));    //8
	printf("sizeof(3.14) = %zd\n", sizeof(3.14));    //8

	
	return 0;
}
cpp 复制代码
#include<stdio.h>

int main(int argc, const char *argv[])
{
	//输出字符的字符身份
	printf("%c\n", 'a');          //a
	printf("%c\n", '0');          //0
	
	//输出字符的整数身份
	printf("%hhd\n", 'a');        //97
	printf("%hhd\n", '0');        //48

	//输出整数的整数身份
	printf("%hhd\n", 65);         //65
	printf("%hhd\n", 7);          //7

	//输出整数的字符身份
	printf("%c\n", 65);          //A
	printf("%c\n", 7);           //警报

	printf("%hhd\n", 130);          //-126
	printf("%hhu\n", 130);          //130
	printf("%hhu\n", -2);           //254

	printf("sizeof(char) = %zd\n", sizeof(char));    //1
	printf("sizeof('A') = %zd\n", sizeof('A'));    //4
	printf("sizeof(65) = %zd\n", sizeof(65));    //4


	printf("hello\r");              //hello
	printf("AA\n");                 //AAllo            

	
	return 0;
}
cpp 复制代码
#include<stdio.h>

int main(int argc, const char *argv[])
{
	printf("%d\n", 520);         //输出整形常量
	printf("%.2lf\n", 3.1415);    //输出实数常量
	printf("\n");                //输出换行
	printf("%hhd\n", '\060');               //输出48
	printf("%#o\n", '\060');               //输出 060
	printf("%hhd\n", '\x11');        //输出17
	printf("%hhd\n", '\x7f');        //输出127
	printf("%#x\n", '\x7f');        //输出 0x7f


	printf("********************************\n");
	printf("%s\n", "hello world");       //输出一个字符串

	
	return 0;
}
cpp 复制代码
#include<stdio.h>

int main(int argc, const char *argv[])
{
	auto int num = 520;     //int num = 520;
	//定义一个自动类型的整形变量num并为其进行初始化
	printf("num = %d\n", num);       //读出变量中的值

	num = 666;                //写入变量的值,赋值操作
	printf("num = %d\n", num);      //666


	//定义一个静态变量
	char value ;
	printf("value = %hhd\n", value);    //定义变量如果不初始化,默认是随机值
	value = 'A';          //赋值操作
	printf("value = %c\n", value);      //A

	//定义静态变量
	static double key = 3.14;
	printf("key = %.2lf\n", key);      //输出数据

	//定义常变量
	const int num_1 = 666;
	printf("num_1 = %d\n", num_1);        //读数据
	num_1 = 999;                  //报错,const修饰的变量是不能被更改的

	
	return 0;
}
cpp 复制代码
#include<stdio.h>

int main(int argc, const char *argv[])
{

	//定义一个自动类型的  有符号的短整形数据,并对其进行初始化
	auto signed short int num = 100;    // short  num = 100;

	printf("num = %hd\n", num);        //100

	num = 32770;                 //给变量重新赋值
	printf("num = %hd\n", num);        //-32766

	//定义一个无符号的数据
	unsigned char key = 265;
	printf("key = %hhd\n", key);          //9
	printf("key = %c", key);               //'\t'

	
	return 0;
}

2> 思维导图

相关推荐
春风解人意5 小时前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
小灰灰搞电子6 小时前
Rust+Slint 实现动态消息提示框源码分享
开发语言·后端·rust
传奇开心果编程7 小时前
【Rust入门知识点学与练】第21课:Trait 进阶 Advanced Traits
开发语言·学习·rust
新时代牛马7 小时前
字符设备驱动完整篇:从 cdev_add、file_operations 到chrdev_open 与排障
开发语言·python
swordbob7 小时前
ReentrantLock 与 AQS 完整学习手册
java·开发语言
政企项目老覃8 小时前
大模型幻觉治理与自动评测:金融风控场景的落地实践
人工智能·算法·机器学习
Johny_Zhao8 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
是隼人8 小时前
buuctf-pwn inndy_echo(32位fmt)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
淡海水8 小时前
08-03-不可变-ImmutableDictionary-TKey-TValue-与ImmutableHashSet-T-持久化哈希树
数据结构·算法·c#·哈希算法·dictionary·immutable