高教c语言程序设计课后编程题答案.docx

上传人:b****4 文档编号:5371376 上传时间:2023-05-08 格式:DOCX 页数:42 大小:26.04KB
下载 相关 举报
高教c语言程序设计课后编程题答案.docx_第1页
第1页 / 共42页
高教c语言程序设计课后编程题答案.docx_第2页
第2页 / 共42页
高教c语言程序设计课后编程题答案.docx_第3页
第3页 / 共42页
高教c语言程序设计课后编程题答案.docx_第4页
第4页 / 共42页
高教c语言程序设计课后编程题答案.docx_第5页
第5页 / 共42页
高教c语言程序设计课后编程题答案.docx_第6页
第6页 / 共42页
高教c语言程序设计课后编程题答案.docx_第7页
第7页 / 共42页
高教c语言程序设计课后编程题答案.docx_第8页
第8页 / 共42页
高教c语言程序设计课后编程题答案.docx_第9页
第9页 / 共42页
高教c语言程序设计课后编程题答案.docx_第10页
第10页 / 共42页
高教c语言程序设计课后编程题答案.docx_第11页
第11页 / 共42页
高教c语言程序设计课后编程题答案.docx_第12页
第12页 / 共42页
高教c语言程序设计课后编程题答案.docx_第13页
第13页 / 共42页
高教c语言程序设计课后编程题答案.docx_第14页
第14页 / 共42页
高教c语言程序设计课后编程题答案.docx_第15页
第15页 / 共42页
高教c语言程序设计课后编程题答案.docx_第16页
第16页 / 共42页
高教c语言程序设计课后编程题答案.docx_第17页
第17页 / 共42页
高教c语言程序设计课后编程题答案.docx_第18页
第18页 / 共42页
高教c语言程序设计课后编程题答案.docx_第19页
第19页 / 共42页
高教c语言程序设计课后编程题答案.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

高教c语言程序设计课后编程题答案.docx

《高教c语言程序设计课后编程题答案.docx》由会员分享,可在线阅读,更多相关《高教c语言程序设计课后编程题答案.docx(42页珍藏版)》请在冰点文库上搜索。

高教c语言程序设计课后编程题答案.docx

高教c语言程序设计课后编程题答案

第三章顺序结构

3.30编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

※程序如下※

main()

{

inthour,minute;

hour=560/60;

minute=560%60;

printf("hour=%d,minute=%d",hour,minute);

}

3.31编写程序,输入两个整数:

1500和350,求出它们的商数和余数并进行输出。

※程序如下※

#include

main()

