D) 宏定义命令也是语句,必须以分号结束
8. 宏定义的#define PI 3.14中,用宏名PI 代表一个( )。
A) 单精度数 C) 字符变量 B) 双精度数 D) 符号常
四、 章节编程训练
1. 数据类型、运算符与表达式
1. 补充以下程序,实现从键盘输入一个整数,输出该数的平方。 #include
int x;
scanf(“%d”,&x); printf(“%d”,x*x); }
2. 补充以下程序,
#include
/**/ float f; /**/ 定义一个变量来存放表达式的值,注意应定义成浮点型,因为结果包含小数
printf(\ scanf(\
f = /**/ (fabs(x)-2)/(x*x+1) /**/ ; 表达式书写时注意分子分母用括号括起来 printf(\ getch(); }
3. 编写程序,使其计算表达式的值,运行并观察结果。
31
#include
return (1+sin(x)+exp(x))/(1+x); /**/ }
void main() {
clrscr();
printf(\ printf(\ printf(\}
4. 编写程序,根据三角形的三条边长a,b,c用公式
#include
/**/ double /**/ fun(float a,float b,float c)函数类型由返回值类型确定,因area是float型所以可设为double或float型
{
float s,area ;
s = /**/ (a+b+c)/2 /**/;根据题意可知 s = s*(s-a)*(s-b)*(s-c);计算面积 if( s < 0 ) 不能构成三角形的情况 area = -1; else
area = sqrt(s); return area ; }
main() {
float a,b,c,area;
printf(\
scanf(\输入三边长,注意scanf格式,本题输入时不能用逗号隔
开,应用空格或回车
area = fun(a,b,c);调用fun函数,传递三边长,计算面积,并接收fun函数返回的面积存
于area中
printf(\ getch(); }
32
2. 分支语句编写程序,使其计算以下分段函数
#include
void main() {
double x,y;
scanf(\
if(x>2) y=fabs(1.23*x-9);
else if(x = = 2) y=exp(x)+pow(x,3); else y=cos(x); printf(\}
1.
编写程序完成其中实现对输入的一个月工资数额,求应交税款,设应交税款的计算公式如下: 0 x≤1600 (x-1600)*5%-25 1600 f(x)= (x-1600)*10%-25 2100 (x-1600)*15%-125 x>3100 例如:输入:1825 输出: 输入:2700 输出: f?1825??11.25 f?2700??85.00 f?5655??483.25 输入:5655 输出:#include /**/if else 多层选择结构,本题题目出错,第2个表达式应该没有-25,考试时注意下,不要 -25 就跟答案一样了 double y; if(x<=1600) y=0; else if(x<=2100) y=(x-1600)*0.05; else if(x<=3100) y=(x-1600)*0.1-25; else y=(x-1600)*0.15-125; 33 return y; /**/} void main() { float x; double y; clrscr(); printf(\ scanf(\ y = f(x); printf(\ getch();} #include int fun(/**/ float a,float b,float c /**/)形式参数是用来接受被main函数调用时 传递给它的值的,故其类型跟传给它的值类型一致,观察main函数,传给它的值都是float型,故此处定义为float型,另注意定义形参时,每个变量前都应该加类型说明,即不能写为float a,b,c { float temp; int bTrue = 0;bTrue做为返回值,从下面程序分析可知0代表不能构成直角三角形,1代表 可构成,此处先假设不能构成 if(a if(a 以上两个if语句后使a存放的是三边中的最大边长 if( fabs(/**/ a*a /**/ - (b*b + c*c)) < 1.0e-15)若两边平方和与另一边平方和的 绝对值小于一个极小数,则构成直角三角形 bTrue = 1;能构成直角三角形 给bTrue赋值为1 return bTrue; } main() 34 { float a,b,c; printf(\ scanf(\,%f,%f\ if( fun(a,b,c) == 1) a,b,c的类型决定了fun函数内参数的类型 printf(\ else printf(\ getch(); } 3. 循环 1. 计算s=1+12+123+1234+12345 编写程序计算s=1+12+123+1234+12345。 #define N 5 #include int t=0,/**/ s=0 /**/,i; s记得赋初值 for(i=1;i<=N;i++) { t=/**/ t*10+i /**/; t存入累加项,观察给定表达式可知 其值为上一个 累加项*10+i s+=t; } clrscr(); printf(\ getch(); } 2. 补充程序Ccon 081.c,根据输入的整数m(m>=0)值,计算 ?i. i?1m#include unsigned sum(unsigned n) { unsigned i,/**/ sum=0; /**/ 累加和sum记得赋初值0 for(i=1;i<=n;i++) sum+=i; /**/ return sum; /**/ 返回结果 } void main() { int m; 35