C语言程序设计答案——清华大学出版社(第二版)

合集下载

《C语言程序设计》第二版(谭浩强)-4-7章课后习题答案-清华大学出版社

《C语言程序设计》第二版(谭浩强)-4-7章课后习题答案-清华大学出版社

《C语言程序设计》第二版(谭浩强)-4-7章课后习题答案-清华大学出版社4-5原题:打印出下题的结果main(){int a=5,b=7;float x=67.8564,y=-789.124;char c='A';long n=1234567;unsigned u=65535;printf("%d%d\n",a,b);printf("%3d%3d\n",a,b);printf("%f,%f\n",x,y);printf("%-10f,%-10f\n",x,y);printf("%8.2f,%8.2f,%4f,%4f,%3f,%3f\n",x,y,x,y,x,y);printf("%e,%10.2e\n",x,y);printf("%c,%d,%o,%x\n",c,c,c,c);printf("%ld,%lo,%x\n",n,n,n);printf("%u,%o,%x,%d\n",u,u,u,u);printf("%s,%5.3s\n","COMPUTER","COMPUTER");}结果:575 767.856400,-789.12402367.856400 ,-789.12402367.86, -789.12,67.856400,-789.124023,67.856400,-789.1240236.78564e+01, -7.9e+02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER, COM4-6原题:用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a'。

C语言程序设计习题与上机指南 第二版 课后答案(牛志成 著) 清华大学

C语言程序设计习题与上机指南 第二版  课后答案(牛志成 著) 清华大学

C语言程序设计习题与上机指南第二版课后答案(牛志成著) 清华大学C语言程序设计习题与上机指南(牛志成编)答案。

第一章 C语言概述参考答案一、1.C 2.B3.C4.D5.D6.B7.A8.A9.B10.A二、1、函数 2、位 3、分号 4、main 5、{ } 6、换行 7、注释 8、函数首部、函数体9、main 10、编辑、编译、连接、运行三、1.错2.错3.对4.对5.对6.对7.错 8.对四、1、#include <stdio.h>/*包含头文件,为了使用printf和scanf语句,注意句末无分号*/ void main(){printf(“* * * * * * * * * * * \n”); /*\n的作用相当于回车*/printf(“ I am a student.\n”);printf(“* * * * * * * * * * * \n”);}2、#include <stdio.h>void main(){ int a,b;printf(“Please input a,b:\n”);sca nf(“%d,%d”,&a,&b); /*注意输入两个数之间用逗号分隔*/if(a>b) printf(“%d”,a);else printf(“%d”,b);}3、#include <stdio.h>void main(){int a,b,c,max;printf(“Please input a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(a<b) max=b; /*max用于保存a,b中比较大的数*/ if(max<c) max=c; /*将a,b中较大的数再和c比较* / printf(“The largest number is %d”,max);}第二章数据与运算参考答案一、1.B 2.D3.D4.A5.C6.B7.C8.B9.A10.A11.D12.A13.B14.A 15.C二、1、8 2、28 3、5 4、0 5、double 6、8 ,107、12 8、D 9、52 10、25,21,37 11、4812、20 200.000000 14、9,11,9,10 15、11.50 13、aa口bb口口口cc口口口口口口abcA口N三、1.错 2.对3.对4.错5.错6.对7.错8.错9.错10.对四、1、1)第1步:(int)(x+y)=(int)(7.2)=7第2步:a%3*7%2/4=7%3*7%2/4=1*7%2/4=1/4=0第3步:x+0=x=2.5(计算机显示为2.500000)1、2)第1步:(float)(a+b)/2=(float)(2+3)/2=(float)(5)/2=5.0/2=2.5 第2步:(int)x%(int)y=(int)(3.5)%(int)(2.5)=3%2=1第3步:2.5+1=3.5(计算机显示为3.500000)2、1)(a=a+a=12+12=24)2、2)(a=a-2=12-2=10)2、3)(a=a*(2+3)=12*5=60)2、4) (a=a/(a+a)=12/24=0,注意a是整型)2、5) 已知n的值等于5 a=0 2、6)(从右向左解开:a=a*a=144;a=a-a=0;a=a+a=0) 五、编程题1、参考答案:#include <stdio.h>void main(){char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(“password is %c%c%c%c%c\n”,c1,c2,c3,c4,c5);}运行结果:password is Glmre也可以用循环和数组: #include <stdio.h>void main(){char c[]={“China”};printf(“password is “); for(int i=0;i<=4,i++)printf(“%c”,c[i]+=4);printf(“\n”);}2、参考答案:#include <stdio.h>void main(){char c1=97,c2=98;printf(“%d, %d\n”,c1,c2);printf(“%c,%c\n”,c1,c2); }3、参考答案:#include <stdio.h>#include <math.h>void main(){ double a, b, c, total, average, square, squareroot; printf("请输入三个双精度实数:");scanf("%lf%lf%lf", &a, &b, &c);total = a + b + c;average = total/3.0;square = a*a + b*b + c*c;squareroot = sqrt(square);printf("三个数的和=%-15.3f,三个数的平均值=%-15.3f\n", total, average);printf("三个数的平方和x=%.3f,x的平方根=%.3f\n", square, squareroot);}运行结果:请输入三个双精度实数:1.23 4.56 7.89三个数的和=13.680 ,三个数的平均值=4.560三个数的平方和x=84.559,x的平方根=9.196 4、参考答案:#include <stdio.h>#include <math.h>void main(){ float a, b, c, k, area;printf("请输入三角形三条边的边长:");scanf("%f%f%f", &a, &b, &c); /*由键盘输入三角形三边边长*/if ((a+b <= c) || (a+c <= b) || (b+c <= a)){ printf("您输入的三条边无法构成三角形。

C语言程序设计(第二版)答案

C语言程序设计(第二版)答案

