程序设计第一学期题库.docx

上传人:b****6 文档编号:3922806 上传时间:2022-11-26 格式:DOCX 页数:69 大小:35.47KB
下载 相关 举报
程序设计第一学期题库.docx_第1页
第1页 / 共69页
程序设计第一学期题库.docx_第2页
第2页 / 共69页
程序设计第一学期题库.docx_第3页
第3页 / 共69页
程序设计第一学期题库.docx_第4页
第4页 / 共69页
程序设计第一学期题库.docx_第5页
第5页 / 共69页
点击查看更多>>
下载资源
资源描述

程序设计第一学期题库.docx

《程序设计第一学期题库.docx》由会员分享,可在线阅读,更多相关《程序设计第一学期题库.docx(69页珍藏版)》请在冰豆网上搜索。

程序设计第一学期题库.docx

程序设计第一学期题库

1目录

2实验2.2计算分段函数

1.计算摄氏温度

输入华氏温度,输出对应的摄氏温度。

计算公式:

c=5*(f-32)/9,式中:

c表示摄氏温度,f表示华氏温度。

输入输出示例:

括号内为说明

输入150

(fahr=150)

输出

celsius=65

#include

intmain(void)

{

intcelsius,fahr;

scanf("%d",&fahr);

celsius=5*(fahr-32)/9;

printf("celsius=%d\n",celsius);

return0;

}

2.计算存款利息

输入存款金额money、存期year和年利率rate,

根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。

interest=money(1+rate)^year-money

输入输出示例:

括号内为说明

输入

100030.025(money=1000,year=3,rate=0.025)

输出

interest=76.89

#include

#include

intmain(void)

{

intmoney,year;

doubleinterest,rate;

scanf("%d%d%lf",&money,&year,&rate);

interest=money*pow((1+rate),year)-money;

printf("interest=%.2f\n",interest);

return0;

}

3.计算分段函数

输入一个正整数repeat(0

输入x,计算并输出下列分段函数f(x)的值(保留2位小数),请调用sqrt函数求平方根,

调用pow函数求幂。

当x>=0时,f(x)=x^0.5,当x小于0时,f(x)=(x+1)^2+2x+1/x。

输入输出示例:

括号内是说明

输入

3(repeat=3)

10

-0.5

0

输出

f(10.00)=3.16

f(-0.50)=-2.75

f(0.00)=0.00

#include

#include

intmain(void)

{

intrepeat,ri;

doublex,y;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%lf",&x);

if(x<0)

y=pow((x+1),2)+2*x+1/x;

else

y=sqrt(x);

printf("f(%.2f)=%.2f\n",x,y);

}

return0;

}

4.计算两个整数的和、差、积、商与余数

输入2个整数num1和num2,计算并输出它们的和、差、积、商与余数。

输出两个整数的余数可以用printf("%d%%%d=%d\n",num1,num2,num1%num2);

输入输出示例:

括号内是说明

输入

53(num1=5,num2=3)

输出

5+3=8

5-3=2

5*3=15

5/3=1

5%3=2

#include

intmain(void)

{

intnum1,num2;

scanf("%d%d",&num1,&num2);

printf("%d+%d=%d\n",num1,num2,num1+num2);

printf("%d-%d=%d\n",num1,num2,num1-num2);

printf("%d*%d=%d\n",num1,num2,num1*num2);

printf("%d/%d=%d\n",num1,num2,num1/num2);

printf("%d%%%d=%d\n",num1,num2,num1%num2);

return0;

}

5.计算旅途时间(选作)

输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。

有效的时间范围是0000到2359(前两位表示小时,后两位表示分钟),

不需要考虑出发时间晚于到达时间的情况。

输入输出示例:

括号内是说明

输入

7121411(出发时间是7:

12,到达时间是14:

11)

输出

Thetrainjourneytimeis6hours59minutes.

#include

intmain(void)

{

inttime1,time2,hour,minutes;

scanf("%d%d",&time1,&time2);

hour=(time2-time1)/100;

minutes=time2-time1-100*hour-40;

printf("Thetrainjourneytimeis%dhours%dminutes.\n",hour,minutes);

return0;

}

6.数字加密(选作)

输入一个四位数,将其加密后输出。

方法是将该数每一位上的数字加9,

然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,

百位和个位上的数字互换,组成加密后的新四位数。

输入输出示例:

括号内是说明

输入

1257

输出

Theencryptednumberis4601(每一位上的数字加9除以10取余后,得0146,交换后得到4601)

#include

intmain(void)

