竞赛(变量定义赋值及转换)
Posted hanwangyyds
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了竞赛(变量定义赋值及转换)相关的知识,希望对你有一定的参考价值。
1.打印ASCII码
点睛:打印函数中%d 很重要,直接将字符类型转换为10进制,进而打印出ASCII码值
2. 分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。
可以直接在sizeof括号内输入int short
3. 分别定义bool,char类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。
新概念:bool类型
在C语言中,没有bool这种类型,但是在C++中,把bool当做一种基本的数据类型。
可以变成_Bool,占用一个字节
为了让我们能够写出与C++兼容的代码,添加了一个头文件<stdbool.h>
注意要引头文件!
4.输出“hello world!”所占空间大小
先来一个明显的错误示范
这个是错误代码!!!!!!!!!!!
char是用来存放字符数据的,例:x和 *
所以打印出来答案恒为1.
在此处" Hello, World!"明显超出了这个范围,因此我们没有必要先用char来声明,我们可以直接输出sizeof(" Hello, World!"),这样得出的值就是整数,可以直接输出。
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
若简单地这样输入,会报错
应加入判断语句
EOF用法:
EOF适用范围:
针对多组输入输出且数据没有固定数据量问题:采用while(scanf("%d",&n) != EOF)
以上是关于竞赛(变量定义赋值及转换)的主要内容,如果未能解决你的问题,请参考以下文章