练习1互换两个变量的值.docx
- 文档编号:29218889
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:56
- 大小:29.80KB
练习1互换两个变量的值.docx
《练习1互换两个变量的值.docx》由会员分享,可在线阅读,更多相关《练习1互换两个变量的值.docx(56页珍藏版)》请在冰豆网上搜索。
练习1互换两个变量的值
/*练习1:
互换两个变量的值:
接收两个整数,分别保存在两
个变量中,通过第三个变量将
这两个变量的值互换。
*/
#include
voidmain()
{
inta,b,c;
printf("a=");
scanf("%d",&a);
printf("b=");
scanf("%d",&b);
c=a;
a=b;
b=c;
printf("交换后的结果为:
\n");
printf("a=%d\n",a);
printf("b=%d\n",b);
}
/*练习2:
根据基本工资计算实领工资:
某公司员工的工资由
基本工资、物价津贴、房租津贴组成。
其中物价津贴占基本
工资的40%,房屋津贴占基本工资的20%,编写一个程序计算
实领工资,要求输入某员工的基本工资,计算应向该员工支
付的实际工资。
*/
#include
voidmain()
{
floatj,w,f,z;
printf("基本工资为:
\n");
scanf("%f",&j);
printf("物价津贴为:
%f\n",w=j*0.4);
printf("房屋津贴为:
%f\n",f=j*0.2);
printf("总工资为:
%f\n",z=j+w+f);
}
/*练习3:
字母大小写转换:
编写一个程序,要求
用户输入一个小写字母,然后显示相应的大写字母。
注意:
小写字母a~z的ASCII码为97~122,而大写字
母A~Z的ASCII码为65~90,相差32,所以只要将输入
的小写字符减去32即可转换为大写。
*/
#include
voidmain()
{
charch1,ch2;
//ch1=getchar();
printf("输入一个字符:
");
scanf("%c",&ch1);
if(ch1>=97&&ch1<=122)
ch2=ch1-32;
if(ch1>=65&&ch1<=90)
ch2=ch1+32;
printf("转换后为:
%c\n",ch2);
}
练习4.、接收一个四位数。
编写一个程序,将该数的每一位数字相加并显示结果。
#include
voidmain()
{
inta,b,c,d,e,result;
printf("输入一个四位数:
");
scanf("%d",&a);
b=a/1000;
c=a%1000/100;
d=a%1000%100/10;
e=a%1000%100%10/1;
result=b+c+d+e;
printf("得出结果%d\n",result);
}
练习5接收用户输入的数值,该数值表示某个字符的ASCII码,使用putchar()函数显示该字符.
#include
voidmain()
{
inta;
printf("输入一个数值:
");
scanf("%d",&a);
putchar(a);
putchar('\n');
}
练习6编写一个程序,从用户输扩的三个数中找到最大值,并将该最大值输出。
提示:
另外定义一个中间变量用来存贮较大者*/
#include
voidmain()
{
intx,y,z,w;
printf("输入xyz值:
");
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{
w=x;
x=y;
y=w;
}
if(x>z)
{
w=x;
x=z;
z=w;
}
if(y>z)
{
w=y;
y=z;
z=w;
}
printf("最大的数是:
%d\n",z);
}
练习7编写一个程序,验证用户输入的一个字符是否是大写字母,如果是打印出
"你输入的是一个大写字母",否则打印出"你输入的不是一个大写字母"。
*/
#include
voidmain()
{
charch;
printf("请输入一个字符:
");
scanf("%c",&ch);
fflush(stdin);
if(ch>=65&&ch<=90)
printf("你输入的是一个大写字母.\n");
else
printf("你输入的不是一个大写字母.\n");
}
练习8.银行提供了整存整取定期储蓄业务,其存期分为一年、两年、三年、五年,
到期凭存单支取本息。
年利率如下表所示:
存期年利率(%)
一年2.25
二年2.7
三年3.24
五年3.6
提示:
要求用户选择存期,并输入本金。
声明两个变量分别存储存期和本金。
计算利息的公式:
利息=本金*年利率*存期
本息=本金+利息*/
#include
voidmain()
{
floatmoney,lili;
intyear;
printf("你的本金为:
");
scanf("%f",&money);
printf("你的存期为:
");
scanf("%d",&year);
switch(year)
{
case1:
lili=0.0225;
printf("你能得到的本息和有:
%g元.\n",money+money*lili*year);
break;
case2:
lili=0.027;
printf("你能得到的本息和有:
%g元.\n",money+money*lili*year);
break;
case3:
lili=0.0324;
printf("你能得到的本息和有:
%g元.\n",money+money*lili*year);
break;
case5:
lili=0.036;
printf("你能得到的本息和有:
%g元.\n",money+money*lili*year);
break;
}
}
练习9:
只要顾客购买的商品数量大于等于10件,并且购物总额大于等于10000元,商店就给顾客10%的折扣。
从键盘接收购物数量以及总金额,要求计算出折扣额和折扣后的应付金额。
#include
voidmain()
{
floatshuliang,qian,fuqian;
printf("买东西的数量:
");
scanf("%f",&shuliang);
printf("买东西花的钱:
");
scanf("%f",&qian);
if(shuliang>=10&&qian>=10000)
{printf("折扣0.1\n");
printf("应付金额:
%f\n",fuqian=qian*0.9);
}
else
{printf("原价销售\n");
printf("应付金额:
%f\n",fuqian=qian);
}
}
练习10:
从键盘输入三个整数x,y,z,请把3个数由小到大输出。
想办法把最小的数放到x上,先将X与Y比较,如果X>y,则将X与Y进行交换,然后再用X与z进行比较;如果X>z,则将X与z的值进行交换,这样能使X最小。
然后在将Y与Z进行比较;如果Y>Z,则将Y与z的值进行交换。
#include
voidmain()
{
intx,y,z,w;
printf("输入xyz值:
");
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{
w=x;
x=y;
y=w;
}
if(x>z)
{
w=x;
x=z;
z=w;
}
if(y>z)
{
w=y;
y=z;
z=w;
}
printf("%d,%d,%d\n",x,y,z);
}
11:
根据条件确定学员成绩的等级
用户从键盘输入一个学生的成绩,
如果成绩>=90,输出:
"A"
如果成绩>=80,输出:
"B"
如果成绩>=70,输出:
"C"
如果成绩>=60,输出:
"D"
如果成绩<80,输出:
"E"
提示用:
if……else语句完成*/
#include
voidmain()
{
intchengji;
while
(1)
{
printf("请输入该学员的成绩:
");
scanf("%d",&chengji);
if(chengji>100||chengji<0)
{
printf("错误,不可能有这样的成绩!
!
!
\n");
break;
}
elseif(chengji>=90)
printf("该学员的等级为:
A(你好棒啊!
!
!
)\n");
elseif(chengji>=80)
printf("该学员的等级为:
B(你已经做得很好了哦!
)\n");
elseif(chengji>=70)
printf("该学员的等级为:
C(争取做得更好吧!
)\n");
elseif(chengji>=60)
printf("该学员的等级为:
D(加把劲!
)\n");
else
printf("该学员他的等级为:
E(要努力哦!
!
!
)\n");
}
}
12:
计算长方形、圆形和三角形的面积
编写一个程序,用于计算长方形、圆形和三角形的面积。
根据用户的选择要能计算相应形状的面积。
分析:
考虑用switch结构实现。
1、标识形状的类型:
长方形、圆形和三角形分别用1、2、3表示。
如果输入其它数字提示无效。
2、接收用户输入表示形状的数字。
3、根据用户选择的形状,提示用户输入该形状的详细信息:
长方形要求输长和宽的值;圆要求输入
半径的值;三角形要求输入底和高的值。
4、计算相应的面积*/
#include
voidmain()
{
floatchang,kuan,di,gao,r;
charch;
printf("1表示求长方形的面积。
\n");
printf("2表示求圆形的面积。
\n");
printf("3表示求三角形的面积。
\n");
printf("\n");
printf("请选择标识形状的类型:
");
scanf("%c",&ch);
switch(ch)
{
case'1':
printf("请输入长方形的长和宽:
\n");
scanf("%f",&chang);
scanf("%f",&kuan);
printf("长为%g宽为%g的长方形的面积为:
%g\n",chang,kuan,chang*kuan);
break;
case'2':
printf("请输入圆形的半径:
");
scanf("%f",&r);
printf("半径为%g的圆的面积为:
%g\n",r,3.1415926*r*r);
break;
case'3':
printf("请输入三角形的底和高:
\n");
scanf("%f",&di);
scanf("%f",&gao);
printf("底为%g高为%g的三角形的面积为:
%g\n",di,gao,di*gao/2);
break;
default:
printf("你选错了,没有与之相对应的形状.\n");
}
}
13:
某公司员工的工资包括底薪和奖金两部分,每个员工的底薪都是1000元,而奖金取决于员工的级别。
不同级别的员工奖金比例如下表:
某公司员工不同级别的员工奖金比例
等级
奖金占底薪的百分比
A
45%
B
40%
C
30%
D
25%
根据员工的级别,计算应付给该员工的工资。
#include
voidmain()
{
inta=1000;
charch;
printf("员工的等级是:
");
scanf("%c",&ch);
if(ch=='A')
{printf("奖金占底薪的0.45。
\n");
printf("所得工资为:
%.2f\n",a+a*0.45);
}
elseif(ch=='B')
{printf("奖金占底薪的0.4。
\n");
printf("所得工资为:
%.2f\n",a+a*0.4);
}
elseif(ch=='C')
{printf("奖金占底薪的0.3。
\n");
printf("所得工资为:
%.2f\n",a+a*0.3);
}
elseif(ch=='D')
{printf("奖金占底薪的0.25。
\n");
printf("所得工资为:
%.2f\n",a+a*0.25);
}
else
{printf("无奖金。
\n");
printf("所得工资为:
%d\n",a);
}
}
14:
将上机练习的第一题用switch语句结构实现。
#include
voidmain()
{
intscore;
printf("输入成绩:
");
scanf("%d",&score);
if(score>=0&&score<=100)
switch(score/10)
{
case10:
case9:
printf("该成绩的等级为:
A\n",score);break;
case8:
printf("该成绩的等级为:
B\n",score);break;
case7:
printf("该成绩的等级为:
C\n",score);break;
case6:
printf("该成绩的等级为:
D\n",score);break;
default:
printf("该成绩的等级为:
E\n",score);
}
else
printf("entererror!
\n");
}
15.猜价格,从键盘接受用户输入的价格,判断价格与实际价格相比,
提示用户猜的价格高还是低,如果猜对就退出,否则就继续
说明:
Do…while循环控制
If..else判断价格高还是低*/
#include
voidmain()
{
floatprice,p=100;
do
{
printf("请输入你猜的价格:
");
scanf("%f",&price);
if(price>p)
printf("你猜的高了.\n");
elseif(price
printf("你猜的低了.\n");
elseif(price==p)
printf("恭喜你,你终于猜对了.\n");
}while(price!
=p);
}
16.从键盘输入一个数,计算这个数的阶层
说明:
阶层一个自然数从1到它本身所有数字的乘积
例如(5的阶层)5!
=5*4*3*2*1=120
提示:
用while、do……while、for语句三种方式完成。
使用循环让每个数相乘
使用一个变量保存每一次的乘积*/
#include
voidmain()
{
inti=1,n,s=1;
printf("输入n的值:
");
scanf("%d",&n);
do
{
s=s*i;
i++;
}
while(i<=n);
printf("%d!
=%d\n",n,s);
}
17、从键盘输入一个数,计算这个数的阶层
说明:
阶层一个自然数从1到它本身所有数字的乘积
例如(5的阶层)5!
=5*4*3*2*1=120
提示:
用while、do……while、for语句三种方式完成。
使用循环让每个数相乘
使用一个变量保存每一次的乘积*/
#include
voidmain()
{
inti=1,n,s=1;
printf("输入n的值:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s=s*i;
}
printf("%d!
=%d\n",n,s);
}
18.从键盘输入一个数,计算这个数的阶层
说明:
阶层一个自然数从1到它本身所有数字的乘积
例如(5的阶层)5!
=5*4*3*2*1=120
提示:
用while、do……while、for语句三种方式完成。
使用循环让每个数相乘
使用一个变量保存每一次的乘积*/
#include
voidmain()
{
inti=1,n,s=1;
printf("输入n的值:
");
scanf("%d",&n);
while(i<=n)
{
s=s*i;
i++;
}
printf("%d!
=%d\n",n,s);
}
19.、打印1-200之间的所有的偶数,
提示:
使用while循环1-200之间的所有整数
在循环过程中使用if语句判断偶数并输出
每行输出10个数,用if判断,有10个数后就换行。
*/
#include
voidmain()
{
inti=0,j=0;
while(i++<200)
if(i%2==0)
{
printf("%d\t",i);
j=j++;
if(j%10==0)
printf("\n");
}
}
20/*题目:
两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定
比赛名单。
有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出
三队赛手的名单。
1.程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
2.程序源代码:
*/
#include
voidmain()
{
chari,j,k;
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
if(i!
=j)
for(k='x';k<='z';k++)
{
if(i!
=k&&j!
=k)
{
if(i!
='x'&&k!
='x'&&k!
='z')
printf("orderisa--%c\tb--%c\tc--%c",i,j,k);
}
}
}
}
}
21、判断3个数的大小,判断完后,等待用户输入确定是否进行下一轮,输入‘Y’表示继续,输入其他键表示退出。
#include
voidmain()
{
intx,y,z,w;
charch='Y';
while(ch=='Y')
{
printf("输入x,y,z值:
\n");
scanf("%d%d%d",&x,&y,&z);
fflush(stdin);
if(x>y)
{
w=x;
x=y;
y=w;
}
if(x>z)
{
w=x;
x=z;
z=w;
}
if(y>z)
{
w=y;
y=z;
z=w;
}
printf("%d,%d,%d\n",x,y,z);
printf("输入字符?
\n");
scanf("%c",&ch);
}
}
22、输入一个数,计算这个数字各个位数字之和例如12341+2+3+4=10
提示1234/1000=?
1234%1000=?
#include
voidmain()
{
longi,sum;
intk;
printf("输入一个数:
");
scanf("%ld",&i);
sum=0;
while(i!
=0)
{
k=i%10;
sum=sum+k;
i=i/10;
}
printf("各个数字之和:
%d\n",sum);
}
23、打印如下的图案
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
提示:
使用嵌套for循环
外层控制行数
内层控制个数
注意行数和该行个数之间的关系
输入的字符变化与循环数之间的关系*/
#include
voidmain()
{
inti,j,w=65;
for(i=1;i<=5;i++)
{
for(j=1;j<=2*i-1;j++)
printf("%c",w);
printf("\n");
w++;
}
}
24、打印2-200之间的素数
说明:
素数素数就是只有1和它本身2个约数没有其他约数的数
例如2,3,5,7都是素数2=1*2…
相反4,6,8都是合数4=1*44=2*2…
提示:
使用嵌套for循环
外层控制2-200之间数字的循环
内层控制每一个数从1到其本身的循环
并判断它是否为素数
注意使用break跳出*/
#include
#include"math.h"
voidmain()
{
intn,i,j,flag;
for(i=2;i<=200;i++)
{
flag=1,j=2;
n=(int)sqrt((double)i);
while(flag&&j<=n)
{
if(i%j==0)
flag=0;
j++;
}
if(flag)
printf("%d\t",i);
}
}
25、编写一个程序,用于产生斐波拉契数列的前20个数
说明:
斐波拉契数列第1和第2位都为1,从第3位起后1位数字等于前2个数字的和(1,1,2,3,5,8,13,21,34…)
提示:
使用for循环控制循环个数
注意算法(第1和第2位都为1,从第3位起后1位数字等于前2个数字的和)*/
#include
#include
voidmain()
{
inta,b,c,e,n;
printf("请任意输入一个数:
");
scanf("%d",&n);
printf("1\n");
printf("1\n");
a=1,b=1,c=2;
for(e=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 练习 互换 两个 变量
![提示](https://static.bdocx.com/images/bang_tan.gif)