课堂编程2.docx

上传人:b****6 文档编号:7955613 上传时间:2023-01-27 格式:DOCX 页数:39 大小:22.82KB
下载 相关 举报
课堂编程2.docx_第1页
第1页 / 共39页
课堂编程2.docx_第2页
第2页 / 共39页
课堂编程2.docx_第3页
第3页 / 共39页
课堂编程2.docx_第4页
第4页 / 共39页
课堂编程2.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

课堂编程2.docx

《课堂编程2.docx》由会员分享,可在线阅读,更多相关《课堂编程2.docx(39页珍藏版)》请在冰豆网上搜索。

课堂编程2.docx

课堂编程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

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1