
第1章计算机概述习题答案1)冯·诺依受计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯·诺依曼计算机模型有5部分,分别是:计算单元、控制单元、存储单元、输入和输出。计算负责运算,控制负责如何运算,运算哪些数据,存储单元负责数据存储,输入和输出负责数据的输入输出。2)简述计算机的工作原理。答:先将内存1中的数据1放入寄存器A,再将内插2数据2放入寄存器B,对两个寄存器执行算是运算(十,一,*,/)或逻辑运算,将结果放到目标内存,完成一次运算。3)列举普通计算机的组成部分。答:CPU、主板、硬盘、显示器、键盘等。4)列举常用的计算机软件操作系统,答:Windows,Linux,os2,Android等5)什么叫软件?说明软件与硬件之间的相互关系,答:软件是安装在计算机上用于控制计算机如何处理数据的一些程序。软件使用硬件完成处理,硬件给软件做具体运算。6)简述软件开发的过程。答:了解需要一设计算法一>编写代码一编译代码一>测试修改问题一>形成软件7)列举几种程序设计语言。答:c/c++,Pascal,Java, C#,Basaic1
1 第 1 章 计算机概述 习题答案 1)冯·诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么? 答:冯·诺依曼计算机模型有5部分,分别是:计算单元、控制单元、存储单元、输入和输 出。计算负责运算,控制负责如何运算,运算哪些数据,存储单元负责数据存储,输入和输 出负责数据的输入输出。 2)简述计算机的工作原理。 答:先将内存1中的数据1放入寄存器A,再将内插2数据2放入寄存器B,对两个寄存器 执行算是运算(+,-,*,/)或逻辑运算,将结果放到目标内存,完成一次运算。 3)列举普通计算机的组成部分。 答:CPU、主板、硬盘、显示器、键盘等。 4)列举常用的计算机软件操作系统。 答:Windows, Linux, OS2 ,Android 等 5)什么叫软件?说明软件与硬件之间的相互关系。 答:软件是安装在计算机上用于控制计算机如何处理数据的一些程序。软件使用硬件完成处 理,硬件给软件做具体运算。 6)简述软件开发的过程。 答:了解需要->设计算法->编写代码―>编译代码->测试修改问题->形成软件 7)列举几种程序设计语言。 答:C/C++ ,Pascal,Java,C#,Basaic

第2章编程基础习题答案1)将十六进制数A0转化为十进制数是160_。2)十进制整数100转化为二进制数是11001003)十进制数24转换为二进制数是110004)十进制数(16.25)转换成二进制数_10000.01八进制数30.3_十六进制_10.4:5)十进制整数31转换成二进制数的结果是111116)将十六进制数1D转化为十进制数是29八进制数是_35_。7)十进制整数12转换成二进制数的结果是110018)十进制整数108化为二进制数是11011009)十六进制1000转换成十进制数是409610)十进制整数64转化为二进制数是1100011)十进制数32.375转化为二进制数是100000.01011111112)在32位机器字长中,-31的补码是11.110000121的反码为1110101013)将进制数-16转换成32位长的机器数,正确的结果为111...111000014)在32位机器字长中,-31的补码是11.1100001。15)在32位机器字长中,-8的补码是1...1111100016)用1个字节表示非负整数,最大值十进制数为25517)用1个字节表示带符号整数,其最大值所对应的十进制数为12718)32位无符号整数的取值范围0~232-119)1KB的实际容量是—1024字节。字节。20)32KB的存储器共有32*102421)计算机中,一个字节由_8位二进制位组成。22)假定x=64,y=88,则x>2的值分别为_256_和222
2 第 2 章 编程基础 习题答案 1)将十六进制数 A0 转化为十进制数是_160_。 2)十进制整数 100 转化为二进制数是_1100100_。 3)十进制数 24 转换为二进制数是_11000_。 4)十进制数(16.25)转换成二进制数_10000.01_八进制数_30.3_十六进制_10.4_ 5)十进制整数 31 转换成二进制数的结果是__11111____。 6)将十六进制数 1D 转化为十进制数是__29___八进制数是_35_。 7)十进制整数 12 转换成二进制数的结果是__1100__。 8)十进制整数 108 化为二进制数是__1101100____。 9)十六进制 1000 转换成十进制数是__4096____。 10)十进制整数 64 转化为二进制数是__11000____。 11)十进制数 32.375 转化为二进制数是_100000.010111111_。 12)在 32 位机器字长中,-31 的补码是_11.1100001_ 21 的反码为_11101010__。 13)将十进制数-16 转换成 32 位长的机器数,正确的结果为___111.1110000___。 14)在 32 位机器字长中,-31 的补码是__11.1100001_。 15)在 32 位机器字长中,-8 的补码是__1.11111000____。 16)用 1 个字节表示非负整数,最大值十进制数为__255____。 17)用 1 个字节表示带符号整数,其最大值所对应的十进制数为_127__。 18)32 位无符号整数的取值范围_0~232-1____。 19)lKB 的实际容量是__1024____字节。 20)32KB 的存储器共有_32*1024___字节。 21)计算机中,一个字节由_8__位二进制位组成。 22)假定 x=64,y=88,则 x>2 的值分别为_256_和_22_

