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. 指针的用途。

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

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

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