北京理工大学-C语言程序设计乐学编程题_第1页
北京理工大学-C语言程序设计乐学编程题_第2页
北京理工大学-C语言程序设计乐学编程题_第3页
北京理工大学-C语言程序设计乐学编程题_第4页
北京理工大学-C语言程序设计乐学编程题_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京理工大学-C语言程序设计乐学编程题

1.【入门】Helloworld.

成绩5开启时间2019年09月16日星期一08:00

折扣0.8折扣时间2019年09月29日星期日23:55

允许迟交否关闭时间2019年09月29日星期日23:55

让我们用C语言向世界发出第一声问候.....

最早的程序基本是这个样子的:

#include<stdio.h>

intmain()

(

printf("Helloworld.\n");

return0;

)

请模仿上面的程序,看看是否可以通过编译?如果你能通过这个简单的程序,

那就说明C语言一点都不难。

输入:无

输出:Helloworld.

Sinclude<stdio.h>

intmainO

(

printf(z,Helloworld.\n〃);

return0;

}

2.【入门】输出你的第一个图形

成绩5开启时间2019年09月16曰星期一08:00

折扣0.8折扣时间2019年10月29曰星期二23:55

允许迟交否关闭时间2019年10月29日星期二23:55

背景:

我们已经学习了printf函数的基本使用方法,这里给出了一个小程序,它运

行的结果是输出一个由星号(*)组成的4*4的正方形。

程序如下:

#include<stdio.h>

intmain()

(

printf;

printf;

printf;

printf;

return0;

)

要求:

按照上面的程序范例,编写一个小程序,要求输出的是4行由*号组成的等腰

三角形。对了,要想想程序中\n是什么意思。

输入:

无。

输出:

指定图形。

Sinclude<stdio.h>

intmainO

{

inti,j,k;

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

(

for(j=1;j<=4-i;j++)

printf(/z〃);

for(k=1;k<=2*iT;k++)

printf(〃*〃);

}

printf(〃\n〃);

)

return0;

3.【入门】求A-B

成绩5开启时间2019年09月16日星期一08:00

折扣0.8折扣时间2019年09月29日星期日23:55

允许迟交否关闭时间2019年09月29日星期日23:55

我们已经学了如何使用scanf函数中输入整型数据(刎),下面让我们使用

scanf函数来输入两个整数,然后求它们的差。

输入格式:"%d%d"

整数1整数2

输出格式:"%d-%d=%d\n”

整数1-整数2=差

Sinclude<stdio.h>

intmain()

{

inta,b;

scanf&a);

scanf("%d",&b);