参考答案习题二(P33)一.单选题1.C2.B3.D4.C5.A6.D7.D8.B9.B 10.D 11.D 12.C 13.C . 15. A 14题最后一句应为printf("%f\n",d*y);结果为2.2二.填空题1. 182. int float double3. 10 114. 八十六十5. %三.阅读程序题1.10,10,9,102.j=1,i=2k=3,i=3j=3,i=2k=1,i=1习题三(P52)一.单选题1.D2.C3.D4.B5.A6.B7.C8.A9.C 10.B 11. -1,37777777777,4294967295 二.填空题5. L6. -1三.阅读程序题1. 6 6 6.00 6.002. x=127,x= 127,x=177,x=7fY=123.4567 , y= 123.46 , y=123.456703. 2,14. 12345. 4,36. -6,-6四.程序设计题1.#include "stdio.h"#include "math.h"main(){float a,b,c,d,x1,x2;a=2;b=-3;c=-5;d=b*b-4*a*c;x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("x1=%.2f,x2=%.2f\n",x1,x2);}2.#include <stdio.h>main(){ float a,v,s;scanf("%f",&a);v=a*a*a;s=6*a*a;printf("v=%.2f,s=%.2f\n",v,s);}3.#include <stdio.h>main(){ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);t=c;c=b;b=a;a=t;printf("a=%d,b=%d,c=%d\n",a,b,c);}4.#include <stdio.h>main(){ char s1,s2;s1=getchar();s2=s1-32;printf("%c\n",s2);}习题四(P70)一.单选题1.C2.D3.D4.B5.A6.D7.D8.B9.C 10.A 11.B 12.D 13.passwarnerror .14.C 15. C 16.B 17. B 18. C二.填空题1. 非0 02. k==03. n%7==0 && n%8==0 else三.阅读程序题1. a=1,b=02. c=1四.程序设计题1.#include <stdio.h>main(){ int a,b;char c;printf("INPUT A+(-*/)B\n");scanf("%d%c%d",&a,&c,&b);switch(c){case'+':printf("%d+%d=%d\n",a,b,a+b);break;case'-':printf("%d-%d=%d\n",a,b,a-b);break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':printf("%d/%d=%d\n",a,b,a/b);break;default:printf("INPUT ERROR!");}}2.#include <stdio.h>main(){ float x,y;scanf("%f",&x);if(x==0||x==2)y=0;else if(x>0) y=(x+1)/(x-2);else y=(x-1)/(x-2);printf("y=%f\n",y);}3.#include <stdio.h>main(){ int g;printf("请输入学生成绩:");scanf("%d",&g);printf("g=%d:",g);switch(g/10){case 10:printf("A\n");break;case 9:printf("B\n");break;case 8:printf("C\n");break;case 7:printf("D\n");break;case 6:printf("E\n");break;default:printf("F\n");}}4.#include <stdio.h>main(){ int x,n=0;scanf("%d",&x);if(x<=0||x>=10000)printf("Data Error!\n");else{if(x<10)n=1;else if(x<100)n=2;else if(x<1000)n=3;else n=4;}printf("n=%d\n",n);}习题五(P87)一.单选题1.B2.D3.C4.C5.B6.C7.D8.C9.A 10.D 11.B 12.B 13.B 14.D 15. C 二.填空题1. for语句while语句do-while语句2. a=14,y=263. k=14,n= -14. 395. s=196. 222227. 108. 79. 810. 5,5三.改错题应改为for(i=0;i<5;i++)j++;应改为int j=0;while(j<10){j++;i=j;} 注while(j<10)后不应有分号应改为while(j<10); 注while(j<10)后分号不能少s*=i;i++;应改为{s*=i;i++;}continue 应改为break四.程序设计题1.#include <stdio.h>main(){ int i,j,s=0;for(i=1,j=1;i<=100;i++,j=j*(-1))s=s+i*j;printf("s=%d\n",s);}1.(另一做法)#include<stdio.h>main(){int i,s;for(i=1,s=0;i<=100;i++)if(i%2==0)s=s-i;else s=s+i;printf ("%d\n",s);}2.#include <stdio.h>main(){ int i,j,s1=0,s2=0;for(i=0;i<10;i++){scanf("%d",&j);if(j>0)s1=s1+j;else s2=s2+j;}printf("s1=%d,s2=%d\n",s1,s2);}3.#include<stdio.h>main(){int i,s;for(i=6,s=0;i<=96;i=i+1)if(i%10==6||i/10==6)s=s+i;printf ("%d\n",s);}4.#include<stdio.h>main(){int i,a,b,c;for(i=100;i<=999;i++){a=(i%10);b=(i/10%10);c=(i/100);if(i==a*a*a+b*b*b+c*c*c)printf ("%d\n",i);}}5.#include <stdio.h>main( ){int i,j,k=0;for (i=1;i<=4;i++){for (j=1;j<=i;j++){k++;printf("%d",k%10);}printf("\n");}}6.#include <stdio.h>main( ){int i,j,k=0;for (i=-3;i<=3;i++){if(i<0)k=-i;else k=i;for(j=1;j<=k;j++)printf(" ");for(j=1;j<=7-2*k;j++)printf("*");printf("\n");}}习题六(P111)一.单选题1.D2.B3.C4.C5.C6.D7.A8.B二.填空题1. 20 0 192. 数组名3. 越界4. 65. j==k a[j][k]=1; a[j][k]=0;三.阅读程序题1. 6 5 43 2 12.aaabbbccc ddd3.2,2,1四.程序设计题1.#include<stdio.h>main(){ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,s=0;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3)s+=a[i][j];printf("%d",s);}2.#include <stdio.h>{ char a[80];int i,j=5; /*假设删除位置为5*/gets(a);for(i=j-1;a[i]!='\0';i++)a[i]=a[i+1];a[i]='\0';puts(a);}3.#include <stdio.h>#include <string.h>main(){ char a[80];int i,j=5; /*假设插入位置为5*/char s='t'; /*假设插入字符为t*/gets(a);for(i=strlen(a);i>j;i--)a[i+1]=a[i];a[j]='t';puts(a);}4.#include<stdio.h>main(){ int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6}; int i,j,s1[3]={0},s2[5]={0};for(i=0;i<3;i++)for(j=0;j<5;j++)s1[i]+=a[i][ j];for(i=0;i<5;i++)for(j=0;j<3;j++)s2[i]+=a[ j][i];for(i=0;i<3;i++){for(j=0;j<5;j++)printf("%6d",a[i][j]);printf (" |%6d\n",s1[i]);}for(i=0;i<33;i++) printf("-");printf("\n");for(i=0;i<5;i++) printf("%6d",s2[i]);printf("\n");}5.#include<stdio.h>{ char s[3][80];int a=0,b=0,c=0,d=0,e=0,i,j;for(i=0;i<3;i++) gets(s[i]);for(i=0;i<3;i++)for(j=0;s[i][j]!='\0';j++)if(s[i][j]>='A'&&s[i][j]<='Z')a++;else if(s[i][j]>='a'&&s[i][j]<='z')b++;else if(s[i][j]>='0'&&s[i][j]<='9')c++;else if(s[i][j]==32)d++;else e++;printf("%3d%3d%3d%3d%3d",a,b,c,d,e);}习题七(P145)一.单选题1.A2.B3.C4.A5.C6.D7.C8.B9.B 10.C 11.D 二.填空题1. 该函数内局部2. 整型3. k<=breturn y;4. x[i]return (ave);fun(a,20)5. 1;add(n-1);add(n);6. n*f(n-1)0;f(i)三.阅读程序,写出运行结果1.10,20,302.643.84. hlo5. sum=55四.程序设计题1.#include <stdio.h>main(){float add(float, float), sub(float, float);float aver(float, float),a,b;scanf("%f,%f",&a,&b);printf("add=%f, sub=%f\n ", add(a,b), sub(a,b)); printf("aver =%f", aver(a,b));}float add(float x, float y) {return(x+y);}float sub(float x, float y) {return(x-y);}float aver(float x, float y) {return((x+y)/2);} 2.#include<stdio.h>main(){ int a,b,c,abmax(int,int);scanf("%d%d%d",&a,&b,&c);printf("max=%d\n",abmax(abmax(a,b),c)); }int abmax(int a,int b){if(a>b)return a;else return b;}3.#include <stdio.h>main(){float x,fun(float, int);int n;scanf("%f%d",&x,&n);printf("%f\n", fun(x,n));}float fun(float x, int n){float y;if(n==0)y=1;else y=x*fun(x,n-1);return y;}4.#include <stdio.h>main(){long f(int);int n,k;scanf("%d",&n);for(k=1;k<=n;k++)printf("%ld,",f(k));printf("\n");}long f(int n){long y;if(n<=2)y=1;else y=f(n-1)+f(n-2); return y;}5.#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k,s;for(k=0;k<n/2;k++) {s=a[k];a[k]=a[n-k-1];a[n-k-1]=s;}}5. (另一做法)#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k;char b[50];for(k=0;k<n;k++)b[n-1-k]=a[k];b[k]=a[k];strcpy(a,b);}6.#include <stdio.h>#define KK 100main(){char a[KK];long sjz(char a[]);int i=0,f1=0;printf("input a data:");gets(a);for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9'||a[i]>='A'&&a[i]<='F'||a[i]>='a'&&a[i]<='f') continue;else {f1=1;break;}}a[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(a));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}6.(另一做法)#include <stdio.h>#define KK 100main(){char str[KK],c;long sjz(char a[]);int i=0,f1=0;printf("input a data:");while((c=getchar())!='\n'&&i<KK){if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f')str[i++]=c;else f1=1;}str[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(str));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}习题八(P181) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.C4.D5.C6.B7.C8.C9.C 13.D 14.B 15.A 16.C 17.A 二.填空题1. 指向取地址2. 2 +23. 286. *(p+5)7. ABCD A三.阅读程序题1.102.103.04. 3,65. 1 2 3 4四.程序填空题1.a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z2. ++ =*q ++ ++4. int *a,int *b b[j]=a[i] b[i++]5. *str+=3 *str>’z’&&*str<’a’||*str>’z’ a6. else 0 t[2*j+1]五.程序设计题1.#include <stdio.h>main(){int a[10],*p,*q,t;p=a;for(q=a;q<a+10;q++)scanf("%d",q);for(q=a;q<a+10;q++)printf("%5d",*q);printf("\n");q--;for(;p<q;p++,q--){t=*p;*p=*q;*q=t;}for(p=a;p<a+10;p++)printf("%5d",*p);printf("\n");}2.#include <stdio.h>#include <string.h>void main( ){ char a[50],*p1,*p2,t,n;gets(a);n=strlen(a);p1=a; p2=a+n-1;for(; p1<p2; p1++, p2--){t=*p1; *p1=*p2; *p2=t;}puts(a);}另一做法#include <stdio.h>main(){char str[20],*p=str;gets(str);while(*p)p++;p--;while(p>=str){printf("%c",*p);p--;}printf("\n");}3.#include <stdio.h>main(){int a[10],*p,*max,*min,t;for(p=a;p<a+10;p++)scanf("%d",p); for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");max=min=a;for(p=a+1;p<a+10;p++){if(*p>*max)max=p;if(*p<*min)min=p;}t=a[0];a[0]=*min;*min=t;t=a[9];a[9]=*max;*max=t;for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");}5.#include <stdio.h>int length(char *s){int n=0;while(*s){n++;s++;}return n;}main(){char str[20];int n;gets(str);n=length(str);printf("The string length is %d\n",n);}6.#include <stdio.h>main(){char str[81],*p=str,*q,t;gets(str);printf("The origenal string:\n");puts(str);for(p=str;*(p+1);p++)for(q=p+1;*q;q++)if(*q<*p){t=*p;*p=*q;*q=t;}printf("The result string:\n");puts(str);}习题九(P222) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.B4.D 8.B 9.B 10.C二.填空题1. 结构体成员结构体指针指向2. 343. 224.ex三.阅读程序题1.92.10,x3.134. 46 40 415. 06. 3839。

