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

上传人:b****4 文档编号:3811222 上传时间:2023-05-06 格式:DOCX 页数:153 大小:1.08MB
下载 相关 举报
成都信息工程学院C语言作业答案.docx_第1页
第1页 / 共153页
成都信息工程学院C语言作业答案.docx_第2页
第2页 / 共153页
成都信息工程学院C语言作业答案.docx_第3页
第3页 / 共153页
成都信息工程学院C语言作业答案.docx_第4页
第4页 / 共153页
成都信息工程学院C语言作业答案.docx_第5页
第5页 / 共153页
成都信息工程学院C语言作业答案.docx_第6页
第6页 / 共153页
成都信息工程学院C语言作业答案.docx_第7页
第7页 / 共153页
成都信息工程学院C语言作业答案.docx_第8页
第8页 / 共153页
成都信息工程学院C语言作业答案.docx_第9页
第9页 / 共153页
成都信息工程学院C语言作业答案.docx_第10页
第10页 / 共153页
成都信息工程学院C语言作业答案.docx_第11页
第11页 / 共153页
成都信息工程学院C语言作业答案.docx_第12页
第12页 / 共153页
成都信息工程学院C语言作业答案.docx_第13页
第13页 / 共153页
成都信息工程学院C语言作业答案.docx_第14页
第14页 / 共153页
成都信息工程学院C语言作业答案.docx_第15页
第15页 / 共153页
成都信息工程学院C语言作业答案.docx_第16页
第16页 / 共153页
成都信息工程学院C语言作业答案.docx_第17页
第17页 / 共153页
成都信息工程学院C语言作业答案.docx_第18页
第18页 / 共153页
成都信息工程学院C语言作业答案.docx_第19页
第19页 / 共153页
成都信息工程学院C语言作业答案.docx_第20页
第20页 / 共153页
亲,该文档总共153页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《成都信息工程学院C语言作业答案.docx》由会员分享,可在线阅读,更多相关《成都信息工程学院C语言作业答案.docx(153页珍藏版)》请在冰点文库上搜索。

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

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

分类一

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     (x>0)

程序的运行效果应类似地如图1所示,图1中的3是从键盘输入的内容。

#include

intmain(void)

