头部代码:
#include <iostream>
#include <iomanip>
using namespace std;
<注意此处省略了主函数,只给出了部分的主要功能代码>
习题1、基于短整型的算术运算。
要求:
输入两个短整数,输出这两个短整数的和、差、积、商。注意两个整数的商任是一个整数。
实现代码:
`/*short num1, num2, sum,difference,product,quotient;
cout<<"请输入num1:"<<endl;
cin >> num1;
cout<<"请输入num2:"<<endl;
cin >> num2;
cout << "最终所有的运算结果如下:" << endl;
sum = num1 + num2;
difference = num1 - num2;
product = num1 * num2;
if (num2 != 0) {
quotient = num1 / num2;
}
else {
cout<<"警告:除数num2不能等于0,请重新输入一个不为0的数!" << endl;
}
cout <<num1<< " + " <<num2<<" = "<<sum<< endl;
cout <<num1<< " - " <<num2<<" = "<<difference<< endl;
cout <<num1<< " * " <<num2<<" = "<<product<< endl;
cout <<num1<< " / " <<num2<<" = "<<quotient<< endl;*/`
习题2、实现对逻辑值的判断。
要求 定义两个逻辑变量,输入0和1两个数给这两个逻辑变量,判断这两个逻辑变量的真假,若为真,则输出字符串true;若为假则输出字符串"false"; 实现代码:
`/*bool a, b;
cout<<"请为逻辑变量a赋予值0或1:" << endl;
cin >>a ;
if (a) {
cout<<"true" << endl;
}
else
{
cout << "false" << endl;
}
cout << "请为逻辑变量b赋予值0或1:" << endl;
cin >> b;
if (b) {
cout << "true" << endl;
}
else
{
cout << "false" << endl;
}*/`
习题3、编写程序,实现温度的转换。。
要求 输入华氏温度值,输出摄氏温度值,华氏温度F,摄氏温度C 关系式:C = 5×(F-32)/ 9 结果保留两位小数(函数setprecision), 实现代码:
`/*double F, C;
cout<<"请输入华氏温度值:" << endl;
cin >>F ;
C = 5 * (F - 32) / 9;
cout << setprecision(2) << endl;
cout << "转换后的摄氏温度值为:" <<C<< endl;
*/`
习题4、编写程序,实现字符串的加密。
要求: 输入一行大写字母(即A - Z),输出该行字符串的密文。字符的加密方式:当前字符后的第3个字符为其密文,例如:字符A的密文 D,字符B的密文为E,以此类推,字母表后的3个字符X、Y和Z的密文为其(循环)后的3个字符,即A、B和C。这就是有名的凯撒密码。 实现代码:
cout << "请输入加密前的字符串:" << endl;
string str;
getline(cin, str);
int len = str.length();
for (int i = 0; i < len;i++) {
if (str[i] < 'X')
str[i] = str[i] + 3;
else
str[i] = str[i] + 3 - 26;
}
cout <<"加密后的字符串为:" << str<<endl;
习题5、编写程序,定义一个数组a
要求: 将数组初始化为{-3,-2,-1,0,1,2,3}。然后,计算数组中每个元素的平方,最后求平方后的数组 元素的和。当指定了全部元素数组元素时,可以使用如下方式定义数组:int a[] = {-3,-2,-1,0,1,2,3};即不指定数组长度,由编译器自主识别。
实现代码:
int a[7] = {-3, -2, -1,0,1,2,3};
//cout<<a<<endl;//此时打印的是数组首元素的地址,要想打印还得用循环遍历输出;
int square[7] = {0};
int i=0,sum=0;
for (i = 0; i < 7; i++) {
square[i] = a[i] * a[i];
}
cout << "平方后的数组为:" << endl;
for (i = 0; i < 7; i++) {
cout << square[i] << " ";
sum += square[i];
}
cout << endl;
cout << "最终的和为:" << sum << endl;
此题改进一下:
int a[] = {-3,-2,-1,0,1,2,3}
int length = end(a) - begin(a);//得到a数组的长度
int sum = 0;
for(int i = 0;i<length;i++){
a[i] = a[i] * a[i];
cout << a[i]<<endl;
sum += a[i];
}
cout<<"现在的数组元素相加为:"<<sum<<endl;
习题6、输出字符串及其长度。
要求: 定义一个字符串Hello C++Program!,然后输出该字符串及其长度; 实现代码:
string a = "Hello C++Program!";
int length = a.length();
cout<<"打印该字符串的内容为:"<<a << endl;
cout<<"被打印的字符串的长度为:"<<length << endl;
习题7、定义一个结构体类型Student,包括学生姓名和3门科目的成绩以及平均成绩。
要求: 输入3个学生的姓名和其各科目的成绩以及平均成绩, 然后计算每个学生的平均成绩,最后输出学生姓名和其平均成绩。
实现代码:
`struct Student
{
string name;
int grade[3] = { 0,0,0 };
};
Student st[10];
st[0] = { "ZhangJiaJun",{90,80,90} };
st[1] = { "LiSi",{90,98,99 } };
st[2] = { "Wang wu",{90,98,99 } };
for (int i = 0; i < 3;i++) {
cout << std::left << setw(16) << st[i].name << setw(6) << st[i].grade[0] <<
setw(6) << st[i].grade[1] << setw(6) << st[i].grade[2] << endl;
}
例题8、编写一个程序,定义一个表示星期的枚举类型。
要求: 输入1-7中的任意一个数字,输出对应的日期。例如:输入4,则输出Thusday ;输入7则输出Sunday
`enum Week {
Monday=1,
Tuesday=2,
Wednesday=3,
Thursday=4,
Friday=5,
Saturday=6,
Sunday=7
};
int today;
cout<<"请输入1-7的任意一个数字:" << endl;
cin >> today;
switch (today)
{
case Monday:
cout<<"Monday" << endl;
break;
case Tuesday:
cout << "Tuesday" << endl;
break;
case Wednesday:
cout << "Wednesday" << endl;
break;
case Thursday:
cout << "Thursday" << endl;
break;
case Friday:
cout << "Friday" << endl;
break;
case Saturday:
cout << "Saturday" << endl;
break;
case Sunday:
cout << "Sunday" << endl;
break;
default:
cout << "您输入的数字非法,请重新输入!" << endl;
break;
}
例题9、现在定义如下的共用体类型Grade:
要求: /* union Grade { int num; char rank; float score; }; 若用上述Grade定义了一个变量g,并作赋值运算 g.num = 65,然后读取g.rank,则g.rank的值是多少? 要求:编程验证所得的答案是否正确? */
`//共用体类型的定义:
union Grade
{
int num;
char rank;
float score;
double test;
};
float a = 65;
double b = 65;
cout<<a<<endl;//打印结果65
cout<<b<<endl;//打印结果65
Grade g;
g.num = 65;
cout << g.num << endl;//打印结果:65
cout<<g.rank << endl;//打印结果:A
cout<<g.score << endl;//打印结果:9.10844e-44
cout<<g.test << endl;//打印结果:-9.25596e+61
}`