成都信息工程学院C语言作业答案



《成都信息工程学院C语言作业答案》由会员分享,可在线阅读,更多相关《成都信息工程学院C语言作业答案(68页珍藏版)》请在文档大全上搜索。
1、分类一1. 编写一程序P1-111.C实现以下功能x(x只考虑整数int且必须定义为int、但F(x)完全可能超过int的表示范围)通过键盘输入(输入前给出提示Please input x:),然后计算并在屏幕上输出函数值。注意,图1中的括号不是<>而是(),编程可用素材:printf("Please input x: ").。 -5x+27 (x<0)F(x)= 7909 (x=0)2x-1 &
2、#160; (x>0)程序的运行效果应类似地如图1所示,图1中的3是从键盘输入的内容。#include < stdio.h >int main(void)int x;double y;printf("Please input x:");scanf("%d", &x);if (x > 0)y = (double) 2 * x - 1;elseif (x = 0)y = (double) 7909;elsey = (double) - 5 * x + 27;printf("nF(%d
3、) = %.0lfn", x, y);return 0;2. P1-113已知某银行整存整取存款不同期限的年息利率分别为:3.15%期限一年,3.63%期限二年, 4.02%期限三年,4.69%期限五年,5.36%期限八年。从键盘上输入存钱的本金(以元为单位,必须定义为int且应考虑金额很大的情况)和存款期限(只考虑1,2,3,5,8),求到期时能从银行得到的利息(以元为单位,应考虑有小数,不计复利)。编程可用素材:printf("nPlease input benjin,cunqi:").、printf("nlixi
4、60;= . yuan".。程序的运行效果应类似地如图1所示,图1中的10000,8是从键盘输入的内容。#include < stdio.h >int main(void)int benjin, cunqi;double lixi;double money;printf("nPlease input benjin,cunqi:");scanf("%d,%d", &benjin, &cunqi);money = benjin;if ( cunqi = 1 )lixi = money * cunqi
5、* 3.15 / 100;elseif ( cunqi = 2 )lixi = money * cunqi * 3.63 / 100;else if ( cunqi = 3 )lixi = money * cunqi * 4.02 / 100;elseif ( cunqi = 5 )lixi = money * cunqi * 4.69 / 100;else if ( cunqi = 8 )lixi = money * cunqi *5.36 / 100;printf("nlixi = %.2f yuann", lixi);return 0;3. P1-114编写一个简单计
6、算器程序,输入格式为:data1 op data2。其中data1和data2是参加运算的两个数(data1、data2必须定义为int,但二者相加可能超出int能表示的范围),op为运算符,它的取值只能是+、-、*、/、%。程序的运行效果应类似地如图1、图2、图3、图4所示,图1中的3000 + 2000、图2中的3000 % 2000、图3中的3000 % 0和图4中的3000 / 0是从键盘输入的内容。#include < stdio.h >int main( void )in
7、t data1, data2;double jieguo;char op;printf("nPlease input data1 op data2:");scanf("%d %c %d", &data1, &op, &data2);switch ( op )case '+':jieguo = ( double ) data1 + data2;printf("n%d%c%d=%.0fn", data1, op, data2, jieguo);break;case '-':jiegu
8、o = ( double ) data1 - data2;printf("n%d%c%d=%.0fn", data1, op, data2, jieguo);break;case '*':jieguo = ( double ) data1 * data2;printf("n%d%c%d=%.0fn", data1, op, data2, jieguo);break;case '/':if ( data2 != 0 )jieguo = ( double ) data1 / data2;printf("n%d%c%d
9、=%.0fn", data1, op, data2, jieguo);break;elseprintf("nError! chu shu wei 0.n");break;case '%':if ( data2 != 0 )jieguo = data1 % data2;printf("n%d%c%d=%.0fn", data1, op, data2, jieguo);break;elseprintf("nError! chu shu wei 0.n");break;default:printf("nE
10、rror!n");return 0;4.输入月份,打印2003年该月有几天。当输入的月份超范围时,应显示“Invalid month input”。程序的运行效果应类似地如图1和图2所示,图1中的4和图2中的13是从键盘输入的内容。#include < stdio.h >int main( void )int month;int day;printf("nplease input the month number:");scanf("%d", &month);switch ( month )case 1:
11、case 3:case 5:case 7:case 8:case 10:case 12:day = 31;printf("n2003.%d has %d days.n", month, day);break;case 4:case 6:case 9:case 11:day = 30;printf("n2003.%d has %d days.n", month, day);break;case 2:day = 28;printf("n2003.%d has %d days.n", month, day);break;default:pr