2.数据的类型、数据的输入输出

2.1 数据类型-常量-变量(整型-浮点-字符)

2.1.1 数据类型

在这里插入图片描述

2.1.2 常量

常量:指在程序运行过程中,其值不发生变化的量
在这里插入图片描述

2.1.3 变量

  • 变量的值是可以改变的
  • 变量命名只能由字母、数字、下划线组成,第一个字符不能是数字
  • C语音要求变量强制定义,变量必须先定义,后使用
  • 不能和关键字同名

2.1.4 整型类型

使用关键字int定义整型变量

#include <stdio.h>

#define PI 3+2

int main() {
    int i=PI*2;
    printf("i=%d\n",i);
}

PI是符号常量,这里被替换为3+2,即i=3+2*2,所以输出的结果为7,变量i是4个字节

2.1.5 浮点型数据

浮点型常量小数形式0.123
指数形式3e-3(即0.003)
浮点型变量float f定义,占4个字节float f=0.111

2.1.6 字符型数据

字符型常量

  • 字符型常量使用单引号括起来,不能使用双引号
  • 字符型常量只包含一个字符
  • 以“\”开头的特殊字符称为转义字符(\n:换行,\b:退格)

字符型变量

  • 字符型变量使用char来定义
  • 一个字符型变量占用1字节大小
#include <stdio.h>

int main() {
    char c='A';
    printf("%c\n",c+32);
    printf("%d\n",c);
}

输出为a、65

2.1.7 字符串型常量

  • 字符串型常量由一对双引号括起来
  • C语言中没有定义字符串型变量的关键字
  • 字符串型常量的结尾必须加一个字符串结束标志,规定已’\0’作为字符串结束的标志,输出时不会输出’\0’

2.2 混合运算-printf讲解

类型强制转换

#include <stdio.h>

int main() {
    int i=5;
    float j=i/2;
    float k=(float)i/2;
    printf("i=%d\n",i);
    printf("j=%f\n",j);
    printf("k=%2.1f\n",k);
}

printf

  • printf函数会将所有类型的数据格式化为字符串后,再显示到屏幕上
  • printf函数的所有输出都是右对齐的,除非再%符号后放置了负号,如%-5.2f是左对齐

printf函数具体代码格式

代码格式
%d带符号整数
%f浮点数
%s一串字符
%c字符
%%百分符号
#include <stdio.h>

//int main() {
//    int age=21;
//    printf("Hello %s, You are %d years old\n","Bob",age);
//    return 0;
//}

int main() {
    int i =10;
    float f;
    f = 96.3;
    printf("student number=%3d score=%4.2f\n",i,f);
    printf("student number=%-3d score=%4.2f\n",i,f);
    printf("%10s\n","hello");
}

2.3 整型进制转换

  • 程序运行时,整型以二进制在内存中存储
  • 十六进制在观察内存时,需要频繁使用
  • CPU采取小端方式进行数据存储,因此低位在前,高位在后
#include <stdio.h>

int main() {
    int i = 123;
    printf("i=%d\n",i);
    printf("i=%o\n",i);  //八进制
    printf("i=%x\n",i);  //16进制
}
//输出i=123 i=173 i=7b

2.4 scanf读取标准输入

  • scanf输入被称为标准输入,还没有输入时,会卡住(阻塞)
  • scanf在读取整型数、浮点数、字符串时,会忽略‘\n’、空格等字符,但读取字符的时候不会
  • stdin为输入缓冲区,stdout为输出缓冲器
#include <stdio.h>

int main() {
    int i;
    char c;
    scanf("%d",&i); //注意要取i的地址(&i)
    printf("i=%d\n",i);
    fflush(stdin); //清空标准输入缓冲器
    scanf("%c",&c);
    printf("c=%c\n",c);
    return 0;
}
  • 多种数据类型混合输入时,注意字符数据前要加空格,也是因为读取字符的时候不会忽略‘\n’、空格等字符
#include <stdio.h>

int main() {
    int i,ret;
    char c;
    float f;
    ret = scanf("%d %c%f",&i,&c,&f);
    printf("i=%d,c=%c,f=%5.2f\n",i,c,f);
    return 0;
}

2.5 OJ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值