第二章总结

#include<stdio.h>
int main()
{   printf("char类型占%d字节\n",sizeof(char));
    printf("short int类型占%d字节\n",sizeof(short int));
    printf("int类型占%d字节\n",sizeof(int));
    printf("float类型占%d字节\n",sizeof(float));
    printf("double类型占%d字节\n",sizeof(double));
    return 0;
}

2.1 引例

【例2.1】在屏幕上输出英文短句“Programming is fun.”。

/*Output:"Programming is fun."*/        /*注释*/
#include<stdio.h>                        /*编译预处理命令*/
int main(void)
 {
   printf("Programming is fun.");        /*调用printf()函数输出文字*/
   return 0;
 }

运算结果:

Programming is fun.

如果需要在两行上输出文字,例2.1可以改写如下:

#include<stdio.h>
int main(void)
 {     printf("Programming is fun. \n");       /*输出文字后换行*/
   printf("And Programming in C is eve more fun!\n");
   return 0;
 }

运行结果:

Programming is fun.
And Programming in C is eve more fun!

【例2.2】设球半径为r、球体积为\upsilon、球表面积为f,球体积和球表面积的计算公式为:

                                                     \upsilon=4/3\pir\frac{}{}^{}^{3}

                                                     f=4\pir^{2}

输入半径,分别计算球体积和球表面积。

#include<stdio.h>
#define PI 3.14159                   /*定义符号常量 PI*/
void main()
{  int r;                            /*定义r为整数型*/
   float u,f;                        /*定义u、f为单精度浮点型*/
   r=2;                              /*给半径赋值*/
   u=4.0 * PI * r * r * r/3.0;       /*计算体积*/
   f=4.0 * PI * r * r;               /*计算表面积*/
   printf("体积为:%f,表面积为:%f\n",u,f); 
                                     /*输出体积、表面积*/
 }

运行结果:

体积为:33.510292,表面积为:50.265442

2.2 C语言的数据类型

数据类型

               基本类型整数、字符型(单词 字母)、实型(浮点型)(实数)

               构造类型数组类型、结构体类型、共用体类型、枚举类型

               指针类型

               空类型

2.3 C语言的常量

2.3.1 直接常量:直接常量又分为整数常量、实数常量、字符常量和字符串常量

1.整数常量:整数常量即整数,包括正整数、负整数和零。

2.实数常量:实型常量即实数,又称为浮点数。实数的表示方 法有两种:小数形式和指数形式

3.字符型常量:(1)字符常量只能用单引括号起来,不能用双引号或其他符号

                         (2)字符常量只能是单个字符,不能是字符串

                         (3)字符可以是ASCII字符集中的任意字符。

 【例2.3】转义字符使用示例。

#include<stdio.h>
int main()
{   char b,c,d,e;
   b='\43';
   c='\103';
   d='\x2a';
   e='\x41';
   printf("b=%c,c=%c,d=%c,e=%c\n",b,c,d,e);           /*语句1*/
   printf("\"good\40morning!\b\"!\n");               /*语句2*/
   printf("\123456");                                 /*语句3*/
   return 0;
}

4.字符串常量:字符串常量是由一对双引号" "括起来的零个或多个字符序列。字符串常量在内存中占用一段连续的存储单元,系统自动在每个字符串的尾部加上'\0'作为字符串的结束标志。

2.3.2 符号常量

【例2.5】利用符号常量计算价格。

#include<stdio.h>
#define PRICE 20
int main()
{   int num,total;              /*num 表示购买商品的数量,total 表示总价款*/
   num=10;
   total=num * PRICE;           /*PRICE 是符号常量,表示单价20*/
   return 0;
}

运行结果:

总价格为:200

符号常量的使用,可以为编写程序提供很多好处:

(1)增加程序的可读性

(2)提高程序的可维护性

(3)简化程序代码

(4)方便数组的定义

2.4.1 变量的定义与使用在C语言中,所有的变量必须先定义后使用。

1.变量的定义

2.变量的初始化

3.变量的使用使用变量时,应该先赋值,后使用。

【例2.6】变量使用示例。

#include<stdio.h>
int main()
{   int a,b,c;
    char ch='A';              /*初始化*/
    a=10;                     /*使用赋值语句对变量a赋初值*/
    b=a+ch;                   /*使用赋值语句对变量b赋值*/
    scanf_s("%d",&c);           /*使用 scanf 函数对变量c赋值*/
    printf("%d,%d,%d,%c\n",a,b,c,ch);
    return 0;
}

则程序的运行结果如下:

10,75,10,A

2.4.2整型变量一个整数变量用来保存整数。在C语言中,整数又可分为:短整型、整型、长整型、无符号整型、无符号短整型和无符号长整型六种。

 

 【例2.7】不同类型整型变量的定义与使用示例。

#include<stdio.h>
int main()
{   int a,b,c,d;
    unsigned long e;
    a=5;b=6;e=10;
    c=a+e;
    d=b+e;
    printf("c=%d,d=%d\n",c,d);
    return 0;
}

