竞赛(变量定义赋值及转换)

Posted hanwangyyds

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了竞赛(变量定义赋值及转换)相关的知识,希望对你有一定的参考价值。

1.打印ASCII码

竞赛(变量定义、赋值及转换)_竞赛

点睛:打印函数中%d 很重要,直接将字符类型转换为10进制,进而打印出ASCII码值


2. 分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。

可以直接在sizeof括号内输入int  short

竞赛(变量定义、赋值及转换)_竞赛_02


3. 分别定义bool,char类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。

新概念:bool类型

在C语言中,没有bool这种类型,但是在C++中,把bool当做一种基本的数据类型。

可以变成_Bool,占用一个字节

为了让我们能够写出与C++兼容的代码,添加了一个头文件<stdbool.h>

竞赛(变量定义、赋值及转换)_数据_03

注意要引头文件!


4.输出“hello world!”所占空间大小

先来一个明显的错误示范


竞赛(变量定义、赋值及转换)_ascii码_04

这个是错误代码!!!!!!!!!!!

char是用来存放字符数据的,例:x和  *

所以打印出来答案恒为1.

在此处" Hello, World!"明显超出了这个范围,因此我们没有必要先用char来声明,我们可以直接输出sizeof(" Hello, World!"),这样得出的值就是整数,可以直接输出

竞赛(变量定义、赋值及转换)_竞赛_05

TIP:如何定义字符串,可以用char定义,然后存放在数组里面

例:char arr[]="  hello world!   "


5.有两个变量a和b,在执行了如下代码后:

a = 1.000000001;

b = a;

printf("%.9f %.9f\\n", a, b);

输出两个数:1.000000001 1.000000000

请问a和b分别是以下哪种类型?

A. bool   B. char   C. short   D. int   E. float   F. double

答案为F E

double和float的区别在于有效数字位数, 

b的最后一个1没了,说明b的精度没有a高


有效位数之外的数字会生成随机数

此题考点在与区分float 和 double


6.有两个变量a和b,在执行了如下代码后:

a = 32768;

b = a;

printf("%d %d\\n", a, b);

输出两个数:32768 -32768

请问a和b分别是以下哪种类型?

A. bool   B. char   C. short   D. int   E. float   F. double

TIP:int和short的区别:

一、字节数不同

1、int:int占用32字节,32比特。

2、short:短整型变量不得低于16位,即两个字节。

二、范围不同

1、int:数据范围为-2147483648~2147483647[-2^31~2^31-1]。

2、short:数据范围为范围-32768~+32767。

而此题变量a为32768,超出了short表示的范围,就会从-32768开始循环


7.ASCII码值转换

输入一个整数,即字符的ASCII码,保证存在对应的可见字符。输出一行,包含相应的字符。样例输入

65

样例输出

A

竞赛(变量定义、赋值及转换)_数据_06

若简单地这样输入,会报错

竞赛(变量定义、赋值及转换)_数据_07

应加入判断语句

EOF用法:

EOF适用范围:

针对多组输入输出且数据没有固定数据量问题:采用while(scanf("%d",&n) != EOF)



以上是关于竞赛(变量定义赋值及转换)的主要内容,如果未能解决你的问题,请参考以下文章

1.2编程基础之变量定义赋值及转换

Java中的变量,变量的定义,变量的作用范围及变量的转换

java变量和数据类型

Java知识点

Shell脚本基本编辑规范及变量

变量定义和赋值(下)