第3章C与C++语言及开发环境习题答案1)c源程序的基本单位是函数2)一个c源程序中至少应包括一个main()函数。3)一条简单语句是以;,字符作为结束符的,一条复合语句是分别以,(字符和)字符作为开始符和结束符的。4)任何一个℃程序至少且只能包含一个函数,且程序总是从这个函数.main()开始执行,不论这个函数的位置如何。5)头文件和源程序文件的扩展名分别为*h和*.c或(*.cpp)6)c语言的基本输出的函数是scanf_(cin)_输入的函数是_printf_(cout)。7)cout与操作符<_配合使用才能显示输出,cin与操作符_》配合使用才能实现输入。8)什么是标识符?有哪些需要注意的?c语言中标识符是由字母(A-z,a-z)、数字(0-9)、下划线“”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,al,progto。c语言中把标识符分为三类:关键字,预定义标识符,用户自定义标识符。需要注意:1.不能把c语言关键字作为用户标识符,例如if,for,while等,2.标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是c89标准,c99标准已经扩充长度,其实大部分工业标准都更长)。3.标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。4.标识符命名应做到“见名知意”,例如,长度(外语:1ength),求和、总计(外语:sum),圆周率(外语:pi)等。3
3 第 3 章 C 与 C++语言及开发环境 习题答案 1)C 源程序的基本单位是_函数_。 2)一个 C 源程序中至少应包括一个_main()_函数。 3)一条简单语句是以_;_字符作为结束符的,一条复合语句是分别以_{_字符 和_}_字符作为开始符和结束符的。 4)任何一个 C 程序至少且只能包含一个_main()_函数,且程序总是从这个函数 开始执行,不论这个函数的位置如何。 5)C 头文件和源程序文件的扩展名分别为_*.h_和_*.c_或(*.cpp)_。 6)C 语言的基本输出的函数是_scanf_ (cin)_输入的函数是_printf_(cout)_。 7)cout 与操作符_>_配合使 用才能实现输入。 8)什么是标识符?有哪些需要注意的? c 语言中标识符是由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不 能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。C 语言 中把标识符分为三类:关键字,预定义标识符,用户自定义标识符。 需要注意: 1.不能把 C 语言关键字作为用户标识符,例如 if ,for, while 等. 2.标识符长度是由机器上的编译系统决定的,一般的限制为 8 字符(注:8 字符长度限 制是 C89 标准,C99 标准已经扩充长度,其实大部分工业标准都更长)。 3.标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大 写。 4.标识符命名应做到“见名知意”,例如,长度(外语:length),求和、总计(外语: sum),圆周率(外语:pi)等