VISUAL_C 面向对象程序设计教程与实验(第二版)清华大学出版社1 8章答案

VISUAL_C  面向对象程序设计教程与实验(第二版)清华大学出版社1 8章答案
2. 类的公有、私有和保护成员之间的区别是什么?
① 私有成员 priva数据成员,私有成员只能由本类的成员函数或某些特殊说 明的函数(如第 4 章讲到的友员函数)访问,而类的外部根本就无法访问,实现 了访问权限的有效控制,使数据得到有效的保护,有利于数据的隐藏,使内部数 据不能被任意的访问和修改,也不会对该类以外的其余部分造成影响,使模块之 间的相互作用被降低到最小。private 成员若处于类声明中的第一部分,可省略 关键字 private。
所谓模板是一种使用无类型参数来产生一系列函数或类的机制,是 C++的一 个重要特征。通过模板可以产生类或函数的集合,使它们操作不同的数据类型, 从而避免为每一种数据类型产生一个单独的类或函数。
函数模板提供了传递类型的机制。函数模板定义不是一个实实在在的函数, 编译系统不为其产生任何执行代码。该定义只是对函数的描述,表示它每次能单
用协议;方法体则是实现某种操作的一系列计算步骤,也就是一段程序。消息和方法的关
系是:对象根据接收到的消息,调用相应的方法;反过来,有了方法,对象才能响应相应的 消息。所以消息模式与方法界面应该是一致的。同时,只要方法界面保持不变,方法体的改 动不会影响方法的调用。在 C++语言中方法是通过函数来实现的,称为成员函数。
3. 面向对象系统有哪些特性?分别加以解释。
(1) 抽象性(abstract) 抽象是一种从一般的观点看待事物的方法,它要求程序员集中于事物的本质 特征,而不是具体细节或具体实现。类的概念来自人们认识自然、认识社会的过 程。在这一过程中,人们主要使用两种方法:从特殊到一般的归纳法和从一般到 特殊的演绎法。在归纳的过程中,我们从一个个具体的事物中把共同的特征抽取 出来,形成一个一般的概念,这就是“归类”;在演绎的过程中,我们又把同类 的事物,根据不同的特征分成不同的小类,这就是“分类”。对于一个具体的类, 它有许多具体的个体,我们称这些个体叫做“对象”。 (2) 封装性(encapsulation)

C语言程序设计答案——清华大学出版社(第二版)

C语言程序设计答案——清华大学出版社(第二版)

答案整理:林子雨 E‐mail:ziyulin@ 主页:/linziyu 第 4 页/共 8 页
厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案 第八章 数组
}
6.输入一字符串,统计出某自定字符在字符串中出现的次数。 #include<stdio.h> #include<string.h> main() { char x,a[100],c=0; int i; puts("输入一串字符:"); gets(a); puts("查哪个字符个数?"); x=getchar(); for(i=0;i<strlen(a);i++) { if(a[i]==x) c++; } printf("共%d个。",c); }
厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案 第八章 数组
【教材】 《C 语言程序设计(第 2 版) 》清华大学出版社,黄保和,江弋 编著。2011 年 10 月第 二版。ISBN:978‐7‐302‐26972‐4。售价:35 元。 【答案版本】本习题答案为 2012 年 2 月修订版本。 一 、选择题 1、以下数组定义中,错误的是:C)int a[3]={1,2,3,4}; A.int a[ ] = {1,2,3}; B. int a[5] = {1,2,3}; C. int a[3] = {1,2,3,4}; D. int a[5] , b; 2、以下数组定义中,正确的是:B) int a[][2]={1,2,3,4}; A. int n = 4, a[n] = {1,2,3,4}; B. int a[][2] = {1,2,3,4}; C. int a[2][] = {1,2,3,4}; D. int a[][] = {{1,2},{3,4}}; 3、设有定义“int a[8][10];”,在VC中一个整数占用4字节,设a的起始地址为1000,则a[1][1] 的地址是:D)1044 A. 1000 B. 1004 C. 1036 D. 1044 4、已知有数组定义“int a[][3]={1,2,3,4,5,6,7,8,9};”,则a[1][2]的值是:C)6 A. 2 B. 5 C. 6 D. 8 5、在以下字符串定义、初始化和赋值运算中,错误的是:A) char str[10];str="String"; A. char str[10];str="String"; B. char str[10] = "String"; C. char str[10] = {'S','t','r','i,'n','g'}; D. char str[ ] = {'S','t','r','i,'n','g',0}; 6、设有以下字符串定义, char s1[]={‘S’,’t’,’r’,’i’,’n’,’g’}; char s2[]=”String”; 则s1和s2: C)长度不同,但内容相同。 A. 长度相同,内容也相同 B. 长度不同,但内容相同 C. 长度不同,但内容相同 D. 长度不同,内容也不同 7、设有定义“int a[10]={0};”,则说法正确的是:A)数组a有10个元素,各元素的值为0. A. 数组a有10个元素,各元素的值为0 B. 数组a有10个元素,其中a[0]的值为0,其他元素的值不确定 C. 数组a有1个元素,其值为0 D. 数组初始化错误,初值个数少于数组元素个数 8、设已定义“char str[6]={‘a’,’b’,’\0’,’c’,’d’,’\0’};”,执行语句“printf(“%s”, str)”后,输出结果为:B)ab A. a B. ab C. abcd D. ab\0cd\0 9、引用数组元素时,数组元素下标不可以是:C)字符串 A.字符常量 B.整型常量 C.字符串 D.算术表达式 10、已定义字符串S1和S2,以下错误的输入语句是:C)gets(s1,s2); A. scanf("%s%s", s1, s2); B. scanf("%s%s", &s1, &s2); C. gets( s1, s2); D. gets(s1); gets(s2);

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案一、简介C语言是一种广泛应用于科学计算、系统开发、嵌入式系统等领域的编程语言。

本文档为《C语言程序设计教程第二版》的课后答案,旨在帮助读者巩固所学知识。

二、基础知识回顾1. 数据类型和变量答案:C语言中常见的数据类型包括整型、浮点型、字符型和指针型等。

变量是用来存储数据的内存区域,通过给变量命名,我们可以在程序中使用这些变量。

