c语言作业汇编.docx
《c语言作业汇编.docx》由会员分享,可在线阅读,更多相关《c语言作业汇编.docx(55页珍藏版)》请在冰点文库上搜索。
![c语言作业汇编.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/44ebadfe-47cd-439f-a206-0f5b40ef96ed/44ebadfe-47cd-439f-a206-0f5b40ef96ed1.gif)
c语言作业汇编
1.
1.1.3编写程序,在屏幕上显示一个短句“ProgramminginCisfun!
”。
【问题描述】1.1.3编写程序,在屏幕上显示一个短句“ProgramminginCisfun!
”。
【输入形式】无
【输出形式】输出短句
【样例输入】无
【样例输出】ProgramminginCisfun!
-:
1:
#include
-:
2:
intmain(void)
1:
3:
{
1:
4:
printf("ProgramminginCisfun!
\n");
1:
5:
return0;
-:
6:
}
2.
1.1.4编程显示图案。
【问题描述】编写程序,在屏幕上显示如下图案。
****
***
**
*
【输入形式】无
【输出形式】图案
【样例输入】
【样例输出】
【样例说明】符号之间无空格
【评分标准】
-:
1:
#include
-:
2:
intmain(void)
1:
3:
{
1:
4:
printf("****\n***\n**\n*\n");
1:
5:
return0;
-:
6:
}
1.
2.1.5编程,输入一个三位正整数,求解并输出该数的个位数、十位数和百位数。
【问题描述】2.1.5编程,输入一个三位正整数,求解并输出该数的个位数、十位数和百位数。
【输入形式】输入三位正整数
【输出形式】依次输出个、十、百位,用空格分隔
【样例输入】152
【样例输出】251
-:
1:
#include
-:
2:
intmain(void)
2:
3:
{
-:
4:
intn;
2:
5:
scanf("%d",&n);
2:
6:
printf("%d%d%d\n",n%10,n/10%10,n/100);
2:
7:
return0;
-:
8:
}
2.
2.2.7编程计算并输出旅途时间。
【问题描述】2.2.7输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。有效的时间范围是0000~2359(前两位表示小时,后两位表示分钟),不需要考虑出发时间晚于到达时间的情况。
【样例输入输出】(括号内为说明文字)
Entertime1:
712(出发时间是7:
12)
Entertime2:
1411(到达时间是14:
11)
Thetrainjourneytimeis6hours59minutes
-:
1:
#include
-:
2:
intmain(void)
2:
3:
{
-:
4:
inta,b,c,d,time1,time2;
2:
5:
printf("Entertime1:
");
2:
6:
scanf("%d",&time1);
2:
7:
printf("Entertime2:
");
2:
8:
scanf("%d",&time2);
2:
9:
a=time1%100;
2:
10:
b=time2%100;
2:
11:
if(b>=a){
1:
12:
c=(time2-time1)/100;
1:
13:
d=b-a;
-:
14:
}
-:
15:
else{
1:
16:
c=(time2-time1)/100;
1:
17:
d=b-a+60;
-:
18:
}
2:
19:
printf("Thetrainjourneytimeis%dhours%dminutes\n",c,d);
2:
20:
return0;
-:
21:
}
3.
2.2.8编程题,输入一个四位正整数,将其加密后输出。
【问题描述】2.2.8输入一个四位正整数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,作为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。
【样例输入输出】(括号内为说明文字)
Enteranumber:
1257
Theencryptednumberis4601(每一位上的数字加9除以10取余后得0146,交换后得到4601)
-:
1:
#include
-:
2:
intmain(void)
2:
3:
{
-:
4:
intx,y,a,b,c,d;
2:
5:
printf("Enteranumber:
");
2:
6:
scanf("%d",&x);
2:
7:
d=x%10;
2:
8:
c=(x-d)%100/10;
2:
9:
b=(x/100)%10;
2:
10:
a=x/1000;
2:
11:
a=(a+9)%10;
2:
12:
b=(b+9)%10;
2:
13:
c=(c+9)%10;
2:
14:
d=(d+9)%10;
2:
15:
y=c*1000+d*100+a*10+b;
2:
16:
printf("Theencryptednumberis%d\n",y);
2:
17:
return0;
-:
18:
}
4.
2.3.5求1-1/4+1/7-1/10+1/13-1/16+…的前n项之和
【问题描述】
输入一个正整数n,计算1-1/4+1/7-1/10+1/13-1/16+…的前n项之和,输出时保留3位小数。
【输入形式】
从键盘输入一个正整数n。
【输入输出样例1】(下划线部分表示输入)
Entern:
3
sum=0.893
【输入输出样例2】(下划线部分表示输入)
Entern:
10
sum=0.819
【样例说明】
输入提示符后要加一个空格。
其中“:
”后要加一个且只能一个空格。
输出语句的“=”两边无空格。
英文字母区分大小写。
必须严格按样例输入输出。
-:
1:
#include
-:
2:
intmain(void)
4:
3:
{
-:
4:
inta,b,i,n;
-:
5:
doublem,sum;
4:
6:
printf("Entern:
");
4:
7:
scanf("%d",&n);
4:
8:
a=1;
4:
9:
b=1;
4:
10:
sum=0;
73:
11:
for(i=1;i<=n;i++){
69:
12:
m=a*1.0/b;
69:
13:
sum=sum+m;
69:
14:
a=-a;
69:
15:
b=b+3;
-:
16:
}
4:
17:
printf("sum=%.3f\n",sum);
4:
18:
return0;
-:
19:
}
-:
20:
.
2.4.3求组合数
【问题描述】
根据下列公式可以计算出从n个不同元素中取出m个元素(m≤n)的组合数。编写程序,输入2个正整数m和n(m≤n),计算并输出组合数。要求定义和调用函数fact(n)计算n!
函数类型为double。
【输入形式】
从键盘输入正整数m和正整数n。
【输入输出样例1】(下划线部分表示输入)
Enterm:
5
Entern:
12
result=792
【样例说明】
输入提示符后要加一个空格。
其中“:
”后要加一个且只能一个空格。
输出语句的“=”两边无空格。
英文字母区分大小写。
必须严格按样例输入输出。
-:
1:
#include
-:
2:
doublefact(doubles)
6:
3:
{
6:
4:
doublei,a=1;
50:
5:
for(i=1;i<=s;i++)
44:
6:
a=a*i;
6:
7:
returna;
-:
8:
}
-:
9:
intmain()
2:
10:
{
-:
11:
doublex,y,m,n;
2:
12:
printf("Enterm:
");
2:
13:
scanf("%lf",&m);
2:
14:
printf("Entern:
");
2:
15:
scanf("%lf",&n);
2:
16:
y=fact(n-m);
2:
17:
m=fact(m);
2:
18:
n=fact(n);
2:
19:
x=n/(y*m);
2:
20:
printf("result=%.0f",x);
2:
21:
return0;
-:
22:
}
1.
3.1.3统计字符个数
【问题描述】
输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
【输入形式】
从键盘输入正实数x的值。
【输入输出样例1】(下划线部分表示输入)
Input10characters:
Reold123?
letter=5,blank=1,digit=3,other=1
【样例说明】
输入提示符后要加一个空格。
例如“Input10characters:
”,其中“:
”后要加一个且只能一个空格。
输出语句的“=”两边无空格。
英文字母区分大小写。
必须严格按样例输入输出。
-:
1:
#include
-:
2:
intmain(void)
2:
3:
{
-:
4:
intdigit,i,letter,blank,other;
-:
5:
charch;
2:
6:
digit=letter=blank=other=0;
2:
7:
printf("Input10characters:
");
22:
8:
for(i=1;i<=10;i++){
20:
9:
ch=getchar();
30:
10:
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
10:
11:
letter++;
16:
12:
elseif(ch>='0'&&ch<='9')
6:
13:
digit++;
7:
14:
elseif((ch=='\n')||(ch==''))
3:
15:
blank++;
-:
16:
else
1:
17:
other++;
-:
18:
}
2:
19:
printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);
2:
20:
return0;
-:
21:
}
2.
3.1.7计算三角形周长和面积
【问题描述】
输入三角形的三边a,b,c,如果能构成一个三角形,输出面积area
和周长perimeter(保留两位小数);否则,输出
“Thesesidesdonotcorrespondtoavalidtriangle”
在一个三角形钟,任意两边之和大于第三边。
三角形面积计算公式:
area=sqrt(s*(s-a)*(s-b)*(s-c))
其中:
s=(a+b+c)/2
【输入形式】
输入三角形的三条边的数据。
【输入输出样例1】(下划线部分表示输入)
Enter3sidesofthetriangle:
553
area=7.15;perimeter=13.00【样例说明】
输入提示符后要加一个空格。
例如“Enter3sidesofthetriangle:
”,其中“:
”后要加一个且只能一个空格。
输出语句的“=”两边无空格。
英文字母区分大小写。
必须严格按样例输入输出。
-:
1:
#include
-:
2:
#include
-:
3:
intmain(void)
2:
4:
{
-:
5:
inta,b,c;
-:
6:
doublearea,perimeter,s;
2:
7:
printf("Enter3sidesofthetriangle:
");
2:
8:
scanf("%d%d%d",&a,&b,&c);
4:
9:
if(a+b>c&&a+c>b&&b+c>a){
2:
10:
s=(a+b+c)/2.00;
2:
11:
area=sqrt(s*(s-a)*(s-b)*(s-c));
2:
12:
perimeter=a+b+c;
2:
13:
printf("area=%.2f;perimeter=%.2f\n",area,perimeter);
-:
14:
}
-:
15:
else{
#####:
16:
printf("Thesesidesdonotcorrespondtoavalidtriangle");
-:
17:
}
2:
18:
return0;
-:
19:
}
-:
20:
3.
3.1.8计算个人所得税
【问题描述】
输入一个职工的月薪salary,输出应交的个人所得税tax(保留两位小数)。
计算方式:
tax=rate*(salary-850)
当salary<=850时,rate=0;
当850当1350当2850当5850【输入形式】
输入月薪。
【输入输出样例1】(下划线部分表示输入)
Enterthesalary:
1010.87
tax=8.04
【输入输出样例2】(下划线部分表示输入)
Enterthesalary:
32098.76
tax=6249.75
【输入输出样例3】(下划线部分表示输入)
Enterthesalary:
800
tax=0.00
【输入输出样例4】(下划线部分表示输入)
Enterthesalary:
4010
tax=474.00
【输入输出样例5】(下划线部分表示输入)
Enterthesalary:
2850
tax=200.00
【样例说明】
输入提示符后要加一个空格。
例如“Enterthesalary:
”,其中“:
”后要加一个且只能一个空格。
输出语句的“=”两边无空格。
英文字母区分大小写。
必须严格按样例输入输出。
-:
1:
#include
-:
2:
intmain(void)
6:
3:
{
-:
4:
doubletax,rate,salary;
6:
5:
printf("Enterthesalary:
");
6:
6:
scanf("%lf",&salary);
6:
7:
if(salary<=850){
1:
8:
rate=0;
1:
9:
tax=rate*(salary-850);
-:
10:
}
5:
11:
elseif(salary<=1350){
1:
12:
rate=0.05;
1:
13:
tax=rate*(salary-850);
-:
14:
}
4:
15:
elseif(salary<=2850){
1:
16:
rate=0.1;
1:
17:
tax=rate*(salary-850);
-:
18:
}
3:
19:
elseif(salary<=5850){
1:
20:
rate=0.15;
1:
21:
tax=rate*(salary-850);
-:
22:
}
-:
23:
else{
2:
24:
rate=0.2;
2:
25:
tax=rate*(salary-850);
-:
26:
}
6:
27:
printf("tax=%.2f\n",tax);
6:
28:
return0;
-:
29:
}
-:
30:
4.
3.1.9统计等级分个数
【问题描述】
输入一个正整数n,再输入n个学生的百分制成绩(整数),计算平均分,
并统计各等级成绩的个数。
成绩等级分为五级,
分别为A(90-100)、B(80-89)、C(70-79)、
D(60-69)和E(0-59)。
。
【输入形式】
从键盘输入正整数n的,然后再数入n个人的成绩。
【输入输出样例1】(下划线部分表示输入)
Entern:
5
Entergrade1:
77
Entergrade2:
54
Entergrade3:
92
Entergrade4:
73
Entergrade5:
60
ThenumberofA(90~100):
ThenumberofB(80~89):
0
ThenumberofC(70~79):
2
ThenumberofD(60~69):
1
ThenumberofE(0~59):
1
【样例说明】
输入提示符后要加一个空格。
例如“Entern:
”,其中“:
”后要加一个且只能一个空格。
输出语句的“=”两边无空格。
英文字母区分大小写。
必须严格按样例输入输出。
-:
1:
#include
-:
2:
intmain(void)
2:
3:
{
-:
4:
inti,n,a,b,c,f,e,grade;
2:
5:
printf("Entern:
");
2:
6:
scanf("%d",&n);
2:
7:
grade=0;
2:
8:
a=b=c=f=e=0;
10:
9:
for(i=1;i<=n;i++){
8:
10:
printf("Entergrade%d:
",i);
8:
11:
scanf("%d",&grade);
10:
12:
if(grade<=100&&grade>=90){
2:
13:
a++;}
6:
14:
elseif(grade<=89&&grade>=80){
#####:
15:
b++;}
9:
16:
elseif(grade<=79&&grade>=70){
3:
17:
c++;}
5:
18:
elseif(grade<=69&&grade>=60){
2:
19:
f++;}
1:
20:
elseif(grade<=59){
1:
21:
e++;}
-:
22:
}
2:
23:
printf("ThenumberofA(90~100):
%d\nThenumberofB(80~89):
%d\nThenumberofC(70~79):
%d\nThenumberofD(60~69):
%d\nThenumberofE(0~59):
%d\n",a,b,c,f,e);
2:
24:
return0;
-:
25:
}
1.
4.1.5编程题《求一批整数的最小值》
【问题描述】
输入一个正整数n,再输入n个整数,输出最小值。
【输入形式】
从键盘输入一个正整数n和n个整数。
【输入输出样例1】(下划线部分表示输入)
Inputn:
4
Inputnumbers:
-2-1231000
min=-123
【输入输出样例2】(下划线部分表示输入)
Inputn:
4
Inputnumbers:
-9-11-8
min=-9
【输入输出样例3】(下划线部分表示输入)
Inputn:
3
Inputnumbers:
531
min=1
【样例说明】
输入提示符后要加一个空格。
其中“:
”后要加一个且只能一个空格。
输入的数据之间以一个空格相隔。
输出语句的“=”两边无空格。
英文字母区分大小写。
必须严格按样例输入输出。
-:
1:
#include
-:
2:
intmain(void)
4:
3:
{
-:
4:
inti,number,min,n;
4:
5:
printf("Inputn:
");
4:
6:
scanf("%d",&n);
4:
7:
printf("Inputnumbers:
",n);
4:
8:
scanf("%d",&number);
4:
9:
min=number;
14:
10:
for(i=1;i10:
11:
scanf("%d",&number);
10:
12:
if(min>number)
3:
13:
min=number;
-:
14:
}
4:
15:
printf("min=%d\n",min);
4:
16:
return0;
-:
17:
}
2.
4.1.8编程题《求a+aa+aaa+aa…a(n个a)之和》
【问题描述】
输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。例如,输入2和3,输出246(2+22+222)。
【输入形式】
从键盘输入正整数a和正整数n。
【输入输出样例1】(下划线部分表示输入)
Inputa,n:
85
s=98760
【样例说明】
输入提示符后要加一个空格。
其中“:
”后要加一个且只能一个空格。
输出语句的“=”两边无空格。
英文字母区分大小写。
必须严格按样例输入输出。
-:
1:
#include
-:
2:
#include
-:
3:
intmain(void)
2:
4:
{
-:
5:
inti,a,n,item,s;
-:
6:
2:
7:
printf("Inputa,n:
");
2:
8:
scanf("%d%d",&a,&n);
-:
9:
2:
10:
item=0;
2:
11:
s=0;
-:
12:
16:
13:
for(i=1;i<=n;i++){
14:
14:
item=item*10+a;
14:
15:
s=s+item;
-:
16:
}
2:
17:
printf("s=%d\n",s);
-:
18:
2:
19:
return0;
-:
20:
}
-:
21:
3.
4.1.9编程题《自由落体运动——求第n次反弹落地经过的路程与第n次反弹高度》
【问题描述】
皮球从height米的高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,如此反复。
皮球在第n次反弹落地时,在空中经过的路程是多少米?
第n次反弹的高度是多少?
(输出保留1位小数)
【输入形式】
从键盘输入两个正整数height和n。
【输入输出样例1】(下划线部分表示输入)
Inputheight:
10
Inputn:
2
distance=25.0
height=2.5
【输入输出样例2】(下划线部分表示输入)
Inputheight:
100
Inputn:
8
distance=299.2
height=0.4
【样例说明】
输入提示符后要加一个空格。
其中“:
”后要加一个且只能一个空格。
输出语句分两行输出,并且输出语句的“=”两边无空格。
英文字母区分大小写。
必须严格按样例输入输出。
-:
1:
#include
-:
2:
intmain(void)
2:
3:
{
-:
4:
inti,n