第三章 基本数据类型


数据类型:
1. 基本数据类型
整型: 基本整型int 短整型short 长整型long
字符型char
浮点型(实型): 单精度型float 双精度型double
2. 构造类型
数组类型
结构体类型struct
共用体类型union
枚举类型enum
3. 指针类型
4.空类型 void

整型变量:
[signed] int -32 768~32 767(16位系统);
-2 147 483 648~2 147 483 647(32位系统);
unsigned [int] 0~65 535(16位系统)
0~4 294 967 295(32位系统)
[signed] short [int]
unsigned short [int]
[signed] long [int]
unsigned short [int]

l/s/u/lu/su

浮点型:
单精度类型 float
双精度类型 double
长双精度类型 long double -1.2e-4932~1.2e4932

字符型:
字符常量:

 

#include<stdio.h>
int main()
    {
        putchar('H');
        putchar('e');
        putchar('l');
        putchar('l');
        putchar('o');
        putchar('\n');
        system("pause");
        return 0;
    }

 


字符串常量:
#include<stdio.h>
int main()
{
printf("What a nice day!\n");
system("pause");
return 0;
}
/*系统会在字符串的末尾自动加一个"\0"作为字符串的结尾*/

字符型变量:
#include<stdio.h>
int main()
{
char c1 = 97, c2 = 98;
printf("%c, %c\n", c1, c2); //以字符形式输出c1, c2, 输出结果为a, b
printf("%d, %d\n", c1, c2); //输出c1, c2的ASCII码值 输出结果为97, 98
system("pause");
return 0;
}


#include<stdio.h>
int main()
{
char cChar1 = 'a', cChar2 = 97; /*字符型变量cChar1, cChar2*/
int iInt1 = 'a', iInt2 = 97; /*整型变量iInt1, iInt2*/
printf("%c\n", cChar1); /*输出结果为a*/
printf("%d\n", cChar2); /*输出结果为97*/
printf("%c\n", iInt1); /*输出结果为a*/
printf("%d\n", iInt2); /*输出结果为97*/
system("pause");
return 0;
}


转义字符:
字符常量可以分为两种:
1. 一般字符常量
2. 特殊字符常量(转义字符)
#include<stdio.h>
int main()
{
putchar('H');
putchar('\n');
putchar('e');
putchar('\n');
putchar('l');
putchar('\n');
putchar('l');
putchar('\n');
putchar('o');
putchar('\n');
system("pause");
return 0;
}

符号常量:
#define 符号常量名 常量值

#include<stdio.h>
#define PI 3.14 /*定义符号常量*/
int main()
{
double fRadius; /*定义半径变量*/
double fResult=0; /*定义结果变量*/
printf("请输入圆的半径:"); /*提示*/
scanf("%lf",&fRadius); /*输入数据*/
fResult=fRadius*fRadius*PI; /*进行计算*/
printf("圆的面积为:%lf\n",fResult); /*显示结果*/
return 0; /*程序结束*/
}


类型转换:
不同类型之间是可以相互转换的
char, short---->int---->unsigned---->long---->double
float---->double

#include<stdio.h>
int main()
{
int iInt = 1;
char cChar = 'A';
float fFloat = 2.2f;
double reselt = iInt + cChar + fFloat;
printf("%f\n", reselt);
system("pause");
return 0;
}

赋值运算中会丢失数据,数据被四舍五入后输出(Java直接舍去)
#include<stdio.h>
int main()
{
float a = 3.1415926;
printf("%f\n", a);
system("pause");
}
/*结果输出: 3.141593*/


========================================================================================

输入输出:
字符输入/字符输出
#include<stdio.h>
int main()
{
char cChar1; /*声明变量*/
cChar1 = getchar(); /*在输入设备得到字符*/
putchar(cChar1); /*输出字符*/
putchar('\n'); /*输出转义字符进行换行*/
getchar(); /*得到换行符*/
putchar(getchar()); /*得到输入字符直接输出*/
putchar('\n'); /*换行*/
system("pause");
return 0;
}
/*在上面的程序中, 有一处使用getchar()函数接收换行符, 在进行输入时, 当输入完第一个字符后,
为了确定输入完毕, 要按换行符进行确定. 其中换行符也算字符, 如果不进行获取, 那么下一次使用
个体插入()函数时将得到换行符.*/

