C语言:第五章,数据类型

5.1-5 整型变量,长整型,无符号整型和长整型,双长整型,短整型
#include <stdio.h>
#include <stdlib.h>
 
int main()
{  
    unsigned short k =65535;   //短整型,2个字节,16位
    short h=3267;   //短整型,2个字节,16位
    long long m=429496729555555;  //双长整型,占8个字节,因此取值范围比int和long的取值范围大。
    unsigned int t=4294967295; //无符号整型
    unsigned long  e=4294967295; //无符号长整型,只能表示正数
    long  z=-2147483647-1;  //长整型,有符号类型,long和short在不同操作系统占用内存不同(32位操作系统一样,也就是4个字节)
    int x=6.8;  //占用4个字节内存,为有符号整型。
    int y=-2147483648-1; //最小值,低于此数,将返回最大值
    printf("%d\n",x); //6.8保存为整型,会去掉小数点,即6。
    printf("%d\n",y); //输出整型
    printf("%ld\n",z); //输出长整型
    printf("%lu\n",e); //输出无长符号整型
    printf("%u\n",t); //输出无符号整型
    printf("%lld\n",m); //输出双长整型
    printf("%hd\n",h);  //输出短整型
    printf("%hu\n",h);  //输出无符号短整型
    system("pause");
    return 0;
}
5.6-7 输出八进制和十六进制数、为变量取别名
#include <stdio.h>
#include <stdlib.h>
 
int main()
{  
    int x=16;
    //为类型取别名
    typedef unsigned short int US; //为现有类型取一个新名字US;
    US a=1, b=2, c =3; //相当于unsigned short int
    c=a+b;
    printf("%hu+%hu=%hu\n", a,b,c);
    //输出8进制和16进制数据
    printf("%#o\n", x) ; //八进制整数输出有符号整数;输出16的8进制形式;
    printf("%#x\n", x) ; //逢8进1;
    //区分数据的进制,用前缀来指明
    system("pause");//输出16进制整数,逢16进1
    return 0;
}
5.8-14 浮点型变量、取值范围、精度、误差,输出浮点型变量的值
#include <stdio.h>
#include <stdlib.h>
 
int main()
{  
    int length=sizeof(long double);
    float x=29.123456f;
    double y=31415929.12345678;
    float a;//单精度,3部分表示:符号位,指数(小数点向左或右移动)和小数位;取值范围;四个字节内存,指数7位(一位符号),符号1位,小数24位;精度6-7位
    double b ; //双精度 ;8个字节;指数11位(一位符号),符号1位,小数52位;精度15-16位
    long double c; //长双精度;精度15位以上
    // 所有申明必须放在一起,否则会出现错误
    c=3.14;
    a=3.40e38f; //38表示小数点向右移38位;e表示指数;f表示float类型,不加表示double
    b=1.79e308;
    printf("%f\n",a);
    printf("%f\n",b);
    printf("%d\n",length);
    printf("%lf\n",c);
    printf("%f\n",x);
    printf("%A\n",x); //输出16进制
    printf("%e\n",x); //采用指数计算法表示
    printf("%30.7f\n",y); //30表示字符宽度;7表示有效位数,不够的字符用空格输出;有效位数是指小数点后的数字个数
    system("pause");
    return 0;
}
5.15 字符型变量
#include <stdio.h>
#include <stdlib.h>
 
int main()
{  
    //输出ASCII值32-126直接所对应的所有可见字符
    int i;
    for ( i = 32; i < 127; i++) //当i=127表示等于该值,终止循环;i++和大括号合并为一条语句,表示每执行大括号的命令,i就增加1
    {
        printf("%c\n",(char)i);
    }
     
    //char ch,ch1; //为ch分配一个字节的内存,即ch只能存储一个字符
    //ch=97;
    //ch1='a'; //双引号包括的是一个字符串
    //printf("ch:%c\n",ch); //%c表示输出97对应的字符
    //printf("ch:%c\n",ch1); //输出字符ch1
    //printf("ch:%d\n",(int)ch1);  //输出ch1的ASCII码
    system("pause");
    return 0;
}
5.16-20 数字与数字字符、显示转换和隐式转换、类型提升、类型下降、特殊字符

31
#include <stdio.h>
#include <stdlib.h>
 
int main()
{  
    //char c1=12,c2=108;
   //    c1+c2; //在表达式中,c1和c2提升为int类型
    char ch1=0;  
    char ch2='0';
    char ch3='\n'; //回车,转义字符
    char ch4='\a'; //警报
    char ch5='\r';//光标回到行的起始位置
    char ch6='\b';//回删一格
    char ch7='\t';//水平制表符
    char ch8='\v';//垂直制表符
    char ch9='\'';//单引号符
    char ch10='\"'; //双引号符
    char ch11='\?'; //问号符
    char ch12='\\'; //问号符
    float f=3.1415f; 
    int a=(int)f; //隐式转换,同时类型下降,数据可能丢失,会出现警告,可以通过显式转换; 右值过大会造成左值溢出
    printf("%d\n%d\n",(int)ch1,(int)ch2); //输出ascii码为ch1的ascii码;输出字符为ch2的ascii码
    printf("%d\n",ch2); //作为参数传递给函数,char或short也会提升int,而float提升为double
    printf("%f\n",( float)10/3); //显式转换
    printf("%f\n",10.0/3.0); //这样不需要转换
    printf("%c\n",ch4);
    printf("%c\n",ch12);
    printf("%d\n",a ); 
    system("pause");
    return 0;
}
5.21-26 十进制转二进制、二进制转十进制、宏、const常量、枚举型常量
#include <stdio.h>
#include <stdlib.h>
#define price 5.5 //5.5是常量,不能改变,可以取别名;price为宏名,5.5为宏体;利用宏可以实现一改全改;前面定义不能加分号
//const float size=10.50f;  //只读属性不能修改 ;const常量有数据类型,可以检测赋值是否正确;宏没有数据类型
//enum num{ten=10,one,two,three,four,twenty=20,twentyone}; //将num定义为枚举类型
 
int main()
{  
    int num=20;
    double money;
    enum money{fen,jiao,yuan,hundredyuan=100};//四个枚举常量,分初始化为0,1,2,100,
    enum money lostmoney; //lostmoney为枚举变量
    lostmoney=fen;
    if (lostmoney==hundredyuan)
    {
        printf("丢失百元大钞");
    }
    else
        {
        printf("不用担心,没有丢失");
        }
    //money=price*num;
    //price不能修复,因为为宏。
    //printf("20本图书的价格是: %.2f",money);
    system("pause");
    return 0;
}



Updated: 2014-11-11 — pm8:04

Leave a Reply

  Subscribe  
Notify of