C++上机课程序汇编学长留Word格式.docx
《C++上机课程序汇编学长留Word格式.docx》由会员分享,可在线阅读,更多相关《C++上机课程序汇编学长留Word格式.docx(40页珍藏版)》请在冰豆网上搜索。
math.h>
,并使用sqrt函数完成。
如x=sqrt
(2),则x的值即为1.414
{floata,b,c,d;
floatarea;
请输入三角形的三边:
c;
if(a+b>
c&
&
b+c>
a&
a+c>
b)
{s=(a+b+c)/2;
d=s*(s-a)*(s-b)*(s-c);
area=sqrt(d);
三角形的面积为:
area<
else
{
无法构成三角形"
第4题
•假设有任意一个x为3位数(如x=123),求出其倒序之后的结果(如x=321)。
•思路:
按课堂上所讲解,分别拆出123的百位、十位和个位分别用a、b和c来表示,再组合为321。
•十位数为:
b=x/10%10;
{inta,b,c;
intx;
请输入一个三位数:
x;
a=x/100;
b=x/10%10;
c=x%10;
{inty;
y=100*c+10*b+a;
倒序三位数为:
y<
第5题
•编写程序,实现从键盘输入三个整型数,求三个整型数的中间值(三个数分别为a、b、c)。
•提示:
前二个数相比较大的放入tmax,小的放入tmin中(也用条件运算符来完成),中间值条件表达为;
(c>
tmax?
tmax:
(c<
tmin?
tmin:
c))
voidmain()
{inta,b,c;
inttmax;
inttmin;
intzjs;
请输入三个变量的值:
if(a>
=b)
{tmax=a;
tmin=b;
{tmax=b;
tmin=a;
zjs=c>
c);
中间数为:
zjs<
实验三
•用cin语句从键盘输入一个整数,要求判断其奇偶性,并输出结果。
•例:
输入的是3,则输出“3是奇数”,如输入的是4则输出“4是偶数”。
•注意这里输出的时候数值部分应该根据输入的值发生变化,而不是固定写在字符串当中。
•关于cin和cout的具体用法请参阅课本
{inti;
请输入一整数:
i;
if(i%2==0)
该整数是偶数"
该整数是奇数"
•用cin语句从键盘输入一个整数,要求判断其正负性,并输出结果。
输入的是3,则输出“3是正数”,如输入的是-4则输出“-4是负数”,如果输入的是0则输出“该数是零”
{inti;
if(i*-1==0)
该整数是0"
if(i*-1<
0)
该整数是正数"
该整数是负数"
•用cin输入一个整数,判断其是否是3或5的倍数。
•分别用15,9,10,8四个例子,来测验本题的四种不同的结果(都可以、只能被3、只能被5、都不能),并输出结果。
•如:
输入的是9,则输出“9只能被3整除”,输入的是15,则输出“15可以同时被3和5整除”。
{inta;
请输入一个整数:
a;
if(a%3==0)
a是3的倍数"
a不是3的倍数"
if(a%5==0)
a是5的倍数"
a不是5的倍数"
•完成算术四则运算:
a,b,为实型c为字符型
•从键盘输入a+b、a-b、a*b、a/b
•用switch语句来编写
•运行程序后要测试
输入:
12+60
10.5-5.5
2.5*0.5
3/5
{charc;
floata,b;
输入两个整数:
c>
b;
结果为:
switch(c)
{case'
+'
:
a+b<
break;
case'
-'
a-b<
*'
a*b<
/'
a/b<
•用cin输入三角形的三条边,判断能否构成三角形。
•注:
需要考虑尽可能的情况,如三边是否为负数或者0,以及两边之和是否大于第三边等。
•输出最终的结果,如输入的是123,则输出“123不能构成三角形”,如输入的是345,则输出“345可以构成三角形”。
{floata,b,c;
if(a<
=0||b<
=0||c<
=0){
a<
"
b<
c<
不能构成三角形"
}else
if(a+b>
能构成三角形"
实验四
第1题:
用cin语句从键盘输入一个月份的值,用if语句判断该月的季节并输出结果。
(假设1-3为春,4-6为夏,7-9为秋,10-12为冬)
{inta;
输入一个月份的值:
if(1<
=a&
=3)
春"
if(4<
=6)
夏"
if(7<
=9)
秋"
if(10<
=12)
冬"
•
•用cin语句从键盘输入一个月份的值,用switch语句判断该月的季节并输出结果。
{intseason;
请输入一个季节:
season;
季节为:
switch(season)
{case12:
case11:
case10:
case9:
case8:
case7:
case6:
case5:
case4:
case3:
case2:
case1:
•要求从键盘输入年份,判断该年份,是否为闰年。
参教材p90页。
{intyear;
请输入一年份\n"
year;
if(year%4==0&
year%100!
=0||year%400==0)//能被4整除但不能被100整除,或者能被400整除
year<
年是闰年\n"
年不是闰年\n"
用cin从键盘输入一个字符,用if语句判断并输出该字符的种类(大写字母、小写字母、阿拉伯数字以及其他字符)。
请输入一个字符:
if(c>
='
a'
z'
该字符为小写字母\n"
elseif(c>
A'
Z'
该字符为大写字母\n"
0'
9'
该字符为阿拉伯数字\n"
else
该字符为其他字符\n"
•}
从键盘输入三个数(a,b,c),要求按从小到大进行排序。
floata,b,c,t;
请输入abc三个数:
cin>
if(a<
b)//如果a小于b的值,那么就交换a,b变量的值
{t=a;
a=b;
b=t;
if(b<
c)
{t=b;
b=c;
c=t;
if(a<
{t=a;
}
实验五
用任意的循环语句求出1-100之间所有奇数的和(1+3+5+…+99)并输出结果。
{inti,sum;
i=1;
sum=0;
while(i<
100)
{sum+=i;
//sum=sum+i的C++写法
i=i+2;
1到100之间所有奇数的和是:
sum<
•编程输出1-100之内所有能被3整除的数,并输出这些数。
•本题输出结果应该为:
36912….99
对i进行100次循环,在每次循环中判断i能否被3整除,如果可以则输出,否则进行下一次循环。
{inti,x;
x=3;
for(i=1;
i<
=100;
i++)
if(i%3==0)
•求一个正整数的所有因子。
例如:
24的因子是12348612
请输入一个正整数:
这个正整数的所有因子为"
for(x=1;
x<
=i;
x++)
{if(i%x==0)
写一个程序,计算输入的正整数的位数,如输入2008,该数的位数为4。
{intn,i=0;
n;
位数为:
while(n)
n=n/10;
i++;
输入正整数的位数为:
•输出所有的顺序三位数。
•所谓的顺序三位数是指百位<
=十位<
=个位,如123,556都是顺序三位数,而987则不是。
所有的顺序三位数为:
for(inti=100;
1000;
{a=i/100;
b=i/10%10;
c=i%10;
=b&
=c)
实验六
•第1题:
编写函数squaresum,用来求解两个整数的平方和。
从键盘里面用cin输入两个整数,调用该函数,并输出结果。
cout<
squaresum(3,4)<
endl;
则输出25
intsquaresum(inta,intb)
{intsquaresum;
returnsquaresum=a*a+b*b;
{inta,b;
请输入两个值"
squaresum(a,b)<
•编写函数mypower,用来求解整数a的n次方。
•该函数的声明为intmypower(inta,intn);
进行n次循环,每次累乘a即可。
mypower(3,4)<
则输出81
intmypower(inta,intn)
{intb=1;
for(inti=1;
=n;
b=b*a;
returnb;
inta,n;
mypower(a,n)<
•编写函数boolisprime(intn)用来判断整数n是否为素数,如果是则返回true,否则返回false。
•利用该函数求出1000以内所有的素数并显示。
boolisprime(intn)
boola=1;
for(inti=2;
=sqrt(n);
{
if(n%i==0)
{
a=0;
}
returna;
intx;
for(x=2;
=1000;
if(isprime(x))
cout<
continue;
•第4题:
编程从键盘输入一个数,判断是奇偶性;
•要求定义一个判断奇偶数的函数inteven(intn),
当n为偶数时返回1,否则返回0。
inteven(intn);
if(even(x))
cout<
偶数!
else
奇数!
inteven(intn)
if(n%2==0)return1;
elsereturn0;
实验七
1.已知组合数:
c(m,r)=m!
/(r!
(m-r)!
),其中m,r为正整数,且m>
r,分别求出c(5,2),c(8,6)的组合数,阶乘及组合数用函数实现。
intzhs(intx)
if((x==0)||(x==1))
return1;
returnx*zhs(x-1);
inta,b,c,d,e;
输入组合数:
d>
e;
a=zhs(d);
b=zhs(e);
c=zhs(d-e);
if(d>
e)
a/(b*c)<
2.求400之内的亲密对数,所谓亲密对数,即A的所有因子之和等于B,B的所有因子之和等于A。
要求设计函数intfun(intn)该函数完成查找因子的功能
intfun(intn);
{for(i=2;
400;
if(fun(fun(i))==i)
if(i!
=fun(i))
和"
fun(i)<
是亲密对数"
intfun(intn)
{ints=0;
for(i=1;
if(n%i==0)
s+=i;
returns;
3.打印输出下面图形。
第一行:
一个*
第二行:
3个*
第三行:
5个*
第四行:
7个*
第五行:
9个*
#include<
{intj,i;
i<
=5;
i++)
for(j=1;
j<
=5-i;
j++)
cout<
j<
=2*i-1;
j++)
'
}
实验八
•熟悉数组的基本操作过程
•1)定义数组inta[5];
•2)利用循环从键盘依次输入5个数分别赋给数组的5个元素;
•3)求出它们的总和;
•4)在屏幕上显示数组的5个元素以及总和
{inta[5];
ints=0;
请输入五个正整数:
\n"
for(inti=0;
=4;
{cin>
a[i];
s+=a[i];
五个数的和为:
•假设数组inta[5]={1,2,3,4,5};
•1)定义数组intb[5];
•2)将数组a中元素的平方依次付给数组b的对应元素,也就是b[0]=1,b[1]=4……要求必须使用循环完成;
•3)在屏幕上显示数组b的5个元素的值
{inta[5]={1,2,3,4,5};
intb[5];
{b[i]=a[i]*a[i];
b[i]<
\t'
•定义数组intx[5]={5,2,3,1,4};
•复习课本当中求解数组最大值的算法,利用循环求出数组x最大值和最小值之间的差。
{intx[5]={5,2,3,1,4};
inti,main,max,min;
max=x[0];
5;
if(x[i]>
max)
max=x[i];
min=x[0];
if(x[i]<
min)
{min=x[i];
main=max-min;
max="
max<
main="
main<
第4题:
•复习课本上的冒泡和选择排序算法,任选一种对数组intx[5]={5,2,3,1,4}进行排序,并输出排序后的结果。
{intx[5]={5,2,3,1,4},t;
for(intj=1;
=4-j+1;
x[i+1])
{t=x[i];
x[i]=x[i+1];
x[i+1]=t;
x[i]<
实验九
•第1题
•定义数组inta[2][3],运行以下步骤:
•1)从键盘依次输入6个数存入该数组当中
•2)按每行三个的形式打印这6个数的值
•如输入的是123456,则输出效果是
•123
•456
{cout<
请输入六个数:
inti,j,a[2][3];
for(i=0;
2;
for(j=0;
3;
a[i][j];
{for(j=0;
•定义数组inta[3][4]
•1)从键盘输入12个整数,存入该数组中;
•2)利用循环求出数组中的最大值、最小值和总和;
•3)打印上述结果
{inti,j,k,a[3][4],max,min,sum=0;
请输入12个整数:
for(i