课后答案——C++语言程序设计教程(第二版)

合集下载

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

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

c程序设计第二版习题答案C程序设计第二版习题答案在C程序设计的学习过程中,完成课后习题是巩固理论知识和提高编程实践能力的重要环节。

以下是针对C程序设计第二版中一些常见习题的答案和解析,供学习者参考。

习题1:编写一个程序,计算并打印出1到100的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum);return 0;}```习题2:编写一个程序,提示用户输入两个整数,并计算它们的平均值。

```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数,用空格分隔:");scanf("%d %d", &num1, &num2);double average = (num1 + num2) / 2.0;printf("这两个整数的平均值是:%f\n", average);return 0;}```习题3:编写一个程序,打印出所有的“水仙花数”。

所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。

```c#include <stdio.h>#include <math.h>int main() {int i, a, b, c;for (i = 100; i < 1000; i++) {a = i / 100;b = (i / 10) % 10;c = i % 10;if (i == (a * a * a + b * b * b + c * c * c)) {printf("%d\n", i);}}return 0;}```习题4:编写一个程序,找出1000以内的所有素数,并打印出来。

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( n”“,%2*lsf )(4)m%5==0 ,printf(“ %nd” ,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; else y=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; case 6:s=151+d;break; case 7:s=181+d;break; case 8:s=212+d;break; case 9:s=243+d;break; case 10:s=273+d;break; case 11:s=304+d;break; case 12:s=334+d;break; } }s=(w+s)%7; if(s==0) printf( 星期日\n); else printf( 星期%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=5i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5 (7)30 (8)0 10 1 11 2 12 4.程序填空(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 ints; return p; scanf(%u,s); } printf(%u\n,fun(s));( 2 ).return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsigned int 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程序设计的任务14 1-5 #include stdio.hint main (){ printf ( **************************\n\n); printf( verygood!\n\n);printf ( return 0;\n);}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最基本的语句——赋值语句59 3.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 年期,到期后将本息再存p3=p*(1+3*r3)*(1+2*r2); // 先存 3 年期,到期后3 年期将本息再存int main(){double 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语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。

其基本结构包括顺序结构、选择结构和循环结构三种。

2.算法是对具体问题求解步骤的一种描述。

计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。

1-3 编程题1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。

#include "stdio.h"main(){ float a, b, h, s;a=10; b=20;h=5; s=(a+b)*h/2;printf("s=%f\n" , s );}2. 编写程序显示如图1.11所示信息。

图1.11 显示信息#include "stdio.h"main(){ printf("******************************\n");printf("* hello world *\n");printf("******************************\n"); }习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题1.2.0000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 55习题33-1 选择题1-5BDABC 6-10ADCAC 11-12BB3-2 填空题1. 32.02613.0x104. 2, 1 互换a,b的值5. 6.66.–0038.77. 5.0,4,c=3<Enter>8.i=10,j=20<Enter>9.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.864000e+002(7) 3.141600e+000(8) 3.1416(9) 8765(10) 3.1416,8765.4310.a=2 b=5x=8.8 y=76.34c1=65 c2=973-3 编程题1. 编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式 输出。

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

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

C 程序设计教程第二版习题答案C 程序设计教程第二版习题答案C 程序设计是一门广泛应用于计算机科学和工程领域的编程语言,它具有高效、灵活和可移植等优点。

对于初学者来说,掌握C 程序设计的基本知识是非常重要的。

而《C 程序设计教程》是一本经典的教材,为学习者提供了一系列的习题来巩固所学知识。

本文将为大家提供《C 程序设计教程第二版》习题的答案,帮助大家更好地理解和掌握C 程序设计。

第一章:C 程序设计入门1.1 习题答案:1. 编写一个C程序,输出"Hello, World!"。

```c#include <stdio.h>int main() {printf("Hello, World!");return 0;}```1.2 习题答案:1. 编写一个C程序,输入两个整数,然后输出它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```第二章:C 程序设计基本要素2.1 习题答案:1. 编写一个C程序,输入一个字符,然后输出它的ASCII码。

```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf("%c", &ch);printf("该字符的ASCII码为:%d", ch);return 0;}```2.2 习题答案:1. 编写一个C程序,输入一个整数,然后输出它的绝对值。

苏小红c语言程序设计第二版课后答案

苏小红c语言程序设计第二版课后答案

苏小红c语言程序设计第二版课后答案苏小红教授所著的《C语言程序设计》第二版是计算机科学与技术专业学生学习C语言的经典教材之一。

该书不仅系统地介绍了C语言的基础知识,还通过丰富的实例和练习题帮助学生加深理解。

以下是部分课后习题的答案,以供参考:第一章:C语言概述1. 问题一:简述C语言的特点。

- 答案: C语言是一种结构化编程语言,具有高效性、灵活性和可移植性等特点。

它支持多种数据类型,拥有丰富的运算符,并且能够直接访问内存地址。

2. 问题二:为什么说C语言是高级语言?- 答案: C语言被称为高级语言是因为它抽象了底层硬件操作,使得程序员可以不必关心计算机的硬件细节,而专注于程序的逻辑结构。

第二章:数据类型、运算符和表达式1. 问题一:说明C语言中基本数据类型的种类及其特点。

- 答案: C语言中的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)。

每种类型都有其特定的取值范围和占用内存大小。

2. 问题二:解释赋值运算符的右结合性。

- 答案:赋值运算符的右结合性意味着当多个赋值运算符同时出现时,从右向左进行计算。

例如,a = b = c; 会先计算 b = c,然后将结果赋值给 a。

第三章:控制结构1. 问题一:什么是条件语句?举例说明。

- 答案:条件语句是程序中根据条件是否满足来决定执行哪一段代码的结构。

例如,if语句就是典型的条件语句。

2. 问题二:循环语句有哪些?它们各自的特点是什么?- 答案: C语言中有三种循环语句:for循环、while循环和do-while循环。

for循环常用于已知循环次数的情况;while循环适用于循环次数未知,需要在循环体内部判断是否继续循环;do-while循环至少执行一次循环体,然后在循环末尾判断是否继续。

第四章:数组1. 问题一:一维数组和多维数组的区别是什么?- 答案:一维数组是线性的,只有一个索引来访问数组元素;而多维数组可以看作是数组的数组,需要多个索引来定位元素。

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

c程序设计(第二版)课后习题答案
2
C 语言程序设计(第二版) 课后习题参考答案
putchar(c2);//将变量 c2 的值输出 printf("\n"); printf("%c%c\n",c1,c2);//用 printf 输出 c1、c2 的值 printf("%d,%d\n",c1,c2);//输出 c1,c2 的 ASCII 码 } 第四章 【习题 4.5】 /*有三个整数 a,b,c,由键盘输入,输出其中最大的数,请编程序。*/ /*变量:三个整数 a、b、c,中间变量 t,最大值 max*/ #include<stdio.h> void main() { int a,b,c,t,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); t=a>b?a:b;//比较 a 与 b 的大小,将大者赋给中间变量 t max=t>c?t:c;//比较 t 与 c 的大小,将大者赋给最大值 max printf("the max is:\n"); printf("%d\n",max); } 【习题 4.6】 /*给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90 分以上为'A',80~89 分为 'B',70~79 分为'C',60~69 分为'D',60 分以下为'E'。*/ #include<stdio.h> void main() { int score; printf("please input the score:(0-100)\n"); scanf("%d",&score); if(score>=90&&score<=100) printf("A");//如果成绩大于 90 分,输出 A else if(score>=80&&score<=89) printf("B");//如果成绩在 80~89 之间,输出 B else if(score>=70&&score<=79) printf("C");//如果成绩在 70~79 之间,输出 C else if(score>=60&&score<=69) printf("D");//如果成绩在 60~69 之间,输出 D else printf("E");//成绩小于 60 分时,输出 E printf("\n"); } 【习题 4.7】 /*给一个不多于 5 位的正整数,要求:(1)求出它是几位数;(2)分别输出每一个数字;(3)按 逆顺序输出各位数字,例如原数为 321,应输出 123.*/ /*变量:正整数 x、万位数 a、千位位数 b、百位数 c、十位数 d、个位数 e*/ #include <stdio.h>

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

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

c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。

#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。

(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。

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语言程序设计习题参考答案习题 1一、判断题1.在计算机中,小数点和正负号都有专用部件来保存和表示。

2.二进制是由0和1两个数字组成的进制方式。

3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。

4.在整数的二进制表示方法中,0的原码、反码都有两种形式。

5.有符号数有三种表示法:原码、反码和补码。

6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。

解:1.F2.T 3.T 4.T 5.T 6.T二、单选题1.在计算机中,最适合进行数值加减运算的数值编码是。

A. 原码B. 反码C. 补码D. 移码2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。

A. 112B. 120C. 121D. 1223.关于ASCII码,在计算机中的表示方法准确地描述是。

A. 使用8位二进制数,最右边一位为1B. 使用8位二进制数,最左边一位为1C. 使用8位二进制数,最右边一位为0D. 使用8位二进制数,最左边一位为04.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。

A. X∧Y=1000B. X∨Y=1111C. X⊕Y=0011D. ¯Y=10005.下列叙述中正确的是()。

A.高级语言就是机器语言B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。

A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保存源文件7.下列叙述中不正确的是()。

A.main函数在C程序中必须有且只有一个B. C程序的执行从main函数开始,所以main函数必须放在程序最前面C. 函数可以带参数,也可以不带参数。

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语言程序设计教程第2版 课后答案_人民邮电出版社_宗大华_陈吉人_百度

C语言程序设计教程第2版 课后答案_人民邮电出版社_宗大华_陈吉人_百度

本文由airalex1982贡献 pdf文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

《C 语言程序设计教程(第 2 版) 》习题解答 第 1 章习题解答 一、填空 1.机器语言即是指计算机本身自带的 指令系统 。

 完成这个翻译工作 2. 将汇编语言编写的程序翻译成机器语言程序的过程称为 汇编 , 的程序称为 汇编程序 。

 3.在C语言程序中,写“\110”和写“\x68” ,分别代表字母 H 和字母 h 。

 4.在用New命令创建新的C源程序时,文件名默认为是 NOMANE.C 。

 5.C语言程序都是从名为 main 的函数它开始执行的。

 二、选择 1.下面给出的命令中, (C)不能保存源程序对应的“.OBJ”文件。

 A.Make EXE File B.Run C.Save D.Compile to OBJ 分析:Compile to OBJ 是文件的编译命令;Make EXE File 是一次完成编译和连接的命 令;在没有编译、连接的前提下,直接使用 Run 命令,就会先完成编译,再进行连接,最 后运行。

所以,这三个命令都会保存由源程序产生出的“.OBJ”文件。

而 Save 命令用于编 辑完源程序后,对源程序的保存,即保存“.C”文件。

因此,本题的答案应该是选择 C。

 2.下面给出的编辑命令中, (B)是用来定义块首标记的。

 A.Ctrl-KK B.Ctrl-KB C.Ctrl-KV D.Ctrl-KH 3.下面给出的编辑命令中, (A)是用来定义块尾标记的。

 A.Ctrl-KK B.Ctrl-KB C.Ctrl-KV D.Ctrl-KH 4.以下的(C)是不正确的转义字符。

 A.’\\’ B.’\’’ C.’\81’ D.’\0’ 5.转义字符\x65 对应的字母是(C) 。

 A.A B.a C.e D.E 三、是非判断(√,×) 1.Turbo C 中,只有命令 New 才能创建新的源程序文件。

C语言程序设计教程(第二版)电子工业出版社,黄皮书课后答案

C语言程序设计教程(第二版)电子工业出版社,黄皮书课后答案

习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。

顺序结构,选择结构,循环结构2.算法是对具体问题求解步骤的一种描述。

计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。

4. 略5. 略1-3 编程题1.main(){ float a=3, b=4, c=5, s, area;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));p rintf(“area=%f ” , area );}2.main(){ printf(“******************************”);printf(“* hello world *”);printf(“******************************”);}习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~14 BCA A2-2 思考题1.2.000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 559.70习题33-1单选题1-5BBDAB 6-10DDBDC 11-15AADCA 16-20CBACC 21-25ABDBB 3-2填空题1. 32.02613.0x104.05. 2, 1 互换a,b的值6. 6.67.–038.79. 5.0,4,c=3<Enter>10.i=10,j=20<Enter>11.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.86400e+02(7) 3.14160e+00(8) 3.1416(9) 8765(10) 3.1416,8765.4312.a=2 b=5x=8.8 y=76.34c1=65 c2=97 3-3 编程题1.main(){ int x, y ;scanf(“%d%d” , &x, &y);printf(“x y\n”);printf(“%4d%4d\n”, x, y );printf(“%4o%4o\n”, x, y );printf(“%4x%4x\n”, x, y );}2.main(){ float a, b, h, s;scanf(“%f%f%f”, &a, &b, &h );s=(a+b)*h/2 ;printf(“%8.1f\n”, s);}3.main(){ char c;scanf(“%c”, &c );printf(“%c, %c, %c\n”, c-1, c, c+1 ); }4.main(){ int a, a1, a2, a3;scanf(“%d”, &a );a1=a%10 ; a=a/10;a2=a%10; a=a/10;a3=a%10;printf(“%d%d%d\n”, a1, a2, a3);}5.main(){ double a, b, c, ave;scanf(“%lf%lf%lf”, &a, &b, &c );ave=(a+b+c)/3 ;printf(“%8.2f\n”, ave);}6.main(){ int a, b, c, t;scanf(“%d%d%d”, &a, &b, &c );t=a; a=c; c=b ; b=t ;printf(“a=%d, b=%d, c=%d\n”, a, b, c );}习题44-1单选题1~5 BADAC 6~10 DDACD 11~15 BBBAB4-2填空题1.12.if(x>0) y=1else if (x==0) y=0else y=-13.(1) a>0 || b>0 (2) x>0 && x<=10(3) a==1.5 && b==1.5 && c==1.5 (4)p<a || p<b || p<c4.(1)0 (2)1 (3)1 (4)0 (5)05. max=(max=a>b?a:b)>c?max:c6.-47.18.5,0,39.85 belongs to B10. (1) (a==0) (2) (b==0) (3) (disc<0)4-3 编程题1.#include “math.h”main(){ float a,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if (a+b>c && a+c>b && b+c>a){ s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“%f”,area);}}2.main(){ int x,y;scanf(“%d,%d”,&x,&y);if (x*x+y*y>1000)printf(“%d\n”,(x*x+y*y)/100); elseprintf(“%d\n”,x+y);}3.main(){ int x,scanf(“%d”,&x);if(x%3==0 && x%5==0 && x%7==0) printf(“yes\n”);elseprintf(“no\n”);}4.#include “math.h”main(){ float x,y;scanf(“%f”,&x);if(x<-2) y=x*x-sin(x);else if (x<=2) y=pow(2,x)+1;else y=sqrt(x*x+x+1);printf(“%f\n”,y);}5. main( )long a,b,c,d,e,x;scanf("%ld",&x);a=x/10000;/*分解出万位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);}6.1.程序分析:main( ){long ge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf("this number is a huiwen\n");elseprintf("this number is not a huiwen\n");}7. main(){float p,w,s,d,f;scanf(“%f,%,%f”,p,s,w);if (s>3000) d=0.15else if( s>=2000) d=0.1;else if(s>=1000) d=0.08;else if(s>=500) d=0.05;else if(s>=250) d=0.02;else d=0f=p*w*s*(1-d);printf(“%f”,f);}习题55-1单选题1~5 CDACB 6~10 DCAAB 11~16 DBDBCB5-2填空题1.2 02.k=5,s=43.3334.How Are You5.2#18#6.(1) i<10 (2) j%3!=07.(1) flag*(float)k/(k+1) (2) flag=-flag8.(1) s=0,t=1; (2) t=t*x/i*pow(-1,i+1); (3) printf(“%f”,s); 9.(1) max=x (2) x!=-1 (3) scanf("%d", &x)10. (1) n=1 (2) s5-3 编程题1. (1) main(){ int i; lont s=0;for(i=1;i<=100;i++)s+=i*i;printf(“%ld”,s);}(2)main(){ int i; lont p=1,s=0;for( i=1;i<=10;i++){p=p*i;s+=p;}printf(“%ld”,s);}(3) main(){ int i=1; lont p=1;float s=0;do{s+=1.0/p;p*=++i;}while(1.0/p>1e-6)printf(“%f”,s);}(4)main(){ int i=1, flag=1,pi=0;do{s+=flag*1.0/(2*i-1);i++;}while(1.0/(2*i-1)>1e-6);pri ntf(”%f”,s);}2.main(){int m,n,t,a,b;scanf(“%d,%d” ,&m,&n) ;if (m<n){ t=m ;m=n ;n=t ;}a=m;b=n;t=m%n ;while(t){ m=n ; n=t ;t=m%n;}printf(”%d,%d”,n,a*b/n);}3. main(){int x,y,s=1;scanf(”%d,%d”,&x,&y) ;for( ;y>0 ;y--)s*=x ;printf(”%d,%d,%d\n ”,s%10,s/10%10,s/100%10); }4.main(){int i=1, k=2, sum=0;do{sum+=k;k=k*2;i++;}while(sum<=100);printf(”total=%f\n”, 0.4*sum/(i-1));}5. main(){ int x,y,z;for( x=1 ; x<20 ;x++)for( y=1 ;y<33 ;y++){ z=100-x-y ;if (z>=0 && (5*x+3*y+z/3)-100<1e-5)printf(”x=%d,y=%d,z=%d\n”,x,y,z) ;}}6. main(){int j,k ;for( j=1 ;j<=4 ;j++){for(k=1;k<=4-j;k++;)printf(” ”);for(k=1 ;k<=2*j-1 ;k++)printf(”*”) ;printf(”\n”) ;}for( j=3;j>=1;j--){ for(k=1;k<=4-j;k++;)printf(””);for(k=1;k<=2*j-1;k++)printf(”*”);printf(”\n”);}}7.分析:其实此问题的解法非常简单。

C语言程序设计教程(第二版)电子工业出版社,黄皮书课后答案

C语言程序设计教程(第二版)电子工业出版社,黄皮书课后答案

习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。

顺序结构,选择结构,循环结构2.算法是对具体问题求解步骤的一种描述。

计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。

4. 略5. 略1-3 编程题1.main(){ float a=3, b=4, c=5, s, area;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));p rintf(“area=%f ” , area );}2.main(){ printf(“******************************”);printf(“* hello world *”);printf(“******************************”);}习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~14 BCA A2-2 思考题1.2.000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 559.70习题33-1单选题1-5BBDAB 6-10DDBDC 11-15AADCA 16-20CBACC 21-25ABDBB 3-2填空题1. 32.02613.0x104.05. 2, 1 互换a,b的值6. 6.67.–038.79. 5.0,4,c=3<Enter>10.i=10,j=20<Enter>11.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.86400e+02(7) 3.14160e+00(8) 3.1416(9) 8765(10) 3.1416,8765.4312.a=2 b=5x=8.8 y=76.34c1=65 c2=97 3-3 编程题1.main(){ int x, y ;scanf(“%d%d” , &x, &y);printf(“x y\n”);printf(“%4d%4d\n”, x, y );printf(“%4o%4o\n”, x, y );printf(“%4x%4x\n”, x, y );}2.main(){ float a, b, h, s;scanf(“%f%f%f”, &a, &b, &h );s=(a+b)*h/2 ;printf(“%8.1f\n”, s);}3.main(){ char c;scanf(“%c”, &c );printf(“%c, %c, %c\n”, c-1, c, c+1 ); }4.main(){ int a, a1, a2, a3;scanf(“%d”, &a );a1=a%10 ; a=a/10;a2=a%10; a=a/10;a3=a%10;printf(“%d%d%d\n”, a1, a2, a3);}5.main(){ double a, b, c, ave;scanf(“%lf%lf%lf”, &a, &b, &c );ave=(a+b+c)/3 ;printf(“%8.2f\n”, ave);}6.main(){ int a, b, c, t;scanf(“%d%d%d”, &a, &b, &c );t=a; a=c; c=b ; b=t ;printf(“a=%d, b=%d, c=%d\n”, a, b, c );}习题44-1单选题1~5 BADAC 6~10 DDACD 11~15 BBBAB4-2填空题1.12.if(x>0) y=1else if (x==0) y=0else y=-13.(1) a>0 || b>0 (2) x>0 && x<=10(3) a==1.5 && b==1.5 && c==1.5 (4)p<a || p<b || p<c4.(1)0 (2)1 (3)1 (4)0 (5)05. max=(max=a>b?a:b)>c?max:c6.-47.18.5,0,39.85 belongs to B10. (1) (a==0) (2) (b==0) (3) (disc<0)4-3 编程题1.#include “math.h”main(){ float a,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if (a+b>c && a+c>b && b+c>a){ s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“%f”,area);}}2.main(){ int x,y;scanf(“%d,%d”,&x,&y);if (x*x+y*y>1000)printf(“%d\n”,(x*x+y*y)/100); elseprintf(“%d\n”,x+y);}3.main(){ int x,scanf(“%d”,&x);if(x%3==0 && x%5==0 && x%7==0) printf(“yes\n”);elseprintf(“no\n”);}4.#include “math.h”main(){ float x,y;scanf(“%f”,&x);if(x<-2) y=x*x-sin(x);else if (x<=2) y=pow(2,x)+1;else y=sqrt(x*x+x+1);printf(“%f\n”,y);}5. main( )long a,b,c,d,e,x;scanf("%ld",&x);a=x/10000;/*分解出万位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);}6.1.程序分析:main( ){long ge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf("this number is a huiwen\n");elseprintf("this number is not a huiwen\n");}7. main(){float p,w,s,d,f;scanf(“%f,%,%f”,p,s,w);if (s>3000) d=0.15else if( s>=2000) d=0.1;else if(s>=1000) d=0.08;else if(s>=500) d=0.05;else if(s>=250) d=0.02;else d=0f=p*w*s*(1-d);printf(“%f”,f);}习题55-1单选题1~5 CDACB 6~10 DCAAB 11~16 DBDBCB5-2填空题1.2 02.k=5,s=43.3334.How Are You5.2#18#6.(1) i<10 (2) j%3!=07.(1) flag*(float)k/(k+1) (2) flag=-flag8.(1) s=0,t=1; (2) t=t*x/i*pow(-1,i+1); (3) printf(“%f”,s); 9.(1) max=x (2) x!=-1 (3) scanf("%d", &x)10. (1) n=1 (2) s5-3 编程题1. (1) main(){ int i; lont s=0;for(i=1;i<=100;i++)s+=i*i;printf(“%ld”,s);}(2)main(){ int i; lont p=1,s=0;for( i=1;i<=10;i++){p=p*i;s+=p;}printf(“%ld”,s);}(3) main(){ int i=1; lont p=1;float s=0;do{s+=1.0/p;p*=++i;}while(1.0/p>1e-6)printf(“%f”,s);}(4)main(){ int i=1, flag=1,pi=0;do{s+=flag*1.0/(2*i-1);i++;}while(1.0/(2*i-1)>1e-6);pri ntf(”%f”,s);}2.main(){int m,n,t,a,b;scanf(“%d,%d” ,&m,&n) ;if (m<n){ t=m ;m=n ;n=t ;}a=m;b=n;t=m%n ;while(t){ m=n ; n=t ;t=m%n;}printf(”%d,%d”,n,a*b/n);}3. main(){int x,y,s=1;scanf(”%d,%d”,&x,&y) ;for( ;y>0 ;y--)s*=x ;printf(”%d,%d,%d\n ”,s%10,s/10%10,s/100%10); }4.main(){int i=1, k=2, sum=0;do{sum+=k;k=k*2;i++;}while(sum<=100);printf(”total=%f\n”, 0.4*sum/(i-1));}5. main(){ int x,y,z;for( x=1 ; x<20 ;x++)for( y=1 ;y<33 ;y++){ z=100-x-y ;if (z>=0 && (5*x+3*y+z/3)-100<1e-5)printf(”x=%d,y=%d,z=%d\n”,x,y,z) ;}}6. main(){int j,k ;for( j=1 ;j<=4 ;j++){for(k=1;k<=4-j;k++;)printf(” ”);for(k=1 ;k<=2*j-1 ;k++)printf(”*”) ;printf(”\n”) ;}for( j=3;j>=1;j--){ for(k=1;k<=4-j;k++;)printf(””);for(k=1;k<=2*j-1;k++)printf(”*”);printf(”\n”);}}7.分析:其实此问题的解法非常简单。

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语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题,2,-8,23.000000,2.500000,-8.0000002. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。

#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案为了适应标题所需的字数限制,我将按照适当的格式和排版要求来回答C语言程序设计(第二版)习题的参考答案。

以下是部分习题的解答示例:1. 基本概念与语法1.1 变量和数据类型C语言中的变量用于存储不同类型的数据。

常见的数据类型包括整型、浮点型、字符型等。

例如,声明一个整型变量x并赋值为10的方法如下:```cint x = 10;```1.2 操作符和表达式C语言提供了丰富的操作符和表达式,用于进行数值计算和逻辑判断。

例如,使用逻辑与(&&)操作符可以判断两个条件同时成立的情况,示例如下:```cif (x > 0 && x < 100) {// 满足条件的代码```2. 流程控制2.1 分支结构流程控制中的分支结构用于根据条件来执行不同的代码块。

常见的分支结构有if语句和switch语句。

例如,使用if语句判断一个数的正负情况:```cif (x > 0) {printf("x是正数\n");} else if (x < 0) {printf("x是负数\n");} else {printf("x是零\n");}```2.2 循环结构循环结构用于多次执行相同的代码块。

常见的循环结构有for循环、while循环和do-while循环。

例如,使用for循环输出1到10的数字:for (int i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");```3. 函数和数组3.1 函数的定义和调用函数是一段完成特定功能的代码块,可以多次调用。

函数的定义包括函数名、参数列表和返回值类型。

例如,定义一个用于计算两个整数相加的函数:```cint add(int a, int b) {return a + b;}// 调用add函数int result = add(3, 5);printf("3 + 5 = %d\n", result);```3.2 数组的定义和使用数组是一种存储相同类型数据的集合。

C语言程序设计教程(第2版)课后习题答案(完美版)

C语言程序设计教程(第2版)课后习题答案(完美版)

C语言程序设计教程(第二版)课后习题答案第一章C语言程序设计概述-习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2 C语言程序的基本结构是怎样的?举一个例子说明。

答1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。

3 C语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。

4★指出合法与不合法的标识符命名。

答AB12--√leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2 --√ AVE#XY--× _762--√ #_DT5--× C.D--×5说明下列Turbo C热键的功能。

答F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序) Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。

6说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。

①main(){printf("********************\n");printf(" welcome you \n");printf(" very good \n);printf("********************\n");}②main()printf("please input three numbers;");scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/t=max(max(a,b),c);printf("max number is:%d\n",t);}int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);}答运行结果:********************welcome youvery good********************运行结果:please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/max number is:47一个C程序是由若干个函数构成的,其中有且只能有一个___函数。

(由李凤霞老师提供)《C语言程序设计教程(第二版)》北理工李凤霞版习题答案

(由李凤霞老师提供)《C语言程序设计教程(第二版)》北理工李凤霞版习题答案

李凤霞老师保留本文档的所有权利。

教材习题答案第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题1. 判断条件2. 面向过程编程3. 结构化4. 程序5. 面向对象的程序设计语言6. 基本功能操作、控制结构7. 有穷性8. 直到型循环结构9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分第二章 习题 一 、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题1. 主2. C 编译系统3. 函数、函数4. 输入输出5. 头6. .OBJ7. 库函数8. 文本第三章 习题 一、单项选择题 1. D 2. B 3. A 4. C 5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题1. 补码2. 30810-±(~)30810,15—6 2. 30810-±(~)30810,15—63. 逻辑4. 单目,自右向左5. 函数调用6. a 或b (题目有错,小括号后面的c<=98改成(c>=97&&c<=98)就可以得到所给的答案了)7. 18. 65,89第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D6. B7. A8. C9. B 10.B二、填空题 1. 一 ; 2. 5.1690003. (1)-200 2500 (2)i=-200,j=2500 (3) 2500200=-=j i4. a=98,b=765.000000,c=4321.0000005.100 25.81 1.89234 ,100 25.81按Enter 键)1.89234,100(按Tab 键)25.81(按Tab 键)1.892346. 0,0,37. 38. scanf(" %lf %lf %lf",&a,&b,&c); 9. 13 13.000000 13.00000010.b=a;a=c;c=b;或a=a+b;c=c-b;(对于本题来说,后者的答案更好,不仅使a 与c 的值进行交换而且能保持中间变量b 的值不发生改变)第五章 习题 一、单项选择题 1. D 2. C 3. B 4. B 5. D 6. A 7. B 8. D 二、填空题1. 非零,零2. k= =0 2. k= =03.if(abs(x)>4)Printf(“%d ”,x); elseprintf(“error!”);4. if(x%2==1&&( (x>=1)&&(x<=10)||(x>=200&&x<=210))printf("%d",x);5. k=1(原题最后一行漏了个d,如果认为原题正确,则输出k=%。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1习题1解答1.(1)机器语言是计算机直接理解执行的语言,由一系列(二进制)指令组成,其助记符构成了汇编语言;接近人的自然语言习惯的程序设计语言为高级语言。

(2)结构化程序设计方法主要内容有:自顶向下,逐步求精;面向对象方法将现实世界中的客观事物描述成具有属性和行为的对象,抽象出共同属性和行为,形成类。

(3)C++程序开发通常要经过5个阶段,包括:编辑,编译,连接,运行,调试。

首先是编辑阶段,任务是编辑源程序,C++源程序文件通常带有.c p p 扩展名。

接着,使用编译器对源程序进行编译,将源程序翻译为机器语言代码(目标代码),过程分为词法分析、语法分析、代码生成3个步骤。

在此之前,预编译器会自动执行源程序中的预处理指令,完成将其他源程序文件包括到要编译的文件中,以及执行各种文字替换等。

连接器的功能就是将目标代码同缺失函数的代码连接起来,将这个“漏洞”补上,生成可执行文件。

程序运行时,可执行文件由操作系统装入内存,然后CPU从内存中取出程序执行。

若程序运行进程中出现了错误,还在需要对程序进行调试。

(4)对象与对象之间通过消息进行相互通信。

(5)类是具有相同属性和行为的一组对象的抽象;任何一个对象都是某个类的一个实例。

(6)多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。

(7)面向对象的软件开发过程主要包括面向对象的方法分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的维护。

(8)泛型程序设计是指在程序设计时,将数据类型参数化,编写具有通用性和可重用的程序。

(9)# include <iostream>是一条预处理指令(语句),在编译(或预处理)时由编译器(或预编译器)执行,其功能是将iostream文件包含(复制)到指令处。

(10)C++中使用cin作为标准输入流对象,通常代表键盘,与提取操作符>>连用;使用cout 作为标准输出流对象,通常代表显示设备,与<< 连用。

2.简答题(1)叙述机器语言、汇编语言、高级语言的特点。

机器语言是计算机直接执行的语言,由二进制的0和1构成的一系列指令组成;汇编语言是机器语言的助记符;高级语言是接近人的自然语言习惯的编程语言,通过编译变成机器语言。

(2)结构化的语言与面向对象的语言是截然分开的吗?不是截然分开的,面向对象的程序设计中也包含过程,含有结构化的思想。

(3)C编写的程序不加修改就可以在C++编译器中编译。

(5)C++程序通过编译变成带扩展名.obj的目标文件;再通过连接变成带扩展名.exe的可执行文件。

(6)如果要求不使用include包含头文件,有什么办法使程序正常编译运行?在相应的文件夹(子目录)中,找到需要包含的头文件,将头文件复制到包含处。

3.单选C++语言程序能够在不同操作系统下编译、运行,说明C++具有良好的移植性。

(可以说C++语言完全兼容C语言,但是在这不能说C++语言程序能兼容不同的操作系统;对于计算机硬件,一般使用“兼容”一词,对于程序使用“移植”)。

(3)#include语句在程序运行前就执行了。

(4)C++程序运行时总是起始于main( );(5)用C++写程序时一个语句可分几行写。

(6)面向对象编程方法有:对象、继承、类等。

1.2习题2解答1.(1)C++的基本数据类型可分为5大类:逻辑型(或布尔型)、字符型、整形、实型、空值型。

分别用关键字bool , char , int , float / double , void 定义。

长度分别为1,1,4,4/8,不定字节。

整型、字符型的默认符号修饰为signed。

(2)十进制数值、八进制数值、十六进制数值的前缀分别为1~9 , 0 , 0x(或0X)。

(3)一个整数值的数据类型为int,一个带小数点的数据类型为double。

(4)C++预定义的常用转义序中,在输出流中用于换行、空格的转义序列分别为\n,\t。

(5)布尔型数值只有两个;true, false。

在C++的算术运算式中,分别当作1,0。

(6)字符由单引号’’括起来,字符串由双引号“”括起来。

字符只能有1个字符,字符串可以有多个字符。

空串的表示方法为“\0”(或“”)。

(7)标识符以英文字母,下划线开头。

(8)定义变量的同时赋初值的方法有赋值运算符=,括号。

定义常变量初值的方法有赋值运算符=,括号。

(9)关系运算符操作数的类型可以是任何基本数据类型,对其中的实数类型不能进行直接比较。

(if(a<b)那么a和b为什么可以是float或double?)(-10)&&与||表达式按从左到右的顺序进行计算,以&&连接的表达式,如果左边的计算结果为false(或0),右边的计算不需要进行,就能得到整个逻辑表达式的结果:false;以||连接的表达式,如果左边的计算结果为true(或非0),就能得到整个逻辑表达式的结果:true。

(11)>>运算符将一个数右移n位,相当于将该数除以2n,<<运算符将一个数左移n位,相当于将该数乘以2N。

(12)所有含赋值运算的运算符左边要求是左值。

(13)前置++、――的优先级高于后置++、――。

(14)按操作数数目分,运算符的优先级从高到低排列为单目、双目、三目,按运算符的性分,优先级从高到低排列为算术、移位、关系、按位、逻辑。

(15)在表达式中会产生副作用的运算符有++、- -、各类赋值。

1.3 习题3解答1.(1)if语句中的表达式可以是任意表达式(关系表达式、逻辑表达式、算术表达式、常量)。

1.4习题4解答1.(1)一个C++程序就是由一个个函数组成的即使是最简单的程序也有一个main()函数。

(2)函数执行过程中通过return语句将函数值返回,当一个函数不需要返回值,此时需要使用void作为类型名。

(3)在C++中,如果函数定义在后,调用在先,需要进行函数原型声明,告诉编译器函数的(返回)类型,函数名,形式参数。

其格式和定义函数时的函数头的形式基本相同,它必须以分号;结尾。

(4)函数调过程的3个步骤为:函数调用(或参数传递),函数体执行,返回。

(5)函数参数传递过程的实质是将实参值通过堆栈一一传送给实参。

(实参传给实参?)(6)递归程序分两个阶段执行调用,回代。

(7)带inline关键字定义的函数为内联函数,在编译时将函数体展开到所有调用处。

内联函数的好处是节省执行时间开销。

(8)函数名相同,但对应形参表不同的一组函数称为重载函数,参数表不同是指参数个数、类型不同。

(9)确定对重载函数中函数进行绑定的优先次序为精确匹配,对实参的类型向高类型转换后的匹配,实参类型向低类型及相容类型转换后的匹配。

(10)当既存在重载函数、又有函数模板,函数调用优先绑定重载函数,只有不能精确匹配重载函数时,才实例化类模板。

(11)内联函数的展开、重载函数的绑定、类模板的实例化与绑定均在编译阶段进行。

(12)在C++中,函数不允许嵌套定义,允许嵌套调用。

2.(1)void fun(void) 的定义是正确的。

double fun(int x;int y) 和int fun();和double fun(int x,y) 这都是不正确的(定义是不能以;结尾的)。

(2)函数int fun(int x, int y)的声明形式可以是int fun(int, int);和int fun(int y,int x);和int fun(int i,int j); int fun(int x, int y)是不正确的因为函数的声明必须以;结尾)。

(3)C++语言中规定函数的返回值的类型是由定义该函数时所指定的数据类型所决定。

(5)在C++中默认的形参值应该先从右边的形参开始向左边依次设置。

(6)重载函数参数个数相同时,参数类型必须不同。

(7)系统在调用重载函数时,依据的是函数名称、实参个数、实参类型。

不能是函数类型。

(9)为了取代C中带参数的宏,在C++ 中使用内联函数。

(10)函数模板定义的头部template<class t1,typename t2,int s=0>(11)若fun(8,3.1)调用的可以是fun(double, double)――(当没有精确匹配时,优先进行向高类型转换后的匹配)(12)若fun(8,3.1)调用的可以是template <class T1, class T2>fun (T1,T2)1.5习题5解答1.(-1)enum weekday {sun,mon,tue,wed=4,thu,fri,sat};weekday workday =mon;cout<<workday+wed<<endl;输出:5(怎么加的?)(2)在C++中,引用数组元素时,其数组下标的数据类型允许是非浮点型表达式,整形常量、整形表达式(整型表达式实际上包含了整型常量)。

(3)设有数组定义:char array[]=”China”; 则数组array所占的空间为6个字节(’\0’)。

(4)若:int a[][3] = {1,2,3,4,5,6,7};则a 数组高维的大小为:3。

(6)若二维数组a有m 列,则在a[i][j]前的元素个数为i*m+j ;1.6习题六解答1(1)从变量的定义位置分,可分为全局变量与局部变量。

其中,局部变量定义在函数或复合语句中,供函数或复合语句中使用。

(2)变量的存储类型分为auto , extern , register , static 。

当声明一个静态(static)变量,它既具有局部变量的性质,又具有全局变量的性质。

(3)C++程序的内存分为4个区:全局数据区,代码区,栈区,堆区。

全局变量,静态变量,字符串常量存放在全局数据区,所有在函数和代码存放在代码区,为运行函数而分配的函数参数,局部变量,返回地址存放在栈区。

动态分配的内存在堆区。

(4)全局变量,静态变量具有静态生存期;局部变量生存期为动态。

(5)函数原型中形参标识符的作用域为为函数原型,函数的形参与函数体作用域为块作用域;函数,全局变量与常量有文件作用域。

(6)C++源程序中以# 开头,以换行符结尾的行称为预处理命令。

预处理命令编译前由预处理器执行。

(7)可以通过3种方法使用名字空间,个别使用声明方式,全局声明方式,全局声明个别成员。

2.(1)在C++中,函数默认的存储类别为:auto。

(2)函数的形式参数是局部变量,在一个函数体内定义的变量只在本函数范围内有效,在函数的复合语句中定义的变量只在此复合语句中有效。

(3)# define PI 3.14 预处理命令必须以#开头,凡是以#开头的都是预处理命令行,在程序执行前执行预处理命令。

相关文档
最新文档