c程序设计谭浩强第五版课后答案,c程序设计谭浩强第五版知识点总结
《c程序设计谭浩强第五版》是一本经典的C语言教程,对于初学者和进阶学习者都有很好的指导作用。为了帮助读者更好地理解和掌握书本内容,该书提供了丰富的习题和课后练习题,本资源收集整理了书本课后习题答案,包括选择题、填空题、判断题、编程题、应用题等,答案详细,易于理解,是读者自学和教学参考的好材料。
一:c程序设计谭浩强第五版课后答案
C语言设计谭浩强第三版的课后习题答案(一)
1.5请参照本章例题,编写一个C程序,输出以下信息:
************
Very Goodj!
************
解:
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);
}
第三章
3.3 请将下面各数用八进制数和十六进制数表示:
(1)10 (2)32 (3)75 (4)-617
(5)-111 (6)2483 (7)-28654 (8)21003
解:十 八 十六
(10)=(12)=(a)
(32)=(40)=20
(75)=(113)=4b
(-617)=(176627)=fd97
-111=177621=ff91
2483=4663=963
-28654=110022=9012
21003=51013=520b
3.5字符常量与字符串常量有什么区别?
解:字符常量是一个字符,用单引号括起来。字符串常量是由0个或若干个字符
而成,用双引号把它们括起来,存储时自动在字符串最后加一个结束符号'\0'.
3.6写出以下程序的运行结果:
#include
void main(){char c1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);printf("\t\b%c %c\n",c4,c5);解:程序的运行结果为:aabb cc abcA N3.7将"China"译成密码.密码规律:用原来的字母后面第4个字母代替原来的字母,例如,字母"A"后面第4个字母是"E",用"E"代替"A".因此,"China"应译为"Glmre".请编一程序,用赋初值的议程使c1,c2,c3,c4,c5分别变成'G','1','m','r','e',并输出.main(){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.8例3.6能否改成如下:#includevoid main(){int c1,c2;(原为 char c1,c2)c1=97;c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}解:可以.因为在可输出的字符范围内,用整型和字符型作用相同.3.9求下面算术表达式的值.(1)x+a%3*(int)(x+y)%2/4=2.5(x=2.5,a=7,y=4.7)(2)(float)(a+b)/2+(int)x%(int)y=3.5(设a=2,b=3,x=3.5,y=2.5)3.10写出下面程序的运行结果:#includevoid main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);}解:结果: 9,11,9,10第4章4.4.a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'.想得到以下的输出格式和结果,请写出程序要求输出的结果如下:a= 3 b= 4 c= 5x=1.200000,y=2.400000,z=-3.600000x+y= 3.60 y+z=-1.20 z+x=-2.40u= 51274 n= 128765c1='a' or 97(ASCII)c2='B' or 98(ASCII)解:main(){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,c2);printf("c2='%c' or %d(ASCII)\n",c2,c2);}4.5请写出下面程序的输出结果.结果:575 767.856400,-789.12396267.856400 ,-789.12396267.86,-789.12,67.856400,-789.123962,67.856400,-789.1239626.785640e+001,-7.89e+002A,65,101,411234567,4553207,d68765535,17777,ffff,-1COMPUTER, COM4.6用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',问在键盘上如何输入?main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d,&a,&b);scanf(" x=%f y=%e",&x,&y);scanf(" c1=%c c2=%c",&c1,&c2);}解:可按如下方式在键盘上输入:a=3 b=7x=8.5 y=71.82c1=A c2=a说明:在边疆使用一个或多个scnaf函数时,第一个输入行末尾输入的"回车"被第二个scanf函数吸收,因此在第二\三个scanf函数的双引号后设一个空格以抵消上行入的"回车".如果没有这个空格,按上面输入数据会出错,读者目前对此只留有一初步概念即可,以后再进一步深入理解.4.7用下面的scanf函数输入数据使a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75,z=57.8,请问在键盘上如何输入数据?scanf("%5d%5d%c%c%f%f%*f %f",&a,&b,&c1,&c2,&y,&z);解:main(){int a,b;float x,y,z;char c1,c2;scanf("%5d%5d%c%c%f%f",&a,&b,&c1,&c2,&x,&y,&z);}运行时输入:10 20Aa1.5 -3.75 +1.5,67.8注解:按%5d格式的要求输入a与b时,要先键入三个空格,而后再打入10与20。%*f是用来禁止赋值的。在输入时,对应于%*f的地方,随意打入了一个数1.5,该值不会赋给任何变量。3.8设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积,用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字.请编程.解:main(){float pi,h,r,l,s,sq,vq,vz;pi=3.1415926;printf("请输入圆半径r圆柱高h:\n");scanf("%f,%f",&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=4.0/3.0*pi*r*r*r;vz=pi*r*r*h;printf("圆周长为: =%6.2f\n",l);printf("圆面积为: =%6.2f\n",s);printf("圆球表面积为: =%6.2f\n",sq);printf("圆球体积为: =%6.2f\n",vz);}4.9输入一个华氏温度,要求输出摄氏温度,公式为C=5/9(F-32),输出要有文字说明,取两位小数.解: main(){float c,f;printf("请输入一个华氏温度:\n");scanf("%f",&f);c=(5.0/9.0)*(f-32);printf("摄氏温度为:%5.2f\n",c);}第五章 逻辑运算和判断选取结构5.4有三个整数a,b,c,由键盘输入,输出其中最大的数.main(){int a,b,c;printf("请输入三个数:");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);}*** 2:使用条件表达式.main(){int a,b,c,termp,max;printf(" 请输入 A,B,C: ");scanf("%d,%d,%d",&a,&b,&c);printf("A=%d,B=%d,C=%d\n",a,b,c);temp=(a>b)?a:b;max=(temp>c)? temp:c;printf(" A,B,C中最大数是%d,",max);}5.5 main(){int x,y;printf("输入x:");scanf("%d",&x);if(x<1){y=x;printf("X-%d,Y=X=%d \n",x,y);}else if(x<10){y=2*x-1;printf(" X=%d, Y=2*X-1=%d\n",x,y);}else{y=3*x-11;printf("X=5d, Y=3*x-11=%d \n",x,y);}}5.7给一个不多于5位的正整数,要求:1.求它是几位数2.分别打印出每一位数字3.按逆序打印出各位数字.例如原数为321,应输出123.main(){long int num;int indiv,ten,hundred,housand,tenthousand,place;printf("请输入一个整数(0-99999):");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);printf("每位数字为:");ten_thousand=num/10000;thousand=(num-tenthousand*10000)/1000;hundred=(num-tenthousand*10000-thousand*1000)/100;ten=(num-tenthousand*10000-thousand*1000-hundred*100)/10;indiv=num-tenthousand*10000-thousand*1000-hundred*100-ten*10;switch(place){case 5:printf("%d,%d,%d,%d,%d",tenthousand,thousand,hundred,ten,indiv);printf("\n反序数字为:");printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,tenthousand);break;case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);printf("\n反序数字为:");printf("%d%d%d%d\n",indiv,ten,hundred,thousand);break;case 3:printf("%d,%d,%d\n",hundred,ten,indiv);printf("\n反序数字为:");printf("%d%d%d\n",indiv,ten,hundred);case 2:printf("%d,%d\n",ten,indiv);printf("\n反序数字为:");printf("%d%d\n",indiv,ten);case 1:printf("%d\n",indiv);printf("\n反序数字为:");printf("%d\n",indiv);}}5.8 1.if语句main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;/*初始化变量*/bon1=100000*0.1;bon2=100000*0.075+bon1;bon4=200000*0.05+bon2;bon6=200000*0.03+bon4;bon10=400000*0.015+bon6;printf("请输入利润");scanf("%ld",&i);/*计算*/if(i<=le5)bonus=i*0.1;else if(i<2e5)bonus=bon1+(1-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<=le6)bonus=bon6+(i-600000)*0.015;elsebonus=bon10+(i-1000000)*0.01;printf("奖金是 %10.2f",bonus);}用switch语句编程序main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;int branch;/*初始化变量*/bon1=100000*0.1;bon2=bon1+100000*0.075bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf("请输入利润:");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 7:case 8:case 9:bonus=bon6+(i-600000)*0.015;break;case 10:bonus=bon10+(i-1000000)*0.01;}printf(" 奖金是 %10.2f",bonus);}5.9 输入四个整数,按大小顺序输出.main(){int t,a,b,c,d;printf("请输入四个数:");scanf("%d,%d,%d,%d",&a,&b,&c,&d);printf("\n\n a=%d,b=%d,c=%d,d=%d \n",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("\n 排序结果如下: \n");printf(" %d %d %d %d \n",a,b,c,d);}5.10塔main(){int h=10;float x,y,x0=2,y0=2,d1,d2,d3,d4;printf("请输入一个点(x,y):");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("该点高度为%d",h);}第六章 循环语句6.1输入两个正数,求最大公约数最小公倍数.main(){int a,b,num1,num2,temp;printf("请输入两个正整数:\n");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/2);}6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.解:#includemain(){char c;int letters=0,space=0,degit=0,other=0;printf("请输入一行字符:\n");while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>'A'&&c<='Z')letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;elseother++;}printf("其中:字母数=%d 空格数=%d 数字数=%d 其它字符数=%d\n",letters,space,digit,other);}6.3求s(n)=a+aa+aaa+…+aa…a之值,其中工是一个数字.解:main(){int a,n,count=1,sn=0,tn=0;printf("请输入a和n的值:\n");scanf("%d,%d",&a,&n);printf("a=%d n=%d \n",a,n);while(count<=n){tn=tn+a;sn=sn+tn;a=a*10;++count;}printf("a+aa+aaa+…=%d\n",sn);}6.4 求1+2!+3!+4!+…+20!.main(){float n,s=0,t=1;for(n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!+2!+…+20!=%e\n",s);}6.5 main(){int N1=100,N2=50,N3=10;float k;float s1=0,s2=0,s3=0;for(k=1;k<=N1;k++)/*计算1到100的和*/{s1=s1+k;}for(k=1;k<=N2;k++)/*计算1到50各数平方和*/{s2=s2+k*k;}for(k=1;k<=N3;k++){s3=s3+1/k;}printf("总和=%8.2f\n",s1+s2+s3);}6.6水仙开花main(){int i,j,k,n;printf(" '水仙花'数是:");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("%d",n);}}printf("\n");}6.7完数main()#include M 1000/*定义寻找范围*/main(){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){if((j%i)==0){n++;s=s-i;switch(n)/*将每个因子赋给k0,k1…k9*/{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("%d是一个‘完数’,它的因子是",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",k9);printf("\n");}}*** 二:此题用数组 *** 更为简单.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;/*将每个因子赋给k0,k1...k9*/}}if(s==0){printf("%d是一个完数,它的因子是:",j);for(i=0;i<n;i++)printf("%d,",k[i]);printf("%d\n",k[n]);}}5.8 有一个分数序列:2/1,3/2,5/3,8/5……求出这个数列的前20项之和.解: main(){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("总和=%9.6f\n",s);}6.9球反弹问题main(){float sn=100.0,hn=sn/2;int n;for(n=2;n<=10;n++){sn=sn+2*hn;/*第n次落地时共经过的米数*/hn=hn/2;/*第n次反跳高度*/}printf("第10次落地时共经过%f米 \n",sn);printf("第10次反弹%f米.\n",hn);}6.10猴子吃桃main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf("桃子总数=%d\n",x1);}6.14打印图案main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-1;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.15乒乓比赛main(){char i,j,k;/*i是a是对手;j是b是对手;k是c的对手*/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);}}}}C语言设计谭浩强第三版的课后习题答案(二) Post By:2008-3-12 20:42:277.1用筛选法求100之内的素数./*用筛选法求100之内的素数*/#include#define N 101main(){int i,j,line,a[N];for(i=2;i<N;i++) a[i]=i;for(i=2;i<sqrl(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用选择法对10个数排序./*选择法排序.*/#define N 10main(){ int i,j,min,temp,a[N];/*输入数据*/printf("请输入十个数:\n");for (i=0;i<N;i++){ printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");/*排序*/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;}/*输出*/printf("\n排序结果如下:\n");for(i=0;i<N;i++)printf("%5d",a[i]);}7.3对角线和:/*计算矩阵对角线元素之和*/main(){float a[3][3],sum=0;int i,j;printf("请输入矩阵元素:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%f",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("对角元素之和=6.2f",sum);}7.4插入数据到数组/*插入数据到数组*/main(){int a[11]={1,4,6,9,13,16,19,28,40,100};int temp1,temp2,number,end,i,j;printf("初始数组如下:");for (i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("输入插入数据:");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;j<11;i++)printf("a%6d",a[i]);}7.5将一个数组逆序存放。/*数组逆序存放*/#define N 5main(){ int a[N]={8,6,5,4,1},i,temp;printf("\n 初始数组:\n");for(i=0;i<N;i++)printf("%4d",a[i]);for(i=0;i<N/2;i++){ temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}printf("\n 交换后的数组:\n");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-1;j++)a[i][j]=a[i01][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");}printf("\n");}7.8鞍点/*查找鞍点*/#define N 10#define M 10main(){ int i,j,k,m,n,flag1,flag2,a[N][M],max,maxi,maxj;printf("\n输入行数n:");scanf("%d",&n);printf("\n输入列数m:");scanf("%d",&m);for(i=0;i<n;i++){ printf("第%d行?\n",i);for(j=0;j<m,j++);scanf("%d",&a[i][j];}for(i=0;i<n;i++){ for(j=0;j<m;j++)printf("%5d",a[i][j]);pritf("\n");}flag2=0;for(i=0;i<n;i++){ max=a[i][0];for(j=0;j<m;j++)if(a[i][j]>max){ max=a[i][j];maxj=j;}for (k=0,flag1=1;k<n && flag1;k++)if(max>a[k][max])flag1=0;if(flag1){ printf("\n第%d行,第%d列的%d是鞍点\n",i,maxj,max);flag2=1;}}if(!flag2)printf("\n 矩阵中无鞍点! \n");}7.9变量说明:top,bott:查找区间两端点的下标;loca:查找成功与否的开关变量./*折半查找*/#include#define N 15main(){ int i,j,number,top,bott,min,loca,a[N],flag;char c;printf("输入15个数(a[i]>[i-1])\n);scanf("%d",&a[0]);i=1;while(i<N){ scanf("%d",&a[i]);if(a[i]>=a[i-1])i++;esle{printf("请重输入a[i]");printf("必须大于%d\n",a[i-1]);}}printf("\n");for(i=0;i<N;i++)printf("%4d",a[i]);printf("\n");flag=1;while(flag){printf("请输入查找数据:");scanf("%d",&number);loca=0;top=0;bott=N-1;if((numbera[N-1]))loca=-1;while((loca==0)&&(top<=bott)){ min=(bott+top)/2;if(number==a[min]){ loca=min;printf("%d位于表中第%d个数\n",number,loca+1);}else if(number<a[min])bott=min-1;elsetop=min+1;}if(loca==0||loca==-1)printf("%d不在表中\n",number);printf("是否继续查找?Y/N!\n");c=getchar();if(c=='N'||c=='n')flag=0;}}7.10/*统计字符数*/main(){ int i,j,uppn,lown,dign,span,othn;char text[3][80];uppn=lown=dign=span=othn=0;for(i=0;i<3;i++){ printf("\n请输入第%d行:\n",i);gets(text[i]);for(j=0;j<80 && text[i][j]!='\0';j++){if(text[i][j]>='A' && text[i][j]<='Z')uppn+=1;else if(text[i][j]>='a' && text[i][j]<='z')lown+=1;else if(text[i][j]>='1' && text[i][j]<='9')dign+=1;else if(text[i][j]=' ')span+=1;elseothn+=1;}}for(i=0;i<3;i++)printf("%s=n",text[i]);printf("大写字母数:%d\n",uppn);printf("小写字母数:%d\n",lown);printf("数字个数:%d\n",dign);printf("空格个数:%d\n",span);printf("其它字符:%d\n",othn);}7.11/*打印图案*/main(){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("%lc",space);for(k=0;k<=5;k++)printf("%3c",a[k];}}7.12/*译电文*/#includemain(){int i,n;char ch[80],tran[80];printf("请输入字符:");gets(ch);printf("\n密码是%c",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;printf("\n原文是:");for(i=0;i<n;i++)putchar(tran[i]);}7.13/*连接两个字符串(不用'stract')*/main(){char s1[80],s2[40];int i=0,j=0;printf("\n请输入字符串1:");scanf("%s",s1);printf("\n请输入字符串2:");scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("\n连接后字符串为:%s",s1);}7.14/*字符串比较*/#includemain(){int i,resu;char s1[100],s2[100];printf("请输入字符串1:\n");gets(s1);printf("\n 请输入字符串2:\n");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(" %s与%s比较结果是%d",s1,s2,resu);}7.15/*字符串复制*/#includemain(){char from[80],to[80];int i;printf("请输入字符串");scanf("%s",from);for(i=0;i<=strlen(from);i++)to[i]=from[i];printf("复制字符串为:%s\n",to);}第八章 函数这个是标准答案,全书都有。1-5章http://hi.baidu.com/an2500/blog/item/2f170213d3ab56c4c3fd780e.html6-8章http://hi.baidu.com/an2500/blog/item/f9242cdc1f1c383e5982dd08.html9-11章http://hi.baidu.com/an2500/blog/item/c8ebb3fbd264b39d59ee9009.html12-13http://hi.baidu.com/an2500/blog/item/233117aee78736c67cd92a0a.html二:c程序设计谭浩强第五版电子书
谭浩强的那本是经典,初学c语言的基本上都使用的这本书,其实中国的计算机考试的内容不知道多少年没变了,没必要再买本“全国计算机等级考试二级教程--C语言程序设计(2011年版)”,这根本就与时效性一点瓜葛都没有。
建议你买一本谭浩强的《c语言程序设计》,再买一本考试真题,就OK了,平时多上机,这点很重要。
三:c程序设计谭浩强第五版第六章课后答案
一、考试性质与目的
《C语言程序设计》课程是计算机及相关专业重要的专业基础课程之一。它是一门具有较强的理论性、综合性和实践性的课程。《C语言程序设计》(专升本)考试是为了选拔专科优秀毕业生进入本科学习,本次考试的目的主要是测试考生是否具有扎实的理论知识和系统的编程思想、具有分析问题和解决问题的实际能力,以及是否具有本科学习的能力。
二、考试方式
考试采取闭卷笔试方式进行,考试时间为90分钟。
三、试卷结构
试卷满分为100分,基本题型包括单项选择题、填空题、简答题及编程题。
四、考试内容及要求
根据《C语言程序设计》课程大纲的要求,并考虑专科教育的教学实际,特制定本课程考试内容。
第一章 C语言程序设计基础
1.程序设计语言;
2.C语言概况;
3.C语言程序的基本结构;
4.C语言程序的上机执行过程。
第二章 C语言的数据类型与基本操作
1.掌握C语言中的数据类型及其常量的表示 *** ;
2.理解各类数值型数据间的混合运算规则;
3.掌握基本运算符的功能,表达式的概念。
第三章 顺序程序设计
1.掌握结构化程序设计的三种基本结构;
2.掌握getchar()、putchar()、printf()、 scanf()函数的使用;
3.掌握顺序结构程序的设计 *** 。
第四章 选择结构程序设计
1.掌握关系运算符和逻辑运算符的功能及用法;
2.掌握基本条件和复合条件语句的使用;
3.掌握switch语句的使用;
4.掌握选择结构程序的设计 *** 。
第五章 循环结构程序设计
1.掌握循环概念及循环的构成要素
2.掌握while语句用法
3.掌握do-while语句的用法
4.掌握for语句的用法
5.掌握break、continue语句
6.掌握多重循环的概念及其程序描述 ***
第六章 数组
1.掌握数组的基本概念;
2.掌握一维数组的定义和使用;
3.掌握二维数组的定义和使用;
3.掌握字符数组的使用,了解基本的字符和字符串处理库函数的功能和使用。
第七章 函数
1.掌握函数定义的一般形式;
2.理解形参和实参的概念;
3.掌握函数的调用 *** ;
五、考试参考书目
《C语言程序设计》,谭浩强,清华大学出版社,第5版,2017年,ISBN:9000302000778