{

intnuml,num2,i,j;/*定义变量i—商,j—余数*/

printf("inputnum1andnum2:

\n");

scanf("%d%d",&num1,&num2);

i=n

}

3.32编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。

※程序如下※

main()

{

doublea,b,c,average=0;

printf("inputa,b,c(double):

\n");

scanf("%lf%lf%lf",&a,&b,&c);

average=(a+b+c)/3;

average=average*10;

average=average+0.5;

average=(int)average;

average=average/10;

printf("average=%lf",average);

}

3.33编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,

把b中原来的值给c,把c中的值给a。

※程序如下※

main()

{

inta,b,c,t=0;printf("inputabc:

\n");scanf("%d%d%d",&a,&b,&c);t=c;c=b;b=a;a=t;

printf("a=%db=%dc=%d",a,b,c);

}

第四章选择结构

4.21当a>0时,请将以下语句改写成switch语句。

if(a<30)m=1;

elseif(a<40)m=2;

elseif(a<50)m=3;

elseif(a<60)m=4;elsem=5;

※程序如下※

main()

{inta;printf("Entera:

\n");scanf("%d",&a);switch(a/10)

{

case0:

case1:

case2:

printf("m=1");break;

case3:

printf("m=2");break;

case4:

printf("m=3");break;case5:

printf("m=4");break;default:

printf("m=5");

}

}

dO);并输入当前的日

4.22编写程序,输入一位学生的生日(年:

yO、月:

mO、日

期(年:

y1、月:

ml、日:

di);输出该生的实足年龄。

※程序如下※这道题仅做参考!

系统不一样无法运行!

main()

{

intyO,y1,mO,m1,dO,d1,age=O;

printf("YourBirthday(yyyy-mm-dd):

\n");scanf("%d-%d-%d",&y0,&m0,&d0);printf("CurrentDate(yyyy-mm-dd):

\n");scanf("%d-%d-%d",&y1,&m1,&d1);if(d1

if(m1

printf("\nAge=%d",age);

}

4.23编写程序,输入一个整数,打印出它是奇数还是偶数。

※程序如下※

main()

{

inti;printf("inputainteger:

\n");scanf("%d",&i);

if(i%2==0)/*条件判断*/printf("%disaeven",i);elseprintf("%disaodd",i);

}

4.24编写程序,输入a、b、c三个数,打印出最大者。

※程序如下※

main()

{

inta,b,c,max=0;

printf("input(int)abandc:

\n");scanf("%d%d%d",&a,&b,&c);max=a;

if(max

}

4.25有一函数:

编写一程序,要求输入x的值,输出y的值。

分别

(1)不嵌套的if语句

(2)嵌套的if语句

(3)if_else语句(4)switch语句

尽飓七星«臨Q)nlw

宀_(=」0」」①lndu=)41u_」d(0lrAX=9dvxMML+x=%HA=)tu_」d(0LVXO3O30AXMMv>

OHHX)七

MX-J%UA=)tu_」d0VX03039人X)七Jx03-J%==ueosx=uvxIndu&lu一」d

Xleoq=()urolu

尽®七星«臨0(L)rlw探K吕吐^探

 

(OLVX03039人X)七Jx03-J%==ueosx=uvxIndu&lu一」d

Xleoq=()urolu尽®①so—七(e)-111吐咽w

宀M=」o」」①lndu=)41u_」d(0lrAX=9dvxM

宀ML+x=%HA==lu_」doaxmMX=%UA=£u_」dovx)七xv>

Xleoq=

()uroE

 

if(x<0)printf("y=%f",x-1);elseif(x==0)printf("y=%f",x);elseprintf("y=%f",x+1);elseprintf("inputerror");}

源程序四:

(4)switch语句

*/

main()

{

intflag;

floatx;

printf("Enterx:

\n");scanf("%f",&x);if(x>-5&&x<0)flag=-1;

if(x==0)flag=0;

if(x>0&&x<10)flag=1;

switch(flag)

{

case-1:

printf("y=%f",x);break;

case0:

printf("y=%f",x-1);break;

case1:

printf("y=%f",x+1);break;

}

}/*

第五章循环结构

三、编程题

5.17编写程序,求1-3+5-7+...-99+101的值。

※程序如下※

main()

{

inti,sum=0,s=1;

for(i=1;i<=101;i+=2)

{

sum=sum+i*s;

s=-s;/*控制符号交替变换*/

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

}

5.18编写程序,求e的值,e=1+1/1!

+1/2!

+1/3!

+1/4!

+...+1/n!

(1)用for循环,计算前50项

(2)用while循环,要求直至最后一项的值小于1e-4。

※程序如下※

源程序一:

(1)用for循环实现

main()

{

inti,n;

doublesum=1,t=1;printf("inputn:

\n");

scanf("%d",&n);for(i=1;i<=n;i++)

{

t=t*i;/*实现阶乘*/sum=sum+1/t;

}printf("e=%lf",sum);

}

源程序二:

(2)用while循环实现

#includemain()

{

inti;

doubelsum=1,t=1;

while(fabs(1.0/t)>1e-4)/*fabs求浮点型数据的绝对值*/

{

t=t*i;sum=sum+1/t;

i++;

}

printf("e=%lf",sum);

}

5.19编写程序,输出从公元1000年至2000年所有闰年的年号每输出3个年号换一行。

判断公元年是否闰年的条件是:

(1)公元年数如能被4整除,而不能被100整除,则是闰年。

(2)公元年数能被400整除也是闰年。

※程序如下※

main()

{

inti,j=0;

for(i=1000;i<=2000;i++)

{

if((i%4==0)&&(i%100!

=0)||(i%400==0))/*判断是否是闰年的条件*/{

printf("&d",i);

j++;

if(j%3==0)/*控制换行*/

printf("\n");

}

}

}

5.20编写程序,打印以下图形:

*

*****

*******

*****

'k'k'k

*

※程序如下※

#include

main()

{

inti,j;

for(i=1;i<=7;i++)/*控制行数*/

{

for(j=1;j<=7;j++)/*控制星数*/

{if((j<=fabs(4-i))||(j>7-fabs(4-i)))printf("");

elseprintf("*")

}printf("\n");

}

}

#include

#include

main()

{inti,j,k;

for(i=-3;i<=abs(i);i++)

{for(j=0;j<=abs(i);j++)printf(“”);

for(k=0;k<=7-abs(i);k++)printf(“*”);

printf(“\n”);

}

}

第六章字符型数据

6.21

ASCII代码

请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的值,每行输出三队.

※程序如下※#include

main()

{

inti=0;

charch;

while((ch=getchar())!

='\n')

{

printf("%4c%4d",ch,ch);

i++;

if(i%3==0)

printf("\n");

}

}

6.21请编写程序,输入一行数字字符(用EOF结束),每个数字字符的前后都有空格。

请编程,把这一行中的数字转换成一个整数。

例如,若输入:

2483代表Enter键)

则输出整数:

2483

※程序如下※

#include

main()

{

charch;

while((ch=getchar())!

=EOF)

{

if(ch=='')

continue;

else

printf("%c",ch);

}

}

6.22请编写程序统计输入的行数,输入用EOF结束输入。

※程序如下※

#include

main()

{

charch;

inti=0;

while((ch=getchar())!

=EOF)

{

if(ch=='\n')i++;

}

printf("%d",i);

}

6.23请编写程序统计输入的一行中小写字母的个数。

※程序如下※

#include

main()

{

inti=0;

charch;

while((ch=getchar())!

='\n')

{

if((ch>='a')&&(ch<='z'))

i++;

}

printf("%d",i);

}

6.24请编写输出以下图案的程序,图案的行数由输入的值确定。

A

BBB

CCCCC

DDDDDDD

EEEEEEEEE

※程序如下※

#include

main()

{

inti,j,k,n;

printf("Entern(integer):

\n");

scanf("%d",&n);

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

{

for(j=n;j>i;j--)

printf("");

for(k=1;k<=2*i-1;k++)printf("%c",64+i);

printf("\n");

}

}

第七章函数

7.14以下fun函数用以判断n是否是素数,fun函数中有逻辑错,请调试改正。

fun(intn)

{

intk,yes;for(k=2;k<=n/2;k++)if(n%k==0)returnyes=0;

returnyes=1;

}

※正确答案是:

fun(intn)

{

intk,yes=1;for(k=2;k<=n/2;k++)if(n%k==0)returnyes=0;

returnyes;

}

main()

{

intn,yes;printf("Entern(int):

\n");scanf("%d",&n);

yes=fun(n);

if(yes==1)printf("%disaprime",n);

elseprintf("%disnotaprime",n);

}

7.15编写函数intmymod(inta,intb)用以求a被b除之后的余数。

※程序如下※

#include

intmymod(inta,intb)

{

intremainder;remainder=a%b;

returnremainder;

}

main()

{

inta,b;printf("Enterab(int):

\n");

scanf("%d%d",&a,&b);

printf("余数=%d",mymod(a,b));

}

7.16编写程序求:

1-1/2+1/3-1/4+1/5-1/6+1/7-...1/n

※程序如下※

main()

{

intn;

floata;

floatsum(intn);

scanf("%d",&n);

a=sum(n);

printf("%10.5f",a);

}

floatsum(intn)

{

floats=0;

inti,t=1;

for(i=1;i

{

s=s+1/i*t;

t=-t;

}

returns;

}

7.17编写函数,根据整型形参m的值,计算如下公式的值。

t=1—1/(2x2)-1/(3x3)-...-1/(mxm)

例如:

若m=5,则应输出0.536389。

※程序如下※

main()

{

floatt=1;

floatf2(int);

inti,m;

scanf("%d",&m);

for(i=2;i<=m;i++)

t=t-f2(i);

printf("t=%f",t);

}

floatf2(intm)

{

floats;

s=1.0/(m*m);

returns;

}

7.18编写函数用以求表达式x2-5x+4,x作为参数传给函数,调用此函数求:

y1=22-5*2+4

y2=(x+15)2-5*(x+15)+4

y3=sin2x-5*sinx+4

※程序如下※

#include

#include

floatfun(floatx)

{

floaty;

y=pow(x,2)-5*x+4;

returny;

}

main()

{

floatx,y1,y2,y3;

clrscr();

printf("Enterx:

\n");

scanf("%f",&x);

y1=fun

(2);

y2=fun((x+15));

y3=fun(sin(x));

printf("y1=%f\ny2=%f\ny3=%f\n",y1,y2,y3);

}

第八章地址和指针

8.17请编写函数,其功能是对传送过来的两个浮点数求出和值与差值,并通过形参传送回调用函数。

※程序如下※

#include

sum_sub(floata,floatb,float*sum,float*sub)

{

*sum=a+b;

*sub=a-b;

}

main()

{

floata,b,sum,sub;/*定义变量sum求和,变量sub求差*/printf("Enterab(float):

\n");

scanf("%f%f",&a,&b);sum_sub(a,b,&sum,&sub);printf("sum=%f,sub=%f",sum,sub);

}

8.18请编写函数,对传送过来的三个数选出最大和最小数,并通过形参传回调用函数。

※程序如下※

#include

max_min(doublea,doubleb,doublec,double*max,double*min)

{

*max=a;/*假定a的值为最大,把a值赋给指针变量*max*/if(*max

if(*max

*min=a;/*假定a的值为最小,把a值赋给指针变量*min*/if(*min>b)*min=b;

if(*min>c)*min=c;

}

main()

{

doublea,b,c,max,min;printf("Enterabc(double):

\n");scanf("%lf%lf%lf",&a,&b,&c);max_min(a,b,c,&max,&min);

printf("max=%lf,min=%lf",max,min);

}

第九章函数

9.27输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数.用下标为

0元素统计字符"1"的个数,下标为1的元素统计字符"2"的个数,...

※程序如下※

#include

voidcount(inta[])

{

inti;

charch;while((ch=getchar())!

='\n')for(i=0;i<10;i++)if(i==ch-'0')if(i==0)a[9]++;

elsea[i-1]++;

}

main()

{

inti,a[10]={0};count(a);for(i=0;i<10;i++)printf("a[%d]=%d\n",i,a);

}

9.28编写函数,对具有10个整数的数组进行如下操作:

从第n个元素开始直到最后一个元素,依次向前移动一个位置.输出移动后的结果.

※程序如下※

fun(inta[],intn)

{inti;for(i=n;i<9;i++)a=a[i+1];

}

main()

{

inta[10]={0,1,2,3,4,5,6,7,8,9},n,i;scanf("%d",&n);

fun(a,n);for(i=0;i<9;i++)printf("%d",a);

}

9.29编写函数把数组中所有奇数放在另一个数组中返回.

※程序如下※

#include#includeintfun(inta[],intb[])

{

inti,j=0;

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

if(a%2==1)b[j++]=a;return(j);

}

main()

{

inti,j,a[10],b[10];

clrscr();

printf("\n****Enter10integernumber:

****\n");

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

scanf("%d",&a);

j=fun(a,b);

printf("****Outputtheoddarrage***:

\n");

for(i=0;i

printf("%d",b);

getchar();

}

9.30编写函数对字符数组中的输入字母,按由大到小的字母顺序进行排序。

※程序如下※

#include

voidalpha_sort(chara[],intn);

voidalpha_rout(chara[],intn);

main()

{

chara[20];

intn;

clrscr();

printf("****Theoriginalalphabeticis****:

\n");gets(a);

n=strlen(a);

alpha_sort(a,n);

alpha_rout(a,n);

}

voidalpha_sort(chara[],intn)

{

inti,j,p,t;

for(j=0;j

{p=j;

for(i=j+1;i

if(a[p]

if(p!

=j)

{

t=a[j];

a[j]=a[p];

a[p]=t;

}

}

}

voidalpha_rout(chara[],intn)

{

inti;

printf("\n****Thealphabeticofsortingis****:

\n");

for(i=0;i

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

}

9.31输入若干有序数放在数组中。

然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。

请对以下三种情况运行你的程序,以便验证你的程序是否正确。

(1)插在最前

(2)插在最后(3)插在中间

※程序如下※

#include

#defineM10

voidsort(inta[M],intb[M+1],intn)

{

inti;

for(i=0;i

{

if(a[0]>a[M-1])

{

if(n

b=a;

else

{

b=n;

break;

}

}

else

{

if(n>a)

b=a;

else

{

b=n;

break;

}

}

}

if(i

for(;i

b[i+1]=a;

else

b=n;

}

main()

{

inti,n,a[M],b[M+1];

clrscr();

printf("En

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

当前位置:首页 > 经管营销 > 经济市场

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

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