C 语言基础教程(我的C之旅开始了)[八]

2016-02-19 11:49 7 1 收藏

想要天天向上,就要懂得享受学习。图老师为大家推荐C 语言基础教程(我的C之旅开始了)[八],精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

【 tulaoshi.com - 编程语言 】

19. 基本数据类型:复数类型和虚数类型

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)C99 新增了复数类型_Complex)和虚数类型_Imaginary)。简单来说,C99 提供了三种复数类型:float _Complexdouble _Complex,和 long double _Complex。对于 float _Complex 类型的变量来说,它包含两个 float 类型的值,一个用于表示复数的实部real part),另一个用于表示虚部imaginary part)。类似地,
double _Complex 包含两个 double 类型的值。以此类推。C99 也提供了三种虚数类型:float _Imaginarydouble _Imaginary,以及 long double _Imaginary。虚数类型只有虚部,没有实部。包含标准头文件 complex.h 后,我们就可以用 complex 来代表 _Complex,用
imaginary 来代表 _Imaginary,以及用 I 来代表虚数单位 i,也就是 -1 的平方根。例如:    #include complex.h
        double _Complex x = 5.2; /* 实部等于 5.2,虚部为 0 */
        double complex y = 5.0 * I; /* 实部为 0,虚部为 5.0 */
        double complex z = 5.2 – 5.0 * I; /* 实部为 5.2,虚部为 5.0 */注意_Complex 类型对于独立式环境freestanding environment)来说是可选的。可选的意思是,不强制必须支持这种类型。而所谓独立式环境,是指 C 程序可以在没有操作系统的情况下运行。_Imaginary 类型在任何环境下都是可选的。目前的编译器对这两种类型的支持都不太好,故而我在此就不对这两种类型进行更深入的讨论了。    至此,基本数据类型就全部讨论完了。


20. 转义字符使用实例
下面这个例子演示了 abtr,以及 n 的作用。其中 btr 的概念可以追溯到电脑仍然使用打字机作为输出设备的时候,所以对于现代的一些电脑来说,它们可能不起作用。在某些麦金托什机(Macintosh)上,它们的作用就和我们下面所说的不一样。首先请认真看一下以下程序,然后编译运行一下,看看运行结果和您想象的是否一样,然后再看后面的详细解说。/* esc_sq.c -- 使用转义字符 */ #include stdio.h int main(void){    float height;     printf("aPlease enter your height: _____ cmbbbbbbbb");    scanf("%f", &height);    printf("tYour height is %.2f.rOh!n", height);     return 0;}第一个 printf 通常会引起一声鸣响a),同时显示以下提示Please enter your height: _____ cm其中活跃位置(光标)在下划线的开端。活跃位置之所以会位于下划线的开端,是因为那八个 b 把活跃位置后退了八个位置。顺带一题,下划线 _____ 由五个 _ 构成。注意:一般来说,b 不会擦除前面输出的字符,但是在某些系统,b 却会擦除前面输出的字符,导致显示结果为 Please enter your height: 。a 产生的效果取决于硬件。一般来说,输出 a 会产生鸣响。但是在某些系统,输出 a 不会产生任何效果,或者仅仅显示一个特殊字符。    输入一个数后(比如输入 180.5),屏幕的显示会变成Please enter your height: 180.5 cm 

我们输入的数字取代了原来的下划线。接着我们需要按回车确定我们的输入。按下回车键后,
活跃位置会移动到下一行的开端。 
       第二个 printf 运行结束后,屏幕显示如下:     Please enter your height: 180.5 cm    Oh!     Your height is 180.50.这是因为 t 使活跃位置向后移动了若干个位置(通常是八个),然后输出
Your height is 180.50. 。接着 r 使活跃位置返回当前行的开端,然后输出 Oh!
最后 n 引起换行。 
 
 加法运算符使它左右两边的值相加。例如: printf("%d", 9 + 11); 输出结果为 20。加法运算符的操作数可以是常量,也可以是变量。例如: var = var_1 + var_2; 这个语句先把 var_1 的值和 var_2 的值相加,然后把相加的结果赋值给 var。  2. 减法运算符(Subtraction Operator): – 减法运算符导致左边的操作数减去右边的操作数。例如: var = 100 – 40; 100 – 40 的值是 60,然后这个 60 被赋值给 var。 加法运算符减法运算符被称为二目运算符binary operator),因为它们需要两个操作数。  3. 正负运算符(Sign Operator): – 和 + 例如: var_1 = -5;var_2 = -var_1;var = +5 var_1 的值是 -5,var_2 的值是 5,var 的值是 5。 正负运算符被称为单目运算符unary operator),因为它们只需要一个操作数。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)
 
