C语言入门系列之2.数据类型、运算符和表达式(一)(下)

简介: C语言常见数据类型如下:

再举一个例子,如下:

#include <stdio.h>
void main()
{
    long x, y;
    int a, b, c, d;
    x = 5;
    y = 6;
    a = 7;
    b = 8;
    c = x + a;
    d = y + b;
    printf("c=x+a=%d, d=y+b=%d", c, d);
}

打印:

c=x+a=12, d=y+b=14

从程序中可以看到:

x、y是长整型变量,a、b是基本整型变量,它们之间允许进行运算,运算结果为长整型。但c,d被定义为基本整型,此最后结果为基本整型。

本例说明,不同类型的量可以参与运算并相互赋值,其中的类型转换是由编译系统自动完成的。

4.实型数据

Ⅰ.实型常量的表示方法

实型也称为浮点型,实型常量也称为实数或者浮点数。

在C语言中,实数只采用十进制。

它有二种形式:十进制小数形式和指数形式:


十进制小数形式

由数码0-9和小数点组成,必须有小数点。

例如0.0、25.0、5.789、0.13、5.0、300.、-267.8230等均为合法的实数。

标准C允许浮点数使用后缀,后缀为 f或F 即表示该数为浮点数,如 356f 和 356. 是等价的。


指数形式

由十进制数、阶码标志“e”或“E”和阶码(只能为整数,可以带符号)组成。

其一般形式为:

aEn(a为十进制数,n为十进制整数)

例如:


2.1E5 (等于2.1105)
3.7E-2 (等于3.7
10-2)

0.5E7 (等于0.5107)
-2.8E-2 (等于-2.8
10-2)


以下不是合法的实数:


345 (无小数点)

E7 (阶码标志E之前无数字)

-5 (无阶码标志)

53.-E3 (负号位置不对)

2.7E (无阶码)

Ⅱ.实型变量

实型数据在内存中的存放形式

实型数据一般占4个字节(32位)内存空间,按指数形式存储。

浮点数的二进制存储方式如下:

2345_image_file_copy_74.jpg

举例3.14159在内存中的存放形式如下:

image.png

  • 小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高;
  • 指数部分占的位数愈多,则能表示的数值范围愈大。

实型变量的分类

  • 单精度(float型)
  • 双精度(double型)
  • 长双精度(long double型)

在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38-3.4E+38,只能提供七位有效数字;双精度型占8个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

image.png

实型数据的舍入误差

测试如下:

#include <stdio.h>
int main()
{
    float a, b;
    a = 123456.789e5;
    b = a + 20;
    printf("%f\n", a);
  printf("%f\n", b);
  return 0; 
}

打印:

12345678848.000000
12345678848.000000

显然,a的值已经不准确,整数部分后3位产生误差,同时b在a的基础上加20(两位数,在后边的3位误差之内)也会产生误差。


计算以下表达式的值:


(1)1.0 / 3 * 3等于多少?

(2)3 / 2呢?

(3)1 / 3 * 3呢?


通过程序计算:

#include <stdio.h>
int main()
{
    printf("%f\n", 1.0 / 3 * 3);
  printf("%f\n", 3 / 2);
  printf("%f\n", 1 / 3 * 3);
  return 0; 
}

打印:

1.000000
0.000000
0.000000

5.字符型数据

字符型数据包括字符常量和字符变量。

字符常量

字符常量是用单引号括起来的一个字符。

例如:‘a’、‘b’、’=’、’+’、’?'等都是合法字符常量。


在C语言中,字符常量有以下特点:


  • 字符常量只能用单引号括起来,不能用双引号或其它括号。
  • 字符常量只能是单个字符,不能是字符串。
  • 字符可以是字符集中任意字符,但数字被定义为字符型之后就不能参与数值运算。

  如’5’和5是不同的,'5’是字符常量,不能参与运算。

char a, b;

转义字符

转义字符是一种特殊的字符常量,以反斜线"\"开头,后跟一个或几个字符。

转义字符具有特定的含义,不同于字符原有的意义,故称转义字符。

例如,在之前的练习中printf()函数的格式串中用到的 \n 就是一个转义字符,其意义是回车换行。

转义字符主要用来表示那些用一般字符不便于表示的控制代码。

所有的转义字符及其含义如下:

image.png

转义字符的使用:

#include <stdio.h>
int main()
{
    int a, b, c;
    a = 5, b = 6, c = 7;
    printf(" ab c\tde\rf\n");
    printf("hijk\tL\bM\n");
  return 0; 
}

打印:

fab c   de
hijk    M


相关文章
|
1月前
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
50 4
|
1月前
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
45 1
|
2月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
124 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
2月前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
77 8
|
存储 数据处理 C语言
C语言实验二 数据类型、运算符和表达式
C语言实验二 数据类型、运算符和表达式
200 0
|
存储 人工智能 C语言
C语言第二章 数据类型,运算符和表达式总结【完美补充文字版】(超级详细)
C语言第二章 数据类型,运算符和表达式总结【完美补充文字版】(超级详细)
585 0
C语言第二章 数据类型,运算符和表达式总结【完美补充文字版】(超级详细)
|
C语言 存储
带你读《C语言程序设计习题解析与上机指导》之三:数据类型、运算符与表达式
本书首先介绍了计算机程序设计实验的一般方法以及在Visual C++ 2010下编写和调试C语言程序的具体步骤,然后对主教材各章后面的习题以及C语言程序设计课程学习中的疑难问题和常见问题进行了详细的解析,同时还汇总了各章的知识重点。在第三部分,精心设置了9个上机实验,每个实验项目都给出了实验目的和要求,并给出了编程示例和练习题目。读者可以通过由浅入深的实际训练,逐步熟悉编程环境,掌握程序调试方法,理解和掌握程序设计的思想、方法和技巧。
|
存储 C语言
理解C语言——从小菜到大神的晋级之路(4)——数据类型、运算符和表达式
本期视频点击这里 一、数据类型         对数据进行处理是程序的基本功能之一,因此对于任何编程语言,数据类型都是重要组成部分之一。C语言中定义了较为完善的数据类型体系用于处理不同类型的数据。
1534 0
|
1月前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
62 23
|
1月前
|
算法 C语言
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
本文档介绍了如何编写两个子函数,分别求任意两个整数的最大公约数和最小公倍数。内容涵盖循环控制与跳转语句的使用、最大公约数的求法(包括辗转相除法和更相减损术),以及基于最大公约数求最小公倍数的方法。通过示例代码和测试说明,帮助读者理解和实现相关算法。最终提供了完整的通关代码及测试结果,确保编程任务的成功完成。
66 15

热门文章

最新文章