C语言 第二章 数据类型、变量和输入函数

一、数据类型简介

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

类型转换:

类型 存储大小 值范围
char 1 字节 -128 到 127 或 0 到 255
unsigned char 1 字节 0 到 255
signed char 1 字节 -128 到 127
int 2 或 4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int 2 或 4 字节 0 到 65,535 或 0 到 4,294,967,295
short 2 字节 -32,768 到 32,767
unsigned short 2 字节 0 到 65,535
long 4 字节 -2,147,483,648 到 2,147,483,647
unsigned long 4 字节 0 到 4,294,967,295

1.2、获得数据类型的长度

#include "stdio.h"
void main()
{
    //sizeof用于获得数字类型的长度
    //sizeof是一个关键字(32个)
    printf("char占用字节数:%d \n",sizeof(char));
    printf("short占用字节数:%d \n",sizeof(short));
    printf("int占用字节数:%d \n",sizeof(int));
    printf("long占用字节数:%d \n",sizeof(long));
    printf("float占用字节数:%d \n",sizeof(float));
    printf("double占用字节数:%d \n",sizeof(double));
}

二、变量定义

是用数据类型在内存中开辟的空间。
一个变量应该有一个名字,也就是我们程序员给该空间取的名──叫变量名。
它在内存中占据一定的存储单元。
变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分。

变量:在程序运行过程中可以变化的量。

常量:在程序运行过程中不可以变化的量。

#include "stdio.h"
void main()
{
    int i=100;
    i++;   //i=i+1
    printf("i=%d \n",i); //101
    i--;  //i=i-1
    printf("i=%d \n",i); //100
    i+=100;  //i=i+100
    printf("i=%d \n",i);  //200
    i/=3;  //i=200/3=66.666667=66
    printf("i=%d \n",i);  //66
    i+7;  //在内存中66+7完成运算,但值没有写回
    printf("i=%d \n",i);  //66
}

2.1、变量名的取名规则

第一个字符只能是字母或下划线( _ );

第一个字符的后而只能跟字母、数字和下划线( _ );

关键字(写上去会变色的那些单词)不能用作变量名;

区分大小写;

第一位(a-zA-Z_)后续(a-zA-Z_0-9)

请问下面那些是非法的,为什么?

1name
_product
_9527
Double
int
_producT
_product
total

2.2、变量定义的多种形式

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    //定义变量并赋值
    int i=100;

    //先定义再赋值
    float j;
    //j=99.5f; 错误,变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分

    //同时定义多个变量
    char a,b,c;

    //同时定义多个变量并赋值
    double x=1.5,y=1.6,z;

    j=99.5f;
    z=x+y;

}

三、整型(int)

#include "stdio.h"
void main()
{
    int i;
    i++;   //i=i+1
    printf("i=%d \n",i); //101
    i--;  //i=i-1
    printf("i=%d \n",i); //100
    i+=100;  //i=i+100
    printf("i=%d \n",i);  //200
    i/=3;  //i=200/3=66.666667=66
    printf("i=%d \n",i);  //66
    i+7;  //在内存中66+7完成运算,但值没有写回
    printf("i=%d \n",i);  //66
}

四、字符型(char)

五、单精度浮点型(float)

六、双精度浮点型(double)

七、输入scanf

#include "stdio.h"
void main()
{
    //判断年龄如果小于18岁则提示年轻真好,否则输出年龄

    //定义变量
    int age;

    //用户输入年龄
    printf("请输入年龄:");
    //从键盘输入,&表示取变量地址
    scanf("%d",&age);

    //条件判断
    if(age<18){  //如果条件成立
       printf("年轻真好");
    }
    else{  //如果条件不成立
       //输出
       printf("您的年龄是:%d",age);
    }
}

scanf("格式控制",地址列表);
“格式控制”的含义同printf函数;
“地址列表”是由若干个地址组成的表列,可以是变量的地址,或字符串首地址

%f 单精度

%lf 双精度 

