01 整型数据类型存储空间大小
这题要用到 sizeof 这个函数(其实严格说来也不能这么叫,它的执行是在编译过程中而非运行时),依次输出 sizeof(int) 和 sizeof(short) 即可。
#include <iostream> using namespace std; int main() { int a; short b; cout<<sizeof(a)<<" "<<sizeof(b)<<endl; return 0; }
02 浮点型数据类型存储空间大小
依次输出 sizeof(float) 和 sizeof(double) 。
#include <iostream> using namespace std; int main() { float a; double b; cout<<sizeof(a)<<" "<<sizeof(b)<<endl; return 0; }
03 其他基本数据类型存储空间大小
依次输出 sizeof(bool) 和 sizeof(char) 。
#include <iostream> using namespace std; int main() { bool a; char b; cout<<sizeof(a)<<" "<<sizeof(b)<<endl; return 0; }
04 填空:类型转换1
因为用 "%d%d" 进行输出,故$a,b$均为整数,排除A,B,E,F。显然赋值为32768时,对$a$没有问题,对$b$则发生了溢出,所以在选项中,$a$只能为 int 类型,$b$只能为 short 类型。答案为DC。
#include <iostream> using namespace std; int main() { cout<<"D C"<<endl; return 0; }
05 填空:类型转换2
因为用 "%.9f %.9f" 进行输出,故$a,b$均为实数,排除A,B,C,D。根据题意,$a$的精确度高于$b$,再结合选项,$a$只能为 double 类型,$b$只能为 float 类型。答案为FE。
#include <iostream> using namespace std; int main() { cout<<"F E"<<endl; return 0; }
06 浮点数向零舍入
这里用到了强制类型转换。根据提示,若$x$为浮点数,输出的数字就是 (int)x 或 int(x) 。
#include <iostream> using namespace std; int main() { float x; cin>>x; int y=(int)x; cout<<y<<endl; return 0; }
07 打印ASCII码
将 char 类型强制转换为 int 然后输出即可。
#include <iostream> using namespace std; int main() { char c; cin>>c; int x=(int)c; cout<<x<<endl; return 0; }
08 打印字符
将 int 类型强制转换为 char 然后输出即可。
#include <iostream> using namespace std; int main() { int x; cin>>x; char c=(char)x; cout<<c<<endl; return 0; }
09 整型与布尔型的转换
按照题目要求照做即可。不过也可以用判断语句来写(虽然没什么必要),即:
- 若输入为0,则输出0;
- 若输入不为0,则输出1。
#include <iostream> using namespace std; int main() { int x; cin>>x; bool y=x; x=y; cout<<x<<endl; return 0; }
10 Hello, World!的大小
输出 sizeof("Hello, World!"); 。
#include <iostream> using namespace std; int main() { cout<<sizeof("Hello, World!")<<endl; return 0; }