声明,本份参考答案确实只是参考答案,可能很多题目都有更加完善简洁的答案。
1. 输出图形
代码:
#include<iostream>
using namespacestd;
int main(){
int n=1,t;
while(n<6){
for(t=0;t<n;t++){
cout<<"*";
}
cout<<endl;
n++;
}
}
5.创建程序,功能为猜数字小游戏,规则:系统随机生成100以内数字,用户有8次猜数字的机会,每猜错一次,系统会给出一些提示。猜对,游戏胜利!错误,游戏失败!
分析:本题主要难点在于随机数的确定。若只用rand()函数,则得到的随机数为伪随机数,即执行同一个程序得到随机数始找为一个固定的值。使用srand()函数可以解决这个问题,该函数可以根据不同的“种子”(参数)来获得不同的随机数,通常通过调用time()函数来用系统时间做种子。
代码:
#include<iostream>
#include<cstdlib> //rand()和srand()的头文件
#include<ctime> //time()的头文件
using namespacestd;
int main(){
srand(time(NULL)); //以系统时间为种子,设置随机数
int n = rand()%100; //随机数可能很大,这里只取后两位
int m=0,t=8;
while(m!=n){
cout<<"你还有"<<t<<"此机会,请输入你猜的数字"<<endl;
cin>>m;
if(m>n){
cout<<"大了\n"<<endl;
}else if(m<n){
cout<<"小了\n"<<endl;
}else if(m==n){
cout<<"恭喜,你猜对了"<<endl;
}
t--;
if(t==0){
printf("对不起,游戏结束,正确答案是%d",n);
return 0;
}
}
}
--------------------------------------------------------------------------
7. 编写程序,要求:输入圆形半径,计算圆形的面积和周长,其中,要求使用符号常量PI。运行程序,输入半径5,输入结果图(略)
#include<iostream>
#include<math.h>
using namespace std;
int main(){
constdouble pi = 4.0*atan(1.0); //定义π值
floatr,l,s;
cout<<"Pleaseinput tne number:";
cin>>r;
cout<<"圆形半径:"<<r<<endl;
cout<<"圆形周长:"<<2*pi*r<<endl;
cout<<"圆形面积:"<<pi*pow(r,2)<<endl;
}
--------------------------------------------------------------------------
9. 编写程序,要求:输入一个三位整数,分别输出这个数字的百位、十位、个位。例如:运行程序,输入456,输出结果如图(略)
#include<iostream>
#include<math.h>
using namespace std;
int main(){
inta,b,c,n;
cout<<"请输入一个三位数:";
cin>>n;
a=n%10;
b=n/10%10;
c=n/100%10;
cout<<"\n三位数:"<<n<<endl;
cout<<"百位:"<<c<<endl;
cout<<"十位:"<<b<<endl;
cout<<"个位:"<<a<<endl;
}
--------------------------------------------------------------------------
10. 输出6位整数中的所有回文数。若一个整数等于它自身的反序数,则称该整数为回文数。例如,123321是回文数
#include<iostream>
#include<math.h>
using namespace std;
int main(){
inta,b,c;
for(inti=100000;i<1000000;i++){
a=i%10;
b=i/10%10;
c=i/100%10;
if(a*100+b*10+c==i/1000){
cout<<i<<"\t";
}
}
}
--------------------------------------------------------------------------
12. 编写程序,求解鸡兔同笼问题,已知鸡和兔总头数为a,总脚数为b,求鸡兔各多少只?(其中:a,b由键盘输入)
提示:假设鸡有x只,兔有y只,由题分析可得:
所以,求解可得:
例如,运行程序,分别输入8和22,结果图(略)
#include<iostream>
#include<math.h>
using namespace std;
int main(){
intx,y,a,b;
cout<<"请输入鸡和兔的总头数,按回车键结束:";
cin>>a;
cout<<"请输入鸡和兔的总脚数,按回车键结束:";
cin>>b;
x=2*a-b/2;
y=b/2-a;
if(b%2==1 || a<0 || b<0){
cout<<"Noanswer"<<endl;
}else{
cout<<"计算结果:\n鸡:"<<x
<<"\n"<<"兔:"<<y<<endl;
}
13. 有一堆机器零件(零件个数小于100),3个为一组则剩下2个,5个为一组则剩下1个,7个为一组则剩下6个,求这堆零件一共有多少个?
#include<iostream>
#include<math.h>
using namespace std;
int main(){
intn;
for(n=1;n<100;n++){
if(n%3== 2){
if(n%5== 1){
if(n%7== 6){
cout<<"答:这堆零件一共有"<<n<<"个。";
}
}
}
}
15.编写程序,实现温度换算,输入摄氏温度C,输出对应的华氏温度F。
公式:F=(C*9/5)+32.
例如运行程序,输入37.2,输出效果图:
#include<iostream>
using namespace std;
int main(){
floatc;
cout<<"请输入摄氏温度:";
cin>>c;
printf("摄氏温度:%f = 华氏温度:%f",c,(c*9/5)+32);
16.
#include<iostream>
using namespace std;
int main(){
intn;
cout<<"请输入工资金额:";
cin>>n;
cout<<"工资金额:"<<n<<endl;
inta[6]={0},v[6]={100,50,20,10,5,1};
for(inti=0;i<6;i++){
a[i]=n/v[i];
n%=v[i];
}
for(inti=0;i<6;i++){
cout<<v[i]<<"元\t"<<a[i]<<"张\n";
}
}
--------------------------------------------------------------------------
#include<iostream>
#include<string.h>
using namespace std;
int main(){
inta=3,b=4,c=5;
floatx=1.2,y=2.4,z=-3.6;
longu=51274,n=128765;
charc1='a',c2='b';
intt=0,number[40]={0};
for(inti=0;i<4;i++)
for(intj=0;j<10;j++){
if(t==0){
t++;
continue;
}
else
number[t]=j;
t++;
}
for(inti=1;i<40;i++)
cout<<number[i];
cout<<endl;
printf("a=%2d,b=%2d,c=%2d\n",a,b,c);
printf("x=%-8.4f,y=%-8.4f,z=%.4f\n",x,y,z);
printf("x+y=%5.2f, y+z=%.2f , z+x=%.2f\n",x+y,y+z,z+x);
printf("u=%010ld,n=%09ld\n",u,n);
printf("c1=%-2cor%3d(ASCII)\n",c1,c1);
printf("c2=%-2cor%3d(ASCII)\n",c2,c2);
}
--------------------------------------------------------------------------
20.
#include<cstdio>
#include<iostream>
#include<string.h>
using namespace std;
int main(){
intn,i,j;
cout<<"请输入一个数字,按回车键结束!"<<endl;
scanf("%d",&n);
i=n-1;
j=n+1;
if(i==-1) i=9;
if(j==10) j=0;
cout<<"输入数字为:"<<n<<endl;
cout<<"前驱数字为:"<<i<<endl;
cout<<"后继数字为:"<<j<<endl;
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
inta,b,c;
cout<<"请输入方程的三个系数:"<<endl;
cout<<"a= ";
cin>>a;
cout<<"b= ";
cin>>b;
cout<<"c= ";
cin>>c;
if(b*b-4*a*c< 0)
cout<<"方程无解!"<<endl;
else{
floati,j;
i=(-b+sqrt(b*b-4*a*c))/(2*a);
j=(-b-sqrt(b*b-4*a*c))/(2*a);
cout<<"方程的根:\t";
printf("%.2f %.2f",i,j);
}
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
intn;
cout<<"请输入学生的成绩:";
cin>>n;
cout<<"您的等级为:";
if(n>=90)
cout<<"A";
elseif(n>=80)
cout<<"B";
elseif(n>=70)
cout<<"C";
elseif(n>=60)
cout<<"D";
elseif(n>=0)
cout<<"E";
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
cout<<"输入两个数:";
inta,b;
cin>>a>>b;
cout<<"输入运算符(+-*/):";
charx;
cin>>x;
switch(x){
case'*':{
printf("%d* %d = %d",a,b,a*b);
break;
}
case'/':printf("%d / %d = %.2f",a,b,(float)a/b);
}
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int y,m;
cout<<"年份:";
cin>>y;
cout<<"月份:";
cin>>m;
printf("%d年%d月:",y,m);
inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(y%4==0|| y%400==0)
a[1]=29;
cout<<a[m-1];
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
intcount=0,i=1;
while(i<100){
count+=i*(++i)*(++i);
printf("%d*%d*%d+",i-2,i-1,i);
}
cout<<"\b= "<<count;
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
intn,m,t;
cout<<"请输入两个整数:";
cin>>n>>m;
if(m>n){
t=m;
m=n;
n=t;
}
intmin=m,max=1;
for(inti=1;i<=m;i++){
if(n%i==0&& m%i==0){
if(max<i)
max=i;
}
}
while(min++){
if(min%n==0&& min%m==0)
break;
}
cout<<"输入的两个数:"<<n<<"\t"<<m<<endl;
cout<<"最小公倍数:"<<min<<"\n"
<<"最大公因数:"<<max<<endl;
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
doublen=1.0,m=2.0,i,count=0;
intt=0;
while(t<20){
count+=m/n;
i=m;
m+=n;
n=i;
t++;
}
cout<<"数列前20项的和为:";
printf("%f",count);
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
inti=1,j,a;
while(i){
if(i<6)
j=i;
for(a=0;a<j;a++){
printf("*");
}
cout<<endl;
i++;
if(i==10)
return0;
}
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
inta[10],i=0,j,max=0;
cout<<"请输入10个数:";
while(i<10){
cin>>a[i];
if(a[i]>max){
max=a[i];
j=i;
}
i++;
}
printf("最大值为:a[%d] = %d",j,max);
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
cout<<"请输入10个整数:"<<endl;
inti=0,j,t,a[10];
while(i<10){
cin>>a[i];
i++;
}
for(i=0;i<9;i++){
for(j=0;j<9-i;j++){
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
i=0;
cout<<"排序后:\n";
while(i<10){
cout<<a[i]<<"";
i++;
}
}
--------------------------------------------------------------------------
49.
#include<cstdio>
#include<iostream>
#include<math.h>
using namespace std;
void SelectionSort(int *num,int n){ //注意,数组就是指针
inti=0,min=0,j=0,tmp=0; // i和j用于执行循环,num储存最小值的底数,tmp用于判断是对值否进行交换
for(i=0;i<n-1;i++){ //总共进行n-1轮循环
min=i;
for(j=i;j<n;j++){
if(num[min]<num[j]){ //这里就是对冒泡排序的改进之处,不一一进行交换,而是记录下最小值的底数
min=j; //min保存最小数对应的底数
}
}
if(min!= i){ //如果不相等说明i不是此轮循环的最小值,就交换值
tmp= num[min];
num[min]=num[i];
num[i]=tmp;
}
}
}
int main(){
inta[10];
cout<<"请输入10个整数:"<<endl;
for(inti=0;i<10;i++)
cin>>a[i];
SelectionSort(a,10);
for(inti=0;i<10;i++){
printf("%d",a[i]);
}
return0;
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
inta[6],t;
cout<<"请输入6个数:"<<endl;
for(inti=0;i<6;i++){
cin>>a[i];
}
cout<<"------------------输出6*6矩阵-------------------"<<endl;
for(inti=0;i<6;i++){
for(intj=0;j<6;j++){
cout<<a[j]<<"";
}
cout<<endl;
t=a[5];
for(intn=4;n>=0;n--){
a[n+1]=a[n];
}
a[0]=t;
}
}
--------------------------------------------------------------------------
#include<iostream>
#include<string.h>
using namespace std;
int main(){
charchString[200];
inti;
scanf("%s",chString); //可直接读入一串字符并且放入字符数组
i=0;
while(chString[i]){
if(chString[i]>'a'&& chString[i]<'z'){
chString[i]= chString[i]-'a'+'A';
}elseif(chString[i]>'A' && chString[i]<'Z'){
chString[i]= chString[i]-'A'+'a';
}
i++;
}
printf("%s\n",chString);
return0;
}
--------------------------------------------------------------------------
#include<iostream>
#include<math.h>
using namespace std;
int main(){
intnumber[9];
cout<<"Pleaseinput nine numbers:\n";
for(inti=0;i<9;i++)
scanf("%d",&number[i]);
cout<<endl;
intt=0,count[5]={0,0,0,0,0};
for(inti=0;i<9;i++){
printf("%2d",number[i]);
count[0]+=number[i];
if((i+1)%3==0){
printf("%2d\n",count[0]);//输出每行的和
count[4]+=count[0]; //计算第四列的和
count[0]=0;
count[3]+=number[i]; //计算第三列的和
t++; //计算行数
}
if(i== t*3){
count[1]+=number[i]; //计算第一列的和
}
if(i== t*3+1){
count[2]+=number[i]; //计算第三列的和
}
}
for(inti=1;i<5;i++)
cout<<count[i]<<"";
}
--------------------------------------------------------------------------
using namespace std;
int findmax(int *number,int n){
intmax=0,t;
for(inti=0;i<n;i++)
if(number[i]>max){
max=number[i];
t=i;
}
returnt+1;
}
int main(){
intn;
cout<<"请输入你要输入的数字总个数:";
cin>>n;
inta[n];
for(inti=0;i<n;i++)
cin>>a[i];
cout<<"最大元素的下标是"<<findmax(a,n);
}