9)什么是关键字?试列举10个关键字。答:关键字是C语言保留的一些保留字,有特定的含义,不能作为普通标识符使用。如int,float,char,double,if,else,for,while,break,continue,switch,case等。10)程序的源代码是否可以直接运行?如何让程序运行?答:源代码无法执行,必须进行编译,生产可以执行的代码才可以执行。11)简述可执行程序的生成过程。答:先编写代码,然后进行编译,生产无语法错误的目标码,最后将所有用到的目标码进行连接产生可执行程序。4
4 9)什么是关键字?试列举 10 个关键字。 答:关键字是 C 语言保留的一些保留字,有特定的含义,不能作为普通标识符使用。如 int ,float , char ,double , if , else , for ,while ,break , continue ,switch ,case 等。 10)程序的源代码是否可以直接运行?如何让程序运行? 答:源代码无法执行,必须进行编译,生产可以执行的代码才可以执行。 11)简述可执行程序的生成过程。 答:先编写代码,然后进行编译,生产无语法错误的目标码,最后将所有用到的目标码 进行连接产生可执行程序

第4章数据类型和基本语句习题答案1)C和C++的基本数据类型有哪些?试列举3种。charintfloatdoubleshort long bool 等2)变量有什么用,常量是什么,他们有什么区别,试举例说明。变量用来保存计算用的数据,常量是程序中不可修改的数据3)数据类型int,char,bool,float,double,int*各占多数字节的空间?int:4bool:1int*4char:1float:4double:84)什么是算术运算?什么是关系运算?什么是逻辑运算?算术运算:进行加、减、乘、除的数学运算。关系运算:判断两个量之间的大、小、是否相等的运算。逻辑运算:对几个变量进行与、或、非的运算;5)C语言中如何表示“真”和“假”?系统如何判断变量的“真”和“假”?非零表示“真”零表示“假”6)写出下面各逻辑表达式的值。设a=3,b=4,c=5(1)a+b>c&&b==c(2)al[b+c&&b-c(3) ! (a>b)&&!c/ /1(4) ! (x=a)&& (y=b)&&0(5)!(a+b)+c-1&&b+c/2(1-5) : 0 1 1 0 17)假定x是一个逻辑量,则x&&true的值与×的值相同,xfalse的值也与x5
5 第 4 章 数据类型和基本语句 习题答案 1)C 和 C++的基本数据类型有哪些?试列举 3 种。 char int float double short long bool 等 2)变量有什么用,常量是什么,他们有什么区别,试举例说明。 变量用来保存计算用的数据,常量是程序中不可修改的数据 3)数据类型 int,char,bool,float,double, int*各占多数字节的空间? int: 4 char: 1 bool: 1 float:4 double: 8 int* 4 4)什么是算术运算?什么是关系运算?什么是逻辑运算? 算术运算: 进行加、减、乘、除的数学运算。 关系运算:判断两个量之间的大、小、是否相等的运算。 逻辑运算:对几个变量进行 与、或、非 的运算; 5)C 语言中如何表示“真”和“假”?系统如何判断变量的“真”和“假”? 非零表示“真”,零表示“假” 6)写出下面各逻辑表达式的值。设 a=3,b=4,c=5. (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2 (1-5):0 1 1 0 1 7)假定 x 是一个逻辑量,则 x&&true 的值与_ x _的值相同,x||false 的值也与_ x

的值相同。8)若x=5,y=10,则计算y*=++x;表达式后,x和y的值分别为6和609)若x=25,则计算y=x一一:表达式后,x和y的值分别为_24_和_25。10)若x=25,y=3,则计算z=x-y=2:表达式后,x、y、z的值分别为2和2和2。10)编程实现输入一个自然数,判断它是奇数还是偶数。void main() (int a;cin>>a;if((a%2)==0)cout>a>>b;a=atb;b=a-b;a=a-b12)编程从键盘输入圆的半径I,计算出圆的周长和面积void main()(float r;cin>>r;cout<<"Area="<<3.1415926*r*rcout<<"Perimeter="<<2*3.1415926*r;6
6 _的值相同。 8)若 x=5,y=10,则计算 y *= ++x;表达式后,x 和 y 的值分别为_6_和_60_。 9)若 x=25,则计算 y=x--;表达式后,x 和 y 的值分别为_24_和_25_。 10)若 x=25,y=3,则计算 z=x=y=2;表达式后,x、y、z 的值分别为_2_和_2_ 和_2_。 10)编程实现输入一个自然数,判断它是奇数还是偶数。 void main(){ int a; cin>>a; if ( (a%2)==0 ) cout>a>>b; a = a+b; b = a-b; a = a-b } 12)编程从键盘输入圆的半径 r,计算出圆的周长和面积。 void main(){ float r; cin>>r; cout<<”Area=”<<3.1415926*r*r; cout<<”Perimeter=”<<2*3.1415926*r;

113)已知一元二次方程ax2+bx+c=0,编一程序当从键盘输入a、b、c的值后,计算x的值。voidImain()(double a,b,c;cin>>a>>b>>c;if((b*b-4*a*c)>=0cout<<"xl="<<(-b+sqrt(b*b-4*a*c)))/(2*a);cout<<"x2="<<(-b-sqrt(b*b-4*a*c)))/(2*a);lelse(cout<<"no real root."1-7
7 } 13)已知一元二次方程 ax2+bx+c=0,编一程序当从键盘输入 a、b、c 的值后,计算 x 的 值。 void main(){ double a,b,c; cin>>a>>b>>c; if ( (b*b-4*a*c)>=0 ){ cout<<”x1=”<< (-b+sqrt(b*b-4*a*c)))/(2*a); cout<<”x2=”<< (-b-sqrt(b*b-4*a*c)))/(2*a); }else{ cout<<”no real root.” } }

