%f是浮点型的占位符,%f.2表示显示到小数点后两位,.2称为修饰词

变量可以在程序执行过程中变化和指定,而常量不可以。

【数据类型关键字】int  long  short  unsigned  char   float  double  _Bool  _Complex(复数)  _Imaginary(虚数)

【int 类型】

整数类型之所以有这么多种(int,unsigned int,long,short等等),他们最主要的区别在于取值范围不同和是否能够取负值。

整型 int类型的范围是-32768~32767

声明变量:int a,b,c;  int a;int b; int c;都可以,都是为4个int型变量赋予名称并分配空间。

赋值:直接赋值a=1;  通过函数scanf("%d",&a);  初始化变量int a=1;

  注:不要在同一个声明语句中同时出现初始化和未初始化变量。(int a,b=1;)易引起误解。

int型常量:C把大多数整数常量看作int型,如果很长就看做long,更长就看做long long

打印int型:%d(格式说明符),如果格式说明符和要打印的值的数目不相符,编译器可能无法检查出该错误,所以写的时候一定要注意

其它进制:八进制前缀0  十六进制前缀0x,格式化说明符分别是%0,%x

    注:要显示0和0x的前缀,必须在说明符中加入符号# (%#x)

【其他整数类型】

short:小数值,更少的存储空间 %u   long:大数值,更大的存储空间  %ld %l0八进制     %lx十六进制 

long long:更更大    unsigned int:无符号,(非符值)

在诸多整数类型中,首先考虑unsigned类型,大多数时候不需要负数,并且可以取得更大的计数范围

数值过大会产生溢出的现象

【字符型】

实际上储存在计算机中,用的是整数ASCll码,如存储A,实际是65.

单引号字符,双引号字符串。

【非打印字符】

方式一:使用ASCLL码赋值,如蜂鸣char beep = 7;

方式二:利用转义序列,如char nerf = ‘\n';

方式三:用十六进制标示字符常量。

【打印字符】

%c打印一个字符,如果用%d可打印出字符的ASCLL码

【_Bool类型】

布尔类型,整数类型,只需一位存储,表示true,false

【浮点型】

float:至少六位有效数字,e-27~e37

double:(双精度)至少十位有效数字

long double:更高精度

【编译器】

默认情况下,编译器将浮点常量当作double类型,如some是一个float变量:

some = 4.0 * 2.0

那么4.0和2.0被存储为double类型,乘积运算使用双精度,而结果被截为float长度,这能保证运算的精度,但是会减慢运算速度。

但是可以通过f或F后缀使编译器把浮点常量当作float类型,如2.3f,l或L后缀可以使其成为long double类型。

打印浮点值:%f表示float或double类型,%e表示指数计数法的数字。

【浮点值的上溢和下溢】

【复数和虚数类型】

头文件complex.h包含了复数complex,虚数imaginary。

注:printf输出时如需换行,只要不在引号内部或一个单词中间换行就行。

  输出浮点变量时如果使用整型的格式%d会输出垃圾值,反之亦然。

#include<stdio.h>
int main()
{
float salary;
scanf("%f",&salary);
printf("now i know %d.",salary ); return ;
}//输出无论如何都是0

  

通常退格符\b不会删除退回时经过的字符,但是有时会删除。

#include<stdio.h>
int main()
{
int salary;
printf("please enter your monthly salary:");
printf("$_______\b\b\b\b\b\b\b");
scanf("%d",&salary);
printf("now i know %d a year you get.",salary* ); return ;
}

【刷新输出】

printf输出时并不是直接把内容传递到屏幕上,在程序和屏幕间有一个称为缓冲区(buffer)的中介存储区域,内容是由缓冲区被传递到屏幕上的。

那么什么时候缓冲区的内容会被传到屏幕上呢?

1、缓冲区满了的时候  2、遇到换行符时  3、需要输入时

手动刷新缓冲区:1、打印一个换行符  2、fflush()函数

//编程练习 3.11

#include<stdio.h>
int main()
{
//输入ASCLL码值输出字符
char x=;
scanf("%d",&x);
printf("this char is %c.\n",x); //发出警报声并输出指定字符串
printf("\a By the great Pumpkin.what was that?\n"); //读入一个浮点数,分别以小数形式和指数形式打印
float a=11.23;
printf("%f\n",a);
printf("%e",a); //输入年龄输出秒数
unsigned long old;//无符号长整型才不会溢出,溢出会变成负数
printf("how old are you?\n");
scanf("%d",&old);
printf("now you are %ul seconds old.",old*3.156e7);//一年有3.156e7秒 return ;
}
//未完 还有两道题

仅允许非商业转载,转载请注明出处

