1.编写一个完整的程序,实现功能:向用户提问“现在正在下雨吗?”,提示用户输入Y或N。若输入为Y,显示“现在正在下雨。”;若输入为N,显示“现在没有下雨”;否则继续提问“现在正在下雨吗?”
#include<iostream> #include<string> using namespace std; int main() { string input; //用户输入的是一个字符串,要用cin接收一行的输入 while (1) { //永远执行此循环 cout << "现在正在下雨吗?"; getline(cin, input); if (input == "Y") { cout << "现在正在下雨" << endl; break; //结束循环 } else if (input == "N") { cout << "现在没有下雨" << endl; break; //结束循环 } else { continue; } } system("pause"); return 0; }
2. 编写一个完整的程序,运行时向用户提问“你考试考了多少分?(0~100)”,接收输入后判断其等级显示出来,规则为90到100优,80到90良,60到80中,0到60差。
#include<iostream> using namespace std; int main(){ float number; while(1){ // 第一次输入。 cout << "你考试考了多少分?(0~100):"; cin >> number; // 检测是否输入的是符合要求的数字 while(cin.fail()){ cout<<"你输入的不是数字,请重新输入!"<<endl; cin.clear(); cin.sync(); cout<<"你考试考了多少分?(0~100):"; cin >> number; } // 当输入的是数字后,进入判断 if(number >= 90 && number <= 100){ cout << "你的等级是优" << endl; } else if(number>=80 && number<90){ cout << "你的等级是良" << endl; } else if(number>=60 && number<80){ cout << "你的等级是中" << endl; } else if(number>=0 && number<60){ cout << "你的等级是差" << endl; } else{ cout << "你输入的成绩不在判断等级的范围内,请重新输入!" << endl; } } return 0; }
3. 实现一个简单的菜单程序,运行时显示“Menu: A(dd) D(elete) S(ort) Q(uit),Select one:”,提示用户输入。A表示增加,D表示删除,S表示排序,Q表示退出。输入为A、D、S时分别提示“数据已经增加、删除、排序。”,输入为Q时程序结束。
(1)要求用if…else语句进行判断,用break,continue控制程序流程。
(2)要求使用switch语句。
#include<iostream> #include<string> using namespace std; /* 利用if...else语句进行判断,用break,continue控制流程。 */ int main() { string input; while (1) { cout << "Menu: A(dd) D(elete) S(ort) Q(uit),Select one:"; getline(cin, input); if (input == "A" || input == "a") { cout << "数据已经增加!" << endl; continue; } else if (input == "D" || input == "d") { cout << "数据已经删除!" << endl; continue; } else if (input == "S" || input == "s") { cout << "数据已经排序!" << endl; continue; } else if (input == "Q" || input == "q") { break; } else { cout << "你输入的参数有误,请重新输入!" << endl; continue; } } } /* 利用switch语句进行编写 */ //int main() { // char input; // while (1) { // cout << "Menu: A(dd) D(elete) S(ort) Q(uit),Select one:"; // cin >> input; // switch (input) { // case 'A': // cout << "数据已经增加!" << endl; // continue; // case 'D': // cout << "数据已经删除!" << endl; // continue; // case 'S': // cout << "数据已经排序!" << endl; // continue; // case 'Q': // break; // default: // cout<<"你输入的参数有误,请重新输入!" << endl; // continue; // } // } // return 0; //}
4. 输入一个两位整数,要求将该数逆序输出。例如,输入68,输出86。
#include<iostream> using namespace std; /* 上机习题4 输入一个两位整数,要求将该数逆序输出。 */ int main() { int input; // 定义要输入的整数 int digit, unit; // 定义十位数和个位数 // 为了让程序可以重复输入输出,使用循环 while (1) { cout << "请输入一个两位整数(10-99):"; cin >> input; // 绝对值超过100的数字不符合题目要求 if (input >= 100 || input <= -100) { cout << "你输入的数字不是两位整数,请重新输入" << endl; // 清除cin流的缓存,方便下次输入不会有问题。 cin.clear(); cin.sync(); continue; } else { // input整除10就能取出十位数 digit = input / 10; // input减去十位数乘以10就是个位数 unit = input - digit * 10; // 重新组合输出数字 cout << unit * 10 + digit << endl; } } return 0; } /* 输出测试: -568 "你输入的数字不是两位整数,请重新输入" -89 -98 89 98 7 70 -6 -60 589 "你输入的数字不是两位整数,请重新输入" 可以循环输入,每次都会有提示:"请输入一个两位整数(10-99):" */
5. 求表达式的值
#include<iostream> using namespace std; /* 上机习题5 */ int main() { float x1 = 2.5; int a1 = 7; float y1 = 4.7; cout << "x1+a1%3*(int)(x1+y1)%2/4 ="<< x1 + a1 % 3 * (int)(x1 + y1) % 2 / 4 << endl; // a1%3=1,(int)(x1+y1)=7 // 1*7%2/4=7%2/4=1/4=0 // 2.5+0=2.5 int a2 = 2; int b2 = 3; float x2 = 3.5; float y2 = 2.5; cout << "(float)(a+b)/2+(int)x%(int)y =" << (float)(a2 + b2) / 2 + (int)x2 % (int)y2 << endl; // (float)(a2+b2)=5.0,(int)x2=3,(int)y2=2 // 5.0/2+3%2=2.5+1=3.5 int a3 = 12; int n3 = 5; cout << "a%=(n%=2) =" << (a3 %= (n3 %= 2)) << endl; // n3=n3%2=5%2=1 // a3=a3%1=12%1=0 int a4 = 12; cout << "a+=a-=a*=a =" << (a4 += a4 -= a4 *= a4) << endl; // a4=a4*a4=12*12=144 // a4=a4-a4=144-144=0 // a4=a4+a4=0+0=0 system("pause"); return 0; }
6. 编写一个完整的程序,运行时向用户提问“你考试考了多少分?(0~100)”,接收输入后判断其等级显示出来,规则为90到100优,80到90良,60到80中,0到60差。
#include<iostream> using namespace std; /* 用if语句实现 */ #include<iostream> using namespace std; int main(){ float number; while(1){ // 第一次输入。 cout << "你考试考了多少分?(0~100):"; cin >> number; //