第5章条件选择结构习题答案1)在嵌套if语句中,每个else关键字与它前面最接近的if关键字相配套。2)switch语句中,case后面一的是整型常量。3)输入一个次份和月份,打印出该月份有输少天(考虑闰次),用switch语句。void main((int y,m;cin>>y>>m;switch(m)(case l:case 3:case 5:7:case8:case福10:case12:casecout<<31;break;case 2:cout<<((y%4)1/(y%100==0&&y%400!=0))?28:29;break;case 4:6:casecase 9:case il:cout<<30;break;deault:cout<<"error input."8
8 第 5 章 条件选择结构 习题答案 1)在嵌套 if 语句中,每个 else 关键字与它前面最接近的_if_关键字相配套。 2)switch 语句中,case 后面跟的是_整型常_量。 3)输入一个年份和月份,打印出该月份有多少天(考虑闰年),用 switch 语句。 void main(){ int y,m; cin>>y>>m; switch( m ){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: cout<<31; break; case 2: cout<<((y%4)||(y%100==0&&y%400!=0))?28:29; break; case 4: case 6: case 9: case 11: cout<<30; break; deault: cout<<”error input

break;14)从键盘输入一个小于1000的正整数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其检查是否为小于1000的正数。void main()(double a;int ai,r;cin>>a;ai = a;if(a1000lla!=ai)cout>sc;if(sc>=9o)cout=80 &&Sc=70 &&Sc=60 &&Sc<=69cout<<"D";else cout<<"E"9
9 break; } } 4)从键盘输入一个小于 1000 的正整数,要求输出它的平方根(如平方根不是整数,则 输出其整数部分)。要求在输入数据后先对其检查是否为小于 1000 的正数。 void main(){ double a; int ai,r; cin>>a; ai = a; if ( a1000 || a!=ai ){ cout>sc; if ( sc>=90 ) cout=80 && sc=70 && sc=60 && sc<=69 ) cout<<”D”; else cout<<”E” }

6)给出一个不多于5位数的正整数;a.求出它是几位数:b.分别输出每一位数字:c.按逆顺序输出各位数,例如原有数为123,应输出321void main()(inta,al,a2,a3,a4,a5;cin>>a;if ( a99999 ) cout0)cout0 )(cout0 )( cout0)cout>a1>>a2>>a3>>a4;if(a1>a2)(t=al;al=a2;a2=t;)if(a1>a3)(t=al;al=a3;a3=t;)10
10 6)给出一个不多于 5 位数的正整数; a. 求出它是几位数; b. 分别输出每一位数字; c. 按逆顺序输出各位数,例如原有数为 123,应输出 321 void main(){ int a,a1,a2,a3,a4,a5; cin>>a; if ( a99999 ) cout0 ){ cout0 ){ cout0 ){ cout0 ){ cout>a1>>a2>>a3>>a4; if (a1>a2){ t=a1;a1=a2;a2=t; } if (a1>a3){ t=a1;a1=a3;a3=t; }