{

intdigit1,digit2,digit3,digit4,newnum,number;

scanf("%d",&number);

digit1=number%10;

digit2=(number%100-digit1)/10;

digit3=(number%1000-digit2*10-digit1)/100;

digit4=(number%10000-digit3*100-digit2*10-digit1)/1000;

digit4=(digit4+9)%10;

digit3=(digit3+9)%10;

digit2=(digit2+9)%10;

digit1=(digit1+9)%10;

newnum=digit3+digit4*10+digit1*100+digit2*1000;

printf("Theencryptednumberis%d\n",newnum);

return0;

}

3实验2.3指定次数的循环

1.求m+(m+1)+(m+2)+......+100

输入一个正整数repeat(0

输入一个正整数m(0<=m<=100),计算表达式m+(m+1)+(m+2)+......+100的值。

输入输出示例:

括号内为说明

输入输出

3(repeat=3)

0(计算0+1+2+...+100)sum=5050

10(计算10+11+12+...+100)sum=5005

50(计算50+51+52+...+100)sum=3825

#include

intmain(void)

{

inti,m,sum;

intrepeat,ri;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%d",&m);

sum=0;

for(i=m;i<=100;i++)

sum=sum+i;

printf("sum=%d\n",sum);

}

return0;

}

2.求1/m+1/(m+1)+1/(m+2)+......+1/n

输入一个正整数repeat(0

输入2个正整数m和n(m<=n),计算表达式1/m+1/(m+1)+1/(m+2)+......+1/n的值,

输出时保留3位小数。

输入输出示例:

括号内为说明

输入输出

3(repeat=3)

515(计算1/5+1/6+1/7+...+1/15)sum=1.235

1020(计算1/10+1/11+1/12+...+1/20)sum=0.769

13(计算1+1/2+1/3)sum=1.833

#include

intmain(void)

{

inti,m,n;

intrepeat,ri;

doublesum;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%d%d",&m,&n);

sum=0;

for(i=m;i<=n;i++)

sum=sum+1.0/i;

printf("sum=%.3f\n",sum);

}

return0;

}

3.求1+1/3+1/5+......+1/n

输入一个正整数repeat(0

输入一个正整数n,计算表达式1+1/3+1/5+......的前n项之和,输出时保留6位小数。

输入输出示例:

括号内为说明

输入输出

2(repeat=2)

5(计算1+1/3+1/5+1/7+1/9)sum=1.787302

23(计算1+1/3+1/5+...+1/45)sum=2.549541

#include

intmain(void)

{

inti,n;

intrepeat,ri;

doublesum;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%d",&n);

sum=0;

for(i=1;i<=n;i++)

sum=sum+1.0/(2*i-1);

printf("sum=%.6f\n",sum);

}

return0;

}

4.求1-1/4+1/7-1/10+……的前n项之和

输入一个正整数repeat(0

读入一个正整数n,计算1-1/4+1/7-1/10+……的前n项之和,输出时保留3位小数。

输入输出示例:

括号内是说明

输入输出

2(repeat=2)

3sum=0.893

10sum=0.819

#include

intmain(void)

{

intflag,i,n;

intrepeat,ri;

doubleitem,sum;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%d",&n);

sum=0;

flag=-1;

for(i=1;i<=n;i++)

{

flag=-flag;

item=3*i-2;

sum=sum+flag*1.0/item;

}

printf("sum=%.3f\n",sum);

}

return0;

}

5.求m!

+n!

