1、C语言上机练习参考答案 第1章 C语言概述1-1 编写程序,在屏幕上显示一个如下输出: - Programming in C is fun! I love C language. -Program#include main() printf(-n); printf(Programming in C is fun!n); printf(I love C language.n); printf(-n);1-2 编写程序,在屏幕上显示一个如下图案: * * * * * * * * * *Program (1)#include main() printf(* * * *n); printf( * *
2、*n); printf( * *n); printf( *n );Program (2) #include main() printf(%c%4c%4c%4cn, *, *, *, *); printf(%3c%4c%4cn, *, *, *); printf(%5c%4cn, *, *); printf(%7cn , *);1-3 已知某个圆的半径,编写一个程序,用来计算并显示面积。要求:将定义为符号常量,并假设一个恰当的半径值。Program#include #define PI 3.14main() float r=5, s; s = PI*r*r; printf(The area of
3、 circle is: %.2fn, s);Output The area of circle is: 78.501-4 已知两个整数20和10,编写程序,自定义函数add( )将这两个数相加,自定义函数sub( )计算这两个数的差,并按照下面形式显示计算结果: 20+10=30 20-10=10Program#include int add(int a, int b) return (a+b);int sub(int a, int b) return (a-b);main() int a=20, b=10; printf(%d + %d = %dn, a, b, add(a, b); pri
4、ntf(%d - %d = %dn, a, b, sub(a, b);Output 20 + 10 = 3020 10 = 101-5 已知变量a、b和c的值,编写程序,用来计算并显示x的值,其中请分别用以下数值运行该程序(1)a=250,b=85,c=25(2)a=300,b=70,c=80Program (1)#include main() int a=250, b=85, c=25; float x; x=1.0*a/(b-c); printf(x = %.2fn, x);Output (1)x = 4.17Program (2)#include main() int a=300, b=
5、70, c=80; float x; x=1.0*a/(b-c); /*试写成x=a/(b-c); 得到什么运行结果?为什么?*/ printf(x = %.2fn, x);Output (2)x = -30.00 第2章 常量、变量及数据类型 & 第3章 运算符和表达式3-1 编写程序,求华氏温度100oF对应的摄氏温度。计算公式如下: 式中:c表示摄氏温度,f表示华氏温度。(c定义为实型,f定义为整型)Program #include main() int f=100; float c; c=5.0*(f-32)/9; /*如果是c=5*(f-32)/9; 会是什么结果?为什么?*/ pr
6、intf(Celsius degree (corresponding to %d Fahrenheit) is: %.2f.n, f, c);Output Celsius degree (corresponding to 100 Fahrenheit) is: 37.78.3-2 一个物体从100m的高空自由落下,编写程序,求它在前3s内下落的垂直距离。设重力加速度为10m/s2。要求,将重力加速度定义为符号常量,尝试将其改为9.8 m/s2,看结果有何不同?Program #include #define G 10main() int t=3; float s; s=1.0/2*G*t*t;
7、 /*如果是s=1/2*G*t*t; 会是什么结果?为什么?*/ printf(The falling vertical distance (in %d seconds) is: %.2f.n, t, s);Output The falling vertical distance (in 3 seconds) is:45.00.3-3 将球的半径R定义为符号常量,计算球的表面积(4R2)和体积(4/3*R3)。Program #include #define R 5.2#define PI 3.14main() float s, v; s=4*PI*R*R; v=4.0/3*PI*R*R*R;
8、 printf(The surface area of the ball (radius is %.2f) is: %.2f, and the volume is: %.2f.n, R, s, v);Output The surface area of the ball (radius is 5.20) is: 339.62, and the volume 588.68.3-4 给定x、y和z的值,编写程序,使x等于y的值,y等于z的值,z等于x的值。Program #include main() int x=1, y=2, z=3, t; printf(Before swap: x=%d,
9、y=%d, z=%d.n, x, y, z); t=x; x=y; y=z; z=t; /*变量t的作用是什么?*/ printf(After swap: x=%d, y=%d, z=%d.n, x, y, z);Output Before swap: x=1, y=2, z=3.After swap: x=2, y=3, z=1.3-5 编写一个程序,给定一个浮点数(例如456.78),显示该数的十位数字与个位数字之和(例如5+6=11)。Program (1)#include main() float f=456.78; int n, a, b; n=f; a = n%10; /*赋值后,
10、a是什么值?*/ b = n/10%10; /*赋值后,b是什么值?*/ printf(The sum of the tens digit and units digit of %.2f is: %d + %d = %d.n, f, b, a, a+b);Program (2)#include main() float f=456.78; int n, a, b; n=f; a = n%10; b = n%100/10; /*该语句与上面程序不同,看看有何区别?*/ printf(The sum of the tens digit and units digit of %.2f is: %d
11、+ %d = %d.n, f, b, a, a+b);Output The sum of the tens digit and units digit of 456.78 is: 5+ 6 = 11.3-6 某种物品每年折旧费的计算方法如下: 编写一个程序,当给定某物品的购买价格、使用年限和每年的折旧费时,计算出其废品价值。Program #include main() float price=120.65, year=3, depreciation=10.2, value; value = price - year*depreciation; printf(The scrap value i
12、s %.2f.n, value);Output The scrap value is 90.05.3-7 在库存管理中,某单个物品的经济定购数EOQ由下面等式给定: 而最优的定购时间间隔TBO由下面等式给定: 编写程序,给定需求率(单位时间内的物品数)、生产成本(每个定购)和储备成本(单位时间内每种物品),计算EOQ和TBO。Program #include #include main() int demand=1000; float product_cost=3.5, storage_cost=0.63, eoq, tbo; eoq=sqrt(2*demand*product_cost/st
13、orage_cost); tbo=sqrt(2*product_cost/demand/storage_cost); printf(EOQ is %.2f, and TBO is %.2f.n, eoq, tbo); Output EOQ is 105.41, and TBO is 0.11. 第4章 输入输出操作管理4-1 输入两个数,将它们交换后输出。Program #include main() int x, y, t; printf(Please input 2 numbers: ); scanf(%d%d, &x, &y); printf(Before swap, the 2 num
14、bers are: %d, %dn, x, y); t=x; x=y; y=t; printf(After swap, the 2 numbers are: %d, %dn, x, y); Output Please input 2 numbers: 3 5 /* Blue is input */Before swap, the 2 numbers are: 3, 5After swap, the 2 numbers are: 5, 34-2 输入一个十进制数,输出对应的八进制数和十六进制数。Program #include main() int n; printf(Please input
15、a decimal number: ); scanf(%d , &n); printf(The octal is %o, and the hexadecimal is %x.n, n, n);Output Please input a decimal number: 10 /* Blue is input */The octal is 12, and the hexadecimal is a.考虑:如何得到下面的输出?Please input a decimal number: 10 /* Blue is input */The octal is 012, and the hexadecima
16、l is 0xa.4-3 编写程序,输入3个整数,计算并输出它们的平均值。Program #include main() int a, b, c; printf(Please input 3 integers: ); scanf(%d%d%d, &a, &b, &c); printf(The average is %.2f.n, (a+b+c)/3.0);Output Please input 3 integers: 4 7 -19 /* Blue is input */The average is -2.67.4-4 编写一个程序,读取x和y的值,显示下面表达式的值:(1)(2)(3)Pro
17、gram #include main() float x, y; printf(Please input x and y: ); scanf(%f%f, &x, &y); printf(1) (x+y)/(x-y) = %.2fn, (x+y)/(x-y); printf(2) (x+y)/2 = %.2fn, (x+y)/2); printf(3) (x+y)(x-y) = %.2fn, (x+y)*(x-y);Output Please input x and y: 3.5 4.1 /* Blue is input */(1) (x+y)/(x-y) = -12.67(2) (x+y)/2
18、 = 3.80(3) (x+y)(x-y) = -4.564-5 计算银行存款的本息。编写程序,输入存款金额money、存期year和年利率rate,根据下列公式计算存款到期时的本息合计sum(税前),输出时保留两位小数。 Program #include #include main() float money, rate, sum; int year; printf(Please input the deposit money: ); scanf(%f, &money); printf(Please input the deposit period: ); scanf(%d, &year);
19、 printf(Please input the annual interest rate: ); scanf(%f, &rate); sum=money*pow(1+rate, year); printf(The total principal and interest is: %.2fn, sum);Output Please input the deposit money: 2500 /* Blue is input */Please input the deposit period: 3 /* Blue is input */Please input the annual intere
20、st rate: 0.023 /* Blue is input */The total principal and interest is: 2676.504-6 输入圆柱的高h和半径r,求圆柱体积volume=*r2*h。Program #include #define PI 3.14main() float volume, r, h; printf(Please input the radius of the cylinder: ); scanf(%f, &r); printf(Please input the height of the cylinder: ); scanf(%f, &h
21、); volume=PI*r*r*h; printf(The volume of the cylinder is: %.2fn, volume);Output Please input the radius of the cylinder: 3.5 /* Blue is input */Please input the height of the cylinder: 12.7 /* Blue is input */The volume of the cylinder is: 488.514-7 编写一个程序,读取一个实数f,将其四舍五入的值赋值给整型变量n,输出n的值。(尝试不用if语句完成本
22、程序,并考虑负数是否适用)Program (1)#include main() float f; int n, m; printf(Please input a real number: ); scanf(%f, &f); m=f*10; m=m%10/5; /*m是什么值?*/ n=f; n=n+m; /*m有何作用?*/ printf(The rounded integer is: %dn, n);Program (2) 如果不明白if语句,可以在学完第5章后再看。#include main() float f; int n, m; printf(Please input a real n
23、umber: ); scanf(%f, &f); n=f+0.5; /*是否理解该语句?*/ printf(The rounded integer is: %dn, n);Output (1)Please input a real number: 3.6 /* Blue is input */The rounded integer is: 4Output (2)Please input a real number: -13.2 /* Blue is input */The rounded integer is: -134-8 编写程序,读入两个两位数字的整数,并按照如下形式输出这两个整数的乘积
24、。 4 5 * 3 7 3 1 5 1 3 5 1 6 6 5提示:注意格式!Program #include main() int x, y, m, n; printf(Please input 2 integers: ); scanf(%d%d, &x, &y); printf(%5dn *%3dn-n, x, y); m=y%10; n=y/10; printf(%5dn%4dn-n%5dn, x*m, x*n, x*y); 第5章 判断与分支5-1 输入一个字符ch,根据不同情况进行输出:(1)ch为小写字母,输出对应的大写字母;(2)ch为大写字母,按照原样输出;(3)ch为数字,输
25、出对应的数字;(4)ch为其他字符,输出“Other character.”。Program #include main() char ch; printf(Please input a character: ); ch=getchar(); if (ch=a & ch=A & ch=0 & ch=9) printf(%dn, ch-0); else printf(Other character.n);Output (1)Please input a character: A /* Blue is input */AOutput (2)Please input a character: b /
26、* Blue is input */BOutput (3)Please input a character: 3 /* Blue is input */3Output (4)Please input a character: /* Blue is input */Other character.5-2 为鼓励居民节约用水,自来水公司采用按月用水量分段计费的办法,居民应交水费y元与月用水量x吨的函数关系式如下(设x0)。 编写程序,输入用户的月用水量x吨,计算并输出该用户应支付的水费y元(保留两位小数)。Program #include main() float x, y; printf(Ple
27、ase input the water consumption: ); scanf(%f, &x); if(x=15) y=4*x/3; /*是否可以写成y=4/3*x;?区别在哪里?*/ else y=2.5*x-10.5; printf(The water price is: %.2f. n, y);Output Please input the water consumption: 27.9 /* Blue is input */The water price is: 59.255-3 输入一个年份year,判断year是否为闰年。year若为闰年,需要满足下列条件之一:(1)能被4整除,但不能被100整除(如2004年是闰年,2100年不是闰年)(2)能被400整除(如2000年是闰年)Program #include main() int year
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1