本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言
- 本文为笔者大一《C++程序软件设计》课程章节实验报告,现将题目整理并分享,希望能够帮助正在学习C++的小伙伴!
- 本文将学习到的编程技能包括:基本数据类型、基本运算、程序控制语句...
知识提纲
- 三元表达式
- 基本类型:int、float
- 四则运算
- 取模运算
- 条件表达式:if...else/switch..case
- 循环表达式:while/do...while/for
- goto无条件转移
一、简单的C程序设计、数据类型、运算符与表达式
1、整数大小比较
- 题目:从键盘上输入两个int型数,比较其大小,并输出显示其中较小的数;
- 代码:
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "input a,b:";
cin >> a >> b;
cout << "min=" << (a < b ? a : b) << endl;
return 0;
}
- 结果:
2、含浮点数的大小比较
- 题目:从键盘上输入一个int型数,一个浮点数,比较其大小,将输出其中较大的数;
- 代码:
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int a;
double b;
cout << "input int a, double b:";
cin >> a >> b;
cout << "max=" << (a > b ? a : b) << endl;
return 0;
}
- 结果:
3、摄氏度-华氏度换算
- 题目:输入一摄氏温度,编程输出华氏温度。已知;华氏温度转换为摄氏温度的计 算公式如下: C=5/9*(F-32),其中,F 表示华氏温度,C表示摄氏温度。
- 代码:
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
float C, F;
cout << "input 摄氏度:";
cin >> C;
F = C * 9 / 5 + 32;
cout << "华氏度F=" << F << endl;
return 0;
}
- 结果:
4、取模运算
- 题目:输入一个大于1000的int型数,将它的低4位(右四位)都置为1;
- 代码:
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int a;
cout << "请输入一个大于1000的整数";
cin >> a;
a = a - a % 10000 + 1111;
cout << a;
}
- 结果:
二、顺序结构和选择结构设计程序设计
1、分段函数计算(if...else)
- 题目:有一个函数:
用cin函数输入x的值(分别为x<=0,0<=x<=10,x>=10),输出y的值 。
- 代码:
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
double x,y;
cout << "please input x\n" << "x=";
cin >> x;
if (x <= 0) { y = x, cout << y; }
else if (x >= 0 && x < 10)
{
y = 5 * x - 10, cout << y;
}
else if (x >= 10)
{
y = 10 * x - 20, cout << y;
}
}
- 结果:
2、分离数字各个位(if...else/switch...case)
- 题目:给出一个不多于5位的正整数,要求: (1) 求出它是几位数; (2)分别输出每一位数; (3)按逆序输出各位数字,例如原数为5631,应输出为1365。
- 代码1:
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d, e, f, g, h;
cout << "请输入一个不多于5位的正整数:";
cin >> a;
if (a >= 1 && a < 10)
{
b = 1, cout << a << "是一位数\n个位数是" << a << '\n';
}
else if (a >= 10 && a < 100)
{
b = 2, cout << a << "是二位数\n" << '\n';
}
else if (a >= 100 && a < 1000)
{
b = 3, cout << a << "是三位数\n" << '\n';
}
else if (a >= 1000 && a < 10000)
{
b = 4, cout << a << "是四位数\n";
}
else if (a >= 10000 && a < 100000)
{
b = 5, cout << a << "是五位数\n" << '\n';
}
else cout << "输入错误\n";
c = a % 10;// cout << "个位数是" << c << '\n';
d = ((a - a % 10) / 10) % 10;//cout << "十位数是" << d << '\n';
e = ((a - a % 100) / 100) % 10;//cout << "百位数是" << e << '\n';
f = ((a - a % 1000) / 1000) % 10, //cout << "千位数是" << f << '\n';
g = ((a - a % 10000) / 10000) % 10 ;//cout << "万位数是" << g << '\n';
switch (b)
{
case 1:cout << "个位数是" << c << '\n' << '\n' << "逆序数是 " << c ; break;
case 2:cout << "个位数是" << c << '\n' << "十位数是" << d << '\n' << '\n' << "逆序数是 " << c << d ; break;
case 3:cout << "个位数是" << c << '\n' << "十位数是" << d << '\n' << "百位数是" << e << '\n' << '\n' << "逆序数是 " << c << d << e ; break;
case 4:cout << "个位数是" << c << '\n' << "十位数是" << d << '\n' << "百位数是" << e << '\n' << "千位数是" << f << '\n' << '\n' << "逆序数是 " << c << d << e << f ; break;
case 5:cout << "个位数是" << c << '\n' << "十位数是" << d << '\n' << "百位数是" << e << '\n' << "千位数是" << f << '\n' << "万位数是" << g << '\n' << '\n' << "逆序数是 " << c << d << e << f << g; break;
}
}
- 代码2:
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int a,c,d,e,f,g,h;
cout << "请输入一个不多于5位的正整数\n";
cin >> a;
if (a >= 1 && a < 10)
{
cout << a << "是一位数\n个位数是" << a<<'\n';
cout << '\n' << "逆序数是 " << a;
}
else if (a >= 10 && a < 100)
{
cout << a << "是二位数\n" << '\n';
c = a % 10, cout << "个位数是" << c << '\n';
d = (a - c) / 10, cout << "十位数是" << d << '\n';
h = a%10*10+a%10;
cout << '\n' << "逆序数是 " << c<<d;
}
else if (a >= 100 && a < 1000)
{
cout << a << "是三位数\n" << '\n';
c = a % 10, cout << "个位数是" << c << '\n';
d = ((a - c) / 10)%10, cout << "十位数是" << d << '\n';
e = ((a - a%100) / 100)%10, cout << "百位数是" << e << '\n';
cout << "逆序数是 " << c << d<< e ;
}
else if (a >= 1000 && a < 10000)
{
cout << a << "是四位数\n";
c = a % 10, cout << "个位数是" << c << '\n';
d = ((a - c) / 10) % 10, cout << "十位数是" << d << '\n';
e = ((a - a % 100) / 100) % 10, cout << "百位数是" << e << '\n';
f = ((a - a % 1000) / 1000) % 10, cout << "千位数是" << f << '\n';
cout << '\n' << "逆序数是 " << c << d << e << f ;
}
else if (a >= 10000 && a < 100000)
{
cout << a << "是五位数\n"<<'\n';
c = a % 10, cout << "个位数是" << c << '\n';
d = ((a - a % 10) / 10)%10, cout << "十位数是" << d << '\n';
e = ((a - a % 100) / 100)%10, cout << "百位数是" << e << '\n';
f = ((a - a % 1000) / 1000) % 10, cout << "千位数是" << f << '\n';
g = ((a - a % 10000) / 10000) % 10, cout << "万位数是" << g << '\n';
cout << '\n' << "逆序数是 " << c << d << e << f << g ;
}
else cout << "输入错误\n";
}
三、循环结构程序设计
1、数列求和(while/do...while/for)
- 题目:求S=
- 代码1:while
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int i, sum;
i = 1; sum = 0;
while(i < 101)
{
sum += i;
i++;
}
cout <<"sum=1+2+3+…+100="<< sum;
}
- 代码2:do...while
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int i, sum;
i = 1; sum = 0;
do{
sum += i;
i++;
} while (i <= 100);
cout << "sum=1+2+3+…+100=" << sum;
}
- 代码3:for
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int i = 1, sum = 0;
for (; i <= 100; i++)
{
sum += i;
};
cout << "sum=1+2+3+…+100=" << sum;
}
- 结果:
2、猜数游戏
- 题目:先由计算机“想”一个1~200之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。
- 代码:
#include "pch.h"
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main()
{
A:int a, b=0,i;
srand((int)time(NULL));
a = rand() % 200+1;
cout << "请输入你要猜的数(1-200):";
for (i=1;a!=b,i!=11;i++)
{
B:cin >> b;
if (a == b) cout << "恭喜你!猜对了!" << '\t' << "猜测次数:" << i, i = 10;
else if (b > a) cout << "输入的数字大了,请重新输入:";
else if (b <a&&i != 10) cout << "输入的数字小了,请重新输入:";
}
if (a == b) { cout << '\n' << '\n'<< "开始新的一局游戏" << '\n'; goto A; }
else cout << "对不起,猜错了,您的十次机会用尽,游戏结束!" <<"本局的幸运数字是"<<a<< '\n' << '\n' <<"开始新的一局游戏"<<'\n'; goto A;
return 0;
}
- 结果: