C语言程序设计教程杨路明课后习题答案.docx
- 文档编号:4981217
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:22
- 大小:20.68KB
C语言程序设计教程杨路明课后习题答案.docx
《C语言程序设计教程杨路明课后习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程杨路明课后习题答案.docx(22页珍藏版)》请在冰豆网上搜索。
C语言程序设计教程杨路明课后习题答案
C语言程序设计教程杨路明课后习题答案北京邮电大学出版社
第一章
1、算法描述主要是用两种基本方法:
第一是自然语言描述,第二是使用专用工具进行算法描述
2、c语言程序的结构如下:
①c语言程序由函数组成,每个程序必须具有一个main函数作为程序的主控函数。
②"/*"与"*/"之间的内容构成c语言程序的注释部分。
③用预处理命令#include可以包含有关文件的信息。
④大小写字母在c语言中是有区别的。
⑤除main函数和标准库函数以外,用户可以自己编写函数,程序一般由多个函数组成,这些函数制定实际所需要做的工作。
例如:
voidmain()
inta,b,c,s;
a=8;b=12;c=6;
s=ab*c;
printf("s=%d",s);
3、c语言的特点:
①c语言具有结构语言的特点,程序之间很容易实现段的共享;
②c语言的主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译成代码,以实现程序的模块化。
③c语言运算符丰富,运算包含的范围很广;
④c语言数据类型丰富。
⑤c语言允许直接访问物理地址,即可直接对硬件进行操作,实现汇编语言的大部分功能;
⑥c语言语法限制不太严格,程序设计自由度大,这样是c语言能够减少对程序员的束缚;
⑦用c语言编程,生成的目标代码质量高,程序执行效率高,可移植性好;
4、合法标识符:
AB12、leed_3、EF3_3、_762、PAS、XYZ43K2
不合法标识符:
a*b2、8stu、、if、ave#xy、#_DT5、
5、F2:
将当前编辑器中文件存盘
F10:
调用主菜单
F4:
程序运行到光标所在行
CtrlF9:
当前编辑环境下,进行编译、连接且运行程序;
AltF5:
将窗口切换到DOS下,查看程序运行结果
6、
(1):
********************
welcomeyou
verygood
********************
(2):
pleaseinputthreenumber;5,7,8
maxnumberis:
8
7、main
8、Userscreen、AltF5
9、标识符必须是字母或下划线开头,大小写字母含义不同。
由数字、字母和下划线组成;
关键字是一种语言中规定具有特定含义的标识符。
关键字不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。
10、选择主菜单File项下拉子菜单中Save项或直接按F2键存盘。
第二章
1、符合C语法规定的常数为:
0x1e、"ab"、
2、
(1):
错误如下:
intx,y=5,z=5,aver;
x=7;
aver=(xyx)/3;
结果如下:
AVER=5
(2):
错误如下:
charc1='a',c2='b',c3='c';
printf("a==__end",a,b);
结果如下:
a=3b='A'"end"
aabccabc
3、
4、
(1):
9,11,9,10
(2):
3,1,0,0
(3):
11,19,31,1
5、
(1):
0
(2):
0
(3):
(4):
90
(5):
10
(6):
10
(7):
65
(8):
4
(9):
(10):
1
(11):
0
(12):
20
(13):
0
6、(5)
7、求x的绝对值
8、c>(max=a>ba:
b)c:
max;
9、B
10、D
第三章
1、输入函数scanf的参数错误,应该为:
scanf("%f",&k);
2、|12341234|
3、ff10
4、1,3,1
5、原字符串
左边加空格再加字符串本省,字符个数总和为5个
6、scanf("%d,%d,%c,%c",&a1,&a2,&c1,&c2);
7、printf("ab=%d",ab);
printf("a-b=%d",a-b);
printf("a*b=%d",a*b);
printf("a/b=%d",a/b);
printf("(float)a/b=%f",(float)a/b);
printf("a%b=%d",a%b);
8、voidmain()
floatr;
floats,c;
printf("pleaseinputthenumber:
");
scanf("%f",&r);
if(r>=0)
s=*r*r;
c=2**r;
printf("s=%f,c=%f",s,c);
else
printf("youinputnumberiserror!
");
9、voidmain()
intn;
printf("pleaseinputthenumber:
");
scanf("%d",&n);
if(n>=100&&n
printf("%d%d%d",n_,(n/10)_,n/100);
else
printf("youinputnumberiserror!
");
10、voidmain()
inti,j,k;
scanf("%d,%d,%d",&i,&j,&k);
((i%2!
=01:
0)(j%2!
=01:
0)(k%2!
=01:
0))==2printf("YES"):
printf("NO");
11、voidmain()
chara;
scanf("%c",&a);
printf("%c,%c,%c",a-1,a,a1);
printf("%d,%d,%d",a-1,a,a1);
12、voidmain()
floata,b,c,s,Area;
scanf("%f,%f,%f",&a,&b,&c);
if(ab>c||ac>b||bc>a)
s=(abc)/2;
Area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f",Area);
else
printf("youinputthenumberiserror!
");
第四章
1:
0
2:
20
3:
(x20)||(x
4:
***a=25,b=14,c=16***
5:
37
6:
if(a
elseprintf("2");
7、
#include
voidmain()
chara,b,t1,t2;
scanf("%c,%c",&a,&b);
t1=a>ba:
b;
t2=a
if((t1-t2)%2==0)printf("%c,%c",a1,b1);
elseprintf("%c,%c",a-1,b-1);
getch();
8、
#include
voidmain()
inttemp1=0,temp2=0,x,y,i=1;
printf("Pleaseinput(x,y):
");
scanf("%d,%d",&x,&y);
while((i*y)
if(x==(i*y))temp1=1;break;
temp2=i;
i;
if(temp1)
printf("%d/%d=%d",x,y,i);
else
printf("%d/%d--->shang=%d,yushu=%d",x,y,temp2,x-y*temp2);
getch();
9、
#include
voidmain()
floatx,y,m=0,n=0;
scanf("%f,%f",&x,&y);
n=(x-2)*(x-2);
m=(y-2)*(y-2);
if((mn)
printf("(%.3f,%.3f)Intheyuan",x,y);
else
printf("(%.3f,%.3f)outoftheyuan",x,y);
getch();
10、
#include
voidmain()
inttemp=0,month,year;
printf("Pleaseinput(year,month):
");
scanf("%d,%d",&year,&month);
if((year@0==0)||(year%4==0&&year_0!
=0))
temp=1;
if(month==2)
if(temp)printf("%dyear%dmonthhave29",year,month);
elseprintf("%dyear%dmonthhave28",year,month);
elseif(month%2==0)
printf("%dyear%dmonthhave30",year,month);
elseprintf("%dyear%dmonthhave31",year,month);
getch();
11、
switch(a/10)
case5:
m=4;break;
case4:
m=3;break;
case3:
m=2;break;
case2:
m=1;break;
default:
m=5;
12、
方法一:
#include
voidmain()
intx,y;
scanf("%d",&x);
if(x-5)
y=x-1;
elseif(x==0)
y=x;
elseif(x>0&&x
y=x1;
printf("%d",y);
getch();
方法二:
#include
voidmain()
intx,y;
scanf("%d",&x);
if(x-5)
if(x==0)y=x;
elseif(x>0&&x
elsey=x-1;
printf("%d",y);
elseprintf("Inputerror!
!
!
");
getch();
方法三:
#include
voidmain()
intx,y,i;
scanf("%d",&x);
if(x-5)
if(x==0)i=1;
elseif(x>0&&x
elsei=3;
elsei=4;
switch(i)
case1:
y=x;printf("%d",y);break;
case2:
y=x1;printf("%d",y);break;
case3:
y=x-1;printf("%d",y);break;
case4:
printf("Inputerror!
!
");break;
getch();
第五章
1、voidmain()
intn,value;
inti,count=0;
floataverage=0;
longintsum=0;
scanf("%d",&n);
for(i=0;i
scanf("%d",&value);
if(value%2==0)
sum=value;
count;
average=sum/(float)count;
printf("theaverageis%f",average);
2、
#include""
voidmain()
charch;
intzm=0,sz=0;
ch=getchar();
while(ch!
='*')
if((ch>='A'&&ch='a'&&ch
zm;
if(ch>='0'&&ch
sz;
ch=getchar();
printf("zm=%d;sz=%d",zm,sz);
3、
voidmain()
longi_value;
intsum=0;
inttemp=0;
scanf("%ld",&i_value);
if(i_value
for(;;)
temp=i_value_;
i_value=i_value/10;
sum=temp;
printf("%d",temp);
if(i_value==0)break;
printf("=%d",sum);
4、
#include""
voidmain()
charch;
ch=getchar();
while(ch!
='.')
if((ch>='A'&&ch
ch=ch32;
putchar(ch);
elseif((ch>='a'&&ch
ch=ch-32;
putchar(ch);
else
putchar(ch);
ch=getchar();
printf("");
5、
voidmain()
floatsum=200;
intcount=0;
for(;;)
sum=sumsum*;
count;
if(sum>500)break;
printf("the%dyearslatercomplete!
",count);
6、
voidmain()
inti,temp=0,bit=0;
for(i=1;i
if(i%3==0)
temp=i;
for(;temp!
=0;)
bit=temp_;
if(bit==5)printf("%d,",i);break;
temp=temp/10;
printf("");
7、
#include
intmain(void)
intsteps=29,i=1;
while(steps%7)
steps=(30*i)-1;
printf("Totalsteps:
%d",steps);
return0;
8、
main()
inti,j,k,n;
printf("thenarcissusnumberis:
");
for(n=100;n
i=n/100;
j=n/10-i*10;
k=n_;
if(i*i*ij*j*jk*k*k==n)printf("%d",n);
9、
main()
floati,j,temp,n,sum;
intt;
i=2;j=1;sum=0;
scanf("%d",&t);
for(n=1;n
sum=sumi/j;
temp=i;i=ij;j=temp;
printf("2/13/25/38/513/8...=%f",sum);
10、
voidmain()
intnWidth,a,b;
scanf("%d",&nWidth);
for(a=(nWidth%2);a
for(b=0;b
charchOut='';
intnleft=(nWidth-a)/2;
intnright=(nWidtha)/2;
if(b>=nleft&&b
chOut='*';
printf("%c",chOut);
printf("");r
11、
voidmain()
inti=1,j=1;
for(i=1;i
for(j=1;j
printf("%d*%d=%d",i,j,i*j);
printf("")
12、
#include""
voidmain()
charc;
id,worker[size].name);
size;
while(worker[size-1].sid!
=0);
returnworker;
voidpaixu(structworka[])
inti,j,k;longt;charv[15];
for(i=0;i
k=i;
for(j=i;j
if(a[i].sid>a[j].sid)k=j;
if(k!
=i)
t=a[i].sid;a[i].sid=a[j].sid;a[j].sid=t;
strcpy(v,a[i].name);strcpy(a[i].name,a[j].name);strcpy(a[j].name,v);
for(i=0;i
printf("sid:
%ld:
%s",a[i].sid,a[i].name);
getch();
voidselect(structworka[])
inti=0,found=1;longnum;
printf("Inputselectsid:
");
scanf("%ld",&num);
for(i=0;i
if(a[i].sid==num)
found=0;
printf("%ld:
%s",num,a[i].name);
break;
if(found)printf("thissid!
!
!
");
getch();
voidmain()
structwork*p;
p=set_list();
paixu(p);
select(p);
10、
#include
floatjiecheng(intn)
longs=1;inti;
for(i=1;i
s=s*i;
returns;
floatchengfang(floatx,intn)
floats=1;inti;
for(i=1;i
s=s*x;
returns;
floatf(floatx,intn)
floats=1,t=0;inti=1,j=-1;
for(i=1;i
t=j*chengfang(x,2*i)/jiecheng(2*i);
s=t;
j=j*j;
returns;
main()
floats1=0,s2=0,s3=0,s4=0,x=;intn=7;
s1=f(x,n);
s2=f(x,n);
s3=f,n3);
s4=s1/(s2s3);
printf("%f",s4);
getch();
第七章
1:
(1)D
(2)A
(3)D
(4)B
(5)D
2:
(1)1544
678
23
4
(2)6333
3:
(1)a[8]=data;k>=0a[k]=tempbreakk
(2)"%s"str[i]
4、/*题目:
求一组成绩的平均分数以及高于平均分的成绩。
*/
#include
#definemax100
voidmain()
floata[max],s=0,average=0;
inti,n;
printf("PleaseinputN:
");/*输入要处理元素的个数*/
scanf("%d",&n);
printf("input%dgeshu:
",n);/*输入90,85,92,77,80,62*/for(i=0;i
scanf("%f",&a[i]);
s=a[i];
average=s/n;
printf("=%.2f",average);/*输出*/
for(i=0;i
if(a[i]>average)
printf("%.2f",a[i]);/*输出,,*/
5、
/*题目:
编写程序,输入一组整数,将他们排序后由小到大输出。
*/
#include
#definemax100
voidmain()
inta[max],j,i,k=0,t=0,n=0;
printf("PleaseinputN:
");/*输入要处理元素的个数*/
scanf("%d",&n);
for(i=0;i
scanf("%d",&a[i]);
for(i=0;i
k=i;
for(j=i1;j
if(a[k]>a[j])
k=j;
if(k!
=i)/*元素排序前下标与排序后下标不符,则交换其值*/
t=a[i];
a[i]=a[k];
a[k]=t;
printf("");
for(i=0;i
printf("%d",a[i]);
6、
/*题目:
从键盘输入一个4x4的整数矩阵,以主对角线(┪猿浦/
/*将左下角元素中较大者替换右上角元素,并将右上角含对称轴输出。
*/
#include
#include
voidmain()
intd[4][4]=0,0,0,0,i,j;
clrscr();
printf("input16num:
");
for(i=0;i
for(j=0;j
scanf("%d",&d[i][j]);
for(i=0;i
for(j=0;j
if(d[i][j]>d[j][i])/*左下角元素大于右上角元素则交换*/
d[j][i]=d[i][j];
for(i=0;i
printf("");/*为了保持每行的间隔与每列的相同*/
for(j=0;j
if(j>=i)
printf("%d",d[i][j]);/*为了使位数不同的数输出依然保持三角型*/else
printf("");
7、
*题目:
输入一个3x4的二维数组,然后分别按行和按列输出。
*/
#include
#include
voidmain()
intd[3][4]=0,0,0,0,i,j;
printf("Pleaseinput12num:
");
for(i=0;i
for(j=0;j
scanf("%d",&d[i][j]);
printf("hang:
");
for(i=0;i
for(j=0;j
printf("%d",d[i][j]);
printf("lie:
");
for(i=0;i
for(j=0;j
printf("%d",d[j][i]);
8、
/*题目:
编写程序,将两个字符串连接起来,不用strcat函数。
*/
#include
#include
voidmain()
chars1[50],s2[50];
inti=0,j=0,t=0;
printf("Inputone:
");
gets(s1);
while(s1[i]!
='')i;/*统计s1中字符个数*/
printf("second:
");
gets(s2);
while(s2[j]!
='')j;/*统计s2中字符个数*/
for(t=0;t
s1[i]=s2[t];i;
printf("second:
");
puts(s1);
9、
/*输入一行字符串,统计字符对ab的个数。
*/
#include
#include
#defineMAX100
voidmain()
charstr[MAX];
inti=0,flage=0;
intcount=0;
printf("inputastring:
");
gets(str);
while(str[i])
if(str[i]=='a')
flage=1;
elseif(str[i]=='b')
if(flage==1)
count;flage=0;
elseflage=0;
i;
printf("thedoublecharabcountis%d",count);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 杨路明 课后 习题 答案