C++第三版温秀梅第3章
第1章C语言基础知识
P2
1.1.1 C语言与程序设计
最初使用的计算机语言是机器语言 后来采用汇编语言 ——这两种计算机语言是低级语言 现在使用最广的计算机语言是高级语言 ——C语言是高级语言 用高级语言编写的程序叫做源程序
P2
1.1.1 C语言与程序设计
P2
C语言是是一种用途广泛、功能强大、使 用灵活的面向过程的语言 C语言不仅具有高级语言的功能,还具有 低级语言的许多功能 C语言是国际上广泛流行的计算机语言 Windows、Linux和UNIX等操作系统都 是用C语言编写的
#include <stdio.h>
按指数形式输出 main( ) { printf("%lf\n",123451234512345.1); printf("%le\n",12345.6788885); printf("%le\n",0.0);
}
2.实型变量
实型变量中只能存放实型数据 占4个字节 有效位6
1.1.1 C语言与程序设计
P2
C语言的主要特点有: 语言简洁,使用方便,编程自由度大 具有结构化的控制语句 运算符和数据类型丰富 能访问物理地址,能实现汇编语言的 多数功能,可以直接对硬件进行操作 用C语言编写的程序可移植性好,生成 目标代码质量高,程序执行效率高
1.1.1 C语言与程序设计
小结
③在程序中适当加上空行 在命令行和类型声明之间、类型声明和 函数原型之间、函数原型与函数定义之 间、函数内部变量定义与其下执行语句 之间均空一行 有些地方视情况可空两行
小结
④采用缩进格式 一般用Tab键将某些行向右缩进,这样 可使程序的逻辑结构更加清晰,层次分 明,显著提高程序的可读性
谭浩强C程序的设计第三版习题答案(全)
谭浩强《C程序设计》第三版习题答案(全)第一章1.5#include <stdio.h>void main(){printf("* * * * * * * * *\n Very good!\n* * * * * * * * *\n");}1.6(法一)#include <stdio.h>main(){int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c);max=(a>b)?a:b;max=(max>c)?max:c;printf("max=%d\n",max);}(法二)main(){int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c);if(a>b&&a>c)max=a;else if (b>c)max=b;elsemax=c;printf("max=%d\n",max);}(法三)# include <stdio.h>void main(){int max(int x,int y,int z);int a,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b,c);printf("max=%d\n",d);}int max(int x,int y,int z) {int A,B;if(x>y) A=x;else A=y;if(z>A) B=z;else B=A;return(B);}第三章3.3(1)(10)10=(12)8=(a)16(2)(32)10=(40)8=(20)16(3)(75)10=(113)8=(4b)16(4)(-617)10=(176627)8=(fd97)16(5)(-111)10=(177621)8=(ff91)16(6)(2483)10=(4663)8=(963)16(7)(-28654)10=(110022)8=(9012)16(8)(21003)10=(51013)8=(520b)163.6aabb (8)cc (8)abc(7)AN3.7main(){char c1='C',c2='h',c3='i',c4='n',c5='a'; c1+=4, c2+=4, c3+=4, c4+=4, c5+=4;printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);}3.8main(){int c1,c2;c1=97;c2=98;printf("%c %c",c1,c2);}3.9(2)=3.53.109,11,9,103.12(1)24 (2)10 (3)60 (4)0 (5)0 (6)0第四章4.4main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n);printf("c1='%c'or %d(ASCII)\n",c1,c1);printf("c2='%c'or %d(ASCII)\n",c2,c2);}4.5575 767.856400,-789.12396267.856400,-789.12396267.86 -789.12,67.856400,-789.123962,67.856400,-789.123962 6.785640e+001,-7.89e+002A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER, COM4.6x=8.5 y=71.82/c1=A c2=a/4.710 20Aa1.5 -3.75 +1.4,67.8/(空3)10(空3)20Aa1.5(空1)-3.75(空1)(随意输入一个数),67.8回车4.8main(){float pi,h,r,l,s,sq,sv,sz;pi=3.1415926;printf("input r,h\n");scanf("%f,%f",&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;sv=4.0/3.0*pi*r*r*r;sz=pi*r*r*h;printf("l=%6.2f\n",l);printf("s=%6.2f\n",s);printf("sq=%6.2f\n",sq);printf("vq=%6.2f\n",sv);printf("vz=%6.2f\n",sz);}4.9main(){float c,f;scanf("%f",&f);c=(5.0/9.0)*(f-32);printf("c=%5.2f\n",c);}4.10#include"stdio.h"main(){char c1,c2;scanf("%c,%c",&c1,&c2);putchar(c1);putchar(c2);printf("\n");printf("%c%c\n",c1,c2);}第五章5.3(1)0 (2)1 (3)1 (4)0 (5)15.4main(){int a,b,c;scanf("%d,%d,%d",&a,&b,&c); if(a<b)if(b<c)printf("max=%d\n",c); elseprintf("max=%d\n",b); else if(a<c)printf("max=%d\n",c); elseprintf("max=%d\n",a); }main(){int a,b,c,temp,max;scanf("%d,%d,%d",&a,&b,&c); temp=(a>b)?a:b;max=(c>temp)?c:temp;printf("max=%d",max);}5.5main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x<10)y=2*x-1;else y=3*x-11;printf("y=%d",y);}5.6main(){int score,temp,logic;char grade;logic=1;while(logic){scanf("%d",&score);if(score>=0&&score<=100)logic=0;}if(score==100)temp=9;elsetemp=(score-score%10)/10;switch(temp){case 9:grade='A';break;case 8:grade='B';break;case 7:grade='C';break;case 6:grade='D';break;case 5:case 4:case 3:case 2:case 1:case 0:grade='E';}printf"score=%d,grade=%c",score,grade);}5.7main(){long int num;int indiv,ten,hundred,thousand,ten_thousand,place;scanf("%ld",&num);if(num>9999) place=5;else if(num>999) place=4;else if(num>99) place=3;else if(num>9) place=2;else place=1;printf("place=%d\n",place);ten_thousand=num/10000;thousand=(num-ten_thousand*10000)/1000;hundred=(num-ten_thousand*10000-thousand*1000)/100;ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=num-ten_thousand*10000-thousand*1000-hundred*100-ten*10;switch(place){case5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv);printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand); break;case 4:printf("%d,%d,%d,%d\n",thousand,hundred,ten,indiv); printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand); break;case 3:printf("%d,%d,%d\n",hundred,ten,indiv);printf("%d,%d,%d\n",indiv,ten,hundred);break;case 2:printf("%d,%d\n",ten,indiv);printf("%d,%d\n",indiv,ten);break;case 1:printf("%d\n",indiv);printf("%d\n",indiv);}}5.8main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;scanf("%ld",&i);if(i<=1e5)bonus=i*0.1;else if(i<=2e5)bonus=bon1+(i-100000)*0.075;else if(i<=4e5)bonus=bon2+(i-200000)*0.05;else if(i<=6e5)bonus=bon4+(i-400000)*0.03;else if(i<=1e6)bonus=bon6+(i-600000)*0.015;else bonus=bon10+(i-1000000)*0.01;printf("bonus=%10.2f",bonus);}main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;int branch;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;scanf("%ld",&i);branch=i/100000;if(branch>10)branch=10;switch(branch){case 0:bonus=i*0.1;break;case 1:bonus=bon1+(i-100000)*0.075;break; case 2:case 3:bonus=bon2+(i-200000)*0.05;break; case 4:case 5:bonus=bon4+(i-400000)*0.03;break; case 6:case 7case 8:case 9:bonus=bon6+(i-600000)*0.015;break; case 10:bonus=bon10+(i-1000000)*0.01;}printf("bonus=%10.2f",bonus);}4.9main(){int t,a,b,c,d;scanf("%d,%d,%d,%d",&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("%d %d %d %d\n",a,b,c,d);}5.10main(){int h=10;float x,y,x0=2,y0=2,d1,d2,d3,d4;scanf("%f,%f",&x,&y);d1=(x-x0)*(x-x0)+(y-y0)*(y-y0);d2=(x-x0)*(x-x0)+(y+y0)*(y+y0);d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);if(d1>1&&d2>1&&d3>1&&d4>1)h=0;printf("h=%d",h);}第六章6.1main(){int a,b,num1,num2,temp;scanf("%d,%d",&num1,&num2);if(num1<num2){temp=num1;num1=num2;num2=temp;}a=num1;b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf("%d\n",a);printf("%d\n",num1*num2/a);}6.2#include"stdio.h"main(){char c;int letter=0,space=0,digit=0,other=0;while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;else other++;}printf("letter=%d\nspace=%d\ndigit=%d\nother=%d\n",letter,space,digit ,other);}6.3main(){int a,n,count=1,sn=0,tn=0;scanf("%d,%d",&a,&n);while(count<=n){tn+=a;sn+=tn;a*=10;++count;}printf("a+aa+aaa+...=%d\n",sn);}6.4main(){float n,s=0,t=1;for(n=1;n<=20;n++){t*=n;s+=t;}printf("s=%e\n",s);}6.5main(){int N1=100,N2=50,N3=10;float k;float s1=0,s2=0,s3=0;for(k=1;k<=N1;k++)s1+=k;for(k=1;k<=N2;k++)s2+=k*k;for(k=1;k<=N3;k++)s3+=1/k;printf("s=%8.2f\n",s1+s2+s3);}6.6main(){int i,j,k,n;for(n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf("n=%d\n",n);}}6.7#define M 1000main(){int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9;int i,j,n,s;for(j=2;j<=M;j++){n=0;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;switch(n){case 1:k0=i;break;case 2:k1=i;break;case 3:k2=i;break;case 4:k3=i;break;case 5:k4=i;break;case 6:k5=i;break;case 7:k6=i;break;case 8:k7=i;break;case 9:k8=i;break;case 10:k9=i;break;}}}if(s==0){printf("j=%d\n",j);if(n>1)printf("%d,%d",k0,k1); if(n>2)printf(",%d",k2);if(n>3)printf(",%d",k3);if(n>4)printf(",%d",k4);if(n>5)printf(",%d",k5);if(n>6)printf(",%d",k6);if(n>7)printf(",%d",k7);if(n>8)printf(",%d",k8);if(n>9)printf(",%d\n",k9);}}}main(){static int k[10];int i,j,n,s;for(j=2;j<=1000;j++){n=-1;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;k[n]=i;}}if(s==0){printf("j=%d\n",j); for(i=0;i<n;i++)printf("%d,",k[i]); printf("%d\n",k[n]); }}}6.8main(){int n,t,number=20;float a=2;b=1;s=0;for(n=1;n<=number;n++){s=s+a/b;t=a,a=a+b,b=t;}printf("s=%9.6f\n",s);}6.9main(){float sn=100.0,hn=sn/2;int n;for(n=2;n<=10;n++){sn=sn+2*hn;hn=hn/2;}printf("sn=%f\n",sn);printf("hn=%f\n",hn);}6.10main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf("x1=%d\n",x1);}6.11#include"math.h"main(){float a,xn0,xn1;scanf("%f",&a);xn0=a/2;xn1=(xn0+a/xn0)/2;do{xn0=xn1;xn1=(xn0+a/xn0)/2;}while(fabs(xn0-xn1)>=1e-5);printf("a=%5.2f\n,xn1=%8.2f\n",a,xn1); }6.12#include"math.h"main(){float x,x0,f,f1;x=1.5;do{x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}while(fabs(x-x0)>=1e-5);printf("x=%6.2f\n",x);}6.13#include"math.h"main(){float x0,x1,x2,fx0,fx1,fx2;do{scanf("%f,%f",&x1,&x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0);do{x0=(x1+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;if((fx0*fx1)<0){x2=x0;fx2=fx0;}else{x1=x0;fx1=fx0;}}while(fabs(fx0)>=1e-5);printf("x0=%6.2f\n",x0);}6.14main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf(" ");for(k=0;k<=2*i;k++)printf("*");printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++)printf(" ");for(k=0;k<=4-2*i;k++)printf("*");printf("\n");}}6.15main(){char i,j,k;for(i='x';i<='z';i++)for(j='x';j<='z';j++){if(i!=j)for(k='x';k<='z';k++){if(i!=k&&j!=k){if(i!='x'&&k!='x'&&k!='z')printf("\na--%c\tb--%c\tc--%c\n",i,j,k); }}}}第七章7.1#include <math.h>#define N 101main(){ int i,j,line,a[N];for (i=2;i<N;i++) a[i]=i;for (i=2;i<sqrt(N);i++)for (j=i+1;j<N;j++){if(a[i]!=0 && a[j]!=0) if (a[j]%a[i]==0)a[j]=0; } printf("\n");for (i=2,line=0;i<N;i++){ if(a[i]!=0){ printf("%5d",a[i]); line++; }if(line==10){ printf("\n");line=0; }}}7.2#define N 10main(){int i,j,min,temp,a[N];for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++){min=i;for(j=i+1;j<N;j++)if(a[min]>a[j])min=j; temp=a[i];a[i]=a[min];a[min]=temp;}for(i=0;i<N;i++)printf("%5d",a[i]);}7.3main(){float a[3][3],sum;int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++){scanf("%f",&sum);a[i][j]=sum;}for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%f",sum);}7.4main(){int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number, end,i,j;scanf("%d",&number);end=a[9];if(number>end) a[10]=number;else{for(i=0;i<10;i++){if(a[i]>number){temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i++)printf("%6d",a[i]);}7.5#define N 5main(){int a[N]={8,6,5,4,1},i,temp;for(i=0;i<N/2;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}for(i=0;i<N;i++)printf("%4d",a[i]);}7.6#define N 11main(){int i,j,a[N][N];for(i=1;i<N;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i<N;i++)for(j=2;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1;i<N;i++){for(j=1;j<=i;j++)printf("%6d",a[i][j]);printf("\n");}}7.7main(){int a[16][16],i,j,k,p,m,n;p=1;while(p==1){scanf("%d",&n);if((n!=0)&&(n<=15)&&(n%2!=0))p=0; }for(i=1;i<=n;i++)for(j=1;j<=n;j++)a[i][j]=0;j=n/2+1;a[1][j]=1;for(k=2;k<=n*n;k++){i=i-1;j=j+1;if((i<1)&&(j>n)){i=i+2;j=j-1;}else{if(i<1)i=n;if(j>n)j=1;}if(a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;}}for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%3d",a[i][j]);printf("\n");}}7.8#define N 10#define M 10main(){int i,j,k,m,n,flag1,flag2,a[N][M],max,maxi,maxj; scanf("%d,%d",&n,&m);for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%d",&a[i][j]);flag2=0;for(i=0;i<n;i++){max=a[i][0];for(j=0;j<m;j++)if(max<a[i][j]){max=a[i][j];maxj=j;}for(k=0,flag1=1;k<n&&flag1;k++)if(max>a[k][maxj])flag1=0;if(flag1){ printf("\na[%d][%d]=%d\n",i,maxj,max);flag2=1;}}if(!flag2) printf("NOT");}7.9#include<stdio.h>#define N 15main(){int i,j,number,top,bott,min,loca,a[N],flag;char c;for(i=0;i<=N;i++)scanf("%d",&a[i]);flag=1;while(flag){scanf("%d",&number);loca=0;top=0;bott=N-1;if((number<a[0])||(number>a[N-1]))loca=-1;while((loca==0)&&(top<=bott)){min=(bott+top)/2;if(number==a[min]){loca=min;printf("number=%d,loca=%d\n",number,loca+1); }else if(number<a[min])bott=min-1;elsetop=min+1;}if(loca==0||loca==-1)printf("%d not in table\n",number);printf("continue Y/N or y/n\n");c=getchar();if(c=='N'||c=='n')flag=0;}}7.10main(){int i,j,uppn,lown,dign,span,othn;char text[3][80];uppn=lown=dign=span=othn=0;for(i=0;i<3;i++){gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z')uppn++;else if(text[i][j]>='a'&&text[i][j]<='z') lown++;else if(text[i][j]>='0'&&text[i][j]<='9') dign++;else if(text[i][j]==' ')span++;elseothn++;}}for(i=0;i<3;i++)printf("%s\n",text[i]);printf("uppn=%d\n",uppn);printf("lown=%d\n",lown);printf("dign=%d\n",dign);printf("span=%d\n",span);printf("othn=%d\n",othn);}7.11main(){static char a[5]={'*','*','*','*','*'};int i,j,k;char space=' ';for(i=0;i<=5;i++){printf("\n");for(j=1;j<=3*i;j++)printf("%1c",space);for(k=0;k<=5;k++)printf("%3c",a[k]);}}7.12#include<stdio.h>main(){int i,n;char ch[80],tran[80];gets(ch);i=0;while(ch[i]!='\0'){if((ch[i]>='A')&&(ch[i]<='Z'))tran[i]=26+64-ch[i]+1+64;else if((ch[i]>='a')&&(ch[i]<='z'))tran[i]=26+96-ch[i]+1+96;elsetran[i]=ch[i];i++;}n=i;for(i=0;i<n;i++)putchar(tran[i]);}7.13main(){char s1[80],s2[40];int i=0,j=0;scanf("%s",s1);scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("s=%s\n",s1);}7.14#include<stdio.h>main(){int i,resu;char s1[100],s2[100];gets(s1);gets(s2);i=0;while((s1[i]==s2[i])&&(s1[i]!='\0'))i++;if(s1[i]=='\0'&&s2[i]=='\0')resu=0;elseresu=s1[i]-s2[i];printf("s1=%s,s2=%s,resu=%d\n",s1,s2,resu); }7.15#include"stdio.h"main(){char from[80],to[80];;int i;scanf("%s",from);for(i=0;i<=strlen(from);i++) to[i]=from[i];printf("%s\n",to);}第八章8.1hcf(u,v)int u,v;{int a,b,t,r;if(u>v){t=u;u=v;v=t;}a=u;b=v;while((r=b%a)!=0){b=a;a=r;}return(a);}lcd(u,v,h)int u,v,h;{return(u*v/h);}main(){int u,v,h,l;scanf("%d,%d",&u,&v);h=hcf(u,v);printf("H.C.F=%d\n",h);l=lcd(u,v,h);printf("L.C.D=%d\n",l);}8.2#include"math.h"float x1,x2,disc,p,q; greater_than_zero(a,b)float a,b;{x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a);}equal_to_zero(a,b)flaot a,b;{x1=x2=-b/(2*a);}smaller_than_zero(a,b)float a,b;{p=-b/(2*a);q=sqrt(-disc)/(2*a);}main(){float a,b,c;scanf("%f,%f,%f",&a,&b,&c);disc=b*b-4*a*c;if(fabs(disc)<=1e-5){equal_to_zero(a,b);printf("x1=%5.2f\tx2=%5.2f\n",x1,x2);}else if(disc>0){greater_than_zero(a,b);printf("x1=%5.2f\tx2=%5.2f\n",x1,x2);}else{smaller_than_zero(a,b);printf("x1=%5.2f+%5.2fi\tx2=%5.2f-%5.2fi\n",p,q,p,q); }}8.3main(){int number;scanf("%d",&number);if(prime(number))printf("yes");elseprintf("no");}int prime(number)int number;{int flag=1,n;for(n=2;n<number/2&&flag==1;n++)if(number%n==0)flag=0;return(flag);}8.4#define N 3int array[N][N];convert(array)int array[3][3];{int i,j,t;for(i=0;i<N;i++)for(j=i+1;j<N;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){int i,j;for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&array[i][j]);convert(array);for(i=0;i<N;i++){printf("\n");for(j=0;j<N;j++)printf("%5d",array[i][j]);}}8.5main(){char str[100];scanf("%s",str);inverse(str);printf("%s\n",str);}inverse(str)char str[];{char t;int i,j;for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--) {t=str[i];str[i]=str[j-1];str[j-1]=t;}}8.6char concate(str1,str2,str)char str1[],str2[],str[];{int i,j;for(i=0;str1[i]!='\0';i++)str[i]=str1[i];for(j=0;str2[j]!='\0';j++)str[i+j]=str2[j];str[i+j]='\0';}main(){char s1[100],s2[100],s[100];scanf("%s",s1);scanf("%s",s2);concate(s1,s2,s);printf("\ns=%s",s);}8.7main(){char str[80],c[80];void cpy();gets(str);cpy(str,c);printf("\n%s\n",c);}void cpy(s,c)char s[],c[];{int i,j;for(i=0,j=0;s[i]!='\0';i++)if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'|| s[i]=='I'||s[i]=='o'||s[i]=='O'||s[i]=='u'||s[i]=='U') {c[j]=s[i];j++;}c[j]='\0';}8.8main(){char str[80];scanf("%s",str);insert(str);}insert(str)char str[];{int i;for(i=strlen(str);i>0;i--){str[i*2]=str[i];str[i*2-1]=' ';}printf("%s\n",str);}8.9int alph,digit,space,others;main(){char text[80];gets(text);alph=0,digit=0,space=0,others=0;count(text);printf("\nalph=%d,digit=%d,space=%d,others=%d\n",alph,digit,space,oth ers);}count(str)char str[];{int i;for(i=0;str[i]!='\0';i++)if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))alph++;else if(str[i]>='0'&&str[i]<='9')digit++;else if(strcmp(str[i],' ')==0)space++;elseothers++;}8.10int alph(c)char c;{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))return(1);elsereturn(0);}int longest(string)char string[];{int len=0,i,length=0,flag=1,place,point;for(i=0;i<=strlen(string);i++)if(alph(string[i]))if(flag){point=i;flag=0;}elselen++;else{flag=1;if(len>length){length=len;place=point;len=0;}}return(place);}main(){int i;char line[100];gets(line);for(i=longest(line);alph(line[i]);i++) printf("%c",line[i]);printf("\n");}8.11#define N 10char str[N];main(){int i,flag;for(flag=1;flag==1;){scanf("%s",str);if(strlen(str)>N)printf("input error");elseflag=0;}sort(str);for(i=0;i<N;i++)printf("%c",str[i]);}sort(str)char str[N];{int i,j;char t;for(j=1;j<N;j++)for(i=0;(i<N-j)&&(str[i]!='\0');i++) if(str[i]>str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}8.12#include<math.h>float solut(a,b,c,d)float a,b,c,d;{float x=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;x=x0-f/f1;}while(fabs(x-x0)>=1e-5);return(x);}main(){float a,b,c,d;scanf("%f,%f,%f,%f",&a,&b,&c,&d);printf("x=%10.7f\n",solut(a,b,c,d));}8.13main(){int x,n;float p();scanf("%d,%d",&n,&x);printf("P%d(%d)=%10.2f\n",n,x,p(n,x)); }float p(tn,tx)int tn,tx;{if(tn==0)return(1);else if(tn==1)return(tx);elsereturn(((2*tn-1)*tx*p((tn-1),tx)-(tn-1)*p((tn-2),tx))/tn); }8.14#define N 10#define M 5float score[N][M];float a_stu[N],a_cor[M];main(){int i,j,r,c;float h;float s_diff();float highest();r=0;c=1;input_stu();avr_stu();avr_cor();printf("\n number class 1 2 3 4 5 avr");for(i=0;i<N;i++){printf("\nNO%2d",i+1);for(j=0;j<M;j++)printf("%8.2f",score[i][j]);printf("%8.2f",a_stu[i]);}printf("\nclassavr");for(j=0;j<M;j++)printf("%8.2f",a_cor[j]);h=highest(&r,&c);printf("\n\n%8.2f %d %d\n",h,r,c);printf("\n %8.2f\n",s_diff());}input_stu(){int i,j;float x;for(i=0;i<N;i++){for(j=0;j<M;j++){scanf("%f",&x);score[i][j]=x;}}}avr_stu(){int i,j;float s;for(i=0;i<N;i++){for(j=0,s=0;j<M;j++)s+=score[i][j];a_stu[i]=s/5.0;}}avr_cor(){int i,j;float s;for(j=0;j<M;j++){for(i=0,s=0;i<N;i++)s+=score[i][j];a_cor[j]=s/(float)N;}}float highest(r,c)int *r,*c;{float high;int i,j;high=score[0][0];for(i=0;i<N;i++)for(j=0;j<M;j++)if(score[i][j]>high){high=score[i][j];*r=i+1;*c=j+1;}return(high);}float s_diff(){int i,j;float sumx=0.0,sumxn=0.0;for(i=0;i<N;i++){sumx+=a_stu[i]*a_stu[i];sumxn+=a_stu[i];}return(sumx/N-(sumxn/N)*(sumxn/N)); }8.15#include<stdio.h>#define N 10void input_e(num,name)int num[];char name[N][8];{int i;for(i=0;i<N;i++){scanf("%d",&num[i]);gets(name[i]);}}void sort(num,name)int num[];char name[N][8];{int i,j,min,temp1;char temp2[8];for(i=0;i<N-1;i++){min=i;for(j=i;j<N;j++)if(num[min]>num[j])min=j;temp1=num[i];num[i]=num[min];num[min]=temp1;strcpy(temp2,name[i]);strcpy(name[i],name[min]);strcpy(name[min],temp2);}for(i=0;i<N;i++)printf("\n%5d%10s",num[i],name[i]);}void search(n,num,name)int n,num[];char name[N][8];{int top,bott,min,loca;loca=0;top=0;bott=N-1;if((n<num[0])||(n>num[N-1]))loca=-1;while((loca==0)&&(top<=bott)){min=(bott+top)/2;if(n==num[min]){loca=min;printf("number=%d,name=%s\n",n,name[loca]); }else if(n<num[min])bott=min-1;elsetop=min+1;}if(loca==0||loca==-1)printf("number=%d is not in table\n",n);}main(){int num[N],number,flag,c,n;char name[N][8];input_e(num,name);sort(num,name);for(flag=1;flag;){scanf("%d",&number);search(number,num,name);printf("continue?Y/N!");c=getchar();if(c=='N'||c=='n')flag=0;}}8.16#include<stdio.h>#define MAX 1000main(){int c,i,flag,flag1;char t[MAX];i=0;flag=0;flag1=1;while((c=getchar())!='\0'&&i<MAX&&flag1){if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f') {flag=1;t[i++]=c;}else if(flag){t[i]='\0';printf("\nnumber=%d\n",htoi(t));printf("continue?");c=getchar();if(c=='n'||c=='N')flag1=0;else{flag=0;i=0;}}}}htoi(s)char s[];{int i,n;n=0;for(i=0;s[i]!='\0';i++){if(s[i]>='0'&&s[i]<='9')n=n*16+s[i]-'0';if(s[i]>='a'&&s[i]<='f')n=n*16+s[i]-'a'+10;if(s[i]>='A'&&s[i]<='F')n=n*16+s[i]-'A'+10;}return(n);}8.17#include<stdio.h>void convert(n)int n;{int i;if((i=n/10)!=0)convert(i);putchar(n%10+'0');}main(){int number;scanf("%d",&number);if(number<0){putchar('-');number=-number;}convert(number);}8.18main(){int year,month,day;int days;scanf("\n%d,%d,%d",&year,&month,&day);。
《C语言程序设计教程》第三版
1.5请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good!**************************解:mian(){printf(“**************************”);printf(“\n”);printf(“Very Good!\n”);printf(“\n”);printf(“**************************”);}1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。
解:mian(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf(“最大数为:“%d”,max);}第三章3.6写出以下程序运行的结果。
main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabcAㄩN3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。
因此,"China"应译为"Glmre"。
请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。
第1章-C++面向对象程序设计(Visual C++ 2010版)-温秀梅-清华大学出版社
第1章 绪 论
1.1 面向对象方法的起源 1.2 从面向过程 转向面向对象 1.3 面向对象的基本概念 1.4 面向对象系统的特性 1.5 面向对象程序设计举例
客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系 程序设计关键是定义类,并由类派生对象
➢1、50年代的程序都是用指令代码或汇编语言编写的, 60
年代高级语言的出现大大简化了程序设计,缩短了软件开 发周期。
➢2、自60年代末到70年代初,出现了大型软件系统,如操
数据1
数据2
数据3
属
…
性
① 类实质就是一种用户自定 义的数据类型。
② 可以把类想像成一种高级 的数据类型。
操作1操作2 操作3方法class struct
…
1.3 面向对象的基本概念
例
1. 类(class)
class Stack
{
private:
struct Node
{ int data;
数据成员
2要. 处因理为的数数据据与格过式程。分这函开表,数明因或代此码过编的写程可过重程用时性必不须好要。考虑所
例 abs(i)
// an int expression i
fabs(x) // a floating-point expression x
3. 因为不能设置数据的可访问权限,增加了大型程序 的复杂性。因此测试和调试更加困难。
c语言程序设计教程第三版答案
c语言程序设计教程第三版答案
《C语言程序设计教程》第三版是由严蔚敏和吴伟民编写的一
本经典的C语言教材,该书主要面向初学者,通过一系列的
例子和练习,帮助读者快速掌握C语言的基本原理和编程技巧。
以下是该教材的答案部分的总结:
该教材的答案部分对应每一章的习题,给出了详细的解析和编程实现思路。
这些答案不仅仅是简单的代码实现,更是深入浅出地解释了各种概念和原理。
在第一章中,我们学习了C语
言的基本结构和语法规则,答案部分给出了一些基本的例子,帮助读者更好地理解和掌握这些知识。
在后续的章节中,教材围绕不同的主题展开,如运算符、条件语句、循环语句等。
答案部分侧重于讲解一些常见的问题和易错点,并提供了相应的解决方案。
例如,在第三章中,我们学习了C语言的运算符,答案部分给出了一些常见的运算符使
用的例子和练习题的详细解答,帮助读者加深对这些知识的理解。
此外,在教材的末尾,还提供了一些综合性的例题和实践项目,用于检验读者对C语言的掌握程度。
这些题目要求读者灵活
运用之前学到的知识,实现各种功能。
答案部分给出了这些题目的具体实现思路和代码,供读者参考。
综上所述,《C语言程序设计教程》第三版的答案部分总结了
每一章的主要知识点,并提供了详细的解析和实现思路,帮助读者更好地理解和掌握C语言的编程技巧。
读者可以通过研
究这些答案,提高自己的编程能力和解决问题的能力。
同时,这些答案也是学习C语言的重要参考资料,能够帮助读者更好地理解教材中的内容,提高学习效果。
不过需要注意的是,答案只是给出一种解答思路,并不是唯一正确的答案,读者可以在实践中自己探索不同的解决方案。
办公自动化技术(Windows7 Office2016)第3版 第3章 Word文档的高级编排
选择页眉样式
设置页眉
3.1.3 设置页眉和页脚
10
设置奇偶页不同
设置偶数页页眉
选择页脚样式
退出页眉和页脚视图
3.1.4 插入分页符和分节符
11
在Word 文档的编排中,如果前后内容的页面编排方式与页眉页脚都一样,只是需要插入新的一页开始 新的一章,那么可使用分页符进行相关操作;如果前后内容的页面编排方式与页眉页脚都不同,例
如,某几页需要横排,或者需要不同的纸张、页边距等,则可插入分节符,将其作为单独的节。
选择“分页符”选项
插入分页符
3.1.5 添加目录
12
目录是一种常见的文档索引方式,一般包含标题和页码两个部分,通过目录,用户可快速知晓当前文 档的主要内容,以及需要查询内容的页码位置。在Word 2016 中,无需用户手动输入内容和页码,只 需对相应内容设置标题样式,然后提取内容和页码。
15
Word 2016 提供了信封功能,通过该功能可快速完成单个或多个信封的制作。
选择信封样式
选择生成信封的方式和数量
选择“数据表”文件
3.2.1 制作信封
16
Word 2016 提供了信封功能,通过该功能可快速完成单个或多个信封的制作。
匹配收信人信息
输入寄信人信息
创建的信封效果
3.2.2 使用Word 2016 的邮件合并功能
13
课堂案例:批量创建“信封”与“邀请函”文档
14
公司近期将举办分公司的开业庆典活动,为了增进友谊、发展业务,公司将邀请亲朋好友、知名人 士或专家等前来参加庆典活动,所以需要制作“信封”和“邀请函”文档。Word 2016 不仅可以使 用快速批量制作信封,还可以使用邮件合并功能制作邀请函。
c++第三版(吕凤翥)习题参考答案完整版
第1章习题答案习题1.1 (略) 习题1.5 (略)习题1.2 选择题CDAAB习题1.3 判断题对者:1,3,5,6,10习题1.4 分析程序结果1.BeiJing ShangHaiTianJing2.x=8,y=7x-y=13. r=k:i+j=26第2章习题答案习题2.1 (略)习题2.2 选择题BDABD DCCBC习题2.3 判断题对者:2,4,8,10习题2.4 分析程序结果1.90; 34.92; 12.786567,652.P12345671.987653.3,4,5,85.6,0,?5,8,24.abdeabcdeedcbaabcd,ijkl,sxyz74HK5. 1.5e+0060.005mnp xyabc\abv||mnp’ xyz’第3章习题答案习题3.1 (略) 习题3.6 编程(略)习题3.2 选择题A ADDD DCADD习题3.3 判断题对者:1,2,4,10习题3.4 分析程序结果1.63,4518,4588,32. 38019,203.53,22-2,011习题3.5 表达式值1.02. 13. 34.165.126. 1第4章习题答案习题4.1 (略)习题4.2 选择题CABDD ACBBD习题4.3 判断题对者:2,5,6,7,8,9习题4.4 分析程序结果1.494743412.7OK3. 684. 531-15.1,26.SWTTCH WAMP7.20第5章习题答案习题5.1 (略)习题5.2 选择题DABBD CBACB习题5.3 判断题对者:1,2,4,6,8,10习题5.4 分析程序结果1.7911132.153.6,14.5!+4!+3!+2!+1!=1535.8,8,86.Sum1=10Sum2=15Sum3=207.a=10,b=58.m200good第6章习题答案习题6.1 (略)习题6.2 选择题ADDDC D ADAC ACD (第8题无正确答案,只是选项D的等号两边指针级别是一样,但数组名是不能赋值的)习题6.3 判断题对者:1,5,6,7,8,9,10,11,13习题6.4 分析程序结果1. 42.153.12,10,9,6,5,4,3,2,1,4.4,4,4,4,45,5,5,5,57,7,7,7,78,8,8,8,85.sum=37.866. 5.32,5.323.9,3.957.a+b=398.10 11 12 13 14 15 16 17 18 19习题6.5 编程(略)第7章习题答案习题7.1 (略)习题7.2 选择题DBCAC习题7.3 判断题对者:1,2,6,10习题7.4 分析程序结果1.Ma ping,95.52.Ma 89.53. 62021224. d size→8d.d size→8abc size→8d.i=975.word value:4241low value:Ahigh value:B习题7.5 编程(略)第8章习题答案习题8.1 (略)习题8.2 选择题DCBAC ACB(A)BA CA习题8.3 判断题对者:1,3,5,8,10,12习题8.4 分析程序结果1.Default constructor called.Constructor called.a1=0.a2=0a1=3,a2=92.b1=12,b2=65a=1003. 123455543214.m1=68,m2=1565. 1{}{1,2,3,4,5,6,7,8,9,10}1{1,2,3,4,5,6,7,8,9,10,11,12l,13,14,15,16,17,18,19,20,21,22,23,24,25}{25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}6.Constructor called.0Constructor called.5Destructor called.55Destructor called.57.Constructor called.1010Destructor called.10第9章习题答案习题9.1 (略)习题9.2 选择题CBABA DBDBD习题9.3 判断题对者:2,4,5,6,7,8,10习题9.4 分析程序结果1. Starting1:Default constructor called.Default constructor called.Default constructor called.Endting1:Starting2:Constructor:a=5,b=6Constructor:a=7,b=8Constructor:a=9,b=10Endting2.Destructor called.a=9,b=10Destructor called.a=7,b=8Destructor called.a=5,b=6Destructor called.a=5,b=6Destructor called.a=3,b=4Destructor called.a=1,b=22.Default constructor called.Default constructor called.Default constructor called.Default constructor called.Destructor called.Constructor1 called.Destructor called.Constructor2 called.Destructor called.x=0,y=0x=7,y=0x=5,y=9Destructor called.Destructor called.Destructor called.3.Default Constructor called.0,0Destructor called.Constructor called.5,8Destructor called.410 11 12 13 1420 21 22 23 245 Default constructor called.Constructor:real=6.9,imag=0Constructor:real=12.2,imag=25.80+0i9+0i12.2+25.8iConstructor:real=0.8,imag=0.5Constructor:real=55,imag=0Default Constructor called.0.8+0.9i55+0i0+0i8.Constructor called.0Constructor called.5Destructor called.55Destructor called.59.Constructor called.1010Destructor called.10习题9.5(1) 答:该程序中调用了三个字符串处理函数:strlen()、strcpy()和strcat()。
精品课件-C程序设计(第三版)(荣政)-第3章
第三章 C程序设计初步 3.1 结构化程序设计思想 3.2 C语句概述 3.3 赋值语句 3.4 数据输出 3.5 数据输入 3.6 程序设计举例 习题
第三章 C程序设计初步
3.1 结构化出好的程序,必须先搞懂什么样的程序才是好程序? 在计算机发展初期,由于计算机硬件价格比较贵,内存容量和运 算速度都受到一定的限制,当时程序质量的高低取决于程序所占 内存容量的大小和运行时间的长短。但是现在计算机经过迅猛的 发展,除了一些特殊场合,计算机内存容量和运算速度在编写一 般程序时,已不成问题。现在已没有必要为了节约很少的内存和 运算时间而采取使人难以理解的技巧了。一个难以理解的程序, 如果作为“产品”推广出去,所有的用户都要花费大量的时间、 精力去理解和消化它。而且在一个软件产品的使用期间往往需要 修改和维护它(例如发现程序中的某些错误; 增加一些新的功能; 或者将程序移植到不同的计算机系统上……),这时程序的可读性 和可维护性就变得越来越重要了。
第三章 C程序设计初步
结构化程序设计方法的核心有二: (1) 一个大的程序开发应当采取“自顶向下,逐步细化, 模块化”的方法。 (2) 任何程序均由具有良好特性的三种基本模块(顺序、 分支、循环)“堆积”搭成,即由基本小单元顺序组成一个大 结构,从而避免了使用goto语句的缺点。goto语句的随意跳转, 使程序转来转去难以理解。goto语句非常容易使程序脱离结构 化程序设计的轨道,故goto语句是结构化程序设计的大敌,除 一些特殊情况外应尽可能少用。 采用结构化程序设计方法设计程序时,是一个结构一个结 构地写下来,整个程序结构如同一串珠子一样次序清楚,层次 分明。在修改程序时,可以将某一基本结构单独取出来进行修 改,而不致于过大地影响到其余部分。
C 语言程序设计教程与实验(第三版)
谢谢观看
全书由3个部分组成,共分12章。第1部分(第1~8章)是对C++语言基本特性的介绍,有些是和C语言有类似 的地方。第2部分(第9~12章)是关于C++语言面向对象的基本思想及设计方法。第3部分是该教材的附录部分, 包括有重要的实验内容设计及Visual C++6.0环境介绍。
成书过程
成书过程
出版工作
教材目录
教材目录
(注:目录排版顺序为从左列至右列 )
教学资源
教学资源
该教材有配套教材——《C++语言程序设计教程与实验(第三版)学习指导与习题解答》。
作者简介
作者简介
温秀梅,1972年生,女,汉族,硕士,河北张家口人,河北建筑工程学院教授。 丁学钓,1962年生,女,硕士,河北建筑工程学院副教授,主研方向为数据结构、数据挖掘技术及其算 法。 李建华,男,河北建筑工程学院教师。
C 语言程序设计教程与实验 (第三版)
20xx年清华大学出版社出版的图书
01 成书Байду номын сангаас程
03 教材目录 05 作者简介
目录
02 内容简介 04 教学资源
基本信息
《C++语言程序设计教程与实验(第三版)》是由温秀梅、丁学钧、李建华主编,2012年清华大学出版社出 版的21世纪高等学校计算机基础实用规划教材。该教材适合作为非计算机专业本科生教学或计算机应用培训班的 教材,同时,还可以作为自学或函授学习的参考书。
出版工作
2012年4月1日,该教材由清华大学出版社出版。
内容简介
内容简介
全书由3个部分组成,共分12章。第1部分(第1~8章)是对C++语言基本特性的介绍,有些是和C语言有类似 的地方。第2部分(第9~12章)是关于C++语言面向对象的基本思想及设计方法。第3部分是该教材的附录部分, 包括有重要的实验内容设计及VisualC++6.0环境介绍。此外,附录还包含程序的调试与运行、标准字符ASCII表、 实验、模拟考试题、课程设计任务书、参考课时安排。
c程序设计第三版习题参考解答(全)
c程序设计第三版习题参考解答(全) C程序设计第三版习题参考解答本文为《C程序设计第三版习题参考解答》的全文内容。
为了更好地适应题目要求,文章将按照解答问题的方式进行分段,每个问题对应一个小节。
以下是各个问题的解答:第一章:C概述和程序设计基本原则1. 什么是计算机程序?计算机程序是一系列指令的集合,用于告诉计算机执行特定的任务。
它由一系列语句组成,每条语句都包含了计算机可以理解和执行的命令。
2. C语言的起源和发展历程是什么?C语言是由贝尔实验室的Dennis Ritchie于20世纪70年代初开发的一种通用高级编程语言。
C语言基于早期的B语言进行了扩展和改进,成为了应用广泛且高效的编程语言。
3. 编译和解释有什么区别?编译是将源代码一次性转换为机器语言的过程。
它将整个源代码文件编译成可执行文件,然后可以直接在计算机上运行。
解释是逐行解析源代码并立即执行的过程。
解释器逐行读取源代码并将其转换为机器代码,然后立即执行转换后的代码。
4. C程序的一般结构是什么样的?C程序的一般结构包括预处理指令、函数声明、全局变量声明、main函数以及其他函数的定义。
预处理指令用于包含头文件、定义宏等。
函数声明用于声明函数的名称和参数。
全局变量声明用于声明全局变量。
main函数是C程序的入口点,也是程序执行的起始位置。
第二章:C基本语法和数据类型1. C中的注释有哪些类型?在C中,注释分为单行注释和多行注释。
单行注释以"//"开头,多行注释以/*开头,以*/结尾。
2. 什么是变量?变量是在程序中用来存储数据的存储区域。
每个变量都有一个名称和一个数据类型,可以通过变量名来引用它所存储的数据。
3. C语言中的常量有哪些类型?C语言中的常量分为整型常量、实型常量、字符常量和字符串常量。
整型常量表示整数值,实型常量表示实数值,字符常量表示单个字符,字符串常量表示一串字符。
4. C语言中的运算符有哪些类型?C语言中的运算符包括算术运算符、关系运算符、逻辑运算符、赋值运算符、自增自减运算符等。
C语言程序设计 第三版 部分习题 (谭浩强 著) 清华大学出版社 课后答案
【习题1】一、简答题(在课本中寻找答案,略)1.1 C程序的基本结构包括哪些内容?1.2 如何定义标识符?1.3 输入格式、输出格式的组成包括哪些内容?1.4 C语言函数分为哪两类?1.5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?二、判断并改错1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。
错误:main函数可以放在程序的任何位置。
并不限定在程序的开头。
1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。
错误:不可以交叉出现,数据说明部分在执行语句部分的前面。
1.9 编辑与编译不是一回事。
错误:不是一回事。
编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。
1.10 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。
正确1.11 注释内容太多会影响程序的执行效率。
错误:不会影响程序的执行效率。
因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。
1.12 所有的数学公式可以直接出现在源程序中。
错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。
三、编程题1.13 在屏幕上输出自己名字的拼音。
提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。
1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。
提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f1.15 输入两个整数,输出其中最大者。
提示:模仿例1.31.16 输入三个整数,输出其中最小者。
提示: min(min(a,b),c);【习题2】一、简答题(在课本中寻找答案,略)2.1 常量与变量的区别?2.2 C语言中的标识符的定义规则?2.3 变量为什么要“先定义,后使用”?2.4 字符常量'a'与字符串常量"a"有何区别?2.5 大小写字母转换的规则是什么?2.6 变量的具有哪三种属性?二、单项选择题2.7 C语言中,int型数据在内存中的存储形式是(D)。
数据库原理及应用教程第3版课后题答案
数据库原理及应用教程第3版课后题答案第一篇:数据库原理及应用教程第3版课后题答案第一章习题参考答案一、选择题1.C2.B3.D4.C5.D6.A7.A8.B9.D 10.B 11.C 12.D 13.A 14.D15.B 16.C 17.D 18.A 19.D 20.A二、填空题1.数据库系统阶段2.关系3.物理独立性4.操作系统5.数据库管理系统(DBMS)6.一对多7.独立性8.完整性控制9.逻辑独立性 10.关系模型11.概念结构(逻辑)12.树有向图二维表嵌套和递归 13.宿主语言(或主语言)14.数据字典15.单用户结构主从式结构分布式结构客户/服务器结构服务器结构第2章习题参考答案一、选择题1.A2.C3.C4.B5.B6.C7.B8.D9.C 10.A 11.B 12.A 13.A 14.D15.D二、填空题1.选择(选取)2.交3.相容(或是同类关系)4.并差笛卡尔积选择投影5.并差交笛卡尔积6.选择投影连接7.σf(R)8.关系代数关系演算浏览器/ 9.属性 10.同质11.参照完整性12.系编号,系名称,电话办公地点 13.元组关系域关系 14.主键外部关系键 15.R和S没有公共的属性第3章习题参考答案一、选择题1.B2.A3.C4.B5.C6.C7.B8.D9.A 10.D二、填空题结构化查询语言(Structured Query Language)数据查询、数据定义、数据操纵、数据控制外模式、模式、内模式数据库、事务日志NULL/NOT NULL、UNIQUE约束、PRIMARY KEY约束、FOREIGN KEY约束、CHECK约束聚集索引、非聚集索引连接字段行数定义系统权限、对象权限基本表、视图12.(1)INSERT INTO S VALUES('990010','李国栋','男',19)(2)INSERT INTO S(No,Name)VALUES('990011', '王大友')(3)UPDATE S SET Name='陈平' WHERE No='990009'(4)DELETE FROM S WHERE No='990008'(5)DELETE FROM S WHERE Name LIKE '陈%' 13.CHAR(8)NOT NULL 14.o=o 15.ALTER TABLE Student ADD SGrade CHAR(10)第4章习题参考答案一、选择题1.B2.B3.D4.B5.C6.D7.B8.D9.C 10.A二、填空题1.超键(或超码)2.正确完备3.属性集X的闭包X + 函数依赖集F的闭包F +4.平凡的函数依赖自反性5.{AD→C} φ6.2NF 3NF BCNF7.无损连接保持函数依赖8.AB BC BD9.B→φ B→B B→C B→BC 10.B→C A→D D→C 11.AB 1NF 12.AD 3NF第5章习题参考答案一、选择题1.B2.B3.C4.A5.C6.D7.A8.C9.D 10.D 11.B 12.B 13.A 14.D15.A二、填空题安全性控制、完整性控制、并发性控制、数据库恢复数据对象、操作类型授权粒度、授权表中允许的登记项的范围原始数据(或明文)、不可直接识别的格式(或密文)、密文事务、原子性、一致性、隔离性、持久性丢失更新、污读、不可重读封锁、排它型封锁、共享封锁利用数据的冗余登记日志文件、数据转储事务故障、系统故障、介质故障完整性登录账号、用户账号 public 服务器、数据库第6章习题参考答案一、选择题1.B2.C3.C4.A5.C6.B7.C8.B9.D 10.C 11.D 12.B 13.B 14.D二、填空题数据库的结构设计、数据库的行为设计新奥尔良法分析和设计阶段、实现和运行阶段需求分析概念结构设计自顶向下、自底向上属性冲突、命名冲突、结构冲突逻辑结构设计确定物理结构、评价物理结构数据库加载运行和维护物理数据字典需求分析载入第7章习题参考答案一、选择题1.B2.C3.B4.D5.A二、填空题局部变量、全局变量--、/*……*/ DECLARE SQL、流程控制AFTER 触发器、INSTEAD OF 触发器插入表、删除表数据库备份、事务日志备份、差异备份、文件和文件组备份简单还原、完全还原、批日志还原硬盘、磁带、管道第二篇:Access数据库应用教程课后题答案课后选择题答案第1章1.一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是(D)。
c程序设计第三版习题参考解答(全)
C程序设计(第三版)课后习题参考解答第1章C语言概述1.5 参照本章例题,编写一个C程序,输出以下信息:******************************Very Good!******************************解:main ( ){printf(“****************************** \n”);printf(“\n”);printf(“Very Good! \n”);printf(“\n”);printf(“****************************** \n”);}1.6 写一个程序,输入a,b,c三个值,输出其中最大者。
解:main ( ){int a,b,c,max;printf(“请输入三个数a,b,c: \n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf(“最大数为:%d ”,max);}第2章程序的灵魂——算法2.1 什么叫结构化的算法?为什么要提倡结构化的算法?解:由一些基本结构顺序组成的算法称为结构化的算法。
由于在基本结构之间不存在非顺序的跳转,流程的转移只存在于一个基本结构范围之内,因而提高了算法的质量。
2.7 什么叫结构化程序设计?它的主要内容是什么?解:结构化程序就是用高级语言表示的结构化算法。
它的主要内容包括“自顶向下,逐步细化”的分析方法和“模块化设计”的解决方法,以及“结构化编码”的实现方法。
第3章数据类型、运算符与表达式3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。
注:如果没有学过二进制和补码,此题可以不做。
解:各数据在内存中的存储形式如下表所示:它是一个负数的补码,对其再求一次补码可得其真值,即-(65536-32769)=-32767。
基础化学第三版习题解答
基础化学(第3版)思考题和练习题解析第一章 绪 论1. 为什么说化学和医学的关系密切,医学专业学生必须学好化学? 答:(略)2. “1 mol 硫酸的质量是98.0g ”,对吗?答:错误!未指明基本单元,正确说法是1 mol H 2SO 4的质量是98.0g 或1 mol[(1/2) (H 2SO 4)]的质量是49.0g 。
3. 0.4 mol H 2SO 4溶解于水,配成500 m L 溶液,其浓度表示正确的是A. c (H 2SO 4) = 0.8 mol·L -1B. c [21(H 2SO 4)] = 0.8 mol·L -1 C. c [21 (H 2SO 4) ]= 0.4 mol·L -1 D. 硫酸的浓度为0.8 mol·L -1 答;正确的是A 。
根据定义,1L 溶液中含有0.8 mol H 2SO 4,c (H 2SO 4) = 0.8 mol·L -1。
4. 下列说法正确的是A. “1 mol O ”可以说成“1 mol 原子O ”B. 1摩尔碳C 原子等于12gC. 1 L 溶液中含有H 2SO 4 98 g ,该溶液的摩尔浓度是1 mol·L -1D. 基本单元不仅可以是构成物质的任何自然存在的粒子或粒子的组合,也可以是想象的或根据需要假设的种种粒子或其分割与组合答:正确的是D 。
A 应说成“1 mol 氧原子”;B 应为“1摩尔碳C 原子的质量等于12g ”; C 不应该使用“摩尔浓度”,此术语已被废除。
5. 求0.100kg (21Ca 2+)的物质的量。
解:M (21Ca 2+) =(40.08 / 2)= 20.04 (g · mol -1), n (21Ca 2+) = [ m / M (21Ca 2+) ] = (0.100×103 )/20.04 = 4.99 (mol) 6. 每100m L 血浆含K + 为20mg ,计算K +的物质的量浓度,单位用mmol·L -1表示。
单片机原理及应用教程第3版习题课后答案之令狐文艳创作
《单片机原理及应用程序》(第三版)习题参考答案令狐文艳第一章1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么?在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机内部一切信息存储、处理和传送均采用二进制数的形式。
可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。
十六进制数可以简化表示二进制数。
2.(1) 01111001 79H (2) 0.11 0.CH (3) 01111001.1179.CH(4) 11101010.101 0EA.AH (5)01100001 61H(6) 00110001 31H3.(1) 0B3H (2)80H (3) 17.AH (4) 0C.CH4.(1)01000001B 65 (2) 110101111B 4315.(1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100(5) 10000001 11111110 111111116.00100101B 00110111BCD 25H7. 137 119 898.什么是总线?总线主要有哪几部分组成?各部分的作用是什么?总线是连接计算机各部件之间的一组公共的信号线。
一般情况下,可分为系统总线和外总线。
系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB)地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信息由地址总线输出,然后经地址译码单元处理。
地址总线为16位时,可寻址范围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的范围。
在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。
控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。
CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。
[电脑基础知识]C 第三版温秀梅第2章
C) long do=0xfdal;
D) float 3_and=4-e-3;
2.3.3
字符型
字符型数据就是那些用来表示英文字母、符 号、数字等的数据。 字符型数据类型关键字是char。字符型数据 在内存中存储的是它的ASCII值,占用1个字 节(8位)的内存单元。
关键字:char
1. 字符型常量 例如: char c; /*字符变量c在内存中占 2. 字符串常量
必位于程序的开始,可以穿插在其它语句中间。
变量最好在使用时才定义,这样可以增加程序的
可读性,避免变量发生混淆。
2、变量的初始化
在定义变量的同时,给变量赋以一定的初始 值 ,称为初始化变量。
格式一: 数据类型 变量名1 = 初值1, … , 变量名n = 初值n; int x = 3, y = 4, z = 5; char ch1 = 'A', ch2, ch3 = 'a'; 格式二: ( 函数表示法 ) 数据类型 变量名1(初值1), … , 变量名n(初值n);
2.3.2
实 型
1. 实型常量表示法 2. 实型变量的分类
关键字:float和double
1.实型常量表示法
如2.1E+5,123E-3,123e3,123.e3都是合法的, 误的?为什么? (1) 小数表示法:由符号、数字和小数点组成的常数,可以省去整 而345 ,-.5, 3.E,e5等都是非法的指数形式。 .6 -.98 2.3e8 2.3e2.5 e7 .5e-3 数部分,只保留小数部分,但绝对不能没有小数点。如 2.字符数据是以ASCII码值存储的(即以整数 表示),占据一个字节。因此C++使字符数据和整型数 据之间可以通用。 ‘A’ 和‘a’ 如:‘A’=65=0101=0x41=01000001 是不同的字
第3章-C++面向对象程序设计(Visual C++ 2010版)-温秀梅-清华大学出版社
第3章 类和对象
第3章 类和对象
3.1 类 3.2 对象 3.3 构造函数和析构函数 3.4 类的聚集——对象成员(自学) 3.5 静态成员 3.7 综合举例
3.1 类
❖类描述了一组具有相同属性和行为特征的对象。在系统实
现中,类是一种共享机制,它提供了本类对象共享的操作 实现。类是代码复用的基本单位,它可以实现抽象数据类 型,创建对象,实现属性和行为的封装。
有关类定义的几点说明:
(1) class 是关键字,类名是一个标识符,必须符合C++标
识符的命名规则。{ }内是类的定义体部分,说明该类的成员, 类的成员包括数据成员和成员函数。
(2) 类成员的三种访问控制权限:
类有三种访问控制权限,分别是private(私有成员)、 public(公有成员)、protected(保护成员),在每一种访
class A{ public:
void func1(void); void func2(void); …… private: int i, j; float x,y; …… };
有关类定义的几点说明:
(4) 结构体struct和类class的区别 C语言中的结构体只有数据成员,无函数成员。 C++语言中的结构体可有数据成员和函数成员。在缺省情况下, 结构体中的数据成员和成员函数都是公有的,而在类中是私有的。 可以随意修改结构体变量中的数据,这样对数据的操作是很不 安全的,不能通过结构体对数据进行保护和控制;在结构体中, 数据和其相应的操作是分离的,使得程序的复杂性难以控制,而 且程序的可重用性不好,严重影响了软件的生产效率。
识符的命名规则。{ }内是类的定义体部分,说明该类的成员, 类的成员包括数据成员和成员函数。
C语言程序设计(第3版_乌云高娃)课件 同步实训指导 (24)[2页]
同步实训指导
序号: 10.1
学习内容与目标:
1. 文件的类型、文件读写的基本概念
2. 能够将单个字符、字符串进行文件读写关键知识点:
⏹文本文件读写基本步骤
⏹文本文件读写模式
学习过程
任务1:从键盘输入一个字符串,然后保存在文件“test.txt”中。
步骤
1)定义文件指针fp;
2)定义字符数组用来存放将要写入到文件中的字符串;
3)键盘输入字符串到字符数组;
4)以写文本文件方式打开文件(文件名由命令行参数输入);
5)如果打开文件失败,则输出错误信息并结束程序;
6)将字符数组数据写入文件;
7)关闭文件。
任务2:将“test.txt”的内容输出在屏幕上。
步骤
1)定义文件指针fp;
2)定义字符变量用来存放从文件中读取的字符;
3)以读文本文件方式打开文件(文件名由命令行参数输入);
4)如果打开文件失败,则输出错误信息并结束程序;
5)读取文件中的内容并显示在屏幕上;
6)关闭文件。
小结与思考:
1)文件操作三步曲:
打开文件,fopen( )
读\写操作
关闭文件
2)文件打开三步曲
打开那个文件
准备进行什么操作
用哪一个文件指针。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表3.1 I/O流的常控制符
控 制 endl dec oct hex 符 描 述 插入换行符并刷新流 数值数据采用十进制表示(默认) 数值数据采用八进制表示 数值数据采用十六进制表示
设置16进制数字母大写输出
uppercase
nouppercase setw(n)
取消16进制数字母大写输出(默认) 设域宽为n个字符(默认实宽)
C++提供了I/O流机制,包括 流输入 和 流输出 。 cin 和 cout 是预定义的流对象。cin用来处理标准输入; cout 用 来 处 理 标 准 输 出 。 由 于 cin 和 cout 被 定 义 在 “ iostream”头文件中,在使用它们之前,要用预编 译命令“#include”将“ iostream” 包括到用户的源 程序中。即源文件中需有:#include <iostream>
3.1.2 C++语言格式输入输出
按特定的格式进行输入输出,例如对
double pi=3.1415; 如果希望显示的是3.14,即保留两位小数,且域宽为5 个字符并换行,此时如用下面的语句则不能完成。 cout<<pi<<“\n”; //系统默认显示6位有效数字 C++提供了控制符(manipulators),用于对I/O 流的格式进行控制。改为如下形式则可以完成需求: cout<<setw(5)<<setprecision(3)<<pi<<endl; 控制符是在头文件iomanip.h中预定义的对象,可 以直接插入流中。使用控制符时,要在源文件中添加 #include<iomanip.h>预处理命令。
cout<<”计算机系”<<endl; return 0;
}
#include <iostream> using namespace std; int main( ) { cout<<”河北建筑工程学院”; cout<<”计算机系”<<endl; return 0; } 运行结果为:
河北建筑工程学院计算机系
表3.1 I/O流的常用控制符
控 制 符 描 述 注意:(1)使用cout<<left; 和 setfill(„c‟) 设填充字符为c (默认空格) cout<<setiosflags(ios::left);效果是一样的,其他的控制符 setprecision(n) 设显示小数精度为n位(默认6位) 类似。 fixed 用定点方式表示实数 left 左对齐
【例3.6】
使用setw设置值的输出宽度。 #include <iostream> #include <iomanip> using namespace std; int main( ) { int a =10; int b =1000; cout <<setw(5)<<a<<"\n"; cout <<setw(2)<<b; return 0; }
using namespace std;
3.1.1 C++语言无格式输入输出
1.无格式输出
cout
“<<”是预定义的插入符,使用“ << ”向cout输 出流中插入数据,便可实现在屏幕上显示输出。格 式如下: cout<<表达式1<<表达式2 … <<表达式n ; 或分成多行: cout<<表达式1 <<表达式2 … <<表达式n ; //输出效果同单行格式
【例3.1】无格式输出cout。 #include<iostream> using namespace std; int main( ) { cout<<”This is a program.\n”; cout<<”This ”<<”is ”<<”a ”<<”program.\n”; cout<<”This ” <<”is ” <<”a ” <<”program.\n”; return 0; }
第三章 结构化程序设计
3.1 3.2 3.3 3.4 3.5 3.6 C++语言输入输出流 结构化程序设计概述 顺序结构程序设计 选择结构程序设计 循环结构程序设计 程序设计举例
3.1 C++语言输入输出流
在C++中,将数据从一个对象到另一个对象的流动 抽象为“ 流 ”。从流中获取数据的操作称为 提取操 作,向流中添加数据的操作称为插入操作。
3.1.1 C++语言无格式输入输出
2.
cin “>>”是预定义的 提取符 ,使用“ >>”从cin输 入流中提取数据,便可实现 键盘输入 。格式如下: cin >> 数据1 >>数据2 …… >>数据n ;
无格式输入 cin在用于输入数 也可写成多行: 据时,能自动识别 cin >>数据1 变量位置和类型。
【例3.10】
强制显示小数点。 #include <iostream> #include <iomanip> using namespace std; int main( ) { double x=66,y=-8.246; cout<<"x = "<<x<<"\t\t" <<"y = "<<y<<endl; cout << setiosflags(ios::showpoint); cout<<"x = "<<x<<"\t\t" <<"y = "<<y<<endl; return 0; }
【例3.9】左右对齐输出。
#include <iostream> #include <iomanip> using namespace std; int main( ) { cout << right << setw(5) <<-1 cout<<internal << 2 << setw(5) <<setw(5)<<-1 3 << endl ; << setw(5) << <<setw(5)<<2 cout << left <<setw(5)<<3<<endl; << setw(5) << -1 return<< setw(5) << 2 0; } << setw(5) << 3 << endl ;
cout<<resetiosflags(ios::uppercase); // 设置数值中字母小写输出 cout<<"Hexadecimal:"<<'\t'<<hex <<"x = "<<x<<"\t\t" <<"y = "<<y<<"\t\t" <<"z = "<<z<<endl; // 仍按十六进制输出 cout<<"Decimal:"<<'\t'<<dec <<"x = "<<x<<"\t\t" <<"y = "<<y<<"\t\t" <<"z = "<<z<<endl;// 恢复按十进制输出 return 0; }
【例3.5】使用控制符hex、oct、dec
#include <iostream> #include <iomanip> using namespace std; int main( ) { int x=30,y=300,z=1024; cout<<"Decimal:"<<'\t' <<"x = "<<x<<"\t\t" <<"y = "<<y<<"\t\t" <<“z = ”<<z<<endl; cout<<"Octal:"<<"\t\t"<<oct <<"x = "<<x<<"\t\t" <<"y = "<<y<<"\t\t" <<“z = ”<<z<<endl;
【例3.8】 控制浮点数值显示
#include <iostream> cout<<"----------"<<endl; #include <iomanip> cout<<setiosflags(ios::fixed)<<setprecision(0)<<test<<endl; // 输出3 using namespace std; cout<<setprecision(4)<<test<<endl;// 输出3.1429 int main( ) cout<<resetiosflags(ios::fixed); // 取消定点数输出 { double test = 22.0/7 ; cout<<setiosflags(ios::scientific)<<test<<endl; cout << test << endl ; //默认有效位为6 // 输出3.1429e+000 cout << setprecision(0) << test << endl cout<<setprecision(6); << setprecision(1) << test << endl // 重新设置成C++默认输出数值有效位 return 0; << setprecision(2) << test << endl << setprecision(3) << test << endl } << setprecision(4) << test << endl ;