成都信息工程学院C语言第一类题参考答案.docx
- 文档编号:30647940
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:46
- 大小:26.11KB
成都信息工程学院C语言第一类题参考答案.docx
《成都信息工程学院C语言第一类题参考答案.docx》由会员分享,可在线阅读,更多相关《成都信息工程学院C语言第一类题参考答案.docx(46页珍藏版)》请在冰豆网上搜索。
成都信息工程学院C语言第一类题参考答案
/*P1-111.C*/
/*编写一程序P1-111.C实现以下功能
x(x只考虑整数int且必须定义为int、但F(x)完全可能超过int的表示范围)通过键盘输入(输入前给出提示Pleaseinputx:
),然后计算并在屏幕上输出函数值。
注意,图1中的括号不是<>而是(),编程可用素材:
printf("Pleaseinputx:
")...。
┌ -5x+27(x<0)
F(x)=├ 7909(x=0)
└ 2x-1(x>0)
程序的运行效果应类似地如图1所示,图1中的3是从键盘输入的内容。
*/
#include
intmain(void)
{
intx;
doubley;
printf("Pleaseinputx:
");
scanf("%d",&x);
if(x>0)
{
y=2.0*x-1;
printf("\nF(%d)=%.0lf\n",x,y);
}
if(x==0)
{
y=7909;
printf("\nF(%d)=7909\n",x,y);
}
if(x<0)
{
y=(-5.0)*x+27;
printf("\nF(%d)=%.0lf\n",x,y);
}
return0;
}
/*P1-113.C*/
/*编写一程序P1-113.C实现以下功能
已知某银行整存整取存款不同期限的年息利率分别为:
3.15%期限一年,3.63%期限二年,4.02%期限三年,4.69%期限五年,5.36%期限八年。
从键盘上输入存钱的本金(以元为单位,必须定义为int且应考虑金额很大的情况)和存款期限(只考虑1,2,3,5,8),求到期时能从银行得到的利息(以元为单位,应考虑有小数,不计复利)。
编程可用素材:
printf("\nPleaseinputbenjin,cunqi:
")...、printf("\nlixi=...yuan"...。
程序的运行效果应类似地如图1所示,图1中的10000,8是从键盘输入的内容。
*/
#include
#include
intmain(void)
{
intcunqi;
longintbenjin;
doublelixi;
printf("Pleaseinputbenjin,cunqi:
");
scanf("%ld,%d",&benjin,&cunqi);
printf("\n");
if(cunqi==1)
{
lixi=(double)(1.0*benjin*3.15/100);
printf("lixi=%.2lfyuan",lixi);
}
if(cunqi==2)
{
lixi=(double)(2.0*benjin*3.63/100);
printf("lixi=%.2lfyuan",lixi);
}
if(cunqi==3)
{
lixi=(double)(3.0*benjin*4.02/100);
printf("lixi=%.2lfyuan",lixi);
}
if(cunqi==5)
{
lixi=(double)(5.0*benjin*4.69/100);
printf("lixi=%.2lfyuan",lixi);
}
if(cunqi==8)
{
lixi=(double)(8.0*benjin*5.36/100);
printf("lixi=%.2lfyuan",lixi);
}
return0;
}
/*P1-114.C*/
/*编写一程序P1-114.C实现以下功能
编写一个简单计算器程序,输入格式为:
data1opdata2。
其中data1和data2是参加运算的两个数(data1、data2必须定义为int,但二者相加可能超出int能表示的范围),op为运算符,它的取值只能是+、-、*、/、%。
程序的运行效果应类似地如图1、图2、图3、图4所示,图1中的3000+2000、图2中的3000%2000、图3中的3000%0和图4中的3000/0是从键盘输入的内容。
*/
#include
intmain(void)
{
intdata1,data2;
charop;
doubley;
printf("Pleaseinputdata1opdate2:
");
scanf("%d%c%d",&data1,&op,&data2);
switch(op)
{
case'+':
y=0.0+data1+data2;
printf("\n%d+%d=%.0lf\n",data1,data2,y);
break;
case'-':
printf("\n%d-%d=%d\n",data1,data2,data1-data2);
break;
case'*':
y=1.0*data1*data2;
printf("\n%d*%d=%.0lf\n",data1,data2,y);
break;
case'/':
if(0==data2)
{
printf("\nError!
chushuwei0.\n");
}
else
{
printf("\n%d/%d=%d\n",data1,data2,data1/data2);
}
break;
case'%':
if(0==data2)
{
printf("\nError!
chushuwei0.\n");
}
else
{
printf("\n%d%%%d=%d\n",data1,data2,data1%data2);
}
break;
default:
break;
}
return0;
}
/*P7-702.C*/
/*编写一程序P7-702.C实现以下功能
输入月份,打印2003年该月有几天。
当输入的月份超范围时,应显示“Invalidmonthinput”。
程序的运行效果应类似地如图1和图2所示,图1中的4和图2中的13是从键盘输入的内容。
*/
#include
intmain(void)
{
intmon;
printf("pleaseinputthemonthnumber:
");
scanf("%d",&mon);
if(mon<1||mon>12)
{
printf("Invalidmonthinput!
\n");
}
else
{
switch(mon)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
printf("2003.%dhas31days\n",mon);
case2:
printf("2003.%dhas28days\n",mon);
default:
printf("2003.%dhas30days\n",mon);
}
}
return0;
}
/*P7-703.C*/
/* 编写一程序P7-703.C实现以下功能
已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与利润提成的关系如下(计量单位:
元):
profit≤1000 没有提成;
1000<profit≤2000 提成10%;
2000<profit≤5000 提成15%;
5000<profit≤10000 提成20%;
10000<profit 提成25%。
请根据输入的利润计算员工的薪水。
程序的运行效果应类似地如图1所示,图1中的2000是从键盘输入的内容。
*/
#include
intmain(void)
{
intprofit;
doubleticheng,total;
printf("\nInputprofit:
");
scanf("%d",&profit);
if(profit<=1000)
{
ticheng=0;
}
elseif(1000 { ticheng=0.1*profit; } elseif(2000 { ticheng=0.15*profit; } elseif(5000 { ticheng=0.2*profit; } else { ticheng=0.25*profit; } total=500+ticheng; printf("salary=%.2lf\n",total); return0; } /*P7-708.C*/ /* 编写一程序P7-708.C实现以下功能 输入一个三位正整数,然后逆序输出。 如输入123,则输出321。 编程可用素材: printf("Inputaninteger: ")...、printf("\nTheresultis...。 程序的运行效果应类似地如图1所示,图1中的750是从键盘输入的内容。 */ #include intmain(void) { intinteger,shu1,shu2,shu3,shu4,shu5; printf("Inputaninteger: "); scanf("%d",&integer); shu1=integer%10; shu2=integer/10; shu3=shu2%10; shu4=shu2/10; shu5=shu4%10; printf("\nTheresultis%d%d%d\n",shu1,shu3,shu5); return0; } /*P7-709.C*/ /*编写一程序P7-709.C实现以下功能输入一个华氏温度,要求输出摄氏温度,计算公式为c=5(F-32)/9。 注意,图1中的括号不是<>而是(),编程可用素材: printf("Inputthedegree: ")...。 程序的运行效果应类似地如图1所示,图1中的120是从键盘输入的内容。 */ #include intmain(void) { doubleFF,CC; printf("Inputthedegree: "); scanf("%lf",&FF); CC=5*(FF-32)/9; printf("F(%.2lf)=C(%.2lf)",FF,CC); return0; } /*P7-710.c*/ /* 编写一程序P7-710.C实现以下功能 输入一个小写英文字母,首先输出它及其ASCII码,然后输出其对应的大写字母及其ASCII码。 注意,图1中的括号不是<>而是(),编程可用素材: printf("Inputalowercaseletter: ")...。 程序的运行效果应类似地如图1所示,图1中的y是从键盘输入的内容。 */ #include intmain(void) { charletter; printf("Inputalowercaseletter: "); scanf("%c",&letter); printf("\n%c(%d)\n%c(%d)",letter,letter,(letter-32),(letter-32)); return0; } /*P7-711.C*/ /* 编写一程序P7-711.C实现以下功能 用scanf输入圆半径r,圆柱高h,求圆周长C1(=2πr)、圆面积S(=πr2)、 圆柱体积V(=πr2h)。 (注意: 本题中规定圆周率取值为3.14) 程序的运行效果应类似地如图1所示,图1中的r=1.3,h=5是从键盘输入的内容。 */ #include #include #definePI3.14 intmain(void) { doubler,h; doubleC1,S,V; printf("Input: "); scanf("r=%lf,h=%lf",&r,&h); C1=2*PI*r; S=PI*r*r; V=PI*r*r*h; printf("C1=%.2lf\nS=%.2lf\nV=%.2lf",C1,S,V); return0; } /**P7-712.c/ /* 编写一程序P7-712.C实现以下功能 判断输入的正整数是否既是5又是7的整倍数,若是,则输出“Yes.”;否则输出“No.”。 程序的运行效果应类似地如图1和图2所示,图1中的75和图2中的105是从键盘输入的内容。 */ #include intmain(void) { intxx; printf("Pleaseinputaninteger: "); scanf("%d",&xx); if(xx%5==0&&xx%7==0) { printf("\nYes."); } else { printf("\nNo."); } return0; } /*P7-713.C*/ /*编写一程序P7-713.C实现以下功能 用scanf输入某年某月某日,判断这一天是这一年的第几天? 以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 注: 判断年份是否为闰年的方法——为400的倍数为闰年,如2000年;若非100的倍数,而是4的倍数,为闰年,如1996年。 程序的运行效果应类似地如图1所示,图1中的2000-3-1是从键盘输入的内容。 */ #include intpanduan(inty); intmain(void) { intyy,mm,dd,k,ts,TS,i,j,sum=0; printf("pleaseinput: year-month-day\n"); scanf("%d-%d-%d",&yy,&mm,&dd); k=panduan(yy); for(i=1;i<=mm;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) { ts=31; } elseif(k==0&&i==2) { ts=29; } elseif(k==1&&i==2) { ts=28; } else { ts=30; } if(i! =mm) { TS=ts; } else { TS=dd; } for(j=1;j<=TS;j++) { sum++; } } printf("Itisthe%dthday.",sum); return0; } intpanduan(inty) { intk; if(y%400==0) { k=0; } elseif(y%100! =0&&y%4==0) { k=0; } else { k=1; } returnk; } /*P7-720.c*/ #include main() { floatn,m; doublea,b; printf("pleaseinputtwonumbers: "); scanf("%f,%f",&n,&m); a=(double)n; b=(double)m; printf("a=%lf,b=%lf",a,b); } /*P7-721.c*/ /* 编写一程序P7-721.C实现以下功能 从键盘输入x,y,z的值,编写程序输出以下表达式的值: x+z%3*(int)(x+y)%2/4 程序的运行效果应类似地如图1所示,图1中的2.5,4.7,7是从键盘输入的内容。 */ #include #include intmain(void) { doublex,y,z; doublesum1=0,sum2=0,sum=0; printf("pleaseinputx,y,z: "); scanf("%lf,%lf,%lf",&x,&y,&z); sum1=(int)z%3; sum2=(int)(x+y)%2/4; sum=x+sum1*sum2; printf("%.6lf",sum); return0; } /*p7-722.c*/ /* 编写一程序P7-722.C实现以下功能 从键盘输入一日期,年月日之间以“-”分隔,并以同样的形式但以“/”作分隔符输出。 程序的运行效果应类似地如图1所示,图1中的2009-12-9是从键盘输入的内容。 */ #include intmain(void) { intyy,mm,dd; printf("pleaseinputadate"); scanf("%d-%d-%d",&yy,&mm,&dd); printf("\nthedateis: %d/%d/%d",yy,mm,dd); return0; } /*P7-723.C*/ /*编写一程序P7-723.C实现以下功能 输入三角形的三边长a、b、c(边长可以是小数),求三角形面积area,并输出。 如果输入的三边构不成三角形,应给出“dataerror”的信息提示。 注: 根据“海伦-秦九韶”公式,area=√p(p-a)(p-b)(p-c),其中p=(a+b+c)/2。 程序的运行效果应类似地如图1和图2所示,图1中的3,4,5和图2中的3,4,8是从键盘输入的内容。 */ #include #include intmain(void) { floatbian1,bian2,bian3; doublearea,pinjun; printf("pleaseinputtriangesides: "); scanf("%f,%f,%f",&bian1,&bian2,&bian3); if(bian1+bian2<=bian3||bian1+bian3<=bian2||bian2+bian3<=bian1) { printf("\ndataerror\n"); } else { pinjun=(bian1+bian2+bian3)/2; area=sqrt(pinjun*(pinjun-bian1)*(pinjun-bian2)*(pinjun-bian3)); printf("\narea=%.2lf\n",area); } return0; } /*P7-727.c*/ /* 编写一程序P7-727.C实现以下功能 输入两个整数,输出这两个整数的和 程序的运行效果应类似地如图1所示,图1中的34是从键盘输入的内容。 */ #include intmain(void) { intaa,bb; intsum=0; printf("p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 成都 信息工程学院 语言 一类 参考答案