运行结果:

c=15,d=16

【例2.8】短整型变量溢出。

#include<stdio.h>
int main()
{   short int a,b;
    a=32767;
    b=a+1;
    printf("a=%d,b=%d\n",a,b);
    return 0;
}

运行结果:

a=32767,b=-32768

2.4.3 实型变量C语言中实型变量分为单精度(float型)和双精度(double型)两类

                                             表2.3 实型数据关键字、字节数和取值范围

关键字类型占用字节数取值范围
float单精度型43.4E-38~3.4E+38
double双精度型81.7E-308~1.7E+308

单精度型数据能保留7位有效数字,双精度型数据能保留16位有效数字。

【例2.9】实数变量的使用示例。

#include<stdio.h>
int main()
{   float a=1234.56789;
    double b=1234.567895678;
    printf("a=%f,b=%f\n",a,b);
    return 0;
}

运行结果:

a=1234.567871,b=1234.567896

2.4.4 字符型变量

【例2.10】字符变量的使用示例。

#include<stdio.h>
int main()
{   char c1,c2;
    c1='A';
    c2=65;
    printf("%c,%c\n",c1,c2);
    printf("%d,%d\n",c1,c2);
    return 0;
}

运行结果:

A,A
65,65

【例2.11】把大写字母转换为小写字母。

#include<stdio.h>
int main()
{   char c1,c2;
    c1='A';
    c2='B';
    c1=c1+32;
    c2=c2+32;
    printf("%c,%c\n",c1,c2);
    printf("%d,%d\n",c1,c2);
    return 0;
}

运算结果:

a,b
97,98

2.5 运算符和表达式

2.5.1赋值运算符和赋值表达式:C语言中赋值运算符有“=”、“+=”、“-=”、“*=”、“/=”和“%=”等。用赋值运算符将运算对象连接而成的表达式称为赋值表达式。

2.5.2 算术运算符和算术表达式

1.基本的算术符运算符:先算单目,后算双目。

2.自增、自减运算符:C语言有两个特殊运算符“++”和“--"

(1)++自增运算符,为单目运算符,其功能是使变量的值自加1。自增运算符有两种使用形式:

1.前缀方式用于变量前面。

2.后缀方式用于变量后面

(2)--自减运算符,为单目运算符,功能是使变量的值自减1。使用方法和自增运算符相似。

3.算术运算符的优先级和结合性:算术运算符的优先级为:“++、--、-">"*、/、%”>"+、-",即单目运算符的优先级高于双目运算符,双目运算符中*、/、%的优先级高于+、-。

【例2.13】输出一个3位数的正整数,输出其反序数(如123反序数为321)。

#include<stdio.h>
int main()
{   int number,a,b,c;                     /*定义变量*/
    number=123;
    printf("输入的3位数为:%d\n",number);   /*输出原数*/
    a=number/100;                         /*计算百位数*/
    b=(number-a * 100)/10;                /*计算十位数*/
    c=number%10;                          /*计算个位数*/
    printf("反序数是:%d%d%d\n",c,b,a);   /*输出反序数*/
    return 0;
}

运行结果:

输出的3位数为:123
反序数是:321

2.5.3 逗号运算符和逗号表达式:逗号表达式的执行顺序是:从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。

【例2.14】逗号表达式应用示例。

#include<stdio.h>
int main()
{   int i,j=7;
    float k=5;
    i=(j=j+2,j/k);
    printf("i=%d\n",i);
    return 0;
}

运行结果:

i=1

2.5.4 求字节数运算符

【例2.15】不同数据类型字节数示例。

#include<stdio.h>
int main()
{   printf("char类型占%d字节\n",sizeof(char));
    printf("short int类型占%d字节\n",sizeof(short int));
    printf("int类型占%d字节\n",sizeof(int));
    printf("float类型占%d字节\n",sizeof(float));
    printf("double类型占%d字节\n",sizeof(double));
    return 0;
}

运行结果:

char 类型占1字节
short int 类型占2字节
int 类型占4字节
float 类型占4字节
double 类型占8字节

【例2.16】求字节数运算符示例。

#include<stdio.h>
int main()
{   int a,b;
    a=sizeof(3+5.0)
    b=sizeof 3+5.0;
    printf("%d,%d,%d\n",a,b,sizeof("china"));
    return 0;
}

运行结果:

8,9,6

2.6 数据类型转换:不同类型的数据在一起运算时,编译系统会自动进行类型转换。

2.6.2 强制类型转换

【例2.18】强制类型转换示例

#include<stdio.h>
int main()
{   int a=3,b=4;
    float c;
    c=(float)(a+b)/2;
    printf("c=%f\n",c);
    return 0;
}

运行结果:

c=3.500000

进行强制类型转换时需注意:

(1)需强制类型转换中的表达式一定要括起来,否则只对紧随括号后的量进行类型转换。

(2)强制类型转换是一种不安全的转换,如果是从高级类型转换成低级类型,则会损失数据的精度。

(3)强制类型转换并不改变表达中变量的类型和值。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值