




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.c语言程序设计教程杨路明课后习题答案北京邮电大学出版社第一章1、算法描述主要是用两种基本方法:第一是自然语言描述,第二是使用专用工具进行算法描述2、 c 语言程序的结构如下:c 语言程序由函数组成,每个程序必须具有一个main 函数作为程序的主控函数。 /* 与*/ 之间的内容构成 c 语言程序的注释部分。用预处理命令 #include 可以包含有关文件的信息。大小写字母在c 语言中是有区别的。除 main 函数和标准库函数以外,用户可以自己编写函数,程序一般由多个函数组成,这些函数制定实际所需要做的工作。例如:void main()int a,b,c,s;a=8;b=12;c=6;s=a
2、b*c;printf(s=%d,s);3、 c 语言的特点:c 语言具有结构语言的特点,程序之间很容易实现段的共享; c 语言的主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译成代码,以实现程序的模块化。c 语言运算符丰富,运算包含的范围很广;c 语言数据类型丰富。c 语言允许直接访问物理地址,即可直接对硬件进行操作,实现汇编语言的大部分功能;c 语言语法限制不太严格,程序设计自由度大,这样是c 语言能够减少对程序员的束缚;用 c 语言编程,生成的目标代码质量高,程序执行效率高,可移植性好;4、合法标识符: ab12、leed_3 、 ef3_3、_762、pas、xyz4
3、3k2不合法标识符: a*b2、 8stu 、 d.k.jon 、 if 、ave#xy、#_dt5、c.d.5、 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 键存盘。第二章1、符合 c语法规定的常数为: 0x1e、ab 、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=?=_end,a,b);结果如下: a=3b=aend.aabccabc3、4、 (1):9,11,9,10(2):3,1,0,0(3):1
5、1,19,31,15、 (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):06、 (5)7、求 x 的绝对值8、 c(max=ab?a:b)?c:max;9、 b10、d第三章1、输入函数 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=%d
6、,a b);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、 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 = %f,s,c);elseprintf(you input number is error!);9、 void m
7、ain()int n;printf(please input the number:);scanf(%d,&n);if(n=100 & nprintf(%d%d%d,n_,(n/10)_,n/100);elseprintf(you input number is error!);10、void main()int i,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):printf(no);11、void main().char a;scanf(%c,&a);print
8、f(%c,%c,%c,a-1,a,a 1);printf(%d,%d,%d,a-1,a,a 1);12、void main()float a,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,area);elseprintf(you input the number is error!);第四章1:02:203:(x20)|(x4: *a=25,b=14,c=16*5: 376: if(aelseprintf(2
9、);7、#includevoid main()char a,b,t1,t2;scanf(%c,%c,&a,&b);t1=ab?a:b;t2=aif(t1-t2)%2=0)printf(%c,%c,a 1,b 1);elseprintf(%c,%c,a-1,b-1);.getch();8、#includevoid main()int temp1=0,temp2=0,x,y,i=1;printf(please input (x,y): );scanf(%d,%d,&x,&y);while(i*y)if(x=(i*y) temp1=1;break;temp2=i;i ;if(temp1)printf
10、(%d / %d = %d,x,y,i); elseprintf(%d / %d- 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)printf(%.3f,%.3f)in the yuan,x,y);elseprintf(%.3f,%.3f)out of the yuan,x,y);getch();10、#includevoid main().int temp=0,
11、month,year;printf(please input (year,month):);scanf(%d,%d,&year,&month);if(year0=0)|(year%4=0&year_0!=0)temp=1;if(month=2)if(temp)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 print
12、f(%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;default: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&x.y=x 1;printf(%d,y);getch();方法二:#includevoid main()int x,y;scanf(%d,
13、&x);if(x-5)if(x=0)y=x;else if(x0&xelse y=x-1;printf(%d,y);elseprintf(input error!);getch();方法三:#includevoid main()int x,y,i;scanf(%d,&x);if(x-5)if(x=0)i=1;else if(x0&xelse i=3;elsei=4;switch(i)case 1:y=x;printf(%d,y);break;case 2:y=x 1;printf(%d,y);break;case 3:y=x-1;printf(%d,y);break;case 4:printf
14、(input error!);break;getch();.第五章1、 void main()int n,value;int i,count=0;float average = 0;long int sum = 0;scanf(%d,&n);for(i = 0; iscanf(%d,&value);if(value%2 = 0)sum =value;count ;average = sum / (float)count;printf(the average is %f,average);2、#include stdio.hvoid main()char ch;int zm = 0, sz =
15、0;ch = getchar();while(ch != *)if(ch = a & ch = a & chzm ;if(ch = 0 & chsz ;ch = getchar();printf(zm = %d;sz = %d,zm,sz);3、void main()long i_value;.int sum = 0;int temp = 0;scanf(%ld,&i_value);if(i_valuefor(;)temp = i_value_;i_value = i_value/10;sum =temp;printf(%d ,temp);if(i_value = 0)break;printf
16、(=%d,sum);4、#include stdio.hvoid main()char ch;ch = getchar();while(ch != .)if(ch = a & chch = ch32;putchar(ch);else if(ch = a & chch = ch - 32;putchar(ch);elseputchar(ch);ch = getchar();printf();5、void main()float sum = 200;int count = 0;.for(;)sum = sum sum*0.045;count ;if(sum 500)break;printf(the
17、 %d years later complete!,count);6、void main()int i,temp=0,bit=0;for(i = 1 ; iif(i%3 = 0)temp = i;for(;temp != 0;)bit = temp_;if(bit = 5)printf(%d,i);break;temp = temp/10;printf();7、#includeint main(void)int steps = 29, i = 1;while ( steps % 7 )steps = (30 *i) - 1;printf(total steps: %d, steps);retu
18、rn 0;8、main()int i,j,k,n;printf(the narcissus number is:);for(n=100;ni=n/100;j=n/10-i*10;.k=n_;if(i*i*i j*j*j k*k*k=n) printf(%d,n);9、main()float i,j,temp,n,sum;int t;i=2;j=1;sum=0;scanf(%d,&t);for(n=1;nsum=sum i/j;temp=i;i=i j;j=temp;printf(2/1 3/2 5/3 8/5 13/8 .=%f,sum);10、void main()int nwidth,a,
19、b;scanf(%d,&nwidth);for(a=(nwidth%2);afor(b=0;bchar chout = ;int nleft =(nwidth -a)/2;int nright = (nwidth a)/2;if(b=nleft&bchout =*;printf(%c,chout);printf();r11、void main()int i=1,j=1;for(i=1;ifor(j=1;jprintf(%d*%d=%d,i,j,i*j);.printf()12、#include stdio.hvoid main()char c;/count1是正数的个数/count2是负数的个
20、数int count1=0,count2=0;/sum1 是正数之和/sum2 是负数之和int sum1=0,sum2=0;int flage = 0;c=getchar();while(c != *)if(c = -)flage = 1;if(flage = 0)sum1 =(c-48);count1 ;elseif(c != -)sum2-=(c-48);flage=0;count2 ;c = getchar();printf(%d,%d,count1,count2);printf(%f,%f,sum1/count1,sum2/count2);13、void main()int i,j;
21、int s = 0;for(i = 100 ; is = 0;for(j=1; jif( i%j = 0 ) s = sj;if(s = i)printf(,i);.14、#include#includevoid main()int n;long k = 1;float e = 1;n = 1;clrscr();while ( fabs(1.0/k) = 0.000001)n ;e = e 1.0/k;k = k * n;printf(%f,e);15、#include math.hmain()float x0,x1,x2,f0,f1,f2;x1=-10;f1=2*x1*x1*x1-4*x1*
22、x1 3*x1;x2=10;f2=2*x2*x2*x2-4*x2*x2 3*x2;dox0=(x1 x2)/2;f0=2*x0*x0*x0-4*x0*x0 3*x0;if(f0*f1)x2=x0; f2=f0;elsex1=x0; f1=f0;while(fabs(f0)1e-6);printf(_2*x*x*x-4*x*x 3*x=0_:n);.printf(the root is %f,x0);第六章1、#includeint divisor(int a,int b)int r;while(r=a%b)!=0)a=b;b=r;return b;int multiple(int a,int
23、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(=%d=%d,c,d);2、#includevoid tongji(char a)int b3=0,0,0,i=0;while(ai!=)if(ai=65)|(ai=97)b0 ;else if(ai=48)b1 ;.elseb2 ;i ;printf(zimu have: %d; shuzi have: %d; qita
24、 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_);j= (n/10_);k=(n/100);x=i*i*i j*j*j k*k*k;if(x=n) return 1;elsereturn 0;void main()int i,n;printf(please intput n: );scanf(%d,&n);if(n999|nelsefor(i=100;i
25、if(flower(i)printf(%d,i);getch();4、#include.#define s) t=b;b=a;a=t;main()float x,y,t;printf(enter two number (x,y):);scanf(%f,%f,&x,&y);s);printf(:x=%f,y=%f,x,y);getch();5、#includeint 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
26、fib: );scanf(%d,&n);printf(=%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): );scanf(%ld,%ld,&m,&n);f=fac(n m) fac(n);printf(=%ld,f);7、#includevoid list()int i,j;for(i=1;ifor(j=1;jprintf(%d*%d=%d ,i,j,i*j);printf();v
27、oid main()list();8、#includeint he(int n)int i,s=0;for(i=1;iif(n%i=0)s =i;return s;void main()int i,j;for(i=1;ifor(j=1;jif(he(i)=j)&(he(j)=i)&(i!=j)printf(%d%d,i,j);9、#include#define max 100struct work.long sid;char name15;workermax;int size=0;struct work *set_list()doprintf(input (sid,name):);scanf(
28、%ld,%s,&workersize.sid,);size ;while(workersize-1.sid!=0);return worker;void paixu(struct work a)int i,j,k;long t;char v15;for(i=0;ik=i;for(j=i;jif(ai.sidaj.sid)k=j;if(k!=i)t=ai.sid; ai.sid=aj.sid; aj.sid=t; strcpy(v,);strcpy(,);strcpy(,v); for(i=0;iprintf(
29、sid: %ld:%s,ai.sid,);getch();void select(struct work a)int i=0,found=1;long num;printf(input select sid: );scanf(%ld,&num);for(i=0;iif(ai.sid=num)found=0;printf(%ld: %s,num,);.break;if(found)printf(this sid!);getch();void main()struct work *p;p=set_list();paixu(p);select(p);10、#include
30、float jiecheng(int n)long s=1;int i;for(i=1;is=s*i;return s;float chengfang(float x,int n)float s=1;int i;for(i=1;is=s*x;return s;float f(float x,int n)float s=1,t=0;int i=1,j=-1;for(i=1;it=j*chengfang(x,2*i)/jiecheng(2*i);s =t;j=j*j; return s; main()float s1=0,s2=0,s3=0,s4=0,x=5.6;int n=7; s1=f(x,n
31、);s2=f(x 2.3,n);.s3=f(x-3.2,n 3);s4=s1/(s2 s3);printf(%f,s4);getch();第七章1:(1) d(2) a(3) d(4) b(5) d2:(1) 15446782 34(2) 63333: (1)a8=data; k=0 ak=temp break k(2) %sstri4、 /* 题目:求一组成绩的平均分数以及高于平均分的成绩。*/#include#define max 100void main()float amax,s=0,average=0;int i,n;printf(please input n:);/*输入要处理元素
32、的个数 */scanf(%d,&n);printf(input%dge shu:,n); /*输入 90,85, 92,77,80,62*/for(i=0;iscanf(%f,&ai);s =ai;average = s / n;printf(= %.2f,average); /*输出 81.00*/.for(i=0;iif(aiaverage)printf(%.2f ,ai); /*输出 90.00 ,85.00 ,92.00*/5、/* 题目:编写程序,输入一组整数,将他们排序后由小到大输出。*/#include#define max 100void main()int amax,j,i,
33、k=0,t=0,n=0;printf(please input n:);/*输入要处理元素的个数 */scanf(%d,&n);for(i=0;iscanf(%d,&ai);for(i=0;ik=i;for(j=i 1;jif(akaj)k=j;if(k!=i)/*元素排序前下标与排序后下标不符,则交换其值*/t=ai;ai=ak;ak=t;printf();for(i=0;iprintf(%d ,ai);6、/* 题目:从键盘输入一个4x4 的整数矩阵,以主对角线(猿浦 ?/* 将左下角元素中较大者替换右上角元素,并将右上角含对称轴输出。*/#include#includevoid main
34、().int d44=0,0,0,0,i,j;clrscr();printf(input 16 num:);for(i=0;ifor(j=0;jscanf(%d,&dij);for(i=0;ifor(j=0;jif(dijdji) /*左下角元素大于右上角元素则交换*/dji=dij;for(i=0;iprintf();/*为了保持每行的间隔与每列的相同*/for(j=0;jif(j=i)printf(%d,dij);/*为 了 使 位 数 不 同 的 数 输 出 依 然 保 持 三 角 型 */elseprintf();7、* 题目:输入一个 3x4 的二维数组,然后分别按行和按列输出。 *
35、/ #include#include void main()int d34=0,0,0,0,i,j; printf(please input 12 num: ); for(i=0;ifor(j=0;jscanf(%d,&dij); printf(hang: ); for(i=0;ifor(j=0;jprintf(%d ,dij);.printf( lie: );for(i=0;ifor(j=0;jprintf(%d ,dji);8、/* 题目:编写程序,将两个字符串连接起来,不用strcat函数。 */#include#includevoid main()char s150,s250;int
36、i=0,j=0,t=0;printf(input one: );gets(s1);while(s1i!=)i ;/*统计 s1 中字符个数 */printf(second:);gets(s2);while(s2j!=)j ;/*统计 s2 中字符个数 */for(t=0;ts1i=s2t; i ;printf( second: );puts(s1);9、/* 输入一行字符串,统计字符对ab 的个数。 */#include#include#define max 100void main()char strmax;int i=0,flage=0;int count=0;printf(input a
37、 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 ab count is %d,count);10、#include /*相对于第一种方法, 这种方法能把同为最大的字符串全部打印出来。*/#includeint paixu(int a,int n)/*构造对长度为 n 的数组排序的函数 */int i,j,t,k,temp;for(i=0;ik=i;for(j=i 1;jif(akaj)
38、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;i.printf(input %d string:,i);if(i=1)gets(str1);while(str1count0)count0 ;temp0 ; if
39、(i=2)gets(str2);while(str2count1)count1 ;temp1 ; if(i=3)gets(str3);while(str3count2)count2 ;temp2 ; if(i=4)gets(str4);while(str4count3)count3 ; temp3 ; if(i=5)gets(str5);while(str5count4)count4 ; temp4 ; if(i=6)gets(str6);while(str6count5)count5 ; temp5 ; if(i=7)gets(str7);while(str7count6)count6 ; temp6 ; if(i=8)gets(str8);while(str8count7)co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度按揭购房合同贷款利率及还款计划
- 二零二五年度二手房交易风险提示及免责协议
- 二零二五年度市政工程劳务派遣服务合同范本
- 二零二五年度房地产买卖合同规范
- 2025版北京高端住宅租赁及配套服务合同
- 二零二五年不锈钢精密零部件加工定制合作协议
- 二零二五年车辆挂靠资产重组合作协议十
- 2025版城市轨道交通工程安全文明施工管理合同
- 二零二五年美食夜市烤肠场地租赁合同
- 二零二五年度包装材料仓储物流购销合同范本
- 2024-2030年中国休闲素食行业市场深度分析及发展潜力预测报告
- 电商仓储与物流配送合作协议
- 朝花夕拾考试题及答案
- 高中坚持议论文范文7篇
- 税务风险防范课件
- 政府和社会资本合作(PPP)-公益性公墓及郭家坪殡仪馆合作项目实施方案
- 开心农场活动方案
- 浙江省湖州市2024-2025学年高一下学期期末考试数学试卷
- 2025年村干部公务员试题及答案
- 煤矿采矿制图培训课件
- 羊水栓塞个案护理
评论
0/150
提交评论