%c 从键盘接收一个字符
%d 从键盘接收十进制整数
%s 从键盘接收一个字符串,遇空格、制表 符或换行符表示接收完毕。
%[] 从键盘接收一包含在括号内的字符,只 要遇到有一个不在其内的字符,便表 示接收完毕。

输入时如果遇到 空格 回车 Tab则表示结束

7.1、输入时指定分隔符

#include "stdio.h"
void main()
{
    int a,b,c;
    printf("请输入年-月-日:");
    scanf("%d-%d-%d",&a,&b,&c);
    printf("%d年%d月%d日",a,b,c);
}

7.2、清除缓冲

#include "stdio.h"
void main()
{
    char x,y,z;
    printf("输入:");
    scanf("%c",&x);
    printf("输入:");
    scanf("%c",&y);
    printf("输入:");
    scanf("%c",&z);
    printf("%c,%c,%c",x,y,z);
}

 

#include "stdio.h"
void main()
{
    char x,y,z;
    printf("输入:");
    scanf("%c",&x);
    fflush(stdin);  //清除缓冲
    printf("输入:");
    scanf("%c",&y);
    fflush(stdin);  //清除缓冲
    printf("输入:");
    scanf("%c",&z);
    fflush(stdin);  //清除缓冲
    printf("%c,%c,%c",x,y,z);
}

 

7.3、输入字符串

#include "stdio.h"
void main()
{
    char a[100];  //数组,char只能是单个字符
    scanf("%s",a);  //不要取地址
    printf("%s",a);
}

7.4、限定输入范围

#include "stdio.h"
void main()
{
    //限定输入范围
    char a[100];
    scanf("%[0123456789]s",a);//只能输入0-9,其它表示结束
    printf("%s",a);
}

 

7.5、限定输入范围取反

#include "stdio.h"
void main()
{
    char a[100];
    scanf("%[^a]s",a);  //^取反,如果是a则表示结束
    //scanf("%[^\n]s",a);  //如果是换行则结束,其它字符都可以
    printf("%s",a);
}

 

 练习:

#include "stdio.h"
void main()
{
    int nianling;  //年龄
    float fenshu;  //分数
    char aihao[30];  //爱好
    printf("请输入年龄:");
    scanf("%d",&nianling);

    printf("请输入分数:");
    scanf("%f",&fenshu);

    printf("请输入爱好:");
    scanf("%s",aihao);

    printf("您的年龄是%d,分数:%f,爱好:%s",nianling,fenshu,aihao);
}

 

时间: 2024-10-04 00:42:40

C语言 第二章 数据类型、变量和输入函数的相关文章

C语言学习教程第二章-数据类型、运算符、表达式(八)

逗号运算符C语言中逗号","也是一种运算符,称为逗号运算符. 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式.其一般形式为: 表达式1,表达式2 其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值.void main(){int a=2,b=4,c=6,x,y;x=a+b,y=b+c;printf("y=%d,x=%d",y,x);}a<--2,b<--4,c<--6,x<--0,y<--0x<

《乐在C语言》一第2章 变量、常量与数据类型2.1 变量与常量

第2章 变量.常量与数据类型 乐在C语言本章大纲 2-1 变量与常量 2-2 数据类型 2-3 关键词 2-4 纸上作业变量(variable)名与常量(constant)名可以用来代表某一事项,而数据类型(data type)表示变量名所需要的内存的大小.好比某个人需要多少平米的房子才能满足其居住的需求,如图2-1所示.张小华住的房子是40平米(图2-1所示的上方),而林小明住的房子是20平米(图2-1所示的下方). 图2-1 数据类型(data type)表示变量名所需要的内存的大小, 好比

《.net编程先锋C#》第二章 理论基础-公用语言 运行环境(转)

编程 第二章 理论基础-公用语言 运行环境既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌.C#依靠由NGWS提供的运行时:因此,有必要知道运行时如何工作,以及它背后所蕴含的概念.所以,这一章分为两部分--它们是所有的概念和使用的基础.两部分的内容虽然有些重叠,但它有助于加深理解正在学习的概念. 2.1 NGWS RuntimeNGWS和NGWS Runtime为你提供了一种运行时环境.该运行时管理执行代码,并提供了使编程更容易的服务.只要你的编译器支持这种运行时,你