{

intx;

doubley;

printf("Pleaseinputx:

");

scanf("%d",&x);

if(x>0)

{

y=(double)2*x-1;

}

else

{

if(x==0)

{

y=(double)7909;

}

else

{

y=(double)-5*x+27;

}

}

printf("\nF(%d)=%.0lf\n",x,y);

return0;

}

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 = ... yuan"...。

程序的运行效果应类似地如图1所示,图1中的10000,8是从键盘输入的内容。

#include

intmain(void)

{

intbenjin,cunqi;

doublelixi;

doublemoney;

printf("\nPleaseinputbenjin,cunqi:

");

scanf("%d,%d",&benjin,&cunqi);

money=benjin;

if(cunqi==1)

{

lixi=money*cunqi*3.15/100;

}

else

{

if(cunqi==2)

{

lixi=money*cunqi*3.63/100;

}

else

{

if(cunqi==3)

{

lixi=money*cunqi*4.02/100;

}

else

{

if(cunqi==5)

{

lixi=money*cunqi*4.69/100;

}

else

{

if(cunqi==8)

{

lixi=money*cunqi*5.36/100;

}

}

}

}

}

printf("\nlixi=%.2fyuan\n",lixi);

return0;

}

3.P1-114编写一个简单计算器程序,输入格式为:

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

intmain(void)

{

intdata1,data2;

doublejieguo;

charop;

printf("\nPleaseinputdata1opdata2:

");

scanf("%d%c%d",&data1,&op,&data2);

switch(op)

{

case'+':

jieguo=(double)data1+data2;

printf("\n%d%c%d=%.0f\n",data1,op,data2,jieguo);

break;

case'-':

jieguo=(double)data1-data2;

printf("\n%d%c%d=%.0f\n",data1,op,data2,jieguo);

break;

case'*':

jieguo=(double)data1*data2;

printf("\n%d%c%d=%.0f\n",data1,op,data2,jieguo);

break;

case'/':

if(data2!

=0)

{

jieguo=(double)data1/data2;

printf("\n%d%c%d=%.0f\n",data1,op,data2,jieguo);

break;

}

else

{

printf("\nError!

chushuwei0.\n");

break;

}

case'%':

if(data2!

=0)

{

jieguo=data1%data2;

printf("\n%d%c%d=%.0f\n",data1,op,data2,jieguo);

break;

}

else

{

printf("\nError!

chushuwei0.\n");

break;

}

default:

printf("\nError!

\n");

}

return0;

}

4.输入月份,打印2003年该月有几天。

当输入的月份超范围时,应显示“Invalid month input”。

程序的运行效果应类似地如图1和图2所示,图1中的4和图2中的13是从键盘输入的内容。

#include

intmain(void)

{

intmonth;

intday;

printf("\npleaseinputthemonthnumber:

");

scanf("%d",&month);

switch(month)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

day=31;

printf("\n2003.%dhas%ddays.\n",month,day);

break;

case4:

case6:

case9:

case11:

day=30;

printf("\n2003.%dhas%ddays.\n",month,day);

break;

case2:

day=28;

printf("\n2003.%dhas%ddays.\n",month,day);

break;

default:

printf("\nInvalidmonthinput\n");

}

return0;

}

5.已知某公司员工的保底薪水为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;

doublesalary=500;

printf("\nInputprofit:

");

scanf("%d",&profit);

if(profit<=1000)

{

salary=500;

}

if(profit>1000&&profit<=2000)

{

salary=salary+profit*0.1;

}

if(profit>2000&&profit<=5000)

{

salary=salary+profit*0.15;

}

if(profit>5000&&profit<=10000)

{

salary=salary+profit*0.2;

}

if(profit>10000)

{

salary=salary+profit*0.25;

}

printf("salary=%.2f\n",salary);

return0;

}

[]6.编写一程序P7-708.C实现以下功能

  输入一个三位正整数,然后逆序输出。

如输入123,则输出321。

  程序的运行效果应类似地如图1所示,图1中的752是从键盘输入的内容。

#include

#include

/*intmain(void)

{

intnum,i;

charstr[4];

printf("Inputaninteger:

");

scanf("%d",&num);

itoa(num,str,10);

printf("Theresultis");

for(i=2;i>=0;i--)

{

printf("%c",str[i]);

}

printf("\n");

return0;

}*/

intmain(void)

{

intnum;

printf("Inputaninteger:

");

scanf("%d",&num);

printf("Theresultis");

do

{

printf("%d",num%10);

num=num/10;

}while(num);

printf("\n");

return0;

}

cf7.编写一程序P7-713.C实现以下功能

  用scanf输入某年某月某日,判断这一天是这一年的第几天?

以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

注:

判断年份是否为闰年的方法——为400的倍数为闰年,如2000年;若非100的倍数,而是4的倍数,为闰年,如1996年。

  程序的运行效果应类似地如图1所示,图1中的2000-3-1是从键盘输入的内容。

#include

intmain(void)

{

intye,mo,da,sum=0,i;

intmday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

printf("Pleaseinput:

year-month-day\n");

scanf("%d-%d-%d",&ye,&mo,&da);

for(i=1;i

{

sum=sum+mday[i];

}

if((ye%400==0||ye%100!

=0&&ye%4==0)&&mo>2)

{

sum++;

}

sum=sum+da;

printf("Itisthe%dthday.\n",sum);

return0;

}

8.P7-723.C输入三角形的三边长a、b、c(边长可以是小数),求三角形面积area,并输出。

如果输入的三边构不成三角形,应给出“data error”的信息提示。

注:

根据“海伦-秦九韶”公式,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)

{

doubleaa,bb,cc,pp,ss,tt;

printf("\npleaseinputtriangesides:

");

scanf("%lf,%lf,%lf",&aa,&bb,&cc);

if((aa+bb>cc)&&(aa+cc>bb)&&(bb+cc>aa))

{

pp=(aa+bb+cc)/2;

tt=pp*(pp-aa)*(pp-bb)*(pp-cc);

ss=sqrt(tt);

printf("\narea=%.2lf\n",ss);

}

else

{

printf("\ndataerror\n");

}

return0;

}

9.7-731输出n行星号,每行5个*星号。

  程序的运行效果应类似地如图1所示,图1中的4是从键盘输入的内容。

#include

intmain(void)

{

intnn,i;

printf("\npleaseinputn:

");

scanf("%d",&nn);

for(i=1;i<=nn;i++)

{

printf("*****\n");

}

return0;

}

10.编写一程序P7-736.C实现以下功能

  从键盘上输入一个四位整数,计算各个位上的数字之和。

  程序的运行效果应类似地如图1所示,图1中的1234是从键盘输入的内容。

#include

intmain(void)

{

intnum,sum=0;

printf("Inputanumberwith4-digit:

");

scanf("%d",&num);

do

{

sum=sum+num%10;

num=num/10;

}while(num);

printf("sum=%d\n",sum);

return0;

}

11.从键盘输入3个整数,输出绝对值最大的数。

  程序的运行效果应类似地如图1所示,图1中的1,2,3是从键盘输入的内容。

#include

intab(intx);

intmain(void)

{

intnum[3],i,j;

printf("Input3numbers:

");

scanf("%d,%d,%d",&num[0],&num[1],&num[2]);

j=0;

for(i=1;i<3;i++)

{

if(ab(num[j])

{

j=i;

}

}

printf("Thenumberwithmaximumabsolutevalueis%d.\n",num[j]);

return0;

}

intab(intx)

{

if(x>=0)

{

returnx;

}

return-x;

}

12.设某企业2006年的产值为5000万,计划以后每年的增长率为x(x从键盘输入,例如输入8.75表示8.75%),计算该企业的产值在哪年实现翻番以及翻番时的产值,然后输出(输出时以万为单位,应考虑有小数)。

程序的运行效果应类似地如图1所示,图1中的50是从键盘输入的内容。

#include

intmain(void)

{

floatchanzhi=5000,xx;

intyear=2006;

printf("\nPleaseinputx:

");

scanf("%f",&xx);

while(chanzhi<10000)

{

chanzhi=chanzhi*(1+xx/100);

year++;

}

printf("\nyear=%dnian,chanzhi=%.2f\n",year,chanzhi);

return0;

}

13.编写一程序P2-221.C实现以下功能

从键盘读入一个字符串(最多127个字符),检查该字符串是否是回文。

所谓回文即正向与反向的拼写都一样,例如:

adgda。

  程序的运行效果应类似地如图1和图2所示,图1中的asdfghjhgfdsa和图2中的asdfghjhgfdsaa是从键盘输入的内容。

#include

#include

intmain(void)

{

inti,j,len;

charaa[128];

printf("\nPleaseinputstring:

");

gets(aa);

len=strlen(aa);

for(i=0,j=len-1;i

{

if(aa[i]!

=aa[j])

{

break;

}

}

if(i>=j)

{

printf("\n%sshihuiwen.",aa);

}

else

{

printf("\n%sbushihuiwen.",aa);

}

return0;

}

14.用scanf输入10个整数(采用int数据类型),计算所有正数的和、负数的和以及10个数的和。

程序的运行效果应类似地如图1所示,图1中的4 6 20 -45 35 56 -23 -4 9 70是从键盘输入的内容。

#include

intmain(void)

{

intaa[10],i;

floatsum1=0,sum2=0,sum3=0;

printf("\nInput10integers.\n");

for(i=0;i<10;i++)

{

scanf("%d",&aa[i]);

}

for(i=0;i<10;i++)

{

if(aa[i]>0)

{

sum1=sum1+aa[i];

}

else

{

sum2=sum2+aa[i];

}

sum3=sum1+sum2;

}

printf("\nzhengshu=%.0f,fushu=%.0f,all=%.0f\n",sum1,sum2,sum3);

return0;

}

15.7-732编写一程序P7-732.C实现以下功能,输入3行3列的矩阵,输出所有元素的累加和。

  程序的运行效果应类似地如图1所示,图1中的

        1 2 3

        4 5 6

        7 8 9

  是从键盘输入的内容。

#include

intmain(void)

{

inti,j,aa[3][3],sum=0;

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{

scanf("%d",&aa[i][j]);

}

}

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

{

sum=sum+aa[i][j];

}

}

printf("sum=%d",sum);

return0;

}

16.编写一程序P7-743.C实现以下功能

  从键盘输入一串可带空格的字符串,按逆序输出该字符串。

注意,程序中不能使用库函数strrev或使用同名的变量、函数、单词。

  程序的运行效果应类似地如图1所示,图1中的abc xyz是从键盘输入的内容。

#include

#include

intmain(void)

{

charaa[100],bb[100];

inti,j,len;

printf("Inputastring:

");

gets(aa);

len=strlen(aa);

bb[len]='\0';

for(i=0,j=len-1;i

{

bb[j]=aa[i];

}

printf("Theresultis:

");

puts(bb);

return0;

}

17.从键盘输入一个一百分制成绩,如果不在0~100范围内,则要求重新输入数据,直到输入的数据在0~100范围内。

将输入的数据转换成等级‘A’,‘B’,‘C’,‘D’,‘E’。

90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2