C语言第2.1关 数据类型

第1关: 认识数据类型

任务描述:

程序=数据结构+算法。数据是程序的处理对象,C语言的数据类型主要包括: 整数型:char、short [int]、int、long [int]、long long [int]; 浮点型:float、 double、long double; 每种数据类型的数据在内存中所占的空间数量是不同的,通过sizeof()运算符可以计算,例如:sizeof(int)的值为4,表示int型数据在内存中占据4个字节。 请按顺序输出以上8种数据类型在内存中所占据的字节数。两个数据之间分隔1个空格。

输入样例:
输出样例:

1 2 4 8 8 4 8 16


开始你的任务吧,祝你成功!


相关知识-数据类型
1.程序=算法+数据结构

通过完成第一部分的任务,我们知道:程序处理的对象是数据,程序是指令的有序集合。你知道吗,图灵奖获得者瑞士计算机科学家尼克劳斯·威茨(Niklaus Wirth)有一句计算机领域人尽皆知的名言“算法+数据结构=程序”,他在1976年曾出版一本同名著作《Algorithms + Data Structures = Programs》。

,

图2-1 Niklaus Wirth和他的著作

2.数据类型

在C语言中,任何一个数据都必须属于一种数据类型。数据与操作构成程序的两个基本要素,数据类型可以看作是数据的“抽象”。 C语言为我们提供了丰富的数据类型,如图2-2所示。 C语言的数据类型总体上可以分为基本类型、构造类型、指针类型和空类型四类。在这一章中,我们只讨论基本类型中的整型、实型和字符型。其它的数据类型会在以后的章节中作详细介绍。

,

图2-2 C语言的数据类型 可以看出,每种数据类型都用一个固定单词(关键字或标识符)来表示。例如在前面我们已经知道关键字int用来表示整型。 每种类型的数据都占据固定大小的存储空间,所以它们都有自己的取值范围。各种数据类型的名称、占据的存储空间及取值范围如表2-1所示。

,

表2-1 C数据类型、大小与取值范围
类型类型关键字字节取值范围
字符型char18-128~+127
短整型short [int]216-32768~+32767
整型int432-2147483648~+2147483647
长整型long [int]432-2147483648~+2147483647
超长整型long long [int]864-9223372036854775808~+9223372036854775807
单精度实型float4323.4E-38~3.4E+38
双精度实型double8641.7E-308~1.7E+308
长双精度实型long double161283.4E-4932~1.1E+4932
无符号字符型unsigned char180~255
无符号短整型unsigned short [int]2160~65535
无符号整型unsigned [int]4320~4294967295
无符号长整型unsigned long [int]4320~4294967295
无符号超长整型unsigned long long [int]8640~18446744073709551615
本关任务代码
 
  1. #include<stdio.h>
  2. int main(){
  3. printf("%d %d %d %d %d %d %d %d",
  4. sizeof(char),
  5. sizeof(short int),
  6. sizeof(int),
  7. sizeof(long int),
  8. sizeof(long long int),
  9. sizeof(float),
  10. sizeof(double),
  11. sizeof(long double)
  12. );
  13. return 0;
  14. }
相关知识-数据存储
1.所有数据都以二进制形式存储

计算机的硬件是由逻辑电路组成的,逻辑电路通常只能识别接通与断开(或者高电平和低电平)两个状态,这两种状态可以用数字0和1表示。因为只能识别0和1两个数据,所以在计算机内部采用二进制形式来表示一切数据,0和1被称为二进制的两个位(bit)。

2.存储单位

计算机的存储空间以字节(Byte)为基本单位,1个字节是由8个二进制位(bit)构成。存储空间的单位从小到大有:字节(B)、千字节(KB)、兆(MB)、吉(GB)、太(TB)、拍(PB)、艾(EB)、泽(ZB)、尧(YB)等。 1B(Byte字节)=8bit; 1KB (Kilo byte 千字节)=1024B,其中1024=210; 1MB (Mega byte 兆字节)=1024KB; 1GB (Giga byte 吉字节)=1024MB; 1TB (Tera byte 太字节)=1024GB; 1PB(Peta byte 拍字节)=1024TB; 1EB(Exa byte 艾字节)=1024PB; 1ZB (Zetta byte 泽字节)= 1024EB; 1YB (Yotta byte 尧字节)= 1024ZB。 小白弟弟,请你在PTA平台上正确提交以上代码,显示答案正确,说明在PTA平台当中long int类型数据的空间大小为8个字节。 然后,请小白弟弟在Dev-C++中执行以上代码,你会看到如下结果:

执行结果显示,long int类型在你的计算机上占据存储空间4个字节。这是为什么呢? 原来,在不同的操作系统和编译系统中,某个数据类型所占据的内存空间大小有可能是不同的,这取决于系统的不同设计,也就是说上面的代码在不同的计算机中、不同的操作系统下、不同的编译环境下,执行结果可能是不同的。

3.格式说明符%d

printf函数第一个参数中的“%d”,代表的是1个十进制整数的格式说明符(占位符),实际输出的值为后面对应的表达式的值。

4.C程序格式宽松

C语言程序的书写规范很宽松,一个语句可以写在多行,一行也可以写多个语句。

参考代码:

#include<stdio.h>
int main(){
     printf("%d %d %d %d %d %d %d %d",
           sizeof(char),
           sizeof(short int),
           sizeof(int),
           sizeof( long int),
           sizeof(long long int),
           sizeof(float),
           sizeof(double),
           sizeof(long double)
    );
    return 0;
}
    

第2关:无符号整型

任务描述:

C语言每个整数类型都对应一种无符号类型,例如: unsigned char、unsigned short [int]、unsigned int、unsigned long [int]、unsigned long long [int]。 通过sizeof()运算符可以计算每种类型的数据在内存中所占的字节数量,例如:sizeof(unsigned int)的值为4,表示unsigned int型数据在内存中占据4个字节。 请按顺序输出以上5种数据类型在内存中所占据的字节数。两个数据之间分隔1个空格。

输入样例:
输出样例:

1 2 4 8 8


开始你的任务吧,祝你成功!

参考代码:

//请在此输入你的代码
#include<stdio.h>
int main(){
    printf("%d %d %d %d %d",
    sizeof(unsigned char),
    sizeof(unsigned short int),
    sizeof(unsigned int),
    sizeof(unsigned long int),
    sizeof(unsigned long long int)
    );
    return 0;
}

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值