《Abaqus GUI程序开发指南(Python语言)》——第二章 Python语言基础2.1 Python语言的特点

第二章 Python语言基础 Abaqus GUI程序开发指南(Python语言)Python语言是一种动态解释型编程语言,其功能强大,简单易学,支持面向对象编程(object-oriented programming),虽然由于其动态性致使程序解释执行速度比编译语言慢,但是随着Python语言的不断优化以及计算机硬件的迅猛发展,Python语言将会受到越来越多用户的关注.Python具有开源.自由等特征.它的简洁性和易用性使程序的开发过程变得简单,特别适用于快速应用程序开发. 本章将简要介绍P

《指针的编程艺术(第二版)》一第二章 指针与变量2.1 一颗星星:表示一把钥匙

第二章 指针与变量 指针的编程艺术(第二版)2-1 一颗星星:表示一把钥匙 2-2 两颗星星:表示两把钥匙 2-3 三颗星星:表示三把钥匙 2-4 练习 如果要间接访问某一变量值,我们可使用指针来完成. 2.1 一颗星星:表示一把钥匙 指针的编程艺术(第二版)本章将介绍指针变量(pointer variable)与一般变量的关系.首先介绍的是,如何定义一个指针变量,如下所示. int x=100; int *ptr = &x; 上述语句表示下列3种含义. 1.ptr是一个指针变量. 2.ptr变

&amp;gt; 第二章 NGWS Runtime 技术基础(rainbow 翻译) (转自重粒子空

<<展现C#>> 第二章 NGWS Runtime 技术基础(rainbow 翻译)   出处:http://www.informit.com/matter/ser0000001/chapter1/ch02.shtml 正文: 第二章  NGWS  runtime 技术基础     既然你已经具有了C#全面的印象,我也想让你了解NGWS runtime的全貌.C#依靠由NGWS提供的运行时:因此,有必要知道运行时如何工作,以及它背后所蕴含的概念.    所以,这一章分为两部分--它

Java初级笔记-第二章

第二章 Java的基本数据类型.运算符及表达式 2.1 标识符 标识符是程序员对程序中的各个元素加以命名时使用的命名记号. A-Z.a-z.0-9._.$ 第一个字母不可以是数字(0-9), 标识符中的字符是区分大小写的,Java的代码是严格区分大小写的.  标识符不可以是中文. 2.2 标识符的使用规范 不可以用关键字.保留字和中文字符 标识符使用在:常量名.变量名.类名(文件名).包名.方法名 命名规则:  包名全小写.Eg:axx.bxxx.cxx  类名单词的首字母大写(大驼峰规则

《Python 3程序开发指南(第2版•修订版)》——第2章 数据类型 2.1 标识符与关键字

第2章 数据类型 在本章中,我们开始对Python语言进行更细致的解读.我们首先讨论了对象引用命名的一些规则,并提供了Python关键字列表.之后我们介绍了Python中最重要的一些数据类型--集合数据类型除外,将在第3章进行讲解.这里讲解的数据类型都是内置的,只有一种来自于标准库.内置数据类型与标准库数据类型唯一的区别在于,对于后者,我们必须首先导入相关的模块,并且必须使用模块名对数据类型名进行限定--第5章对导入进行深度介绍. 2.1 标识符与关键字 创建一个数据项时,我们或者将其赋值给一个

Programming MS Office 2000 Web Components第二章第二节

web 第二章第二节 电子表格组件的高级功能 我们已经讨论了电子表格组件的大部分基本功能,现在让我们转向一些高级功能.大部分的这些高级功能Excel2000都不包含,因为这些是组件专门需要的特殊功能.而那些Excel2000中存在的功能,在电子表格组件中也被增强,使得可以提供一些新的功能. 属性绑定和实时数据 "属性绑定"是电子表格组件中最新奇的新功能之一,它是指控件能够将同一个web页面上其它对象的属性和方法用作单元值或公式参数的能力.电子表格控件使用标准的COM机制来实现绑定到属性