printf(//%d-%d=%d\n,/,a,b,a-b);

return0;

Hl.【选作・日期】判断闰年

成绩5开启时间2019年09月19日星期四14:00

折扣0.8折扣时间2019年10月6日星期日23:55

允许迟交否关闭时间2019年10月6日星期日23:55

今年是2019年,从公历来说2016年是闰年,2017和2018年是平年。闰年的

产生有点意思(中学或者小学应该学过喽,如果不知道,自己去脑补吧)。

咱也应该让计算机可以判断任意一个年份是否为闰年。

输入:

输出:

是否为闰年。

为了简单点,假设输入的年份大于1900o先想一想:该如何建立数学模型?找

到数学模型是解决本题的关键。

本题不用if语句,仅使用基本的运算符就可以实现,如果不会就先看看书

吧。

Sinclude<stdio.h>

intmainO

{

inta;

scanf("%d",&a);

if(a%400==0)

{

printf(/z%disaleapyear.\n",a);

)

else

(

if(a%4==0&&a%100!=0)

(

printf(//%disaleapyear.\n",a);

)

else

(

printf(,/%disnotaleapyear.\nz/,a);

)

)

return0;

4.【小学】一年级的算术题

成绩5开启时间2019年09月19日星期四08:00

折扣0.8折扣时间2019年10月13日星期日23:55

允许迟交否关闭时间2019年10月13日星期日23:55

背景:

小明上小学一年级了,老师已经教会了他们整数的+、-、*、

/、%计算,下面老师开始出题,请小明给出计算结果。

输入格式:"%d%d"

两个整数,每个整数之间使用空格分隔。例如输入格式为:123444

输出格式:

分别输出按照整型数据进行+、-、*、/、%之后的运行结果。

提示:

本题目的关键是如何使用printf输出%。

Sinclude<stdio.h>

intmain()

inta,b;

scanf(,,%d%d”,&a,&b);

printf(,,%d+%d=%d\n,/,a,b,a+b);

printf(,/%d-%d=%d\n,/,a,b,a-b);

printf("%d*%d=%d\n”,a,b,a*b);

printf(/z%d/%d=%d\nz,,a,b,a/b);

printf("%d%%%d=%d\nzz,a,b,a%b);

return0;

5.【小学】逆序三位数

成绩5开启时间2019年09月190星期四15:40

折扣0.8折扣时间2019年10月13日星期日23:55

允许迟交否关闭时间2019年10月13H星期日23:55

小明上了小学一年级,老师开始教他认识各种数字,在课上老师让认识

了1000以内的整数,然后大家进行一个小游戏。

老师给出任意的一个三位数,然后小明说出将这个三位数按逆序倒后形

成的新数。例如,老师给的408,小明要说804;老师给出250,小明回答52;

老师说700,小明回答007。

输入格式:"%d"

每个测试数据是一个3位的正整数。

输出格式:级d\n"

输出逆序的整数。

Sinclude<stdio.h>

intmainO

(

inta,b,c,d;

scanf(〃%d〃,&a);

b=a/100;

c=a/10;

c=c-10*b;

d=a-100*b-10*c;

printf(〃%d%d%d\n〃,d,c,b);

return0;

)

6'.【入门预习】输出字符的ASCII码

成绩5开启时间2019年09月23日星期一08:00

折扣0.8折扣时间2019年10月13日星期日23:55

允许迟交否关闭时间2019年10月13日星期日23:55

背景:

我们在计算机基础中已经学过:字母在计算机中采用ASCII码进行存

储。下面要从键盘上输入任意一个字符,然后输出该字符对应的ASCH码。

输入格式:级c”

一个字符

输出格式:

该字符对应的ASCII码

说明:

如果编程中输出的格式有问题,请先看看教材P51的例题3-4,然后

再想想办法发挥一下喽.....

^include<stdio.h>

intmainO

chara;

a=getchar();

printf(zzTheASCIIofcharacter'%c'is%d.\n〃,a,a);

return0;

}

6.【字符】大小写字母转换

成绩5开启时间2019年09月23日星期一08:00

折扣0.8折扣时间2019年10月13日星期日23:55

允许迟交否关闭时间2019年10月13日星期日23:55

我们知道,英文字母是分大小写的,我们需要编写一个程序,将输入的小写字

母变换为大写字母,大写字母变换为小写字母,非字母保持不变。

在C语言中,字符类型为char,输入一个字符还用用scanf函数,但控制符

不同(也就是%后面的那个字母不同哦)。

输入:一个字符

输出:变换后的字符

提示:本题目可以不用if语句噢。

Sinclude<stdio.h>

intmainO

(

chara;

a=getchar();

a=(a>='A'&&a<='Z')?(a+32):((a>二'a'&&a〈='z')?

(a-32):a);

printf(〃%c\n〃,a);

return0;

)

7.【中学】计算圆柱的侧面积及体积

成绩5开启时间2019年09月4日星期三14:00

折扣0.8折扣时间2019年10月13日星期日23:55

允许迟交是的关闭时间2019年10月13日星期日23:55

该如何处理double型的数据:如何定义变量类型?如何使用scanf函数?

如果已知圆柱的底面半径r,以及高h,则可计算出圆柱的侧面积s=2nr

2

h,体积v=nrho其中“=3.1415926。

输入:

第一行输入圆柱的底面半径r

第二行输入圆柱的高h

输出:

s=<圆柱的侧面积〉,v=<圆柱的体积>

要求

1.所有变量都定义为双精度类型

2.结果精确到小数点后两位

^include<stdio.h>

intmain()

(

doubler,h,s,v,Pi;

Pi=3.1415926;

scanf(〃%lf%lf〃,&r,&h);

printfC/s=%.21f,v=%.21f\nz,,s=2*Pi*r*h,v=Pi*r*r*

h);

return0;

8.【小学】温度转换

成绩5开启时间2019年09月26日星期四19:25

折扣0.8折扣时间2019年10月13日星期日23:55

允许迟交否关闭时间2019年10月13B星期日23:55

背景:

经常出国旅行的驴友都知道,需要时时了解当地的气温状况,但不少国家采用

了不同的温度计量单位:有些使用华氏温度标准(F),有些使用摄氏温度

(C)o现在,请你根据温度转换公式设计一个温度转换程序,可以进行温度转

换。如果输入摄氏温度,显示转换的华氏温度;如果输入华氏温度,显示转换

的摄氏温度。

温度转换的公式为:F=(CX9/5)+32;C=(F-32)X5/9;式中F—华氏

温度,C一摄氏温度。

输入:

第一个数据(字母C或F)确定转换的类型:华氏转摄氏(C);摄氏转华氏

(F);

第二个数据是相应需要转换的温度值。

输出:

相应的转换后的温度值(保留小数点后2位)。

ttinclude<stdio.h>

intmain()

(

chartype;

floatnum;

type=getchar();

scanf(〃%f〃,&num);

if(type==70)/*Cis67*/

printf(z,TheFahrenheitis2f\n〃,num*9/5+32);

else

printf(Z/TheCentigradeis%.2f\n〃,(num-32)*5/9);

return0;

H2.【选作・小学】计算时钟夹角

成绩5开启时间2019年09月26日星期四10:00

折扣0.8折扣时间2019年10月13日星期日23:55

允许迟交否关闭时间2019年10月13日星期日23:55

背景:

钟面上的时针和分针之间的夹角总是在0〜180之间(包括0和

180)o举例来说,在十二点的时候两针之间的夹角为0,而在六点的时候夹

角为180,在三点的时候为90o本题要解决的是计算12:00到11:59之间

任意一个时间的夹角。

输入:

每组测试数据包含两个数字:第一个数字代表小时(大于等于0小于

等于12),第二个数字代表分(在区间[0,59]±)o

输出:

对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的

最小夹角,精确到小数点后一位。输出格式如下所示。

再看一看,想一想:是否可以不用if语句,只使用printf函数来简化你的

程序?

^include<stdio.h>

#include<math.h>

intmainO

{

floatanglel,angle2,out,temp;

inta,b,c;

c=0;

scanf(/z%d%d〃,&a,&b);

if(a>=12)

c=12;

a=a%12;

temp=(float)b;

anglel=a+temp/60;

anglel=30*anglel;

angle2=b*6;

out=anglel-angle2;

out=fabs(out);

a=a+c;

if(out>180)

out=360-out;

if(b<10)

printf(z,At%d:0%dtheangleis%.Ifdegrees.\n,z,a,b,out);

else

printf(,zAt%d:%dtheangleis%.Ifdegrees.\n,z,a,b,out);

return0;

)

9.【小学】比较两个整数

成绩5开启时间2019年09月23日星期一14:30

折扣0.8折扣时间2019年10月20日星期日23:55

允许迟交否关闭时间2019年10月20日星期日23:55

小明上了小学一年级,老师教他们数数(好像有点晚了:(),知道如何比较

两个数的大小。老师在课堂上任意给出两个整数,让小明给出两个整数的关

系。

输入:scanf("%d%d",....)

两个整数

输出:

两个整数的关系

intmainO

inta,b;

scanf(〃%d%d〃,&a,&b);

if(a>b)

printf(z,%d大于%d.\n〃,a,b);

if(a<b)

printf(/z%d小于%d.\n〃,a,b);

if(a==b)

printf(〃两个数相等,均为%d.\n〃,a);

return0;

10.【中学】判断三角形的形状

成绩5开启时间2019年09月26日星期四14:00

折扣0.8折扣时间2019年10月20日星期日23:55

允许迟交否关闭时间2019年10月20日星期日23:55

小明上了初中,开始学习几何了。

要求:

输入三角型的三条边,判断三角形的形状。假设输入的三边边长均>0。

(提示:本题中应该要用到if语句嵌套,教材中有相似例题。)

输入:

三角型的3条边的长度(int型)。

输出:

等边三角形:equilateraltriangle.

等腰三角形:isocelestriangle.

不构成三角形:non-triangle.

一般三角形:triangle.

Sinclude<stdio.h>

intmainO

{

inta,b,c;

scanf(〃%d%d%d〃,&a,&b,&c);

if(a>b+c||b>a+c||c>a+b)

printf("non-triangle.\n〃);

elseif(a=b&&b==c)

printf(z,equilateraltriangle.\n〃);

elseif(a==b||a==c||c==b)

printf("isocelestriangle.\n/z);

else

printf("triangle.\n〃);

return0;

11.【日期】根据日期求星期

成绩5开启时间2019年09月23日星期一14:00

折扣0.8折扣时间2019年10月20日星期日23:55

允许迟交否关闭时间2019年10月20日星期日23:55

任意给出一个年月日,求出是星期几。

输入:

年月日

输出:

0〜6。

星期日用0表示,星期一用1表示,星期二用2表示.....星期六

用6表示。

假设年份大于1900。先想一想:我们现在只会使用if语句,该如何建立数学

模型?找到数学模型是解决本题的关键。

Sinclude<stdio.h>

/*tmain()

inta,b,c,d,e,f,days;

scanf_s(〃%d%d%d〃,&a,&b,&c);

d=1990/4-1990/100+1990/400;

e=a/4-a/100+a/400;

d=e-d;

if(a%4==0&&a%100!=0)

(

d=d-1;

)

f=a-1990;

days=365*f+d;

if(a%4==0&&a%100!=0)

switch(b)

case1:days=days+0;break;

case2:days=days+31;break;

case3:days=days+60;break;

case4:days二days+91;break;

case5:days二days+121;break;

case6:days=days+152;break;

case7:days=days+182;break;

case8:days=days+213;break;

case9:days=days+213+31;break;

case10:days=days+213+61;break;

case11:days=days+213+92;break;

case12:days=days+213+122;break;

)

else

(

switch(b)

case1:days=days+0;break;

case2:days=days+31;break;

case3:days=days+59;break;

case4:days=days+90;break;

case5:days=days+120;break;

case6:days=days+151;break;

case7:days=days+181;break;

case8:days=days+212;break;

case9:days=days+212+31;break;

case10:days=days+212+61;break;

case11:days=days+212+92;break;

case12:days=days+212+122;break;

)

)

a=days+c;

a=a%7;

printf(〃%d\n〃,a);

return0;

constchar*getWeekdayByYearday(intiY,intiM,intiD)

intiWeekDay=-1;

if(1==iM||2==iM)

iM+=12;

iY—;

)

iWeekDay=(iD+1+2*iM+3*(iM+1)/5+iY+iY/4-iY

100+iY/400)%7;

switch(iWeekDay)

(

case0:return〃0〃break;

case1:return〃1〃break;

case2:return〃2〃break;

case3:return”3〃break;

case4:return〃4〃break;

case5:return〃5〃break;

case6:return〃6〃break;

default:returnNULL;break;

returnNULL;

intmain()

(

intyear,month,day;

scanf(〃%d%d%d〃,&year,&month,&day);

constchar*p=getWeekdayByYearday(year,month,day);

printf(〃%s\n〃,p);

12.【应用】阅兵徒手方队

成绩5开启时间2019年10月2日星期三15:35

折扣0.8折扣时间2019年10月20日星期日23:55

允许迟交否关闭时间2019年10月20日星期日23:55

今年是我们的祖国国庆70周年,10月1日在首都北京举行了盛大的阅

兵仪式,举国同庆。

为了方便查询,请编写程序,输入国庆70周年阅兵分列式中徒手方队

的出场顺序(1〜15),输出方队对应的名称。

注意:请使用switch语句编写程序。程序中要处理中文,由于汉字的编码问

题,在提交源程序的时候请按文本方式进行提交。

Sinclude<stdio.h>

intmainO

{

intnum;

scanf(〃%d〃,&num);

printf(〃徒手方队中第%d个出场的是:num);

switch(num)

case1:printf("仪仗方队\n");break;

case2:printf(〃领导指挥方队、n〃);break;

case3:printf(〃陆军方队\n〃);break;

case4:printf(〃海军方队\n〃);break;

case5:printf(〃空军方队\n〃);break;

case6:printf(〃火箭军方队\n〃);break;

case7:printf("战略支援部队方队\n〃);break;

case8:printf("联勤保障部队方队\n〃);break;

case9:printf("武警部队方队\n〃);break;

case10:printf(〃女兵方队\n〃);break;

case11:printf(〃院校科研方队\n〃);break;

case12:printf(〃文职人员方队\n〃);break;

case13:printf(〃预备役部队方队\n");break;

case14:printf(〃民兵方队\n〃);break;

case15:printf(〃维和部队方队\n〃);break;

return0;

13.【中学】求解一元二次方程

成绩5开启时间2019年10月6日星期日14:00

折扣0.8折扣时间2019年10月20日星期日23:55

允许迟交是的关闭时间2019年10月20日星期日23:55

初中的小明已经开始学习求解一元二次方程了,下面让我们来教计算机如何求

解。输入a,b,c,求一元二次方程ax2+bx+c=0的根。

输入:

假设a,b,c均into

输出:

要求输出的根为double型,保留6位小数。

说明:如果不会作,请参考教材P108的例5T7

Sinclude<stdio.h>

ttinclude<math.h>

intmain()

(

doublesq,a,b,c;

scanfr%lf%lf%lfz,,&a,&b,&c);

if(a==b&&a==0)

printf(/zInputerror!\nz/);

elseif(a==c&&a==0)

printfCx=0.000000\n/z);

elseif(a==0)

printf(/,x=%lf\n/,,-c/b);

else

(

sq=b*b-4*a*c;

if(sq>0)

printf(/zxl=%lf\nx2=%lf\nz/,(sqrt(sq)-b)/(2*a),(-

sqrt(sq)-b)/(2*a));

elseif(sq==0&&b!=0)

printfCxl=x2=%lf\n,/,-b/2*a);

elseif(sq==0&&b==0)

printfCxl=x2=0.000000\nz,);

else

sq=-sq;

if(b=0)

printf(,zxl=%lfi\nx2=%lfi\n,,,(sqrt(sq)-b)/(2*a),

(-sqrt(sq)-b)/(2*a));

else

printfrxl=%lf+%lfi\nx2=%lf-%lfi\n,/,-b/(2*a),

sqrt(sq)/(2*a),-b/(2*a),sqrt(sq)/(2*a));

return0;

H3.1选做.日期】再算星期一一只用if语句

成绩5开启时间2019年09月28日星期六12:00

折扣0.8折扣时间2019年10月20日星期日23:55

允许迟交是的关闭时间2019年10月20日星期日23:55

再次给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断

给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再

计算是星期几。

输入:

年月曰

输出:

0〜6。

星期日用0表示,星期一用1表示,星期二用2表示.....星期六

用6表示。

假设年份大于1900o想一想,只使if语句,该如何建立数学模型(千万不要

写出一个超过50行的程序来,这不是我们想看到的结果)?

#include<stdio.h>

constchar*getWeekdayByYearday(intiY,intiM,intiD)

{

intiWeekDay=-1;

if(1==iM||2==iM)

iM+=12;

iY--;

iWeekDay=(iD+1+2*iM+3*(iM+1)/5+iY+iY/4-iY

100+iY/400)%7;

switch(iWeekDay)

(

case0:return〃0〃break;

case1:return〃1〃break;

case2:return〃2〃break;

case3:return〃3〃break;

case4:return〃4〃break;

case5:return〃5〃break;

case6:return〃6〃break;

default:returnNULL;break;

)

returnNULL;

)

intcheck(intyear,intim,intid)

(

intm,d,k;

m=1;

d=1;

k=1;

if(im>12||im<l)

m=0;

else

m=1;

im=im%12;

if(im==1||im==3||im==5im==7||im==8||im==

10||im==12)

(

if(id>31)

d=0;

else

d=1;

)

if(im==4||im==6||im==9im==11)

(

if(id>30)

d=0;

else

d=1;

)

if(year%400==0)

k=l;

else

if(year%4==0&&year%100!=0)

k=1;

else

k=0;

if(k==1&&im二二2)

(

if(id>29)

d=0;

else

d=1;

)

if(k==0&&im==2)

(

if(id>28)

d=0;

else

d=1;

if(id>31||id<l)

d=0;

if(d==1&&m==1)

return1;

else

(

if(d==0&&m==0)

printf("monthanddayarewrong.\n〃);

if(d==0&&m==1)

printf(z/dayiswrong.\nz,);

if(d==1&&m==0)

printf("'monthiswrong.\n〃);

return0;

)

)

intmainO

(

intyear,month,day;

intout;

scanf(〃%d%d%d〃,&year,&month,&day);

intcheck(intyear,intmonth,intday);

out=check(year,month,day);

constchar*p=getWeekdayByYearday(year,month,day);

if(out==1)

printf(〃%s\n〃,p);}

H4.【选作・应用】信号报告

成绩5开启时间2019年09月29日星期日14:00

折扣0.8折扣时间2019年10月20日星期日23:55

允许迟交否关闭时间2019年10月20日星期日23:55

无线电台的RS制信号报告是由三两个部分组成的:

・R(Readability)信号可辨度即清晰度.

•S(Strength)信号强度即大小.

其中R位于报告第一位,共分5级,用1—5数字表示.

1.Unreadable

2.Barelyreadable,occasionalwordsdistinguishable

3.Readablewithconsiderabledifficulty

4.Readablewithpracticallynodifficulty

5.Perfectlyreadable

报告第二位是S,共分九个级别,用1—9中的一位数字表示

1.Faintsignals,barelyperceptible

2.Veryweaksignals

3.Weaksignals

4.Fairsignals

5.Fairlygoodsignals

6.Goodsignals

7.Moderatelystrongsignals

8.Strongsignals

9.Extremelystrongsignals

现在,你的程序要读入一个信号报告的数字,然后输出对应的含义。如读到

59,则输出:

Extremelystrongsignals,perfectlyreadable.

输入格式:级d”

一个整数,信号报告。

整数的十位部分表示可辨度,个位部分表示强度。输入的整数范围是[11,59]中

的个位不为0的数字,这个范围外的数字不可能出现在测试数据中。

输出格式:

一句话,表示这个信号报告的意义。

按照题目中的文字,先输出表示强度的文字,跟上逗号和空格,然后是表示可

辨度的文字,跟上句号。注意可辨度的句子的第一个字母是小写的。注意这里

的标点符号都是英文的。

输入样例:33

输出样例:Weaksignals,readablewithconsiderabledifficulty.

说明:本题选自翁恺2015年MOOC。

Sinclude<stdio.h>

intmainO

(

inta,b,c;

scanf(z/%dz,,&a);

b=a/10;

c=a-b*10;

switch(c)

(

casel:printfC'Faintsignals,barelyperceptible,〃);break;

case2:printf("Veryweaksignals,〃);break;

case3:printf("Weaksignals,〃);break;

case4:printf("Fairsignals,〃);break;

case5:printfC'Fairlygoodsignals,〃);break;

case6:printf("Goodsignals,〃);break;

case7:printf(^Moderatelystrongsignals,〃);break;

case8:printf("Strongsignals,〃);break;

case9:printf(zzExtremelystrongsignals,〃);break;

)

switch(b)

{

case1:printf("unreadable.\n〃);break;

case2:printf(z/barelyreadable,occasionalwords

distinguishable.\n〃);break;

case3:printf("readablewithconsiderabledifficulty.\nzz);break;

case4:printf("readablewithpracticallynodifficulty.\nz/);

break;

case5:printf(^perfectlyreadable.\n,z);break;

)

return0;

)

H5.【选作・应用】求过顶点的切线方程告(同学出

题))

成绩5开启时间2019年10月9日星期三14:00

折扣0.8折扣时间2019年10月20日星期日23:55

允许迟交否关闭时间2019年10月20日星期日23:55

同学出题:睿信1945班许颂强

给定椭圆方程和一个定点,求过定点的切线方程。

输入:

第1行:输入a2和b2的值,即x2/a?+y2/b2=l中的a2和b2,保证

a?和b2均为整数且大于0。

第2行:输入定点的坐标

输出:

切线方程或Inputerror!o

Sinclude<stdio.h>

intmain()

(

doublex,y,apf,bpf;

scanf(,,%lf&apf,&bpf);

scanf(z/%lf&.x,&y);

if(apf<=0||bpf<=0)

printf(zzInputerror!\n/z);

elseif(x*x/apf+y*y/bpf!=1)

printf("Inputerror!\n/z);

elseif(x==0)

printf(zzy=%lf\n/z,y);

elseif(y==0)

printf(zzx=%lf\nzz,x);

elseif(y>0)

printf("y=%lfx+%lf\n",-(x*bpf)/(y*apf),bpf/y);

else

//,,

printf(y=%lfx%lf\n>-(x*bpf)/(y*apf),bpf/y);

return0;

14.【小学】求累加和

成绩5开启时间2019年10月6日星期日14:00

折扣0.8折扣时间2019年10月27日星期日23:55

允许迟交否关闭时间2019年10月27日星期日23:55

背景:

哈哈!小明开始进行加法强化修炼啦。

功能:

求整数n到m区间的累加和,其中n<=mo

输入:

区间的起始点n区间的终止点m

输出:

累加和

Sinclude<stdio.h>

intmain()

(

inta,b,i,sum;

sum=0;

scanf(/z%d%d〃,&a,&b);

for(i=a;i<=b;i++)

(

sum=sum+i;

)

printf(/zThesumfrom%dto%dis%d.\n〃,a,b,sum);

return0;

15.【小学】角谷猜想(同学出题)

成绩5开启时间2019年10月6日星期日14:00

折扣0.8折扣时间2019年10月27日星期日23:55

允许迟交否关闭时间2019年10月27日星期日23:55

同学出题:冯易

角谷猜想(尚未证明):对于任意一个正整数,若为奇数则乘3加1,若为偶

数则除以2,得到的结果再按照上述规则重复,最终总能得到1。例如,假定初

始整数为5,计算过程分别为16、8、4、2、1。编程验证之。

【输入】一个整数n(K=n<=20000000)

【输出】多行的计算过程

注意:如果验证过程达到20步还没有得到结论,则停止。

Sinclude<stdio.h>

intmainO

{

longinta,b;

inti=0;

scanf&a);

while(a!=1)

(

i++;

if(a%2==1)

(

b=a*3+1;

printf(zz%ld*3+l=%ld\nz,,a,b);

a=b;

)

else

(

b=a/2;

printf(zz%ld/2=%ld\nz,,a,b);

a=b;

)

if(i==20)

break;

}

return0;

16.【小学】青蛙出井(同学出题)

成绩5开启时间2019年10月6日星期日14:00

折扣0.8折扣时间2019年10月27日星期日23:55

允许迟交否关闭时间2019年10月27日星期日23:55

同学出题:张欣

在LIT(哈哈,能猜到是什么地方吧?)有一口用于铺设光纤的施工

井,井中有一只青蛙过着无忧无虑的生活,有一天,它想出去看看更广阔的天

空,于是决定行动了!

第一天它向上爬了n米,由于缺少食物,每过一天青蛙比前一天少爬

1米,且每天结束都会下滑m米,井有x米深。请判断青蛙是否能爬出井,

如果能,求爬出经过的天数do

输入:nmx(假设n,m,x均为正整数)

输出:do

#include<stdio.h>

intmain()

{

intn,m,x,d;

scanf(z/%d%d%d,/,&n,&m,&x);

d=0;

while(x>0)

(

x=x-n;

n—;

d++;

if(x<=0)

(

printf("青蛙能爬出井,且第%d天爬出井。\n”,d);

break;

)

x=x+m;

if(n==0)

(

printf("青蛙不能爬出井。\n");

break;

return0;

17.【小学】循环字母

成绩5开启时间2019年10月10日星期四10:00

折扣0.8折扣时间2019年10月27日星期日23:55

允许迟交否关闭时间2019年10月27日星期日23:55

小明开始学习英文,第一节课就是学习26个字母。为了帮助小明记住

这些字母,小明的哥哥编写了一个程序,只要说出第一个字母,就可以依次循

环先是后续的26个字母。

输入:

一个起始字母(大小写字母均可)

输出:

以指定字母为起始的26个字母

Sinclude<stdio.h>

intmainO

(

inti;

chara;

a=getchar();

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

(

printf(〃%c〃,a);

a++;

if(a==123||a==91)

a=a-26;

)

printf(〃\n");

return0;

)

18.【应用】念整数

成绩5开启时间2019年10月10日星期四11:00

折扣0.8折扣时间2019年10月27日星期日23:55

允许迟交否关闭时间2019年10月27日星期日23:55

题目内容:

你的程序要读入一个整数,范围是[T00000000,100000000]。然后,用汉语拼

音将这个整数的每一位输出出来。

如输入1234,则输出:

yiersansi

注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负

数时,在输出的开头加上〃fu",如-2341输出为:

fuersansiyi

输入格式:

一个整数,范围是[T00000,100000]。

输出格式:

表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,

末尾没有空格。

输入样例:

-30

输出样例:

fusanling

选自:翁恺老师2015年M00C课程。

#include<stdio.h>

Sinclude<math.h>

intmain(intargc,constchar*argv[]){

//insertcodehere...

inti,j;

scanf&i);

intn=0;

if(i<0)

(

printf(zzfu");

i=i*-1;

)

intm=i;

while(m>0)

(

m=m/10;

n++;

)

if(i==0)

(

printf("ling'n");

)

for(intj=n-1;j>=0;j—)

(

intb=i/(pow(10,j));

i=i%(int)pow(lO,j);

switch(b)

case0:

printf(〃ling〃);

break;

case1:

printf("yi");

break;

case2:

printf(〃er〃);

break;

case3:

printf(〃san〃);

break;

case4:

printf(〃si〃);

break;

case5:

printfCwu");

break;

case6:

printf(〃liu〃);

break;

case7:

printf(〃qi〃);

break;

case8:

printf(〃ba〃);

break;

case9:

printfCjiuz,);

break;

)

if(j!=0)

(

printf("");

)

else

printf('\n");

H6.【选作・小学】最近的分数(学长出题)

成绩5开启时间2019年10月10日星期四11:00

折扣0.8折扣时间2019年10月27日星期日23:55

允许迟交是的关闭时间2019年10月27日星期日23:55

题目描述:

给定三个正整数x,y,n.你的任务是找到与分数x/y最接近的分母

不超过n的分数.

也就是说要找到一对整数a,b(l<=b<=n,0<=a)使得|x/y-a

/b|尽可能小。

如果有多个满足条件的,输出分母最小的一个。如果依然有多个满足

分母最小的,输出分子最小的一个。

输入:

三个整数x,y,n.(1<=x,y,n<=10~5)

输出:

题目要求的分数,以“a/b”形式输出。

深夜提示(学长配图):

Sinclude<stdio.h>

Sinclude<math.h>

intmainO

(

intx,y,n,fenzi=l,fenmu=l,i,big,small;

doublepre,goal,temp;

scanf(z,%d%d%d〃,&x,&y,&n);

intz=x/y;

goal=1.0*x/y;

pre=100;

if(n>y)

printf(z/%d/%d\nz,,x,y);

else

(

x%=y;

temp=(1.0*x)/y;

pre=100;

for(i=n;i>0;i--)

(

small=(int)(temp*i);

big=small+1;

if(fabs(temp一((1.0big)/i))<=pre)

(

pre=fabs(temp-((1.0*big)/i));

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论