2. 运算符和表达式答案:运算符用于进行操作,表达式是由变量、常量和运算符组成的可求值的结果。

C语言支持算术运算符、关系运算符、逻辑运算符等。

3. 控制结构答案:控制结构用于控制程序的流程,常见的控制结构有条件语句和循环语句。

条件语句可以根据判断条件的结果执行不同的语句块,循环语句可以重复执行一段代码。

4. 函数答案:函数是完成特定任务的一段代码,可以提高代码的可读性和复用性。

C语言中的函数由函数名、参数列表、返回值类型和函数体组成。

5. 数组和字符串答案:数组是相同类型数据的有序集合,可以通过下标访问数组中的元素。

字符串是由字符组成的数组,以空字符'\0'作为字符串的结束标志。

三、课后练习答案1. 编写一个C程序,计算并输出两个整数之和。

答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数之和为:%d\n", sum);return 0;}```2. 编写一个C程序,判断一个数是否为素数。

答案:```c#include <stdio.h>int isPrime(int num) {int i;for(i=2; i<=num/2; i++) {if(num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if(isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```四、总结本文对《C语言程序设计教程第二版》的课后习题进行了答案的整理,涵盖了基础知识回顾以及两个练习的答案。

语言程序设计第二版谭浩强章课后习题答案清华大学出版社

语言程序设计第二版谭浩强章课后习题答案清华大学出版社

4-5原题:打印出下题的结果main(){int a=5,b=7;float x=,y=;char c='A';long n=1234567; unsigned u=65535;printf("%d%d\n",a,b); printf("%3d%3d\n",a,b); printf("%f,%f\n",x,y); printf("%-10f,%-10f\n",x,y); printf("%,%,%4f,%4f,%3f,%3f\n",x,y,x,y,x,y);printf("%e,%\n",x,y);printf("%c,%d,%o,%x\n",c,c,c,c); printf("%ld,%lo,%x\n",n,n,n);printf("%u,%o,%x,%d\n",u,u,u,u); printf("%s,%\n","COMPUTER","COMPUTER"); }结果:57+01, +02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER, COM 4-6原题:用下面的 scanf 函数输入数据,使 a=3,b=7,x=,y=,c1='A',c2='a'。

问在键盘上如何输入main(){int a,b;float x,y;char c1,c2; scanf("a=%d,_b=%d",&a,&b);scanf("_%f_%e",&x,7y); scanf("_%c_%c",&c1,&c2);}答案:输入格式为: a=3,b=7 A a 4-7原题:用下面的scanf 函数输入数据使a=10,b=20,c1='A',c2='a',x=,y= z=, 请问在键盘上如何输入数据scanf("%5d%5d%c%c%f%f%*f,%f",&a,&b,&c1,&c2,&x,&y,&z);答案:输入格式为:10 ,友情提示:10与20之间是 3 个空格,而那个是随便一个浮点数即可。

c程序设计第二版习题答案

c程序设计第二版习题答案

c程序设计第二版习题答案C程序设计第二版习题答案第一章:C语言概述1. 描述C语言的特点。

- C语言是一种结构化编程语言,以其高效性、灵活性和可移植性而闻名。

它支持过程式编程和低级内存操作,适合编写系统软件、操作系统和嵌入式系统。

2. 解释C语言的编译过程。

- C语言的编译过程通常包括预处理、编译、汇编和链接四个步骤。

预处理阶段处理宏定义和条件编译指令,编译阶段将源代码转换为汇编代码,汇编阶段将汇编代码转换为目标代码,链接阶段将目标代码与库函数链接生成可执行文件。

第二章:数据类型、运算符和表达式1. 列举C语言的基本数据类型。

- C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)以及枚举型(enum)。

2. 说明赋值运算符的用法。

- 赋值运算符(=)用于将一个值赋给一个变量。

例如,`a = 5;`表示将整数5赋给变量a。

第三章:控制语句1. 描述if语句的语法结构。

- if语句的基本语法是:`if (条件) { 语句; }`。

如果条件为真,则执行花括号内的语句。

2. 解释while循环的工作原理。

- while循环在每次迭代之前都会检查条件是否为真。

如果条件为真,循环体内的语句将被执行,然后再次检查条件。

这个过程会一直重复,直到条件为假。

第四章:函数1. 函数的定义和声明。

- 函数定义是创建函数的主体,包括函数名、参数列表和函数体。

函数声明是告诉编译器函数的原型,包括函数名、返回类型和参数列表。

2. 函数的调用过程。

- 函数调用包括函数名和参数列表。

调用时,实际参数的值将传递给形式参数,函数执行完毕后,返回值(如果有的话)将返回给调用者。

第五章:数组和指针1. 数组的基本概念。

- 数组是一种数据结构,可以存储固定大小的同类型元素的集合。

数组的元素可以通过索引访问。

2. 指针的用途。

- 指针用于存储内存地址,可以直接操作内存。

