C语言程序设计教程答案杨路明郭浩志_第1页
C语言程序设计教程答案杨路明郭浩志_第2页
C语言程序设计教程答案杨路明郭浩志_第3页
C语言程序设计教程答案杨路明郭浩志_第4页
C语言程序设计教程答案杨路明郭浩志_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题 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、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.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、标识符必须是字母或下划线开头,大小写字母含义不同。由数字、字母和下划线组成;关键字是一种语言中规定具有特定含义的标识符。关键字不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。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=%c“end“n“,a,b);结果如下:a=3b=A“end“aabcc abc3、4、(1):9,11,9,10(2):3,1,0,0(3):11,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习题 31、输入函数 scanf 的参数错误,应该为: scanf(“%f“,2、|1234 1234 |3、ff104、1,3,15、原字符串左边加空格再加字符串本省,字符个数总和为 5 个6、scanf(“%d,%d,%c,%c“,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(“(float)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“,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“,if(n=100 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“,t1=ab?a:b;t2=avoid main() int temp1=0,temp2=0,x,y,i=1;printf(“Please input (x,y): “);scanf(“%d,%d“,while(i*y) shang=%d,yushu=%d“,x,y,temp2,x-y*temp2);getch();9、#includevoid main() float x,y,m=0,n=0;scanf(“%f,%f“,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“,if(year%400=0)|(year%4=0if(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 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;default:m=5; 12、方法一:#includevoid main() int x,y;scanf(“%d“,if(x-5)y=x-1;else if(x=0)y=x;else if(x0scanf(“%d“,if(x-5) if(x=0)y=x;else if(x0scanf(“%d“,if(x-5) if(x=0)i=1;else if(x0printf(“the %d years 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=nleftlong 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(“%fn“,e);15、#include “math.h“main()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_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“,c=divisor(a,b);d=multiple(a,b);printf(“ndivisor=%dttmultiple=%d“,c,d);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); 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“,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“,SWAP(x,y);printf(“nnExchanged: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 fib: “);scanf(“%d“,printf(“nnfibonacci=%d“,fib(n);6、#includelong fac(int n) long f;if(n=0) f=1;else f=n*fac(n-1);return f;void main() int m,n;long f;printf(“Please input (m,n): “);scanf(“%ld,%ld“,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 work long sid;char name15;workermax;int size=0;struct work *set_list() do printf(“nnPlease input (sid,name): “);scanf(“%ld,%s“,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,);strcpy(,);strcpy(,v);for(i=0;ifloat jiecheng(int n) long s=1;int i;for(i=1;i=0 ak=temp break k#define max 100void main()float amax,s=0,average=0;int i,n;printf(“Please input N: “); /*输入要处理元素的个数*/scanf(“%d“,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 max 100void main()int amax,j,i,k=0,t=0,n=0;printf(“Please input N: “); /*输入要处理元素的个数*/scanf(“%d“,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=dij;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 中字符个数*/printf(“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 “ab“ 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 的个数*/printf(“nn = “);scanf(“%d“, /*确定 N 的个数*/printf(“nPlease input m ge shu: “);for(s=0;sbj) i-; k+; if(j=n) /*b处理到完*/ for(;) /*把 b数组接到 c后面*/ if(i=0) /*如果 a处理完,结束。并做标记temp=1*/ ck=ai;temp=1;break; ck=ai;i-;k+;if(temp=1) break;/*标记 temp=1,全部处理结束*/for(s=0;s=*q; q+(2) ivoid fun(char *str,char c) char *p;for(p=str;*p!=0;p+)if(*p!=c)*str+=*p;*str=0;void main() char str80,c;printf(“nPlease input a string: “);gets(str);printf(“nnPlease input delete char: “);scanf(“%c“,fun(str,c);puts(str);getch();5、/*从键盘输入单词,每个单词之间用空格隔开,“.”号结束输入,*/*将每个单词的第一个字母转化成大写字母。*/#include#includechar zhuanhua(char c) /*定义将小写字母转化为大写字母的函数 */ char C;if(c=ap1=data;printf(“nInput 8 number: “);for(i=0;ivoid main() int m,n,i;char a100,b100,*p,*q;printf(“Please input a string: “);gets(a);p=a;q=b;printf(“nnPlease input m and n(like 1,1): “);scanf(“%d,%d“,if( (strlen(a)=m) /*指针指向第一个要复制的字符 */for(i=0;ivoid main()int a100,temp1=0,temp2=0,max=0,min=0,k;printf(“nPlease input 8 ge shu: “);for(k=0;kamax)max=k; /*用标记 max 最大值的下标*/if(min=0) if(max=7) temp1=a0; a0=a7;a7=temp1; else temp2=a7;a7=amin;a0=amax;amax=temp2;else if(max=0) if(min!=7) temp2=a7; a7=amin;amin=temp2;else if(min=7) temp1=a0;a0=amax;amax=temp1;else if(max=7) temp2=a7;a7=amin;amin=a0;a0=temp2;else temp1=a0;temp2=a7;a0=amax;a7=amin;amin=temp2;amax=temp1;for(k=0;k#includeint *paixu(int data,int n) int i,*p1,*p2,temp;p1=data;for(p1=data;p1=0)ai=ai*10+t;p+;if(*p)9|(*p)struct studentschar sid100;char name100;float score3;student;void main() int i; float j;printf(“nPlease input sid: “);scanf(“%s“,student.sid);printf(“nPlease input name: “);scanf(“%s“,);printf(“nPlease input 3 score:(like1,1,1) “);/*输入逗号隔开*/scanf(“%f,%f,%f“,printf(“nsid = %s“,student.sid);printf(“nname = %s“,);j=(student.score0+student.score1+student.score2)/3.0;printf(“naverage = %.2f“,j);getch();3、#include#include#define F sizeof(student)#define NULL 0typedef struct scores int english;int math;int c_language;int all;TP;typedef struct students char sid15;char name15;TP score;struct students *next;student;student *input() student *head,*p1,*p2;int n=0; char ch;clrscr();head=(student *)malloc(F);head-next=NULL;do n+;printf(“nnPlease input %d student message: nn“,n);printf(“t%d student sid: “,n);p1=(student *)malloc(F);p1-next=NULL;scanf(“%s“,p1-sid);printf(“nt%d student name: “,n);scanf(“%s“,p1-name);printf(“nt%d student scores(englesh,math,c_language): “,n);scanf(“%d,%d,%d“,p1-score.all=p1-score.english+p1-score.math+p1-score.c_la

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论