课后作业
chao_smile 2023/10/27
# 第二课
# 1. 声明一个值为大写 A
的变量,并依据 ASCII表
用声明的变量输出 L X Y
。
输出示例:
LXY
- 你的答案
#include<iostream>
using namespace std;
int main(){
char a = 'A';
cout <<static_cast<char>(a+11)<<" "<<static_cast<char>(a+23)<<" "<<static_cast<char>(a+24)<<endl;
}
解析
此题主要考核对于ASCII表
的认识,通过A
的十进制值可以通过运算输出其他字符,注意输出时需要使用强制转换输出,否则将自动隐式转换输出,输出将为数字。- 参考答案
#include <iostream>
using namespace std;
int main() {
char a = 'A';
cout <<static_cast<char>(a+11);
cout <<static_cast<char>(a+23);
cout <<static_cast<char>(a+24);
return 0;
}
# 2. 已知使用 cin
流能够进行数据的读取,请编写一个程序将输入的小写字符转为大写字符输出。
请编写一个 C++ 程序,将输入的小写字符转为大写字符输出。
cin
使用示例:
// 定义变量
int letter;
// 将输入值赋值给变量。
cin >> letter;
// 注意:成功编译后程序运行起来将会光标提示输入,输入后回车,程序将继续向下运行。
输入输出示例:
// 输入
a
// 输出
A
- 你的答案
#include <iostream>
using namespace std;
int main()
{
char a[20];
int i = 0;
cout<<"������һ���ַ�:\n";
cin>>a;
for(;a[i];i++)
{
if(a[i] >= 'a'&&a[i] <= 'z')
a[i] -= 32;
else if(a[i] >= 'A'&&a[i] <= 'Z')
a[i] += 32;
}
for(i = 0;a[i];i++)
cout<<a[i];
cout<<endl;
return 0;
}
解析
此题主要考核ASCII表
中的字母大小写关系
,通过32
的差值可以进行其大小写转换,题目中使用了cin
来进行输入操作。注意示例中使用的int
类型声明变量,因为需要输入字符,所以需要使用char
声明,有关cin
操作在后续课程将进行详细讲解,目前已知使用示例代码即可进行一个类似声明赋值操作,题目中未要求输入多字符或区分大小写转换,只做将输入的小写字符转为大写字符输出即可- 参考答案
#include <iostream>
using namespace std;
int main() {
char letter;
cin >> letter;
cout <<static_cast<char>(letter-32);
return 0;
}
# 3. 输入一个单精度浮点数,将其向零舍入到整数输出。
请编写一个 C++ 程序,输入一个单精度浮点数,将其向零舍入到整数输出。
说明:向零舍入的含义是,正数向下舍入,负数向上舍入(正数下取整,负数上取整,即舍去小数部分)。
提示:可以使用cin
与强制类型转换
来实现。
输入输出示例:
// 输入
2.3
// 输出
2
- 你的答案
#include<iostream>
using namespace std;
int main(){
float a;
cin >> a;
cout <<static_cast<int>(a)<<endl;
}
解析
此题主要考核强制类型转换的显式转换与单精度浮点数类型的认识,通过将float
转换为int
实现从小数转化为整数的操作。需要注意的是,不管多简单的考题或程序,无特殊说明必须保证程序完整性,答案中缺少了主函数的返回值。- 参考答案
#include<iostream>
using namespace std;
int main(){
float a;
cin >> a;
cout <<static_cast<int>(a);
return 0;
}