23. 乘法运算符和除法运算符
1. 乘法运算符(Multiplication Operator):*    * 是乘法运算符。以下语句:        meter = 100 * cm;常量 100 和变量 cm 相乘,乘积被赋值给变量 meter。
2. 除法运算符(Division Operator):/    C 使用 / 作为除法运算符。/ 左边的操作数除以右边的操作数。也就是说,/ 左边是被除数,右边是除数。例如:        var = 6/2;6 除以 2 得 3,然后 3 被赋值给变量 var。    整数相除和浮点数相除有所不同。浮点数相除得到浮点数,整数相除得到整数。C 语言规定,整数相除产生的小数部分一律被抛弃,这就是所谓的截断(truncation)。例如:7/4 的结果是 1,而不是 1.75,也不是 2。    下面我们来看一个小程序。        /* divide.c */
        #include stdio.h        int main(void)
        {
            printf("integer division:  7/4   is %d n", 7/4);
            printf("floating division: 7./4. is %f n", 7./4.);
            printf("mixed division:    7./4  is %f n", 7./4);            return 0;
        }输出为:        integer division:  7/4   is 1
        floating division: 7./4. is 1.750000
        mixed division:    7./4  is 1.750000最后一个 printf 中,我们用浮点数除以整数,得到的结果和第二个 printf 一样。这是因为 C 自动把这两个操作数的类型转换成了同一种类型。本例中,整数 4 被转换成了浮点类型,然后再和浮点数 7. 相除。    C99 之前,正整数和负整数相除,如果产生小数部分,则相除的结果是不确定的。例如:7/-4 的结果可能是 -2,也可能是 -1。C99 规定,正整数和负整数相除,产生的小数部分一律被抛弃。也就是说,C99 中,7/-4 的结果是确定的,一定是 -1。

来源:http://www.tulaoshi.com/n/20160219/1598750.html

延伸阅读
if语句 if语句用于测试条件并在条件为真时执行一桌或几条语句。 说明:if表达式后面不能带分号,否则它本身表示代码中的空语句,使编译器将空语句解释为在条件为真时执行的语句。 if (x == 10); // Warning! Extra semicolon! DoSomething(x); 这里DoSomething()函数总会执行,因为编译器不把它看成在条件为真时执行...
终于来到第二章了,真是不容易(呵呵,大家少安毋躁)。 这章总的来说就是对C#的一个总体的概述。首先通过对以往的编程语言(汇编,C/C++,java,vb)的回顾,强调这些语言与C#的联系及C#对这些语言优秀特性的继承,试图在其中打到C#的影子。然后对现在市面上流行的编程语言与C#进行比较,从而突出C#做为新一代的编程语言的重要性及优越性。之...
各位贵安了!(先别骂我)最近刚开学,所以事情就多了点,上网的时间也不多,所以一直这个文章的下一篇也没出来。能得到大家的抬爱,本人甚是感激!对于C#的学习我也是刚刚入门,有什么不对的地方,敬请指教!好了,闲言少叙,进入正题。 第一章。万事开头难,什么事,都得从第一步开始。这一章主要是对.NET的一个概述,使我们对.NET有个概...
从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环结构。 这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些程序结构。 本文将介绍这些基本语句及其应用,使读者对C程序有一个初步的熟悉, 为以后的学习打下基础。 C程序的语句 C程序的执行部分是由语句组成的。 程序的功能...
第四节、访问接口 对接口成员的访问 对接口方法的调用和采用索引指示器访问的规则与类中的情况也是相同的。如果底层成员的命名与继承而来的高层成员一致,那么底层成员将覆盖同名的高层成员。但由于接口支持多继承,在多继承中,如果两个父接口含有同名的成员,这就产生了二义性(这也正是C#中取消了类的多继承机制的原因之一)...

经验教程

135

收藏

41
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部