格式输入
scanf()函数时C语言提供的格式输入函数. scanf()函数的一般格式为:
scanf(格式控制, 地址列表);

scanf()函数的格式字符及其功能说明:
格式字符 功能说明
D, i 输入有符号的十进制整数
U 无符号的十进制整数
O 无符号的八进制整数
x, X 无符号的十六进制整数(大小写作用是相同的)
...

格式输入:
#include<stdio.h>
int main()
{
long iLong=100000; /*定义长整型变量,为其赋值*/
printf("the Long is %ld\n",iLong); /*输出长整型变量*/
printf("the string is: %s\n","LOVE"); /*输出字符串*/
printf("the string is: %10s\n","LOVE"); /*使用m控制输出列*/
printf("the string is: %-10s\n","LOVE"); /*使用-表示向左靠拢*/
printf("the string is: %10.3s\n","LOVE"); /*使用n表示取字符数*/
printf("the string is: %-10.3s\n","LOVE");
return 0;
}
/*输出结果:
the Long is 100000
the string is: LOVE
the string is: LOVE
the string is: LOVE
the string is: LOV
the string is: LOV
*/


#include<stdio.h>
int main()
{
long iLong; /*长整型变量*/
short iShort; /*短整型变量*/
int iNumber1=1; /*整型变量,为其赋值为1*/
int iNumber2=2; /*整型变量,为其赋值为2*/
char cChar[10]; /*定义字符数组变量*/
printf("请输入一个长整型变量数值\n"); /*输出信息提示*/
scanf("%ld",&iLong); /*输入长整型数据*/
printf("请输入一个短整型数值\n"); /*输出信息提示*/
scanf("%hd",&iShort); /*输入短整型数据*/
printf("请输入一个整数:\n"); /*输出信息提示*/
scanf("%d*%d",&iNumber1,&iNumber2); /*输入整型数据*/
printf("请输入一个字符串,但是输出时只能显示前三个字符\n"); /*输出信息提示*/
scanf("%3s",cChar); /*输入字符串*/
printf("长整型的数值为: %ld\n",iLong); /*显示长整型值*/
printf("短整型的数值为: %hd\n",iShort); /*显示短整型值*/
printf("整型数值1为: %d\n",iNumber1); /*显示整型iNumber1的值*/
printf("整型数值2为: %d\n",iNumber2); /*显示整型iNumber2的值*/
printf("输出字符串的前三位: %s\n",cChar); /*显示字符串*/
}
/*输出结果:
请输入一个长整型变量数值
111111111111
请输入一个短整型数值
11
请输入一个整数:
1
请输入一个字符串,但是输出时只能显示前三个字符
acvv
长整型的数值为: -558038585
短整型的数值为: 11
整型数值1为: 1
整型数值2为: 2
输出字符串的前三位: acv
*/

 


上机实践:
1. 让用户输入长方形的长和宽, 然后将面积输出在计算机屏幕上.
#include<stdio.h>
int main()
{
float length,width;
printf("输入长方形的长和宽\n");
scanf("%f%f",&length,&width);
printf("长方形的面积是:%10.3f\n",length*width);
system("pause");
return 0;
}
/*输出结果:
输入长方形的长和宽
20 1.1
长方形的面积是: 22.000
*/

2. 将大写字母转换为小写字母
#include<stdio.h>
int main()
{
char ch;
printf("输入一个大写字母:\n");
ch=getchar();
ch=ch+32;
printf("该字母的小写形式为:%c\n",ch);
return 0;
}
/*输出结果:
输入一个大写字母:
D
该字母的小写形式为:d
*/

 

posted on 2015-11-13 22:50  starFarming  阅读(240)  评论(0编辑  收藏  举报