指导老师:叶晓红
7-1 简单题 (5分)
这次真的没骗你 —— 这道超级简单的题目没有任何输入。
你只需要在一行中输出事实:This is a simple problem. 就可以了。
#include<stdio.h>
int main()
{
printf("This is a simple problem.");
}
简单的输出,要注意一下输出格式,符号。
7-2 将x的平方赋值给y (5分)
假设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 argc, char *argv[]) {
printf("9 = 3 * 3\n3 * 3 = 9");
return 0;
}
进行一个简单的输出,按照题目格式要求输出就好
7-3 A乘以B (10分)
看我没骗你吧 —— 这是一道你可以在10秒内完成的题:给定两个绝对值不超过100的整数A和B,输出A乘以B的值。
输入格式:
输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。
输出格式:
在一行中输出A乘以B的值。
输入样例:
-8 13
输出样例:
-104
#include <stdio.h>
int main()
{
int A,B;
scanf("%d %d",&A,&B);
printf("%d\n",A*B);
return 0;
}
输入两个数,对这两个数进行乘法运算,要注意scanf的取地址符号“&”不要丢
7-4 是不是太胖了 (5分)
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤的数值是公斤数值的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)
输入格式:
输入第一行给出一个正整数H(100 < H ≤ 300),为某人身高。
输出格式:
在一行中输出对应的标准体重,单位为市斤,保留小数点后1位。
输入样例:
169
输出样例:
124.2
#include<stdio.h>
int main ()
{
double H,weight ;
scanf("%lf",&H);
weight=(H-100)*0.9*2;
printf("%.1f\n",weight);
return 0;
}
理解题目是关键,根据题目意思可得,体重=(身高-100)X 0.9 X 2,注意题目说的是市斤,为公斤的2倍,根据题目列出相应的变量并赋值,最后还要注意保留以为小数,“%.1f”
7-5 输出各位数字 (10分)
给定一个三位正整数,输出其百位数字、十位数字及个位数字。
输入格式:
直接输入一个三位正整数,没有其它任何附加字符。
输出格式:
在一行中输出所输入正整数的各个位数字,各个数字之间用逗号间隔,没有其它任何附加字符。
输入样例:
258
输出样例:
2,5,8
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
printf("%d,%d,%d",n/100,(n/10)%10,n%10);
return 0;
}
本题要注意“%”和“/”运算符的使用,/为所得结果的商,没有余数,%为所得结果的余数,例如258/100,得2,省略余数58,而258%100得58,省略商2,因此就本题来看,用n/100得到输入的三位数的百位,n/10得到三位数的百位、十位,再对结果进行取模运算,得到十位,省略百位,n%10直接得到个位。
7-6 整数四则运算 (10分)
本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。
输入格式:
输入在一行中给出2个正整数A和B。
输出格式:
在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。
输入样例:
3 2
输出样例:
3 + 2 = 5
3 - 2 = 1
3 * 2 = 6
3 / 2 = 1
#include<stdio.h>
int main()
{
int A, 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("%d / %d = %d\n", A, B, A / B);
}
本题不难,要注意题目上面的输出格式,注意空格,scanf要注意取地址符。
7-7 计算银行存款的本息 (5分)
本题目要求计算银行存款的本息,计算公式为sum=money×(1+rate)^year,其中sum为存款到期时的本息合计(税前),money是存款金额,year是存期,rate是年利率。
输入格式:
输入在一行中顺序给出两个正整数money、year和一个正实数rate,以空格分隔。
输出格式:
在一行中按“sum = 本息”的格式输出,其中本息保留两位小数,请注意等号的左右各有一个空格。
输入样例:
1000 3 0.025
输出样例:
sum = 1076.89
#include <stdio.h>
#include "math.h"
int main(int argc, char *argv[]) {
int money,year;
float rate;
float sum = 0;
scanf("%d %d %f",&money,&year,&rate);
sum = money*pow((1+rate),year);
printf("sum = %.2f",sum);
}
题目理解并不难,要注意引用“math.h”文件,以及pow函数的使用
pow 函数
原型:extern float pow(float x, float y);
功能:计算x的y次幂。
7-9 计算分段函数[1] (10分)
本题目要求计算下列分段函数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>
int main(int argc, char *argv[]) {
float x=0.0;
scanf("%f",&x);
if(x!=0)
printf("f(%.1f) = %.1f",x,1/x);
if(x==0)
printf("f(0.0) = 0.0");
}
这里我用了两个if语句来编写程序,题目本身不难理解,要注意题目要保留的小数个数,第二个判断条件中x==0是两个等于号而不是一个,二者意义是不同的。
7-10 计算分段函数[2] (10分)
本题目要求计算下列分段函数f(x)的值:
注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。
输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。
输入样例1:
10
输出样例1:
f(10.00) = 3.16
输入样例2:
-0.5
输出样例2:
f(-0.50) = -2.75
#include <stdio.h>
#include "math.h"
int main(int argc, char *argv[]) {
float x=0.0;
scanf("%f",&x);
if(x>=0)
printf("f(%.2f) = %.2f",x,pow(x,0.5));
if(x<0)
printf("f(%.2f) = %.2f",x,pow(x+1,2)+2*x+1/x);
}
本题同样用到了pow函数,再来复习一下吧,pow(x,y),求x的y次幂,题目sqrt函数在这里并没有用到,sqrt(x),它是用来计算x的平方根的。
7-11 偶数乘2奇数乘3 (10分)
输入一个整数x,如果为偶数乘2,否则乘3,然后输出。
输入格式:
直接输入一个整数,没有其它任何附加字符。
输出格式:
在一行中按照“y=结果”的顺序输出,结果原样输出,没有其它附加格式。
输入样例:
3
输出样例:
y=9
输入样例:
2
输出样例:
y=4
#include <stdio.h>
int main(int argc, char *argv[]) {
int x=0;
scanf("%d",&x);
if(x%2==0)
printf("y=%d",x*2);
if(x%2!=0)
printf("y=%d",x*3);
}
本题只要知道如何判断一个数是不是偶数,就能迎刃而解了,最直观的方法就是对2取余,如果为0,表示整除,即为偶数。否则为奇数。n%2 == 0 则为偶数 n%2 ==1 则为奇数
7-12 整除问题 (10分)
判断一个数是否能被另一个整数整除是一个挺简单的问题,懒惰的小明还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。
输入格式:
输入包括两个由空格分开的整数 M和 N(1≤M,N≤500)。
输出格式:
输出包括一行,如果 M 可以被 N
整除就输出YES,否则输出NO(结果大小写敏感)。
输入样例:
21 7
输出样例:
YES
#include <stdio.h>
int main(int argc, char *argv[]) {
int x=0;
int y=0;
scanf("%d %d",&x,&y);
if(x%y==0)
printf("YES");
else
printf("NO");
}
就像题目所说,判断一个数是否能被另一个整数整除是一个挺简单的问题,的确,只要一个数除以另一个数,没有余数,不就被整除了嘛。也就是看x%y是否等于0.