指针可以指向基本数据类型、数组、结构体等。

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)max=c;printf(the largest number is %d\n,max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。

c语言程序设计教程第二版课后习题答案.doc

c语言程序设计教程第二版课后习题答案.doc

c 语言程序设计教程第二版课后习题答案【篇一:c 语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2 .填空题(1)函数(2)主函数(main )(3)printf() ,scanf()第2 章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题(1)1(2)26 (3)6 ,4 ,2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0) (16)double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b)) (19)sqrt((x*x+y*y)/(a+b))第3 章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题(1)用;表示结束(2){ } (3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果(1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11)i=6 ,k=4 (12)1,-2 4 .程序填空(1)x:y ,u :z(2)m=n ,m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf( n”“,%2*l s f)(4)m%5==0 ,printf( “%n d”,k)(5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5 .编程题(1).#include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2). #includestdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3). #include stdio.h int main() {int y,m,d,flag,s=0,w,i; scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) { switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0) printf( 星期日\n); elseprintf( 星期%d\n,s); return 0; }(4).#include stdio.h int main() { float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01;printf(%f\n,r); return 0; } (5).#include stdio.h int main() { char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf( 输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) { printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; } printf(%u\n,t); return 0; }第4 章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2 .填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2 (5)求水仙花数(6)-5*5*5 (7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) ,x+y,x-y, z+y,z-y (2)x ,x*x+1(3)s=0 , a=a+b 5 .编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p;scanf(%u,s); } printf(%u\n,fun(s)); (2).return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsignedint p=0; void f2(float,float,float,float);【篇二:《c 语言程序设计》课后习题答案(第四版)谭浩强】t>1.1 什么是计算机程序 11.2 什么是计算机语言 11.3c 语言的发展及其特点 31.4 最简单的 c 语言程序 51.4.1 最简单的 c 语言程序举例 61.4.2c 语言程序的结构101.5 运行c 程序的步骤与方法121.6 程序设计的任务141-5 #include stdio.h int main( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n); return 0;}1-6#include stdio.h int main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c); max=a; if (maxb)max=b; if (maxc) max=c;printf(the largest number is %d\n,max); return 0;}第2 章算法——程序的灵魂162.1 什么是算法162.2 简单的算法举例172.3 算法的特性212.4 怎样表示一个算法222.4.1 用自然语言表示算法222.4.2 用流程图表示算法222.4.3 三种基本结构和改进的流程图262.4.4 用n?s 流程图表示算法282.4.5 用伪代码表示算法312.4.6 用计算机语言表示算法322.5 结构化程序设计方法34习题36第章最简单的 c 程序设计——顺序程序设计37 3.1 顺序程序设计举例373.2 数据的表现形式及其运算393.2.1 常量和变量393.2.2 数据类型423.2.3 整型数据443.2.4 字符型数据473.2.5 浮点型数据493.2.6 怎样确定常量的类型513.2.7 运算符和表达式523.3c 语句573.3.1c 语句的作用和分类573.3.2 最基本的语句——赋值语句593.4 数据的输入输出65 3.4.1 输入输出举例653.4.2 有关数据输入输出的概念673.4.3 用printf 函数输出数据683.4.4 用scanf 函数输入数据753.4.5 字符数据的输入输出78 习题823-1 #include stdio.h#include math.hint main() {float p,r,n;r=0.1; n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存 5 年期p2=p*(1+2*r2)*(1+3*r3); // 先存2 年期,到期后将本息再存 3 年期p3=p*(1+3*r3)*(1+2*r2); // 先存3 年期,到期后将本息再存 2 年期。

C语言程序设计答案——清华大学出版社(第二版)

C语言程序设计答案——清华大学出版社(第二版)
答案整理:林子雨 E-mail:ziyulin@ 主页:/linziyu 第 2 页/共 3 页
厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案
第七章 编译预处理
} 3、 定义一个带有 3 个参数的宏 MAX,求 3 个参数中的最大值。 #include <stdio.h> #define MAX(a,b,c) a > b ? (a > c ? a : c) : (b > c ? b : c) void main() { float a, b, c; printf("输入三个数:"); scanf("%f%f%f", &a, &b, &c); printf("最大值为%f", MAX(a,b,c)); } 4、 给年份 YEAR 定义一个宏,判定该年份是否是闰年。 #include <stdio.h> #define YEAR(a) (a % 4 == 0 && a % 100 != 0) || (a % 400 == 0) void main() { int year; printf("输入年份:"); scanf("%d", &year); if(YEAR(year)) { printf("%d 是闰年\n", year); } else { printf("%d 不是闰年\n", year); } } ================此后无内容================
c语言程序设计答案清华大学出版社第二版
厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案
第七章 编译预处理

C语言程序设计答案——清华大学出版社(第二版)

C语言程序设计答案——清华大学出版社(第二版)
double a,b,c,d,sum; scanf("%lf %lf %lf %lf",&a,&b,&c,&d); sum=a+b+c+d; printf("%lf\n",sum/4); }
5、编一程序,从键盘输入一个 5 位正整数,然后分别求出它的个位数、十位数、百位 数、千位数和万位数,并打印出这五位数字的和。如输入 12345,打印出 15(1+2+3+4+5=15)。
4* π *R*R*R
1、下列合法的字符常量是 D.'\n' 2、下列合法的字符串常量是 C."56" 3、合法的C语言标识符是B.sum 4、C语言程序的基本单位是C.函数 5、选出以下语句的输出结果printf("%d",strlen("\t\"\065\xff\n");A.6 6、在C语言中,要求运算数必须是整形的运算符是A.% 7、已知字母A的ASCII码为十进制 65,下面程序的输出是A.67,D
double a,b,max;
答案整理:林子雨 E-mail:ziyulin@ 主页:/linziyu 第 3 页/共 4 页
厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案 第二章 C 语言基础
scanf("%lf%lf",&a,&b); max=a>b?a:b; printf("%lf\n",sqrt(max)); }
定义格式为:#define <常量名> <值常量> 变量的定义格式为: 数据类型 变量名 1,变量名 2,…,变量名 n; 或 数据类型 变量名 1=初值 1,变量名 2=初值 2,…,变量名 n=初值 n; 2、 变量的要素有哪些?请用一个例子说明? 名字、类型、值和地址 int a = 1;int 是类型,a 是名字,1 是值,地址是编译器给 a 变量分配的内存空间 3、 变量在整个程序中能有相同的值吗?为什么?请举例说明。 可以,因为变量的值可以被改变,但不是一定被改变。如果程序中没有其它不同的赋值, 变量将保持不变。 4、 为什么程序需要有短整型(short)和长整型(long)? 整型的值集理论上是所有整数,但由于受到计算机存储单元的限制,C 语言的整型只能 表示所有整数的一个有限子集,因此,整数有它的表示范围限制,且不同的 C 语言系统 可表示整数的范围可能不同。不同范围的整型数据所占有的内存空间大小不同。程序开 发人员通过选择能够满足范围要求的类型(short 或 long),可以减少数据存储空间。比 如,当短整型可以满足数据范围要求时,就没有必要选择需要更多存储空间的长整型。 5、 字符’8’和数字 8 有何不同? 字符’8’是字符型,数字 8 是整型 6、 C 语言有字符串变量吗? 没有 7、 C 语言中的运算符“/”和“%”有何区别?C 语言中除法运算符“/”与数学中的运算 符“÷”的用法和功能完全一样吗? “/”是除法,“%”是取余数,“/”与“÷”的用法和功能不完全一样,“÷”得到的是 两数相除后得到的真实值,“/”得到的是两数相除后取整的值。 8、 在 C 语言中,运算符“=”的功能是什么?能用它来判别两个量是否相等吗? “=”是赋值运算符,它将右侧表达式的值赋予左侧变量。不能判别两个量是否相等。 9、 双目运算符两边的操作数可以是不同的类型吗?如果可以,它们如何影响运算的结果? 可以,C 编译器会先对其中一些操作数进行隐式类型转换,使操作数类型一致后进行计 算。转换方向为:char,short->int->unsigned->long->double,float->double 10、描述你所学过的运算符的优先级。 () [] -> . 从左到右

第5章-C语言程序设计(第2版)教材习题答案

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。

2011年10月第二版。

ISBN:978-7-302-26972-4。

售价:35元。

【答案版本】本习题答案为2012年2月修订版本。

一、选择题1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。

A. while循环执行10次B. 循环是无限循环C. 循环体语句执行一次D. 循环体语句一次也不执行2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。

A. 运行程序段后输出1B. 程序段执行无限次C. 运行程序段后输出0D. 程序段中的控制表达式是非法的3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。

A. int a=1,b=2; while(b--);B. int a=1,b=2; do a++; while(a==b);C. int a=1,b=2; while(a=3);D. int a=1,b=2; do b-- while(b==0);4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。

do{ printf(“%d\n”,i--); } while(i!=0);A. 0B. 1C. 5D. 无限5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。

A. 0B. 5C. 10D. 无限6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。

A. break语句用于循环体内,它将结束该循环B. break语句用于开关语句,它结束该开关语句C. break语句用于if语句的内嵌语句内,它结束该if语句D. break语句在一个循环体内可使用多次7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。

c语言程序设计答案(清华大学出版社)

c语言程序设计答案(清华大学出版社)

c语言程序设计答案(清华大学出版社)C语言程序设计是一门基础而重要的计算机编程课程,它不仅教授编程语言的语法和结构,更培养了解决问题的逻辑思维能力。

《C语言程序设计》一书由清华大学出版社出版,是众多高校计算机专业学生的必读教材。

以下是该书的一些答案解析,以帮助学生更好地理解和掌握C 语言的相关知识。

第一章:C语言概述- C语言的特点:C语言是一种结构化语言,具有高效、灵活、功能强大等特点。

- C语言的发展历史:C语言由丹尼斯·里奇在20世纪70年代初期开发,最初用于UNIX操作系统。

第二章:数据类型、运算符和表达式- 基本数据类型:包括整型(int)、字符型(char)、浮点型(float和double)。

- 运算符:包括算术运算符、关系运算符、逻辑运算符、位运算符等。

- 表达式:由常量、变量、运算符和函数调用组成的组合,用于计算和赋值。

第三章:控制语句- 顺序结构:程序按照代码的顺序执行。

- 选择结构:使用`if`、`switch`等语句进行条件判断。

- 循环结构:使用`for`、`while`、`do-while`等语句进行重复执行。

第四章:数组- 一维数组:连续存储的相同类型元素集合。

- 二维数组:可以看作是一维数组的集合。

- 数组的初始化:可以使用花括号进行初始化。

第五章:函数- 函数的定义:使用`return`类型和函数名定义。

- 函数的调用:通过函数名和参数列表调用。

- 递归函数:函数内部调用自身。

第六章:指针- 指针变量:存储变量地址的变量。

- 指针的运算:包括地址运算和指针的自增自减。

- 指针与数组:指针可以方便地访问数组元素。

第七章:结构体与联合体- 结构体:可以包含不同类型的数据成员。

