《C语言程序设计教程答案_杨路明_郭浩志》由会员分享,可在线阅读,更多相关《C语言程序设计教程答案_杨路明_郭浩志(16页珍藏版)》请在人人文库网上搜索。
1、习题11、算法描述主要是用两种基本方法:第一是自然语言描述,第二是使用专用工具进行算法描述2、c语言程序的结构如下:1、c语言程序由函数组成,每个程序必须具有一个main函数作为程序的主控函数。2、/*与*/之间的内容构成c语言程序的注释部分。3、用预处理命令#include可以包含有关文件的信息。4、大小写字母在c语言中是有区别的。5、除main函数和标准库函数以外,用户可以自己编写函数,程序一般由多个函数组成,这些函数制定实际所需要做的工作。例如:void main()int a,b,c,s;a=8;b=12;c=6;s=a+b*c;printf(s=%dn,s);3、c语言的特点:1、c。
2、语言具有结构语言的特点,程序之间很容易实现段的共享;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、a。
3、ve#xy、#_DT5、C.D5、F2:将当前编辑器中文件存盘. F10:调用主菜单.F4:程序运行到光标所在行. Ctrl+F9:当前编辑环境下,进行编译、连接且运行程序;Alt+F5:将窗口切换到DOS下,查看程序运行结果6、 (1): *welcome youvery good*(2): please input three number;5,7,8max number is:87、main8、User screen、Alt+F59、标识符必须是字母或下划线开头,大小写字母含义不同。由数字、字母和下划线组成;关键字是一种语言中规定具有特定含义的标识符。关键字不能作为变量或函数名来使用,用。
4、户只能根据系统的规定使用它们。10、选择主菜单File项下拉子菜单中Save项或直接按F2键存盘。习题21、符合C语法规定的常数为:0x1e、abn、1.e52、(1):错误如下:int x,y=5,z=5,aver;x=7;aver = (x+y+x)/3;结果如下:AVER=5(2):错误如下:char c1=a,c2=b,c3=c;printf(a=%db=%cendn,a,b);结果如下:a=3b=Aendaabcc abc3、4、(1):9,11,9,10(2):3,1,0,0(3):11,19,31,15、(1):0(2):0(3):9.(4):90(5):10(6):10(7):。
5、65(8):4(9):4.(10):1(11):0(12):20(13):06、(5)7、求x的绝对值8、c(max=ab?a:b)?c:max;9、B10、D习题31、输入函数scanf的参数错误,应该为:scanf(%f,&k);2、|1234 1234 |3、ff104、1,3,15、原字符串左边加空格再加字符串本省,字符个数总和为5个6、scanf(%d,%d,%c,%c,&a1,&a2,&c1,&c2);7、printf(a+b=%dn,a+b);printf(a-b=%dn,a-b);printf(a*b=%dn,a*b);printf(a/b=%dn,a/b);printf(fl。
6、oat)a/b=%fn,(float)a/b);printf(a%b=%dn,a%b);8、void main()float r;float s,c;printf(please input the number:);scanf(%f,&r);if(r=0)s = 3.14*r*r;c = 2*3.14*r;printf(s = %f, c = %fn,s,c);elseprintf(you input number is error!);9、void main()int n;printf(please input the number:);scanf(%d,&n);if(n=100 & n c。
7、 | a+c b | b+c a)s = (a+b+c)/2;Area = sqrt(s*(s-a)*(s-b)*(s-c);printf(%fn,Area);elseprintf(you input the number is error!n);习题41:02:203: (x20)|(xvoid main()char a,b,t1,t2;scanf(%c,%c,&a,&b);t1=ab?a:b;t2=avoid main()int temp1=0,temp2=0,x,y,i=1;printf(Please input (x,y): );scanf(%d,%d,&x,&y);while(i*y。
8、) shang=%d,yushu=%d,x,y,temp2,x-y*temp2);getch();9、#includevoid main()float x,y,m=0,n=0;scanf(%f,%f,&x,&y);n=(x-2)*(x-2);m=(y-2)*(y-2);if(m+n)void main()int temp=0,month,year;printf(Please input (year,month): );scanf(%d,%d,&year,&month);if(year%400=0)|(year%4=0&year%100!=0)temp=1;if(month=2)if(temp)。
9、printf(%d year %d month have 29 ,year,month);else printf(%d year %d month have 28 ,year,month);else if(month%2=0)printf(%d year %d month have 30 ,year,month);else printf(%d year %d month have 31 ,year,month);getch();11、switch(a/10)case 5:m=4;break;case 4:m=3;break;case 3:m=2;break;case 2:m=1;break;d。
10、efault:m=5; 12、方法一:#includevoid main()int x,y;scanf(%d,&x);if(x-5)y=x-1;else if(x=0)y=x;else if(x0&xvoid main()int x,y;scanf(%d,&x);if(x-5)if(x=0)y=x;else if(x0&xvoid main()int x,y,i;scanf(%d,&x);if(x-5)if(x=0)i=1;else if(x0&x= A & ch = a & ch = 0 & ch = A & ch = a & ch 500)break;printf(the %d years。
11、 later complete!n,count);6、void main()int i,temp=0,bit=0;for(i = 1 ; i int main(void)int steps = 29, i = 1;while ( steps % 7 )steps = (30 * +i) - 1;printf(Total steps: %dn, steps);return 0;8、main()int i,j,k,n;printf(the narcissus number is:n);for(n=100;n=nleft&b#include void main()int n;long k = 1;f。
12、loat e = 1;n = 1;clrscr();while ( fabs(1.0/k) = 0.)n+;e = e+ 1.0/k;k = k * n;printf(%fn,e);15、#include math.hmain()float x0,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)1e-6);printf(______2*x*x*x-4*x*x+3*x=0____。
13、__n);printf(the root is %fn,x0);习题61、#includeint divisor(int a,int b)int r;while(r=a%b)!=0)a=b;b=r;return b;int multiple(int a,int b)int d;d=divisor(a,b);return a*b/d;void main()int a,b,c,d;printf(intput (a,b): );scanf(%d,%d,&a,&b);c=divisor(a,b);d=multiple(a,b);printf(ndivisor=%dttmultiple=%d,c,d);。
14、2、#includevoid tongji(char a)int b3=0,0,0,i=0;while(ai!=0)if(ai=65)|(ai=97)b0+;else if(ai=48) b1+;elseb2+;i+;printf(zimu have: %d; shuzi have: %d; qita have: %d,b0,b1,b2);getch();void main()char a100;printf(Please input a string: );gets(a);tongji(a);3、#includeint flower(int n)int x=0,i,j,k;i=(n%10);。
15、 j= (n/10%10);k=(n/100);x=i*i*i+j*j*j+k*k*k;if(x=n) return 1;else return 0;void main()int i,n;printf(Please intput n: );scanf(%d,&n);if(n999|n#define SWAP(a,b) t=b;b=a;a=t;main()float x,y,t;printf(Enter two number (x,y): );scanf(%f,%f,&x,&y);SWAP(x,y);printf(nnExchanged:x=%f,y=%f,x,y);getch();5、#inc。
16、ludeint fib(int n)int p;if(n=0) p=0;else if(n=1) p=1;else p=fib(n-1)+fib(n-2);return p;void main()int n;printf(Please input fib: );scanf(%d,&n);printf(nnfibonacci=%d,fib(n);6、#includelong fac(int n)long f;if(n=0)f=1;elsef=n*fac(n-1);return f;void main()int m,n;long f;printf(Please input (m,n): );sca。
17、nf(%ld,%ld,&m,&n);f=fac(n+m)+fac(n);printf(nnfibonacci=%ld,f);7、#includevoid list()int i,j;for(i=1;iint he(int n)int i,s=0;for(i=1;i%d ,i,j);9、#include#define max 100struct worklong sid;char name15;workermax;int size=0;struct work *set_list()doprintf(nnPlease input (sid,name): );scanf(%ld,%s,&worker。
18、size.sid,workersize.name);size+;while(workersize-1.sid!=0);return worker;void paixu(struct work a)int i,j,k;long t;char v15;for(i=0;iaj.sid)k=j;if(k!=i)t=ai.sid; ai.sid=aj.sid; aj.sid=t;strcpy(v,ai.name);strcpy(ai.name,aj.name);strcpy(aj.name,v);for(i=0;ifloat jiecheng(int n)long s=1;int i;for(i=1;i。
19、=0 ak=temp break k#define max 100void main()float amax,s=0,average=0;int i,n;printf(Please input N: ); /*输入要处理元素的个数*/scanf(%d,&n);printf(nPlease input %d ge shu: ,n); /*输入90,85,92,77,80,62*/for(i=0;iaverage)printf(%.2f ,ai); /*输出90.00 ,85.00 ,92.00*/5、/*题目:编写程序,输入一组整数,将他们排序后由小到大输出。*/#include#define 。
20、max 100void main()int amax,j,i,k=0,t=0,n=0;printf(Please input N: ); /*输入要处理元素的个数*/scanf(%d,&n);for(i=0;iaj)k=j;if(k!=i) /*元素排序前下标与排序后下标不符,则交换其值*/ t=ai;ai=ak;ak=t;printf(nn);for(i=0;i#includevoid main()int d44=0,0,0,0,i,j;clrscr();printf(nPlease input 16 num: );for(i=0;idji) /*左下角元素大于右上角元素则交换*/dji=d。
21、ij;for(i=0;i=i)printf(t%d,dij);/*为了使位数不同的数输出依然保持三角型*/elseprintf(t);7、*题目:输入一个3x4的二维数组,然后分别按行和按列输出。*/#include#includevoid main()int d34=0,0,0,0,i,j;printf(Please input 12 num: );for(i=0;i#includevoid main() char s150,s250;int i=0,j=0,t=0;printf(Input one: );gets(s1);while(s1i!=0) i+; /*统计s1中字符个数*/pri。
22、ntf(nnInput second: );gets(s2); while(s2j!=0) j+; /*统计s2中字符个数*/for(t=0;t#include#define MAX 100void main()char strMAX;int i=0,flage=0;int count=0;printf(nPlease input a string: );gets(str);while(stri)if(stri=a)flage=1;else if(stri=b)if(flage=1) count+;flage=0;else flage=0;i+;printf(the double char a。
23、b count is %dn,count);10、#include /*相对于第一种方法,这种方法能把同为最大的字符串全部打印出来。*/#includeint paixu(int a,int n) /*构造对长度为n的数组排序的函数*/int i,j,t,k,temp;for(i=0;iaj)k=j;if(k!=i) t=ai;ai=ak;ak=t;temp=an-1;return temp; /*返回最大字符串的长度的值*/void main()char str150,str250,str350,str450,str550,str650;char str750,str850,str950,str1050;int count10=0,temp10=0,i,j;int paixu(int a,int n);for(i=1;ivoid main()int a100,b100,c100,i,m,n,j,k,temp=0,s;printf(nm = );scanf(%d,&m); /*确定M的个数*/printf(nn = );scanf(%d,&n); /*确定N的个数*/printf(nPlease input m ge shu: );for(s=0;sbj)&(i!=0)&(j!=n) c。