输入一个正整数repeat(0

输入2个正整数m和n,计算m!

+n!

输入输出示例:

括号内是说明

输入:

输出:

2(repeat=2)

14(m=1,n=4)1!

+4!

=25

38(m=3,n=8)3!

+8!

=40326

#include"stdio.h"

intmain(void)

{

inti,m,n;

intrepeat,ri;

doublefm,fn;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%d%d",&m,&n);

fm=1;

fn=1;

for(i=1;i<=m;i++)

fm=fm*i;

for(i=1;i<=n;i++)

fn=fn*i;

printf("%d!

+%d!

=%.0f\n",m,n,fm+fn);

}

return0;

}

6.求x的n次幂

输入一个正整数repeat(0

读入1个实数x和正整数n(n<=50),计算并输出x的n次幂(保留2位小数),不允许调用pow函数求幂。

输入输出示例:

括号内是说明

输入输出

2(repeat=2)

1.52(x=1.5,n=2)2.25

27(x=2,n=7)128.00

#include

intmain(void)

{

inti,n;

intrepeat,ri;

doublemypow,x;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%lf%d",&x,&n);

mypow=1;

for(i=1;i<=n;i++)

mypow=mypow*x;

printf("%.2f\n",mypow);

}

return0;

}

4实验2.4使用函数

1.生成3的乘方表

输入一个正整数n,生成一张3的乘方表,输出3^0~3^n的值,可调用幂函数计算3的乘方。

输出使用语句printf("pow(3,%d)=%.0f\n",i,mypow);

输入输出示例:

括号内是说明

输入

3(n=3)

输出

pow(3,0)=1

pow(3,1)=3

pow(3,2)=9

pow(3,3)=27

#include

#include

intmain(void)

{

inti,n;

doublemypow;

scanf("%d",&n);

for(i=0;i<=n;i++)

{

mypow=pow(3,i);

printf("pow(3,%d)=%.0f\n",i,mypow);

}

return0;

}

2.生成阶乘表

输入一个正整数n,生成一张阶乘表,输出1!

~n!

的值,

要求定义和调用函数fact(n)计算n!

,函数类型为double。

输出使用语句printf("%d!

=%.0f\n",i,myfact);

输入输出示例:

括号内是说明

输入

3(n=3)

输出

1!

=1

2!

=2

3!

=6

#include

intmain(void)

{

inti,n;

doublemyfact;

doublefact(intn);

scanf("%d",&n);

for(i=1;i<=n;i++)

{

myfact=fact(i);

printf("%d!

=%.0f\n",i,myfact);

}

return0;

}

doublefact(intn)

{

inti;

doublemyfact;

myfact=1;

for(i=1;i<=n;i++)

myfact=myfact*i;

returnmyfact;

}

3.使用函数求n!

/(m!

*(n-m)!

输入一个正整数repeat(0

输入2个正整数m和n(m<=n),计算n!

/(m!

*(n-m)!

)。

要求定义并调用函数fact(n)计算n的阶乘,其中n的类型是int,函数类型是double。

例:

括号内是说明

输入:

输出:

2(repeat=2)

27(m=2,n=7)result=21

512(m=5,n=12)result=792

#include

doublefact(intn);

intmain(void)

{

intm,n;

intrepeat,ri;

doubles;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%d%d",&m,&n);

s=1;

s=s*(fact(n))/(fact(m)*fact(n-m));

printf("result=%.0f\n",s);

}

return0;

}

doublefact(intn)

{

inti;

doubleproduct;

product=1;

for(i=1;i<=n;i++)

product=product*i;

returnproduct;

}

4.求100^0.5+101^0.5+……+1000^0.5

计算100^0.5+101^0.5+……+1000^0.5的值(保留2位小数),可调用sqrt函数计算平方根。

输入输出示例:

括号内是说明

输出

sum=20435.99

#include

#include

intmain(void)

{

inti;

doublesum;

sum=0;

for(i=100;i<=1000;i++)

sum=sum+sqrt(i);

printf("sum=%.2f\n",sum);

return0;

}

5实验3分支结构程序设计

1.求分段函数的值

-1x<0

y=sign(x)=0x=0

1x>0

输入输出示例:

括号内是说明

输入输出

3(repeat=3)

10(x=10)sign(10)=1(x=10时y=1)

0(x=0)sign(0)=0(x=0时y=0)

-98(x=-98)sign(-98)=-1(x=-98时y=-1)

#include

intmain(void)

{

intrepeat,ri;

intx,y;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

scanf("%d",&x);

if(x<0)

y=-1;

elseif(x==0)

y=0;

else

y=1;

printf("sign(%d)=%d\n",x,y);

}

return0;

}

2.分类统计字符

输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

输入输出示例:

括号内是说明

输入

Reold123?

输出

letter=5,blank=1,digit=3,other=1

#include

intmain(void)

{

charc;

intblank,digit,i,letter,other;

blank=digit=letter=other=0;

for(i=1;i<=10;i++)

{

c=getchar();

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

letter++;

elseif(c>='0'&&c<='9')

digit++;

elseif(c=='')

blank++;

else

other++;

}

printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);

return0;

}

3.显示五级记分制成绩所对应的百分制成绩区间(使用switch)

输入一个正整数repeat(0

输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间,要求使用switch语句。

五级制成绩对应的百分制成绩区间为:

A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),

如果输入不正确的成绩,显示"Invalidinput"。

输出使用以下语句:

printf("90-100\n");

printf("80-89\n");

printf("70-79\n");

printf("60-69\n");

printf("0-59\n");

printf("Invalidinput\n");

输入输出示例:

括号内是说明

输入

6ABCDEj(repeat=6,输入的五级成绩分别为A、B、C、D、E和无效的字符j)

输出

90-100

80-89

70-79

60-69

0-59

Invalidinput(输入数据不合法)

#include

intmain(void)

{

charch;

intrepeat,ri;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++)

{

ch=getchar();

switch(ch)

{

case'A':

printf("90-100\n");

break;

case'B':

printf("80-89\n");

break;

case'C':

printf("70-79\n");

break;

case'

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

当前位置:首页 > 高中教育 > 语文

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

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