课堂编程2.docx
- 文档编号:7955613
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:39
- 大小:22.82KB
课堂编程2.docx
《课堂编程2.docx》由会员分享,可在线阅读,更多相关《课堂编程2.docx(39页珍藏版)》请在冰豆网上搜索。
课堂编程2
输入与输出
写一个程序实现以下功能:
从键盘输入两个整数并在屏幕上输出;
从键盘输入两个单精度浮点数并在屏幕上输出;
从键盘输入两个双精度浮点数并在屏幕上输出;
从键盘输入两个字符并在屏幕上输出。
#include
intmain()
{
inta,b;
floatc,d;
doublee,f;
charch1,ch2;
printf("Pleaseinputab:
\n");
scanf("%d%d",&a,&b);
printf("Pleaseinputcd:
\n");
scanf("%f%f",&c,&d);
printf("Pleaseintputef:
\n");
scanf("%lf%lf",&e,&f);
printf("Pleaseinputch1ch2:
\n");
getchar();
scanf("%c%c",&ch1,&ch2);
printf("a=%db=%d\n",a,b);
printf("c=%fd=%f\n",c,d);
printf("e=%-15.8ff=%-15.8f\n",e,f);
printf("ch1=%cch2=%c\n",ch1,ch2);
return0;
}
位运算符
#include
voidmain()
{
unsignedchara,b;
a=0xb9;
b=0x83;
printf("a&b:
0x%x\n",a&b);
printf("a|b:
0x%x\n",a|b);
printf("a^b:
0x%x\n",a^b);
}
位移运算符
#include
voidmain()
{
unsignedchara,b;
a=0x1b;
b=a<<2;
printf("0x%xleft_shift2bit:
0x%x\n",a,b);
}
书P99例4.4条件表达式
#include
intmain()
{
charch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch;
printf("%c\n",ch);
return0;
}
四则运算:
已知x=100,y=15,要求输入一个算术运算符,(+-*/),并对x,y进行指定的算数运算。
#include
intmain()
{
floatx,y;
charm;
x=100;
y=15;
printf("请输入运算符号:
");
scanf("%c",&m);
printf("结果是:
");
switch(m)
{
case'+':
printf("%f\n",x+y);break;
case'-':
printf("%f\n",x-y);break;
case'*':
printf("%f\n",x*y);break;
case'/':
printf("%f\n",x/y);break;
default:
printf("出错\n");
}
return0;
}
If语句函数书P112
有一个函数:
x(x<1)
Y=2x-1(1<=x<10)
3x-11(x>=10)
写程序,输入x的值,输出y相应的值。
#include
intmain()
{
floatx,y;
printf("Pleaseenterx:
");
scanf("%f",&x);
if(x<1)
{
y=x;
printf("%f\n",x);
}
else
if(x>=1&&x<10)
{
y=2*x-1;
printf("%f\n",y);
}
else
{
y=3*x-11;
printf("%f\n",y);
}
return0;
}
修改书P112第六题写一个程序,当x在-100到100之间,程序可以连续计算,不在此范围的,程序结束。
程序1:
用While语句
#include
#include
intmain()
{
floatx,y;
printf("Pleaseenterx:
");
scanf("%f",&x);
while(x>=-100&&x<=100)
{
printf("theequation:
");
{
if(x<1)
y=x;
else
if(x>=1&&x<=10)
y=2*x-1;
else
y=3*x-11;
printf("y=%f\n",y);
}
printf("Pleaseenterx:
");
scanf("%f",&x);//循环控制的关键
}
printf("Error!
\n");
return0;
}
程序2:
Do...While语句实现循环
#include
#include
intmain()
{
floatx,y;
//printf("Pleaseenterx:
");
//scanf("%f",&x);
do
{
printf("Pleaseinputx:
");
scanf("%f",&x);
printf("theequation:
");
{
if(x>=-100&&x<1)
printf("y=%f\n",x);
else
if(x>=1&&x<=10)
printf("y=%f\n",2*x-1);
if(x>=10&&x<=100)
printf("y=%f\n",3*x-11);
}
//printf("Pleaseenterx:
");
//scanf("%f",&x);
}while(x>=-100&&x<=100);
printf("\n");
return0;
}
Switch语句函数书P113
给出一百分制的成绩,要求输出成绩等级'A''B''C''D''E'。
90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。
程序1:
用Switch语句实现
#include
intmain()
{
floatm;
intn;
printf("Pleaseenteryourscore:
");
scanf("%f",&m);
n=m/10;
if(m<0||m>100)
printf("Youinputtheincorrectscore.\n");
else
switch(n)
{
case6:
printf("YourgradeisD.\n");break;
case7:
printf("YourgradeisC.\n");break;
case8:
printf("YourgradeisB.\n");break;
case9:
case10:
printf("YourgradeisA.\n");break;
default:
printf("YourgradeisE.\n");
}
return0;
}
程序2:
DoWhile语句实现
#include
intmain()
{
floatm;
intc;
do
{
printf("Pleaseinputyourscore:
");
scanf("%f",&m);
c=(int)m/10;
if(m<0||m>100)
printf("Youinputtheincorrectscore.\n");
else
switch(c)
{
case6:
printf("Thegradeis'D'\n");break;
case7:
printf("Thegradeis'C'\n");break;
case8:
printf("Thegradeis'B'\n");break;
case9:
printf("Thegradeis'A'\n");break;
case10:
printf("Thegradeis'A'\n");break;
default:
printf("Thegradeis'E'\n");
}
}while(m>=0&&m<=100);
return0;
}
书P102例4.6
要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为60分一下。
成绩的等级由键盘输出。
#include
intmain()
{
chargrade;
do
{
scanf("%c",&grade);
printf("Yourscore:
");
switch(grade)
{
case'A':
printf("85~100\n");break;
case'B':
printf("70~84\n");break;
case'C':
printf("60~69\n");break;
case'D':
printf("<60\n");break;
}
}while(grade>='A'&&grade<='D');
return0;
}
写一个能在屏幕上输出aa…aa(n个a)的程序,n和a均由键盘输出。
并且求和。
程序1:
用While语句
#include
#include
intmain()
{
inti=0,a,n,ia=0;
printf("Pleaseinputna:
");
scanf("%d%d",&n,&a);
while(i { ia=ia+a*pow(10,i); i++; } printf("ia=%10d\n",ia); return0; } 程序2: 用for语句 #include #include intmain() { inti,a,n,ia=0,sum=0; printf("Pleaseenterna: "); scanf("%d%d",&n,&a); for(i=0;i { ia=ia+a*pow(10,i); sum=sum+ia; printf("ia=%10dsum=%10d\n",ia,sum); } return0; } 书P140第五题循环的嵌套 求S=a+aa+aaa+aaaa+…+aa…a之值,其中a是一个数字,n表示a的位数,例如: 2+22+222+2222+22222(此时n=5) N由键盘输入。 #include #include intmain() { inti,n,a,ia=0,sum=0; printf("Pleaseinputtwonumbersna: "); scanf("%d%d",&n,&a); for(i=0;i { ia=ia+a*pow(10,i); sum=ia+sum; printf("ia=%4d,sum=%4d\n",ia,sum); } printf("sum=%4d",sum); printf("\n"); return0; } 求1加到100的和 #include intmain() { inti,sum=0; for(i=1;i<=100;i++) sum=sum+i; printf("%d\n",sum); return0; } For语句输出1~100 #include intmain() { inti; for(i=1;i<=100;i++) printf("%d\n",i); return0; } 若改为每个数字之间有两个空格,并且每十个数字为一行。 #include intmain() { inti; for(i=1;i<=100;i++) {if(i%10==1)利用求余来控制换行的情况! printf("\n"); printf("%4d",i); } return0; } For语句皮球反弹问题 一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,在反弹。 求它第十次落地时,共经过多少米,第十次反弹多高。 1.求第十次反弹高度 #include intmain() { inti; floath=100; for(i=1;i<=10;i++) { h=h/2; } printf("%f\n",h); return0; } 2.求皮球经过的总路程 #include intmain() { inti; floathigh=100.0,distance=100; for(i=1;i<=10;i++) {distance=distance+high; high=high/2; printf("i=%dhigh=%6.3fdistance=%6.3f\n",i,high,distance); } printf("high=%6.3f\n",high); printf("distance=%6.3f\n",distance); return0; } For语句书P141第12题猴子吃桃问题 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第十天,就只剩下一个桃子了。 求第一天共摘了多少个桃子。 #include intmain() { inti,numb=1; for(i=9;i>=1;i--) numb=numb*2+2; printf("numb=%d\n",numb); return0; } 求n! #include intmain() { intfact=1,n,i=1; printf("Pleaseentern: "); scanf("%d",&n); for(i=1;i<=n;i++) { fact=fact*i; printf("i=%dfact=%d\n",i,fact); } return0; } 输出乘法表 #include intmain() { inti,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%d*%d=%2d",j,i,j*i); printf("\n"); } return0; } #include intmain() { intfact,n,i,j,sum=0; printf("Pleaseentern: "); scanf("%d",&n); for(i=1;i<=n;i++) { fact=1; for(j=1;j<=i;j++)Attantion! 内外层变量的关联! ! { fact=fact*j; } sum=sum+fact; printf("sum=%d\n",sum); } return0; } 书P126例5.4 在全系1000学生中,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数,以及平均每人捐款的数目。 #include #defineSUM100000 intmain() { floatamount,aver,total; inti; for(i=1,total=0;i<=1000;i++) { printf("pleaseenteramount: "); scanf("%f",&amount); total=total+amount; if(total>=SUM)break; } aver=total/i; printf("num=%d\naver=%10.2f\n",i,aver); return0; } 例6.1对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出 #include intmain() { inti,a[10]; for(i=0;i<=9;i++) a[i]=i; for(i=9;i>=0;i--) printf("a[%d]=%d\n",i,a[i]); return0; } 给部分元素赋初始值 #include intmain() { inti,a[10]={1,2,3,4}; for(i=0;i<=9;i++) printf("a[%d]=%d\n",i,a[i]); return0; } 赋给a[i]部分初始值,并且把a[i]赋给b[i] #include intmain() { inti,b[10],a[10]={1,2,3,4,5}; for(i=0;i<=9;i++) { b[i]=a[i]; printf("b[%d]=%d\n",i,b[i]); } return0; } 输入数组a[i],并且把a[i]赋给b[i] #include intmain() { inti,b[10],a[10]; for(i=0;i<=9;i++) { scanf("%d",&a[i]); printf("a[%d]=%d\n",i,a[i]); } for(i=0;i<=9;i++) { b[i]=a[i]; printf("b[%d]=%d\n",i,b[i]); } return0; } 定义两个数组,通过键盘对两个数组进行赋值,两个数组对应元素的值互相交换,分别输出交换后两数组的值。 #include intmain() { inti,a[10],b[10],t; printf("Pleaseenter10numbersfora[10]: "); for(i=0;i<=9;i++) scanf("%d",&a[i]); printf("Pleaseenter10numbersforb[10]: "); for(i=0;i<=9;i++) scanf("%d",&b[i]); printf("\n"); for(i=0;i<=9;i++) { t=a[i]; a[i]=b[i]; b[i]=t; } for(i=0;i<=9;i++) printf("a[%d]=%db[%d]=%d\n",i,a[i],i,b[i]); return0; } 求数组内的最大值,最小值,平均值 #include intmain() { inta[10],max,min,i,sum=0; doubleaver; printf("Pleaseenter10numbers: "); for(i=0;i<=9;i++) scanf("%d",&a[i]); max=a[0]; for(i=0;i<=9;i++) { if(max max=a[i]; } printf("max=%d\n",max); min=a[0]; for(i=0;i<=9;i++) { if(min>a[i]) min=a[i]; } printf("min=%d\n",min); for(i=0;i<=9;i++) { sum=sum+a[i]; } aver=sum/10.0; printf("aver=%-10.2f\n",aver); return0; } #include intmain() { inta[10]; inti,j,t; printf("input10numbers: \n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("thesortednumbers: \n"); for(i=0;i<10;i++) printf("%d",a[i]); printf("\n"); return0; } 从键盘上输入一个数字,插到数组合适的位置 #include intmain() { inta[20]; inti,j,t,add; printf("Pleaseinput10numbers: "); for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("thesortednumbers: \n"); for(i=0;i<10;i++) printf("%4d",a[i]); printf("\n"); printf("Pleaseenteranumber: "); scanf("%d",&add); for(i=0;i<11;i++) if(add {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课堂 编程
![提示](https://static.bdocx.com/images/bang_tan.gif)