C语言程序设计教程答案.docx
《C语言程序设计教程答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程答案.docx(60页珍藏版)》请在冰豆网上搜索。
C语言程序设计教程答案
习题1
1、算法描绘要紧是用两种根本办法:
第一是天然语言描绘,第二是运用公用东西进展算法描绘
2、c语言顺序的结构如下:
1〕c语言顺序由函数构成,每个顺序必需存在一个main函数作为顺序的主控函数。
2〕"/*"与"*/"之间的内容形成c语言顺序的注释局部。
3〕用预处置下令#include能够包括有关文件的信息。
4〕巨细写字母在c语言中是有区不的。
5〕除main函数跟规范库函数以外,用户能够本人编写函数,顺序普通由多个函数构成,这些函数制订实践所需求做的任务。
比方:
voidmain()
{
inta,b,c,s;
a=8;b=12;c=6;
s=a+b*c;
printf("s=%d\n",s);
}
3、c语言的特色:
1〕c语言存在结构语言的特色,顺序之间非常轻易实现段的共享;
2〕c语言的要紧结形身分为函数,函数能够在顺序中被界说实现独破的义务,独破地编译成代码,以实现顺序的模块化。
3〕c语言运算符丰厚,运算包括的范畴非常广;
4〕c语言数据范例丰厚。
5〕c语言同意直截了当访咨询物理地点,即可直截了当对硬件进展操纵,实现汇编语言的年夜局部功用;
6〕c语言语法限度不太严厉,顺序计划自在度年夜,如此是c语言能够增加对顺序员的约束;
7〕用c语言编程,天生的目的代码品质高,顺序履行效力高,可移植性好;
4、正当标识符:
AB12、leed_3、EF3_3、_762、PAS、XYZ43K2
分歧法标识符:
a*b2、8stu、D.K.Jon、if、ave#xy、#_DT5、C.D
5、F2:
将以后编纂器中文件存盘
F10:
挪用主菜单
F4:
顺序运转到光标所外行
Ctrl+F9:
以后编纂情况下,进展编译、衔接且运转顺序;
Alt+F5:
将窗口切换到DOS下,检查顺序运转后果
6、
(1):
********************
welcomeyou
verygood
********************
(2):
pleaseinputthreenumber;5,7,8
maxnumberis:
8
7、main8、Userscreen、Alt+F5
9、标识符必需是字母或下划线扫尾,巨细写字母含意差别。
由数字、字母跟下划线构成;
要害字是一种语言中规则存在特定含意的标识符。
要害字不克不及作为变量或函数名来运用,用户只能依照零碎的规则运用它们。
10、选择主菜单File项下拉子菜单中Save项或直截了当按F2键存盘。
习题2
1、契合C语法例则的常数为:
0x1e、"ab\n"、1.e5
2、
(1):
过错如下:
intx,y=5,z=5,aver;
x=7;
aver=(x+y+x)/3;
后果如下:
AVER=5
(2):
过错如下:
charc1='a',c2='b',c3='c';
printf("a=%db=\'%c\'\"end\"\n",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):
9.500000(4):
90(5):
10(6):
10(7):
65(8):
4
(9):
4.500000(10):
1(11):
0(12):
20(13):
0
6、(5)7、求x的相对值8、c>(max=a>b?
a:
b)?
c:
max;9、B10、D
习题3
1、输入函数scanf的参数过错,应当为:
scanf("%f",&k);
2、|12341234|3、ff104、1,3,1
5、原字符串右边加空格再加字符串自身,字符个数总跟为5个
6、scanf("%d,%d,%c,%c",&a1,&a2,&c1,&c2);
7、printf("a+b=%d\n",a+b);
printf("a-b=%d\n",a-b);
printf("a*b=%d\n",a*b);
printf("a/b=%d\n",a/b);
printf("(float)a/b=%f\n",(float)a/b);
printf("a%b=%d\n",a%b);
8、voidmain()
{floatr;
floats,c;
printf("pleaseinputthenumber:
");
scanf("%f",&r);
if(r>=0)
{s=3.14*r*r;
c=2*3.14*r;
printf("s=%f,c=%f\n",s,c);
}
else
printf("youinputnumberiserror!
");
}
9、voidmain()
{intn;
printf("pleaseinputthenumber:
");
scanf("%d",&n);
if(n>=100&&n<=999)
printf("%d%d%d",n%10,(n/10)%10,n/100);
else
printf("youinputnumberiserror!
");
}
10、voidmain()
{inti,j,k;
scanf("%d,%d,%d",&i,&j,&k);
((i%2!
=0?
1:
0)+(j%2!
=0?
1:
0)+(k%2!
=0?
1:
0))==2?
printf("YES\n"):
printf("NO\n");
}
11、voidmain()
{chara;
scanf("%c",&a);
printf("%c,%c,%c",a-1,a,a+1);
printf("%d,%d,%d",a-1,a,a+1);
}
12、voidmain()
{floata,b,c,s,Area;
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c||a+c>b||b+c>a)
{s=(a+b+c)/2;
Area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f\n",Area);
}
else
printf("youinputthenumberiserror!
\n");
}
习题4
1:
02:
203:
(x<30&&x>20)||(x<-100)4:
***a=25,b=14,c=16***
5:
37
6:
if(a<=b)printf("1");
elseprintf("2");
7、#include
voidmain()
{chara,b,t1,t2;
scanf("%c,%c",&a,&b);
t1=a>b?
a:
b;
t2=a
a:
b;
if((t1-t2)%2==0)printf("%c,%c",a+1,b+1);
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)<=x)
{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((m+n)<=1)
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%400==0)||(year%4==0&&year%100!
=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<0&&x>-5)
y=x-1;
elseif(x==0)
y=x;
elseif(x>0&&x<8)
y=x+1;
printf("%d",y);
getch();
}
办法二:
#include
voidmain()
{intx,y;
scanf("%d",&x);
if(x<8&&x>-5)
{if(x==0)y=x;
elseif(x>0&&x<8)y=y=x+1;
elsey=x-1;
printf("%d",y);
}
elseprintf("Inputerror!
!
!
");
getch();
}
办法三:
#include
voidmain()
{intx,y,i;
scanf("%d",&x);
if(x<8&&x>-5)
{if(x==0)i=1;
elseif(x>0&&x<8)i=2;
elsei=3;
}
elsei=4;
switch(i)
{case1:
y=x;printf("%d",y);break;
case2:
y=x+1;printf("%d",y);break;
case3:
y=x-1;printf("%d",y);break;
case4:
printf("Inputerror!
!
");break;
}getch();
}
习题5
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\n",average);
}
2、#include"stdio.h"
voidmain()
{charch;
intzm=0,sz=0;
ch=getchar();
while(ch!
='*')
{if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<'z'))
zm++;
if(ch>='0'&&ch<='9')
sz++;
ch=getchar();
}
printf("zm=%d;sz=%d\n",zm,sz);
}
3、voidmain()
{longi_value;
intsum=0;
inttemp=0;
scanf("%ld",&i_value);
if(i_value<0){printf("youinputtheintiserror!
\n");return;}
for(;;)
{temp=i_value%10;
i_value=i_value/10;
sum+=temp;
printf("%d+",temp);
if(i_value==0)break;
}
printf("\b=%d\n",sum);
}
4、#include"stdio.h"
voidmain()
{charch;
ch=getchar();
while(ch!
='.')
{if((ch>='A'&&ch<='Z'))
{ch=ch+32;
putchar(ch);
}
elseif((ch>='a'&&ch<'z'))
{ch=ch-32;
putchar(ch);
}
else
{putchar(ch);
}
ch=getchar();
}
printf("\n");
}
5、voidmain()
{floatsum=200;
intcount=0;
for(;;)
{sum=sum+sum*0.045;
count++;
if(sum>500)break;
}
printf("the%dyearslatercomplete!
\n",count);
}
6、voidmain()
{inti,temp=0,bit=0;
for(i=1;i<=999;i++)
{if(i%3==0)
{temp=i;
for(;temp!
=0;)
{bit=temp%10;
if(bit==5){printf("%d,",i);break;}
temp=temp/10;
}
}
}
printf("\b\n");
}
7、#include
intmain(void)
{intsteps=29,i=1;
while(steps%7)
{steps=(30*++i)-1;
}
printf("Totalsteps:
%d\n",steps);
return0;
}
8、main()
{inti,j,k,n;
printf("thenarcissusnumberis:
\n");
for(n=100;n<1000;n++)
{i=n/100;
j=n/10-i*10;
k=n%10;
if(i*i*i+j*j*j+k*k*k==n)printf("%d\n",n);
}
}
9、main()
{floati,j,temp,n,sum;
intt;
i=2;j=1;sum=0;
scanf("%d",&t);
for(n=1;n<=t;n++)
{sum=sum+i/j;
temp=i;i=i+j;j=temp;
}
printf("2/1+3/2+5/3+8/5+13/8+...=%f\n",sum);
}
10、voidmain()
{intnWidth,a,b;
scanf("%d",&nWidth);
for(a=(nWidth%2);a<=nWidth;a+=2)
{for(b=0;b{charchOut='';
intnleft=(nWidth-a)/2;
intnright=(nWidth+a)/2;
if(b>=nleft&&b{chOut='*';
}
printf("%c",chOut);
}
printf("\n");
}
}
11、voidmain()
{inti=1,j=1;
for(i=1;i<=9;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%d",i,j,i*j);
printf("\n")
}
}
12、#include"stdio.h"
voidmain()
{charc;
//count1是正数的个数
//count2是正数的个数
intcount1=0,count2=0;
//sum1是正数之跟
//sum2是正数之跟
intsum1=0,sum2=0;
intflage=0;
c=getchar();
while(c!
='*')
{if(c=='-')flage=1;
if(flage==0)
{sum1+=(c-48);count1++;}
else
{if(c!
='-')
{sum2-=(c-48);flage=0;count2++;
}
}
c=getchar();
}
printf("%d,%d\n",count1,count2);
printf("%f,%f\n",sum1/count1,sum2/count2);
}
13、voidmain()
{
inti,j;
ints=0;
for(i=100;i<=999;i++)
{
s=0;
for(j=1;j{if(i%j==0)s=s+j;
}
if(s==i)printf("%5d",i);
}
}
14、#include
#include
voidmain()
{intn;
longk=1;
floate=1;
n=1;
clrscr();
while(fabs(1.0/k)>=0.000001)
{
n++;
e=e+1.0/k;
k=k*n;
}
printf("%f\n",e);
}
15、#include"math.h"
main()
{floatx0,x1,x2,f0,f1,f2;
x1=-10;
f1=2*x1*x1*x1-4*x1*x1+3*x1;
x2=10;
f2=2*x2*x2*x2-4*x2*x2+3*x2;
do
{x0=(x1+x2)/2;
f0=2*x0*x0*x0-4*x0*x0+3*x0;
if((f0*f1)<0)
{x2=x0;f2=f0;}
else
{x1=x0;f1=f0;}
}
while(fabs(f0)>1e-6);
printf("______2*x*x*x-4*x*x+3*x=0______\n");
printf("therootis%f\n",x0);
}
习题6
1、#include
intdivisor(inta,intb)
{intr;
while((r=a%b)!
=0)
{a=b;
b=r;
}
returnb;
}
intmultiple(inta,intb)
{intd;
d=divisor(a,b);
returna*b/d;
}
voidmain()
{inta,b,c,d;
printf("intput(a,b):
");
scanf("%d,%d",&a,&b);
c=divisor(a,b);
d=multiple(a,b);
printf("\ndivisor=%d\t\tmultiple=%d",c,d);
}
2、#include
voidtongji(chara[])
{intb[3]={0,0,0},i=0;
while(a[i]!
='\0')
{if((a[i]<=90&&a[i]>=65)||(a[i]<=122&&a[i]>=97)、b[0]++;
elseif(a[i]<=57&&a[i]>=48)
b[1]++;
else
b[2]++;
i++;
}
printf("zimuhave:
%d;shuzihave:
%d;qitahave:
%d",b[0],b[1],b[2]);
getch();
}
voidmain()
{chara[100];
printf("Pleaseinputastring:
");
gets(a);
tongji(a);
}
3、#include
intflower(intn)
{intx=0,i,j,k;
i=(n%10);
j=(n/10%10);
k=(n/100);
x=i*i*i+j*j*j+k*k*k;
if(x==n)return1;
elsereturn0;
}
voidmain()
{inti,n;
printf("Pleaseintputn:
");
scanf("%d",&n);
if(n>999||n<100)printf("Inputerror!
!
!
");
else
{for(i=100;iif(flower(i))printf("%d",i);
}getch();
}
4、#include
#defineSWAP(a,b)t=b;b=a;a=t;
main()
{floatx,y,t;
printf("Entertwonumber(x,y):
");
scanf("%f,%f",&x,&y);
SWAP(x,y);
printf("\n\nExchanged:
x=%f,y=%f",x,y);
getch();
}
5、#include
intfib(intn)
{intp;
if(n==0)p=0;
elseif(n==1)p=1;
elsep=fib(n-1)+fib(n-2);
returnp;
}
voidmain()
{intn;
printf("Pleaseinputfib:
");
scanf("%d",&n);
printf("\n\nfibonacci=%d",fib(n));
}
6、#include
longfac(intn)
{longf;
if(n==0)f=1;
elsef=n*fac(n-1);
returnf;
}
voidmain()
{intm,n;
longf;
printf("Pleaseinput(m,n):
");
scanf("%ld,%ld",&m,&n);
f=fac(n+m)+fac(n);
printf("\n\nfibonacci=%ld",f);
}
7、#include
voidlist()
{inti,j;
for(i=1;i<=9;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%d",i,j,i*j);
print