- 联合体:所有成员共享同一块内存空间。

第八章:预处理指令- 宏定义:使用`#define`定义常量或宏。

- 文件包含:使用`#include`引入头文件。

第九章:位运算- 位运算符:包括位与(&)、位或(|)、位非(~)、位异或(^)等。

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案第一章:C语言基础1. 以下为C语言的特点:- C语言是一种结构化编程语言,可以通过模块化的方式构建复杂的程序。

- C语言具有较高的可移植性,可以在不同的操作系统和硬件平台上运行。

- C语言提供了丰富的库函数,方便开发者进行程序开发。

- C语言对指针的支持较好,可以进行底层的内存操作。

2. C语言中的标识符规则:- 标识符由字母、数字和下划线组成,且第一个字符不能是数字。

- 标识符区分大小写,因此变量名"num"和"Num"是不同的。

- 标识符不能与关键字重名,如"if"、 "for"等。

- 标识符长度一般不超过32个字符。

3. 在C语言中,预处理指令的作用是在程序编译之前对代码进行处理,包括宏展开、文件包含等。

预处理指令以"#"开头,常见的预处理指令有:- #include:用于包含头文件,将头文件中的内容插入到当前文件中。

- #define:用于定义宏,将宏名称替换为指定的值或代码片段。

- #ifdef、#ifndef、#endif:用于条件编译,根据条件是否成立来选择性地编译代码。

4. C语言中的数据类型分为基本数据类型和派生数据类型两种。

基本数据类型包括整型、浮点型、字符型和布尔型,派生数据类型包括数组、指针、结构体和共用体。

5. C语言中的运算符主要分为算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符等。

算术运算符用于执行加减乘除等基本算术操作,关系运算符用于比较两个值的大小关系,逻辑运算符用于组合多个条件的判断结果,位运算符用于对二进制位进行操作,赋值运算符用于将右侧的值赋给左侧的变量。

第二章:C语言程序结构1. C语言程序结构由函数、语句和注释组成。

每个C语言程序至少包含一个main()函数,作为程序的入口。

2. 以下为C语言程序的基本结构:```c#include <stdio.h>int main() {// 程序代码return 0;}```3. C语言中的控制语句包括条件语句和循环语句。

c程序设计(第2版)课后习题答案

c程序设计(第2版)课后习题答案

c程序设计(第2版)课后习题答案C程序设计是一门基础的计算机编程课程,它教授学生如何使用C语言编写程序。

C语言是一种结构化编程语言,广泛用于系统软件、嵌入式系统和各种应用程序的开发。

以下是一些C程序设计课后习题的答案示例,这些答案仅供参考,具体习题的答案可能会有所不同。

第一章:C语言概述1. 简述C语言的特点。

- C语言是一种高级语言,同时具有汇编语言的效率。

- 它支持结构化编程,允许模块化设计。

- C语言具有丰富的运算符和数据类型。

- 它提供了指针功能,增强了编程的灵活性。

2. 描述C程序的基本结构。

- C程序由预处理指令、函数定义和主函数`main()`组成。

- 每个函数由函数声明、函数体和花括号包围的代码块组成。

第二章:数据类型、运算符和表达式1. 列出C语言的基本数据类型。

- 整型:`int`、`short int`、`long int`- 浮点型:`float`、`double`- 字符型:`char`- 枚举型:`enum`2. 解释赋值运算符的左结合性和右结合性。

- 赋值运算符是右结合性,意味着从右向左进行赋值。

第三章:控制语句1. 什么是条件语句?- 条件语句允许程序根据条件是否满足来执行不同的代码路径。

2. 描述循环语句的类型及其用法。

- `for`循环:用于已知迭代次数的循环。

- `while`循环:用于未知迭代次数,条件为真时循环。

- `do-while`循环:至少执行一次循环体,然后检查条件。

第四章:函数1. 函数的定义是什么?- 函数是一段具有特定功能的代码块,可以接收参数并返回值。

2. 解释函数原型和函数定义的区别。

- 函数原型声明了函数的名称、返回类型和参数列表,但不包含函数体。

- 函数定义包含了函数的完整实现,包括函数体。

第五章:数组1. 一维数组的声明和初始化方式。

- 声明:`type arrayName[arraySize];`- 初始化:`int arr[5] = {1, 2, 3, 4, 5};`2. 二维数组的访问方式。

清华大学c语言教程课后答案

清华大学c语言教程课后答案

c语言程序设计答案---潭2《C语言程序设计教程(第二版)》习题答案说明1. 本习题答案是我自己做的,错误和疏漏在所难免。

编程题全部调试通过,但选择题和填空题不敢保证全对。

2. 凡未指明解题所用的程序设计语言的,均指C语言。

3. 凡未指明执行程序所需的操作系统的,均可在DOS下执行。

4. 本文中文字下面划线的表示输入。

第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC 5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言 7.有穷性 8.直到型循环 9.算法 10.可读性 11.模块化 12.对问题的分析和模块的划分三、应用题(第24页)2.源程序:main(){int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */printf("cock hen chick");for(i=1;i<=20;i++)for(j=1;j<=33;j++)for(k=1;k<=33;k++)if (i+j+k*3==100&&i*5+j*3+k==100)printf(" %d %d %d",i,j,k*3);}执行结果:cock hen chick4 18 788 11 8112 4 843.现计算斐波那契数列的前20项。

递推法源程序:main(){long a,b;int i;a=b=1;for(i=1;i<=10;i++) /*要计算前30项,把10改为15。

*/{printf("%8ld%8ld",a,b);a=a+b;b=b+a;}}递归法源程序:main(){int i;for(i=0;i<=19;i++)printf("%8d",fib(i));}fib(int i){return(i<=1?1:fib(i-1)+fib(i-2));}执行结果:1 123 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 4.源程序:#include "math.h";main(){double x,x0,deltax;x=1.5;do {x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax>1e-12);printf("%.10f",x);}执行结果:1.32471795725.源程序略。

语言程序设计第二版谭浩强章课后习题答案清华大学出版社

语言程序设计第二版谭浩强章课后习题答案清华大学出版社

原题:打印出下题的结果main(){int a=5,b=7;float x=,y=;char c='A';long n=1234567;unsigned u=65535;printf("%d%d\n",a,b);printf("%3d%3d\n",a,b);printf("%f,%f\n",x,y);printf("%-10f,%-10f\n",x,y);printf("%,%,%4f,%4f,%3f,%3f\n",x,y,x,y,x,y);printf("%e,%\n",x,y);printf("%c,%d,%o,%x\n",c,c,c,c);printf("%ld,%lo,%x\n",n,n,n);printf("%u,%o,%x,%d\n",u,u,u,u);printf("%s,%\n","COMPUTER","COMPUTER");}结果:575 7,,, ,,,,+01, +02A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER, COM4-6原题:用下面的scanf函数输入数据,使a=3,b=7,x=,y=,c1='A',c2='a'。