【CPP】数据和C的更多相关文章

  1. Mac OS下编写对拍程序

    介绍 对拍是信息学竞赛中重要的技巧,它通过一个效率低下但正确率可以保证的程序,利用庞大的随机生成数据来验证我们的高级算法程序.对拍最大的优势在于可以通过人力所不能及的速度和数量达到验证的效果.下面我们 ...

  2. Linux 常用操作和命令

    腾讯云部署 java web 环境:https://blog.csdn.net/niceLiuSir/article/details/78879844 Tomcat部署和配置:https://blog ...

  3. jso cpp解析读写数据

    json write : { "array" : [ { "aaaaaa" : "bbbbbb", "number" : ...

  4. 点云数据保存为pcd文件_pcd_write.cpp

    #include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h> int main ...

  5. Python 下载 tushare 数据,然后调用 C++ DLL 计算 wMA 存入本地 csv 文件再 python 读取

    CMakeLists.txt project(wMA) add_library(wMA SHARED wMA.cpp) wMA.h #pragma once #ifndef WMA_WMA_H #de ...

  6. APM程序分析-ArduCopter.cpp

    该文件是APM的主文件. #define SCHED_TASK(func, rate_hz, max_time_micros) SCHED_TASK_CLASS(Copter, &copter ...

  7. OpenSceneGraph 笔记--如何导出三角形数据

    OpenSceneGraph 笔记--如何导出三角形数据 转载:http://blog.csdn.net/pizi0475/article/details/5384389 在OpenSceneGrap ...

  8. C++中static数据成员详解

        本文和大家分享的主要是c++中static数据成员的相关用法及源码示例,希望能帮助大家更好的学习C++. static(静态存储)数据成员 StaticTest.cpp : 定义控制台应用程序 ...

  9. 【cocos2d-x + Lua(2) C++和lua数据通讯之间的互调】

    我们主要解决如下几个问题: 转载注明出处:http://www.cnblogs.com/zisou/p/cocos2dx-lua2.html 1,C++如何获取Lua里面的一个变量值? 2,C++如何 ...

随机推荐

  1. 几种MQ消息队列对比与消息队列之间的通信问题

    消息队列 开发语言 协议支持 设计模式 持久化支持 事务支持 负载均衡支持 功能特点 缺点 RabbitMQ Erlang AMQP,XMPP,SMTP,STOMP 代理(Broker)模式(消息在发 ...

  2. 1.如何使用vbs打开网页并且登陆

    例如自动打开繁星的网页并且登录 Private Sub CommandButton1_Click() Dim ie As Object Set ie = CreateObject("Inte ...

  3. Oracle的用户、角色以及权限相关操作

    1.创建用户create user KD identified by 123456;2.授予连接数据库的权限grant connect to KD;3.将Scott用户的emp表授权给KD可以查询gr ...

  4. 2017寒假零基础学习Python系列之函数之 定义默认参数

    在定义函数时,可以有默认参数例如Python自带的函数int(),其实就是两个参数,我们既可以传一个参数,又可以传两个参数 int(') >>>123 int(',8) 83 int ...

  5. .NET 跨平台界面框架和为什么你首先要考虑再三

    ​​​原文地址 现在用 C# 来开发​跨平台应用已经有很成熟的方案,即共用非界面代码,而每个操作系统搭配特定的用户界面代码.这个方案的好处是可以直接使用操作系统原生的控件和第三方控件,还能够和操作系统 ...

  6. Hibernate 集合映射 一对多多对一 inverse属性 + cascade级联属性 多对多 一对一 关系映射

    1 . 集合映射 需求:购物商城,用户有多个地址. // javabean设计 // javabean设计 public class User { private int userId; privat ...

  7. js字符串与数组的相互转换

    一.数组转字符串,通过join()拼接数组元素 var a, b,c; a = new Array(a,b,c,d,e); b = a.join('-'); c = a.join('');consol ...

  8. springBoot基础系列--properties配置

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7183408.html SpringBoot中免除了大部分手动配置,但是对于一些特定的情况, ...

  9. vue+webpack项目实际工作中需要生成一个配置文件供生产环境使用

    大家都知道webpack打包十分方便,但是在工作中,前端写好的项目需要后端进行部署,就需要有一个配置文件. 使用插件 :  GenerateAssetPlugin , 使用方法 : 1  在项目中安装 ...

  10. apt-get 安装ubuntu-tweak

    Ubuntu Tweak是一款专门为Ubuntu(GNOME桌面)准备的配置.调整工具.主要面向新手级的普通用户.它可以设置很多并不能在系统首选项中设置的隐藏选项,以满足用户自定义的乐趣.即使是新手, ...