高教c语言程序设计课后编程题答案.docx
- 文档编号:10694352
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:42
- 大小:26.04KB
高教c语言程序设计课后编程题答案.docx
《高教c语言程序设计课后编程题答案.docx》由会员分享,可在线阅读,更多相关《高教c语言程序设计课后编程题答案.docx(42页珍藏版)》请在冰豆网上搜索。
高教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循环实现 #include { 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 则输出整数: 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 { 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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高教 语言程序设计 课后 编程 答案