问在键盘上如何输入main(){int a,b;float x,y;char c1,c2;scanf("a=%d,_b=%d",&a,&b);scanf("_%f_%e",&x,7y);scanf("_%c_%c",&c1,&c2);答案:输入格式为:a=3,b=7 A a4-7原题:用下面的scanf函数输入数据使a=10,b=20,c1='A',c2='a',x=,y=z=,请问在键盘上如何输入数据scanf("%5d%5d%c%c%f%f%*f,%f",&a,&b,&c1,&c2,&x,&y,&z);答案:输入格式为:10 ,友情提示:10与20之间是3个空格,而那个是随便一个浮点数即可。

C程序设计教程第二版习题答案

C程序设计教程第二版习题答案

C程序设计教程第二版习题答案第1章:C语言概述1. 简述C语言的特点。

- C语言是一种结构化编程语言,具有高效、灵活、功能强大等特点。

它支持多种编程范式,包括过程式、面向对象和泛型编程。

2. C语言的发展历史。

- C语言由丹尼斯·里奇在20世纪70年代初期开发,最初用于UNIX操作系统的编写。

随着UNIX的流行,C语言也逐渐普及。

第2章:C语言基础1. 变量声明的规则。

- 变量声明必须指定数据类型,变量名必须以字母或下划线开头,可以包含字母、数字和下划线,但数字不能作为变量名的首位。

2. 常量的使用。

- 常量是在程序执行过程中不能被修改的值,可以用#define预处理指令定义,或者直接使用字面量。

第3章:控制语句1. if语句的使用。

- if语句用于根据条件执行不同的代码块。

基本语法为:`if (条件) { 执行代码 }`。

2. switch语句的使用。

- switch语句用于根据变量的值执行不同的代码块。

基本语法为:`switch (变量) { case 值1: 执行代码1; break; ... }`。

第4章:循环语句1. for循环的使用。

- for循环用于重复执行一段代码直到满足特定条件。

基本语法为:`for (初始化; 条件; 增量/减量) { 执行代码 }`。

2. while循环的使用。

- while循环在条件为真时重复执行代码块。

基本语法为:`while (条件) { 执行代码 }`。

第5章:函数1. 函数的定义和调用。

- 函数是一段具有特定功能的代码块,可以被重复调用。

定义函数的基本语法为:`返回类型函数名(参数列表) { 函数体 }`。

调用函数时使用:`函数名(参数)`。

2. 函数的参数传递。

- 参数传递可以是值传递或引用传递。

值传递时,函数内部对参数的修改不会影响到外部变量的值;引用传递则相反。

第6章:数组1. 一维数组的声明和使用。

- 一维数组的声明语法为:`类型数组名[大小]`。

《C语言程序设计》(清华大学出版社)书后习题参考答案

《C语言程序设计》(清华大学出版社)书后习题参考答案

第一步部分简单程序设计P55.课堂实践(1)#include<stdio.h>main(){printf(“**********\n”); printf(“**********\n”); printf(“**********\n”);}(2)#include<stdio.h>main<> /*main()*/{printf(“Hello,World.\n);}P95.课堂实践(1)#include<stdio.h>main(){char a=116,b=119,temp;printf(“a=%c,b=%c\n”,a,b); temp=a;a=b;b=temp;printf(“a=%c,b=%c\n”,a,b); }(2)功能:交换x,y的值;#include<stdio.h> main(){ int x,y;x=5; y=10;x=x+y;y=x-y;x=x-y;printf(“%d,%d”,x,y);}(3)c:dec=120,oct=170,hex=78,ASCLL=x 4、输出内容向左靠齐12123.14159260000000000000000000000000 3.14159260000000000000000000000000P115.课堂实践(1)①3.0-(3.0*4)/(4+2)#include<stdio.h>main(){ float x;x=3.0-(3.0*4)/(4+2);printf(“%f”,x);}②1/2*(2*3+2/(2*2*2))#include<stdio.h>main(){ float x;x=1/2*(2*3+2/(2*2*2));printf(“%f”,x);}(2)%(3)B(4)#include<stdio. h>main{x,y,z;/*没有数据类型*/x+y=5;/*赋值表达式左边不能是表达式,应为一个变量*/printf("x+y=,z=",x,y,z);/*没有输入格式符*/}P135.课堂实践(1)-14(2)(1)x=4,8 (2)8,8(3)#include<stdio.h>mian(){ int x=10;printf(“当x变量的初值为%d时,进行+=运算后的结果为%d”,x,x+=x);printf(“当x变量的初值为%d时,进行-=运算后的结果为%d”,x,x-=x);printf(“当x变量的初值为%d时,进行*=运算后的结果为%d”,x,x*=x);printf(“当x变量的初值为%d时,进行/=运算后的结果为%d”,x,x/=x);}P13习题一、1、C2、C3、A 二、5,-46,12,20P185.课堂实践(1)#include<stdio.h> main(){ int x,y;scanf(“%d%d”,&x,&y); if(x>y)printf(“x>y”); else if(x<y)printf(“x<y”); elseprintf(“x=y”);}(2)#include<stdio.h> main(){ int x,y;scanf(“%d”,&x);if(x>0) y=1;if(x==0) y=0;if(x<0) y= -1;printf(%d”,y);}P215.课堂实践(1)C (2)B (3)B (4)0.500000 (5)不能:#include<stdio.h>main( ){int x,y,z,max;if(z>y){if(z>x)max=z;else max=x;}else if (y>x)max=y;else max=x;printf("\nmax=%d ",max);}P23 略P24习题一、1、D 2、D 3、C 4、D 5、B 6、B 7、B二、1、y%2==0 2、&& || !3、(x>2&&x<3)||(x<-10)4、(ch>=’A’&&ch<=’z’)ch=ch-32;5、1,06、F三、1、#include<stdio.h>main(){int a;scanf("%d",&a);if(a%5==0&&a%7==0)printf("yes");else printf("no");}2、#include<stdio.h>main(){int m;scanf("qingshuru:%d",&m);if((m%4==0&&m%100!=0)||m%400==0)printf("%d shirunnian",m);else printf("%d bushirunnian",m);}3、#include<stdio.h>#include<math.h>main(){ floata,b,c,dise,x1,x2,realpart,imagpart;scanf(“%f%f%f”,&a,&b,&c);printf(“The equation”);if(fabs(a)<=0)printf(“is not a quadratic\n”);else{ dise=b*b-4*a*c;if(dise<=0)printf(“has two aqualroots:%8.4f\n”,-b/(2*a));elseif(dise>0){ x1=(-b+sprt(disc))/(2*a);x2=(-b-sprt(disc))/(2*a);printf(“has distinct real roots:%8.4f and%8.4f\n”,x1,x2);}else{realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(“has complex roots:\n”);printf(“%8.4f+%8.4f\n”,realpart,im agpart);printf(“%8.4f-%8.4f\n”,realpart,imagpart);}P285、课堂实践(1)#include<stdio.h>main( ){int key;char ch;printf("*****\n");scanf("%d",&key);printf("????????:\n");while((ch=getchar())!='\n')(ch-key)>122?putchar(ch+122-33-key): ((ch-key)<33?putchar(ch-122-key):putchar (ch-key));}(2)#include<stdio.h>main(){ int i; /*i没有赋值*/int i=1;printf(“output ten numbers:\n”);while(i<=10)printf(“%3d”);/*没有输出参数*/ {printf(“%3d”,i);i++; /*应加{}组成复合语句*/ i++;}}P304. 课堂实践(1)#include<stdio.h>main(){ int a,s=0;do{ scanf(“%d”,&a);s+=a;}while(a!=-1);printf(“%d”,s);}(2)#include<stdio.h>main(){ int a,b,r,t,maxB;scanf(“%d%d”,&a,&b);if(a<b){ t=a;a=b;b=t;}r=a%b;while(r!=0){ a=b;b=r;r=a%b;}maxB=b;printf(“maxB is %d”,maxB);}P336. 课堂实践(1)4(2)①#include<stdio.h>main(){int i,j;printf("**九九乘法表**");for(i=1;i<10;i++){ for(j=1;j<=i;j++)printf("%d*%d=%d\t",j,i,i*j);printf("\n");}}②#include<stdio.h>main() {int i=1,j;while(i<10){ j=1;while(j<=i){ printf("%d*%d=%d\t",j,i,i*j);j++;}printf("\n");i++;}}③#include<stdio.h>main(){int i=1,j;do{ j=1;do{ printf("%d*%d=%d\t",j,i,i*j);j++;}while(j<=i);printf("\n");i++;}while(i<10);}(3)#include<stdio.h>main(){ int x;scanf("%d",&x);while(x>0){ printf("%d",x%10);x/=10;prtntf(" ");}}P33习题【参考答案】一、1、D 2、C 3、A 4、A 5、D 6、C 7、D 8、D 9、C 10、B二、1、36 2、3 4、1 3 5、 i<=10 if(j%6!=0)三、1、#include<stdio.h>main(){int a,sum=0;for(a=1;a<=100;a++)if(a%2==1)sum=sum+a;printf("%d",sum);}2、#include<stdio.h> main(){ int i,j,s;int t;int k[100];for(i=1;i<=1000;i++) {s=0;t=0;for(j=1;j<i;j++)if(i%j==0){s+=j;k[t++]=j;}if(i==s){printf("%d shiwanshou %d=",i,i);for(;t>0;)if(t>1)printf("%d+",k[--t]);else printf("%d",k[--t]);printf("\n");}}3、#include<stdio.h>main(){ int y,t=0;for(y=1008;y<=2008;y++)if(y%4==0&&y%100!=0||y%400==0) { printf(“%d\t”,y);t++;if(t%5==0)printf(“\n”);}}4、#include<stdio.h>main(){ int t,i,x,max,min;scanf(“%d”,&t);max=min=t;for(i=1;i<10;i++){scanf(“%d”,&x);if(max<=x)max=x;if(min>=x)min=x;}printf(“%d\t%d\n”,max,min);}5、#include<stdio.h>main(){ int i,j,p;for(i=1;i<=4;i++){ for(p=1;p<=i;p++)printf(“”);for(j=7;j>=2*i-1;j--)printf(“*”); printf(“\n”);}}P395.课堂实践(1)float compare (float a,b,c) {float k;if (a>=b){ k=a;if(a>=c)k=a;elsek=c;}else{k=b;if(b<=c)k=c;return k;}}(2)最大公约数:int zxgys (int m,n){int i,j,k;if(m>=n)k=n;elsek=m;for(i=1;i<=k;i++){if(m%i==0&&n%i==0) j=i;}return j;}最小公倍数:int zdgbs (int a,int b) {int x,y,k;if(a>=b)k=a;elsek=b;for(x=a*b;x>=k;x- -){if(x%a==0&&x%b==0)y=x;}return y;}P41 课堂实践(1)#include<stdio.h>float zhouchang (float x) {float l;l=2*3.14*x;return l;} float mianji (float y){float s;s=3.14*y*y;return s;}voide main (){float r;scanf("%f",&r);float m,n;m=zhopuchang (r);n=mianji (r);printf("m=%f\nn=%f\n",m,n); }(2)float add (float x,float y) {Float z;Z=x+y;Return z;}float sub(float h,float k) {float w;w=h-k;return w;}float mul(float m,n){float i;i=m*n;return i;}float div(float e,f) {float g;g=e/f;return g;}void main(){float p,g;scanf("%f%f",&p,&g); char a;lscanf("%c",&a);float j;if(a=='+'){j=add(p,g);}else if(a=='-'){j=sub(p,g)}else if (a=='*'){j=mul(p,g)}else if (a=='/'){j=div(p,g)}printf("'%f",5);}P43习题一.选择1.B 2.D 3.D 4.A 5.C 6.B 7.B 8.B 9.A 10.D 二.填空1.函数首部和函数体2.void add; float add;3.1,1,14. 1,2,3;5. break; scanf(“%c”,&ch);6. x=4 y=9 z=57.first:14 ,4 ,12second:26 ,4 ,12third:26 ,3 ,68. a+b=99. 810. 125三.1.#include<stdio.h>#include<math.h>fun (int x,int y){int m;m=x-y;m=abs(m);return m;}2. void deb (int x){int i;for(i=2;i<=x;i++){if(x%i==0)break;}if(i>=x)printf("%d is su shu\n",x);}3. 略第二部分程序设计算法示例P676.(1)#include<stdio.h>main(){int b,m,l;for(b=1;b<20;b++){for(m=1;m<33;m++){l=100-m-b;if(5*b+3*m+l/3==100)printf("%d%d%d\n",b,m,l)}}}(2) #include<stdio.h> main(){int a,b,c,d;for(a=1;a<10;a++){for(b=1;b<20;b++){ for(c=1;c<50;c++){d=40-a-b-c;if(10*a+5*b+2*c+d==100) printf("%d,%d,%d,%d\n",a,b,c,d);}}}}P705.(1)#include<stdio.h>main(){int a,b,c;c=2;for(a=2;a<=3;a++){if(a==c)continue;b=6-a-c;if(b==c)continue;if(a==3)printf("a与z是对手\n");if(b==1)printf("b与x是对手\n");printf("c与y是对手\n");}}5.(2)#include<stdio.h>main (){int d=5;int a,b,c,e,f,g;for(a=1;a<=7;a++){if(a==d)continue;for(b=1;b<=7;b++){if(b==a||b==d)continue;for(c=1;c<=7;c++) {if(c==a||c==b||c==d)continue;for(e=1;e<=7;e++){if(e==a||e==b||e==c||e==d)continue;for(f=1;f<=7;f++){ if(f==e||f==d||f==c||f==b||f==a) continue;g=(23-a-b-c-e-f);if(g==f||g==e||g==d||g==c||g==b||g==a) continue;}}}}}printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d \nf=%d\ng=%d\n",a,b,c,d,e,f,g);}5.(3) 略P71习题一、1. B2. D3. C4.C,D二.1.2*x+4*y==90;2.14三.1.#include<stdio.h>main (){int a,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++){if(a*a*a+b*b*b+c*c*c==100*a+10*b+c) printf("%d%d%d\n",a,b,c);}}}}2#include<stdio.h>main (){int bh,mh,lh;for(bh=1;bh<=40;bh++){for(mh=1;mh<=50;mh++){lh=100-bh-mh;if(3*bh+2*mh+lh/2) printf("bh=%d\nmh=%d\nlh=%d\n");}}}P755.#include<stdio.h>main (){float x1,x2;x1=1.5;x2=(x1+1/x1)/2;while(x1=x2){x1=x2;x2=(x1+1/x1)/2;}printf("%f",x2);}P765.(1)略5.(2)#include<stdio.h>main (){int day=1;int x1=0,x=0;float j;while(x1<100){x=day*2;day++;x1+=x;}j=x1*0.8/(day-=1);printf("%f",j);}P76习题一1.(1)B(2)D2. (1)C (2)A二1.(1)x1==0(2) x/0.5-22.sum%4==0三略P80.5、课堂实践#include <stdio.h>void main(){ long int f1,f2;int i;f1=1; f2=1;for(i=1;i<=20;i++){printf(“%4ld %4ld”,f1,f2); if(i%2==0) printf(“\n”);f1=f1+f2; f2=f2+f1;} }P81.5、课堂实践#include <stdio.h>#include <math.h>int s(int a,int b){ int g;if( b= =0)g=1;elseg=pow(a,b);return(g);}main(){ int x,y,m;Scanf(“%d,%d”,&x,&y);m=s(x,y);printf(“%d”,m);}P81.习题一、1、(1) age(n-1)+2 (2)age(n)2、计算Fibonacci数列第7项元素 k=13二、略P85.略P93.5、课堂实践(1) D (2) C (3) C (4)D(5)#include <stdio.h>main(){ int a[5],s[5];int i;for(i=0;i<5;i++)scanf(“%d”,&a[i]);for(i=0;i<5;i++){ s[i]=a[i]+5;printf(“%d”,s[i]);}}P96.5、课堂实践(1)#include <stdio.h>void main(){ inta[10]={265,301,751,129,937,863,742,694,7 6,438};int i,j,t;for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){ t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<10;i++)printf(“%d ”,a[i]);}(2).补充直接插入排序原理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文档为《C语言程序设计(第2版)》清华大学出版社的教材习题答案,特别是关于循环结构程序设计的部分。文档详细列出了选择题的答案及解析,包括循环语句的执行情况、循环次数的判断、break和continue语句的使用等关键知识点。例如,在选择题中,解释了如“while(k=0)”这样的赋值表达式在循环条件中的行为,以及“do…while”循环的具体执行次数。此外,还涉及了for循环、循环中问题。除了选择题,文档还提供了编程题的示例,如计算用户输入的6个整数的平均值,以及根据输入的正整数n计算并显示前n个偶数的和。这些编程题不仅展示了循环结构在实际编程中的应用,也帮助读者深化对C语言循环结构的理解。
相关文档
最新文档