实验2-1-1 计算摄氏温度
本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。
输入格式:本题目没有输入。
输出格式:按照下列格式输出
fahr = 100, celsius = 计算所得摄氏温度的整数值
#include<stdio.h> main(){ int C,F=100; C = 5*(F-32)/9; printf("fahr = 100, celsius = %d",C); return 0; }
实验2-1-2 温度转换
本题要求编写程序,计算华氏温度150°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。
输入格式:本题目没有输入。
输出格式:按照下列格式输出
fahr = 150, celsius = 计算所得摄氏温度的整数值
#include<stdio.h> int main(){ int F=150,C; C=5*(F-32)/9; printf("fahr = %d, celsius = %d",F,C) ; return 0; }
实验2-1-3 计算物体自由下落的距离
一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒2。
输入格式:本题目没有输入。
输出格式:按照下列格式输出
height = 垂直距离值
#include<stdio.h> int main(){ float H; int g=10,t=3; H=(g*t*t)/2; printf("height = %0.2f",H) ; return 0; }
实验2-1-4 计算平均分
已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。
输入格式:本题无输入
输出格式:按照下列格式输出结果:
math = 87, eng = 72, comp = 93, average = 计算所得的平均成绩
#include<stdio.h> main(){ int math=87,eng=72,comp=93, average; average = (math+eng+comp)/3; printf("math = 87, eng = 72, comp = 93, average = %d",average); return 0; }
实验2-1-5 将x的平方赋值给y
假设x的值为3,计算x的平方并赋值给y,分别以“y = x ∗ x”和“x ∗ x = y”的形式输出x和y的值。
输入格式:本题无输入
输出格式:按照下列格式输出代入x
=3的结果:
y = x * x x * x = y
#include<stdio.h> int main(){ int x=3,y; y = x*x; printf("%d = %d * %d\n",y,x,x); printf("%d * %d = %d\n",x,x,y); return 0; }
实验2-1-6 计算华氏温度
本题要求编写程序,计算摄氏温度26°C 对应的华氏温度。计算公式:F=9×C/5+32,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。
输入格式:本题目没有输入。
输出格式:按照下列格式输出
celsius = 26, fahr = 对应的华氏温度整数值
#include<stdio.h> int main(){ int F,C=26; F=9*C/5+32; printf("celsius = %d, fahr = %d",C,F); return 0; }
实验2-1-7 整数152的各位数字
本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
输入格式:本题无输入。
输出格式:按照以下格式输出:
152 = 个位数字 + 十位数字*10 + 百位数字*100
#include<stdio.h> int main(){ int d=152,a,b,c; a = d%10; b = d/10%10; c = d/100; printf("152 = %d + %d*10 + %d*100",a,b,c); return 0; }
实验2-2-1 计算分段函数[1
本题目要求计算下列分段函数f(x)的值:
输入格式:输入在一行中给出实数x。
输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。
输入样例1:
10
输出样例1:
f(10.0) = 0.1
输入样例2:
0
输出样例2:
f(0.0) = 0.0
#include<stdio.h> main(){ float x,y; scanf("%f",&x); if (x!=0){ y = 1/x; } else y = x; printf("f(%.1f) = %.1f\n",x,y); return 0; }
实验2-2-2 计算摄氏温度
给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。题目保证输入与输出均在整型范围内。
输入格式:输入在一行中给出一个华氏温度。
输出格式:在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。
输入样例:
150
输出样例:
Celsius = 65
#include<stdio.h> int main(){ int C,F; scanf("%i",&F); C = 5*(F-32)/9; printf("Celsius = %i",C); return 0; }
实验2-2-3 计算存款利息
本题目要求计算存款利息,计算公式为interes**t=mon**ey×(1+rat**e)year−mon**ey,其中interes**t为存款到期时的利息(税前),mon**ey是存款金额,year是存期,rat**e是年利率。
输入格式:输入在一行中顺序给出三个正实数mon**ey、year和rat**e,以空格分隔。
输出格式:在一行中按“interest = 利息”的格式输出,其中利息保留两位小数。
输入样例:
1000 3 0.025
输出样例:
interest = 76.89
#include<stdio.h> #include<math.h> main (){ double interes,money,year,rate; scanf("%lf %lf %lf",&money,&year,&rate); interes = money* pow(1+rate,year)-money; printf("interest = %.2f\n",interes); return 0; }
实验2-3-4 求简单交错序列前N项和
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
输入格式:输入在一行中给出一个正整数N。
输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
输入样例:
10
输出样例:
sum = 0.819
#include<stdio.h> int main(){ int n,x=1,j=1; double sum =0; scanf("%d",&n); for(int i=0;i<n;i++){ sum += (1.0/j)*x; j=j+3; x=-1*x; } printf("sum = %.3f",sum); return 0; }
实验2-3-5 输出华氏-摄氏温度转换表
输入2个正整数lower
和upper
(lower
≤upper
≤100),请输出一张取值范围为[lower
,upper
]、且每次增加2华氏度的华氏-摄氏温度转换表。
温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。
输入格式:
在一行中输入2个整数,分别表示lower
和upper
的值,中间用空格分开。
输出格式:
第一行输出:"fahr celsius"
接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。
若输入的范围不合法,则输出"Invalid."。
输入样例1:
32 35
输出样例1:
fahr celsius 32 0.0 34 1.1
输入样例2:
40 30
输出样例2:
Invalid.
#include<stdio.h> int main(){ int lower,upper,f; double c; scanf("%d %d",&lower,&upper); if(lower<=upper&&upper<=100){ printf ("fahr celsius\n"); for(f=lower;f<=upper;f=f+2){ c = 5.0*(f-32)/9.0; printf ("%d%6.1f\n",f,c); } }else{ printf("Invalid."); } return 0; }
实验2-3-6 求交错序列前N项和
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
输入格式:输入在一行中给出一个正整数N。
输出格式:在一行中输出部分和的值,结果保留三位小数。
输入样例:
5
输出样例:
0.917
#include<stdio.h> int main(){ int N,x=1,j=1; double sum=0; scanf("%d",&N); for(int i=1;i<=N;i++){ sum += x*(i*1.0/j); x*=-1; j = j+2; } printf("%.3f",sum); return 0; }
实验2-3-7 求平方与倒数序列的部分和
本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。
输入格式:
输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。
输入样例:
5 10
输出样例:
sum = 355.845635
#include<stdio.h> #include<math.h> int main(){ int m,n; double sum=0; scanf("%d %d",&m,&n); if(m<=n){ for(int i=m;i<=n;i++){ sum+=pow(i,2)+1.0/i; } } printf("sum = %.6f",sum); return 0; }
实验2-4-2 生成3的乘方表
输入一个非负整数n,生成一张3的乘方表,输出30~3n的值。可调用幂函数计算3的乘方。
输入格式:
输入在一行中给出一个非负整数n。
输出格式:
按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。
输入样例:
3
输出样例:
pow(3,0) = 1 pow(3,1) = 3 pow(3,2) = 9 pow(3,3) = 27
#include<stdio.h> #include<math.h> int main() { int m,n; scanf("%d",&n); for(int i=0; i<=n; i++) { m=pow(n,i); printf("pow(%d,%d) = %d\n",n,i,m); } return 0; }
实验2-4-3 求平方根序列前N项和
本题要求编写程序,计算平方根序列1+2+3+⋯的前N项之和。可包含头文件math.h
,并调用sqrt
函数求平方根。
输入格式:输入在一行中给出一个正整数N。
输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。
输入样例:
10
输出样例:
sum = 22.47
#include<stdio.h> #include<math.h> int main() { int n; double sum=0; scanf("%d",&n); for(int i=0; i<=n; i++) { sum+=sqrt(i); } printf("sum = %.2f",sum); return 0; }
实验2-4-4 求阶乘序列前N项和
本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。
输入格式:输入在一行中给出一个不超过12的正整数N。
输出格式:在一行中输出整数结果。
输入样例:
5
输出样例:
153
//分析:求累加需要使用循环函数,求阶乘需要自定义一个函数用于求阶乘 #include<stdio.h> int funcation(int a); int main() { int n,sum=0; scanf("%d",&n); for(int i=1;i<=n;i++){ sum += funcation(i); } printf("%d",sum); return 0; } int funcation(int a){ int sum=1; for(int i=1;i<=a;i++){ sum *=i; } return sum; }
实验2-4-6 求幂之和
本题要求编写程序,计算sum=21+22+23+⋯+2n。可以调用pow函数求幂。
输入格式:输入在一行中给出正整数n(≤10)。
输出格式:按照格式“result = 计算结果”输出。
输入样例:
5
输出样例:
result = 62
#include<stdio.h> #include<math.h> int main() { int n,sum=0; scanf("%d",&n); for(int i=1;i<=n;i++){ sum += pow(2,i); } printf("result = %d",sum); return 0; }
实验2-4-7 求组合数
本题要求编写程序,根据公式Cnm=n!/m!(n−m)!算出从n个不同元素中取出m个元素(m≤n)的组合数。
建议定义和调用函数fact(n)
计算n!
,其中n
的类型是int
,函数类型是double
。
输入格式:输入在一行中给出两个正整数m和n(m≤n),以空格分隔。
输出格式:按照格式“result = 组合数计算结果”输出。题目保证结果在double
类型范围内。
输入样例:
2 7
输出样例:
result = 21
//分析:调用自定义函数完成阶乘 #include<stdio.h> double fact(int n); int main(){ double result; int m,n; scanf("%d %d",&m,&n); result = fact(n)/(fact(m)*fact(n-m)); printf("result = %.f",result); return 0; } double fact(int n){ double sum=1; for(int i=2;i<=n;i++){ sum*=i; } return sum; }