c语言程序设计能力教程答案
因为自控能力较低,基础差 所以就非常会依赖答案,在网上是问不到答案的哈
这种情况反而要更需要独立思考 学习才能进步
是杨路明那版的吗?是的话留个邮箱
1 【C语言】《C语言程序设计教程(第二版)》习题答案说 明
1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理
工大学出版社出版的,绿皮。
2 第1章 程序设计基础知识
一、单项选择题(第23页)
1-4.CBBC 5-8.DACA
二、填空题(第24页)
1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言 7.有穷性 8.直到型循环 9.算法 10.可读性 11.模块化 12.对问题的分析和模块的划分
三、应用题(第24页)
2.源程序:
main()
{int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */ <br>printf("cock hen chick\n"); <br>for(i=1;i<=20;i++) <br>for(j=1;j<=33;j++) <br>for(k=1;k<=33;k++) <br>if (i+j+k*3==100&&i*5+j*3+k==100) <br>printf(" %d %d %d\n",i,j,k*3);}
执行结果:
cock hen chick
4 18 78
8 11 81
12 4 84
3.现计算斐波那契数列的前20项。
递推法 源程序:
main()
{long a,b;int i; <br>a=b=1; <br>for(i=1;i<=10;i++) /*要计算前30项,把10改为15。*/ <br>{printf("%8ld%8ld",a,b); <br>a=a+b;b=b+a;}}
递归法 源程序:
main()
{int i; <br>for(i=0;i<=19;i++) <br>printf("%8d",fib(i));}
fib(int i)
{return(i<=1?1:fib(i-1)+fib(i-2));}
执行结果:
1 1 2 3 5 8 13 21 34 55
89 144 233 377 610 987 1597 2584 4181 6765
4.源程序:
#include "math.h";
main()
{double x,x0,deltax; <br>x=1.5; <br>do {x0=pow(x+1,1./3); <br>deltax=fabs(x0-x); <br>x=x0; <br>}while(deltax>1e-12);
printf("%.10f\n",x);}
执行结果:
1.3247179572
5.源程序略。(分子、分母均构成斐波那契数列)
结果是32.66026079864
6.源程序:
main()
{int a,b,c,m; <br>printf("Please input a,b and c:"); <br>scanf("%d %d %d",&a,&b,&c); <br>if(a<b){m=a;a=b;b=m;}
if(a<c){m=a;a=c;c=m;}
if(b<c){m=b;b=c;c=m;}
printf("%d %d %d\n",a,b,c);}
执行结果:
Please input a,b and c:123 456 789
789 456 123
7.源程序:
main()
{int a; <br>scanf("%d",&a); <br>printf(a%21==0?"Yes":"No");}
执行结果:
42
Yes
3 第2章 C语言概述
一、单项选择题(第34页)
1-4.BDCB 5-8.AABC
二、填空题(第35页)
1.主 2.C编译系统 3.函数 函数 4.输入输出 5.头 6. .OBJ 7.库函数 8.文本
三、应用题(第36页)
5.sizeof是关键字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、s_3是标识符。
8.源程序:
main()
{int a,b,c; <br>scanf("%d %d",&a,&b); <br>c=a;a=b;b=c; <br>printf("%d %d",a,b);}
执行结果:
12 34
34 12
4 第3章 数据类型与运算规则
一、单项选择题(第75页)
1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.CBCCD 21-25.ADDBC 26-27.AB
二、填空题(第77页)
1.补码 2.±(10^-308~10^308) 3.int(整数) 4.单目 自右相左 5.函数调用 6.a或b 7.1 8.65,89
三、应用题(第78页)
1.10 9
2.执行结果:
11
0
0
12
1
5 第4章 顺序结构程序设计
一、单项选择题(第90页)
1-5.DCDAD 6-10.BACBB
二、填空题(第91页)
1.一 ;2. 5.169000 3.(1)-2002500 (2)I=-200,j=2500 (3)i=-200
j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3 8.scanf("%lf%lf%lf",&a,&b,&c); 9. 13 13.000000,13.000000 10.a=a^c;c=c^a;a=a^c;(这种算法不破坏b的值,也不用定义中间变量。)
三、编程题(第92页)
1.仿照教材第27页例2-1。
2.源程序:
main()
{int h,m; <br>scanf("%d:%d",&h,&m); <br>printf("%d\n",h*60+m);}
执行结果:
9:23
563
3.源程序:
main()
{int a[]={-10,0,15,34},i;
for(i=0;i<=3;i++)
printf("%d\370C=%g\370F\t",a[i],a[i]*1.8+32);}
执行结果:
-10℃=14°F 0℃=32°F 15℃=59°F 34℃=93.2°F
4.源程序:
main()
{double pi=3.14159265358979,r=5; <br>printf("r=%lg A=%.10lf S=%.10lf\n",r,2*pi*r,pi*pi*r);}
执行结果:
r=5 A=31.4159265359 S=49.3480220054
5.源程序:
#include "math.h";
main()
{double a,b,c; <br>scanf("%lf%lf%lf",&a,&b,&c); <br>if (a+b>c&&a+c>b&&b+c>a) <br>{double s=(a+b+c)/2; <br>printf("SS=%.10lf\n",sqrt(s*(s-a)*(s-b)*(s-c)));}
else printf("Data error!");}
执行结果:
4 5 6
SS=9.9215674165
6.源程序:
main()
{int a=3,b=4,c=5;float d=1.2,e=2.23,f=-43.56; <br>printf("a=%3d,b=%-4d,c=**%d\nd=%g\ne=%6.2f\nf=%-10.4f**\n",a,b,c,d,e,f);}
7.源程序:
main()
{int a,b,c,m; <br>scanf("%d %d %d",&a,&b,&c); <br>m=a;a=b;b=c;c=m; <br>printf("%d %d %d\n",a,b,c);}
执行结果:
5 6 7
6 7 5
8.源程序:
main()
{int a,b,c; <br>scanf("%d %d %d",&a,&b,&c); <br>printf("average of %d,%d and %d is %.2f\n",a,b,c,(a+b+c)/3.); <br>执行结果: <br>6 7 9 <br>average of 6,7 and 9 is 7.33 <br>9.不能。修改后的源程序如下: <br>main() <br>{int a,b,c,x,y; <br>scanf("%d %d %d",&a,&b,&c); <br>x=a*b;y=x*c; <br>printf("a=%d,b=%d,c=%d\n",a,b,c); <br>printf("x=%d,y=%d\n",x,y);}
6 第5章 选择结构程序设计
一、单项选择题(第113页)
1-4.DCBB 5-8.DABD
二、填空题(第115页)
1.非0 0 2.k==0
3.if (abs(x)>4) printf("%d",x);else printf("error!");
4.if((x>=1&&x<=10||x>=200&&x<=210)&&x&1)printf("%d",x);
5.k=1 (原题最后一行漏了个d,如果认为原题正确,则输出k=%。)
6. 8! Right!11 7.$$$a=0 8.a=2,b=1
三、编程题(第116页)
1.有错。正确的程序如下:
main()
{int a,b,c; <br>scanf("%d,%d,%d",&a,&b,&c); <br>printf("min=%d\n",a>b?b>c?c:b:a>c?c:a);}
2.源程序:
main()
{unsigned long a; <br>scanf("%ld",&a); <br>for(;a;printf("%d",a%10),a/=10);}
执行结果:
12345
54321
3.(1)源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>if (x>-5&&x<0)y=x; <br>if (x>=0&&x<5)y=x-1; <br>if (x>=5&&x<10)y=x+1; <br>printf("%d\n",y);}
(2)源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>if(x<10) if(x>-5) if(x>=0) if(x>=5)y=x+1; <br>else y=x-1; else y=x; <br>printf("%d\n",y);}
(3)源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>if(x<10) if(x>=5)y=x+1; <br>else if(x>=0)y=x-1; <br>else if(x>-5)y=x; <br>printf("%d\n",y);}
(4)源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>switch(x/5) <br>{case -1:if(x!=-5)y=x;break; <br>case 0:y=x-1;break; <br>case 1:y=x+1;}
printf("%d\n",y);}
4.本题为了避免考虑每月的天数及闰年等问题,故采用面向对象的程序设计。
现给出Delphi源程序和C++ Builder源程序。
Delphi源程序:
procedure TForm1.Button1Click(Sender: TObject);
begin
edit3.Text:=format('%.0f天',[strtodate(edit2.text) -strtodate(edit1.text)]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit2.Text:=datetostr(now);
button1click(form1)
end;
C++ Builder源程序:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit3->Text=IntToStr(StrToDate(Edit2->Text)-StrToDate(Edit1->Text))+"天";
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Edit2->Text=DateToStr(Now());
Button1Click(Form1);
}
执行结果:(运行于Windows下) http://img378.photo.163.com/nxgt/41463572/1219713927.jpg
5.源程序:
main()
{unsigned a,b,c; <br>printf("请输入三个整数:"); <br>scanf("%d %d %d",&a,&b,&c); <br>if(a&&b&&c&&a==b&&a==c)printf("构成等边三角形\n"); <br>else if(a+b>c&&a+c>b&&b+c>a) <br>if(a==b||a==c||b==c)printf("构成等腰三角形\n"); <br>else printf("构成一般三角形\n"); <br>else printf("不能构成三角形\n");}
执行结果:
请输入三个整数:5 6 5
构成等腰三角形
6.源程序:
main()
{int x,y; <br>scanf("%d",&x); <br>if(x<20)y=1; <br>else switch(x/60) <br>{case 0:y=x/10;break; <br>default:y=6;}
printf("x=%d,y=%d\n",x,y);}
7.源程序:
main()
{unsigned m;float n; <br>scanf("%d",&m); <br>if(m<100)n=0; <br>else if(m>600)n=0.06; <br>else n=(m/100+0.5)/100; <br>printf("%d %.2f %.2f\n",m,m*(1-n),m*n);}
执行结果:
450
450 429.75 20.25
8. 2171天(起始日期和终止日期均算在内)
本题可利用第4小题编好的程序进行计算。把起始日期和终止日期分别打入“生日”和“今日”栏内,单击“实足年龄”按钮,将所得到的天数再加上1天即可。
9.源程序:
#include "math.h";
main()
{unsigned long i; <br>scanf("%ld",&i); <br>printf("%ld %d\n",i%10,(int)log10(i)+1);}
执行结果:
99887
7 5
10.源程序:
main()
{unsigned long i;unsigned j[10],m=0; <br>scanf("%ld",&i); <br>for(;i;){j[m++]=(i+2)%10;i/=10;}
for(;m;m--)i=i*10+j[m-1];
printf("%ld\n",i);}
执行结果:
6987
8109
(注:要加密的数值不能是0或以0开头。如果要以0开头需用字符串而不能是整数。)
7 第6章 循环结构程序设计
一、单项选择题(第142页)
1-4.BCCB 5-8.CBCA
二、填空题(第143页)
1.原题可能有误。如无误,是死循环 2.原题有误。如果把b=1后面的逗号改为分号,则结果是8。 3.20 4.11 5. 2.400000 6.*#*#*#$ 7.8 5 2 8.①d=1.0 ②++k ③k<=n 9.①x>=0 ②x<amin
三、编程题(第145页)
1. 源程序:
main()
{int i=1,sum=i; <br>while(i<101){sum+=i=-i-2;sum+=i=-i+2;}
printf("%d\n",sum);}
执行结果:
51
2.源程序:
main()
{double p=0,n=0,f;int i; <br>for(i=1;i<=10;i++) <br>{scanf("%lf",&f); <br>if (f>0)p+=f; else n+=f;}
printf("%lf %lf %lf\n",p,n,p+n);}
3.源程序:
main()
{unsigned a; <br>scanf("%ld",&a); <br>for (;a;printf("%d,",a%10),a/=10); <br>printf("\b \n");}
执行结果:
23456
6,5,4,3,2
4.源程序:
main()
{unsigned long a,b,c,i; <br>scanf("%ld%ld",&a,&b); <br>c=a%1000; <br>for(i=1;i<b;i++)c=c*a%1000; <br>if(c<100)printf("0"); <br>if(c<10)printf("0"); <br>printf("%ld\n",c);}
执行结果:
129 57
009
5.略
6.原题提供的计算e的公式有误(前面漏了一项1)。正确的公式是e= 1 + 1 + 1/2! + 1/3! + … + 1/n! + …
(1)源程序:
main()
{double e=1,f=1;int n; <br>for(n=1;n<=20;n++){f/=n;e+=f;}
printf("e=%.14lf\n",e);}
执行结果:
e=2.71828182845905
(2)源程序:
main()
{double e=1,f=1;int n; <br>for(n=1;f>1e-4;n++){f/=n;e+=f;}
printf("e=%.4f\n",e);}
执行结果:
e=2.7183
7.源程序:
main()
{unsigned long a=0,b=1,c=0;int i,d; <br>scanf("%d",&d); <br>for (i=1;i<=(d+2)/3;i++) <br>printf("%10ld%10ld%10ld",a,b,(a+=b+c,b+=c+a,c+=a+b));}
本题还可以用递归算法(效率很低),源程序如下:
unsigned long fun(int i)
{return i<=3?i:fun(i-1)+fun(i-2)+fun(i-3);}
main()
{int i,d; scanf("%d",&d); <br>for(i=1;i<=d;i++) <br>printf("%10ld",fun(i));}
执行结果:
15
1 2 3 6 11 20 37 68
125 230 423 778 1431 2632 4841
8.源程序:
main()
{int i; <br>for(i=1010;i<=9876;i+=2) <br>if(i/100%11&&i%100%11&&i/10%100%11&&i/1000!=i%10&&i/1000!=i/10%10&&i/100%10!=i%10)printf(" %d",i);}
执行结果:
1024 1026 1028 1032 1034 1036 …… …… 9874 9876
9.源程序:
main()
{int i,j,k; <br>printf("apple watermelon pear\n"); <br>for(i=1;i<=100;i++) <br>for(j=1;j<=10;j++) <br>if((k=100-i-j)*2==400-i*4-j*40) <br>printf("%4d%7d%9d\n",i,j,k);}
执行结果:
apple watermelon pear
5 5 90
24 4 72
43 3 54
62 2 36
81 1 18
10.源程序:
#include "stdio.h";
#define N 4 /* N为阶数,可以改为其他正整数 */
main()
{int m=N*2,i,j; <br>for(i=1;i<m;printf("\n"),i++) <br>for(j=1;j<m; <br>putchar(N-abs(i-N)<=abs(j++-N)?' ':'*'));}
如果把N值改为5,则执行结果如下:
*
***
*****
*******
*********
*******
*****
***
*
搜索 " 网罗设计 " 这4个字就有图文.电子书.书籍.光盘.素材.视频教程打包下载!!
【浅析程序设计语言课的板书教学】 面向对象程序设计例子
1.1程序设计语言课程主要以大量实际程序实例来分析基本语法规则、程序设计方法及相关算法,由此在PPT上显示或者直接打开程序语言软件操作,都可直观、形象、高效的将应用实例代码演示出来,降低了教师工作量、提高了教学效率。 1.2利用投影仪演示程序可直接在课堂上进行代码编写、调试,由此可便可辅助教师有意设计错误,先让学...
高级语言程序设计是学什么的?
高级语言程序设计是计算机科学领域中的一门重要课程,通常在大学的计算机科学专业中教授。这门课程旨在向学生介绍现代软件开发所需的核心概念、技术和工具,帮助学生获得编程能力和解决问题的能力。在高级语言程序设计中,学生将学习一种或多种高级编程语言,例如Java、Python或C++等。这些编程语言都有丰富的库...
C语言程序设计教程人民邮电出版社最新出版图书(杨有安主编)_百度知...
人民邮电出版社最新出版的《C语言程序设计教程》是一本面向工业和信息化普通高等教育的"十二五"规划教材。该书由杨有安、陈维、曹惠雅、鲁丽共同编著,以全国高等学校计算机基础教育研究会的'2008'计算机基础教育大纲为依据,旨在满足"程序设计"课程的教学需求和培养新时代计算机人才的需要。全书共11章,内容包...
高等学校规划教材:C语言程序设计内容简介
董卫军等专家编撰的《C语言程序设计》教材分为两大部分。第一部分深入浅出,涵盖了C语言基础,包括C语言的概述、基本数据类型与运算、语句与流程控制、数组、指针、函数、复杂数据类型以及编译预处理和文件操作等内容。这一部分旨在为学习者建立扎实的C语言基础。第二部分则专注于程序设计的提升,探讨了程序...
C语言程序设计课程讲什么内容?
C语言程序设计课程是入门级的程序设计课程,针对没有或很少具有编程经验的在职人员。课程通过学习C语言编程的基础语法,对程序设计有一个基本的认识,为后续计算机专业课程以及面向对象程序设计课程的学习打下基础。课程主要内容:C语言程序基本结构及相关概念、变量、函数、语句、if条件语句、switch条件语句、...
程序设计语言中,学哪种语言最好?
---> \\x0d\\x0a\\x0d\\x0a当然在上述这些语言中,都提供有自己的数据库编程和Internet编□'7b。在对程序本身熟练掌握的基础上,你还可根据自己的需要选择学习。当你已具有一定程序设计能力时,不妨自己设计一个现实、有兴趣的课题,自行开发、自行设计。这样可以帮你很好地熟练 \\x0d\\x0a二、数据库编程 \\x0d...
高等学校公共课计算机教材系列:C语言程序设计(第2版)适合哪些读者?_百度...
在高等学校公共课计算机教材系列中,有一本专门针对C语言程序设计的教程——《高等学校公共课计算机教材系列:C语言程序设计(第2版)》。这本书旨在为读者提供全面而深入的C语言教学,帮助他们建立起坚实的程序设计基础,提升编程能力。该教材内容丰富,包括C语言的基础知识,如基本数据类型和运算符,以及控制...
c语言程序设计心得
C语言的教学,教师一般受传统应试 教育 的影响,狠抓理论考试,忽略了程序设计能力的培养,把授课重点放在程序设计语言的基本语法的讲授和掌握上,所选的编程实例大多用于语法规则的验证和说明,仅从程序设计语言的使用这个单一的角度进行教学,而使得大多数学生在学完本课程后,“吃不透、用不活”,表现为学生在程序调试时,...
什么是C语言程序设计.
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统...
C程序设计案例教程内容简介
帮助读者建立起坚实的编程基础。无论你是计算机专业的本科生、大专生,或是非计算机专业但在高校学习计算机的学子,甚至是对C语言程序设计有浓厚兴趣的自学爱好者,本书都是一本理想的教材。它既适合课堂教学,也是全国计算机等级考试的重要参考资源,能够帮助你系统地掌握C语言,提高编程技能。
芮图固特: #include<stdio.> void main() { int x,y,z; float ave; printf("4,4,1:\n"); scanf("%d,%d,%d",&x,&y,&z); ave=(x+y+z)/3; printf("3:ave=%f",ave); }
天峻县13180462031: 人民邮电出版社c语言程序设计教程张岗亭李立后课习题答案 - ?
芮图固特: int Conversion(char num[20], int t, int n) { int i,ii,j,k,m,x,b[30],h[30],c; double d,r; ii=0;p=0; memset(out,0,20); m=strlen(num);//求字符串的长度 x=m;for(k=0,j=0;k<m;k++)//主要是分段,以小数点为界限,只转换整数部分{if(num[k]=='.'){x=k;...
天峻县13180462031: C语言程序设计课后答案 李东明 王明泉主编 - ?
芮图固特: #include int main() { double mark[4][3], aver[4], high[3] = {0}; int i, j;for (i = 0; idouble all = 0.0; printf ("请输入%c的三门成绩:\n", 'A'+i); for (j = 0; jscanf ("%lf", &mark[i][j]); high[j] = high[j]all += mark[i][j]; } printf ("%c同学的平均成绩是:%....
天峻县13180462031: c语言程序设计答案 - ?
芮图固特: 1---------------------------------/*若为实数,请将int替换为float或double,并将%d相应地替换为%f或%lf*/#include main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if (a>b) {temp=a;a=b;b=temp;} if (a>c) {temp=a;a=c;c=temp;} if (b>c) {temp=b;b=c;...
天峻县13180462031: c语言题目答案?
芮图固特: 一1.顺序,分支,循环2,主(main)3.0,4.x<z&&y>=z||y<z&&x>=z二.1,c2,a3,c4,b,5,b6,c7,b8,c 编程题:public class TT{ public static void main(String[]args){ String str = "it is a small ball"; str = str.toUpperCase(); System.out.println(str); } }
天峻县13180462031: c语言程序设计答案?
芮图固特: #include<stdio.h> void main() { int a=1,b=2,c=3; double d=7.2,e=-5.5,f=1.56; int h=123456; char i='0',j='p';printf("a=%d b=%d c=%d\n",a,b,c); printf("d=%.6f, e=%.6f, f=%.6f\n",d,e,f); printf("d+e=-%.2f e+f=%.2f d+f=%.3f\n",d+e,e+f,d+f);...
天峻县13180462031: c语言程序设计答案 - ?
芮图固特: #include "stdio.h" void main() { float a,b,c,d,e,f,g,L; int i; i=?; a=?; b=?; c=?; d=?; g=?; scanf("%f%f",&e,&f); L=sqrt((24*a*(b-c)+24*d*(e-f))/((g*g/(b*b))-(i*i/(c*c)))); printf("L的值是:%f\n",L); }
天峻县13180462031: C语言程序设计,求完整答案,学生学习两门课:必修课成绩为 course1,选修课成绩为 cours - ?
芮图固特: #include<stdio.h> int main() {float course1,course2;printf("请输入必修课course1:"); scanf(%f,&course1);printf("请输入选修课course2:"); scanf(%f,&course2); if(course1>=60&&course2>=60) {printf("pass!\n");} else if(course1<60) { printf("fail!\n"); } return 0; }
天峻县13180462031: C语言程序设计试题 求标准答案 都是多选 - ?
芮图固特: 1、答案:A(单引号括起来的都是字符,而且一对单引号最多对应一个字符,\反斜杠是转义字符的开始,\72是ASCII码对应的字母H.也就是把H这个字母存到了变量char a中....