**菜鸟个人学习用途,欢迎和谐交流;如有错误,请指正,感激不尽。 **
编程题
2.1 编写一个程序,使用printf在屏幕上显示下面的图形:(一个✔)
//方法1
int main(void)
{
printf(" *\n");
printf(" *\n");
printf(" *\n");
printf(" * *\n");
printf(" * *\n");
printf(" *\n");
return 0;
}
//方法2
int main(void)
{
printf("\n\
*\n\
*\n\
*\n\
* *\n\
* *\n\
*\n");
return 0;
}
//方法3
int main(void)
{
int i, j;
int var = 8; // 列
for(i = 0; i < 6; i++, var--) //i为行 var为列,每打印一行则i自加1,var自减1;
{
for(j = 0; j < var; j++)
{
if((j == 1 && var == 5) || (j == 2 && var == 4))
{
printf("*");
continue; //结束本次循环,已经打印了"*" 则不再打印" "
}
printf(" ");
}
printf("*\n");
}
return 0;
}
**2.2 编写一个计算球体体积的程序,其中球体半径为10 m,参考公式v= 4/3Πr²注意,分数4/3应写为4.0f/3.0f。(如果分数写成4/3会产生什么结果?)提示:C语言没有指数运算符,所以需要对自乘两次来计算
**
#include <stdio.h>
#define PI 3.14159
int main (void)
{
float r = 10 , val;
val = 4.0f/3.0f * PI * r * r * r;
printf("球体体积为: %.2f \n", val );
return 0 ;
}
2.3 修改上题中的程序,使用户可以自行录入球体的半径。
//方法1
#include <stdio.h>
#define PI 3.14159
int main (void)
{
float r, val;
printf("请输入球体半径:");
scanf ("%f", &r );
val = 4.0f/3.0f * PI * r * r * r;
printf("球体体积为: %.2f \n", val );
return 0 ;
}
//方法2
#include <stdio.h>
#define PI 3.14159
#define VAL(r) 4.0f/3.0f * PI * r * r * r
int main (void)
{
float r;
printf("请输入球体半径:");
scanf ("%f", &r );
printf("球体体积为: %.2f \n", VAL(r));
return 0 ;
}
2.4编写一个程序,要求用户输入一个美金数量,然后显示出增加5%税率后的相应金额
#include <stdio.h>
#define TAX_RATE 1.05f
int main(void)
{
float count;
printf("enter an amount :");
scanf("%f", &count);
printf("With tax added : $%.2f\n", TAX_RATE * count );
return 0;
}
2.5编程要求用户输入x的值,然后显示如下多项式的值:
3x5+2x4-5x3-x2+7x-6
#include <stdio.h>
#define POLY01(x) (3*x*x*x*x*x + 2*x*x*x*x - 5*x*x*x - x*x + 7*x - 6)
int main(void)
{
float x;
printf("请输入多项式X的值:");
scanf("%f", &x);
printf("多项式的值为:%.2f\n", POLY01(x));
return 0;
}
2.6修改上题,用如下公式对多项式求值:
(((3x+2)x-5)x-1)x + 7)x -6
#include <stdio.h>
#define POLY01(x) (3*x*x*x*x*x + 2*x*x*x*x - 5*x*x*x - x*x + 7*x - 6)
#define POLY02(x) ((((3*x + 2)*x - 5)*x - 1)*x + 7)*x -6
int main(void)
{
float x;
printf("请输入多项式X的值:");
scanf("%f", &x);
printf("多项式的值为:%.2f\n", POLY01(x));
printf("多项式的值为:%.2f\n", POLY02(x));
return 0;
}
2.7编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1
美元来付款:
#include <stdio.h>
#define BILL_20(x) (x / 20)
#define BILL_10(x) (x % 20 / 10)
#define BILL_05(x) (x % 20 % 10 / 5)
#define BILL_01(x) (x % 20 % 10 % 5)
int main(void)
{
int x;
printf("Enter a dollar amount : ");
scanf("%d",&x);
printf("$20 bills: %d\n", BILL_20(x) );
printf("$10 bills: %d\n", BILL_10(x) );
printf("$05 bills: %d\n", BILL_05(x) );
printf("$01 bills: %d\n", BILL_01(x) );
return 0;
}
2.8编程计算第一、第二、第三个月还贷后剩余的贷款金额
#include <stdio.h>
//月利率的计算方法:年利率除以12,别忘了百分号。乘以0.01 或者除以100
#define MONTH_RATE(rate) (rate * 0.01 / 12)
//每个月的贷款余额减去还款金额后,还需加上贷款余额与月利率的乘积
#define AMOUNT (loan - monthly_payment)
#define AMOUNT01 (AMOUNT + loan * MONTH_RATE(rate) )
#define AMOUNT02 (AMOUNT01 - monthly_payment + AMOUNT01 * MONTH_RATE(rate))
#define AMOUNT03 (AMOUNT02 - monthly_payment + AMOUNT02 * MONTH_RATE(rate) )
int main(void)
{
float loan , rate , monthly_payment;
printf("Enter amount of loan:");
scanf("%f", &loan);
printf("Enter interest rate:");
scanf("%f", &rate);
printf("Enter monthly payment:");
scanf("%f", &monthly_payment);
printf("Balance remaining after first payment:$%.2f \n", AMOUNT01 );
printf("Balance remaining after second payment:$%.2f \n", AMOUNT02 );
printf("Balance remaining after third payment:$%.2f \n", AMOUNT03 );
return 0;
}
持续回顾与总结:
2023.01.21
1、/**/注释 不可嵌套注释 。 可使用 #if 0 … … #endif 注释一段代码;
2、宏定义中表达式一定要加上括号,以防当使用宏定义时,外部的表达式和宏定义里的表达式结合成不是程序所预期的表达式;
3、在代码编写过程中要书写必要的注释,合理的缩减,形成良好的代码风格;
…
思维导图: