计算机程序设计基础教程A这门课的内容是不是C++

下载费用:10 金币 &
计算机程序设计基础(C++)(景红版)课后全部习题及参考答案.doc
习 题第 1 章1. 什么是软件?2. 简述软件的开发过程。3. 什么是程序设计?4. 简述程序设计过程。5. 数据结构的含义是什么?6. 简述算法的表示方法。7. 什么是结构化算法?8. 简述结构化程序设计思想。第 2 章 C++的基础知识一、填空题1.???C++语言中的标识符只能由 、 和 三种字符组成,且打头字符不能是 。2.???C++程序的目标文件的扩展名是 。3.? 在 C++程序中,使用输入输出流需要包含的头文件是 。4.? 当执行 cin 时,从键盘上一次输入多个数据时,每个数据后必须输入一个 ,然后才可以接着输入下一个数据。5.? 转义字符序列中的首字符是 字符。6.? 空字符串在内存中的存储空间是 个字节 。7. 以/?开始,?/结束,在/?和?/ 之间的部分即为 。8. 赋值表达式 y=x++的含义是 ,y=++x 的含义是 。9.??cout 输出转义字符 是使光标移到屏幕上的下一行。10.??C++语言的基本数据类型有 、 、 、 、 五种。二、判断题( )1.“C”是字符常量。( )2. 在命名标识符时,大小写字母是不加区分的。( )3.??C++程序中,对变量一定要先说明再使用,说明只要在使用之前就可以。( )4.??C++程序必须有 return 语句。( )5. 执行语句 const int x=10;后,可以重新对 x 赋值。( )6. 语句 a_char = ‘\n’ 表示将小写字母 n 赋值给字符变量 a_char。( )7.??short,int 都是 C++语言的关键字。( )8.??C++编译系统对源程序编译时,可以检查出注释语句中的语法错误。( )9. 将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存变量中去,而是将该字符相应的 ASCII 代码放到存储单元中。( )10. 语句 int answer=3+2?9/(10-6);执行完毕后,变量 answer 的值是 7.5。三、单项选择题1.??C++源程序文件的扩展名为( ) 。(A).CPP (B ).OBJ (C ).C (D).EXE2. 下列变量名中, ( )是合法的。(A)double (B )A+a (C)CHINA (D)5s3. 下列符号能用作 C++标识符的是( )(A)xyz/2 (B) 2xsale (C )x-sale (D ) x_sale4. 下列各运算符中, ( )只能用于整型数据的运算。(A)+ (B )/ (C)? (D)%5.( )不是 C++的基本数据类型。(A)字符类型 (B )数组类型 (C)整数类型 (D)布尔类型6. 下列运算符中,优先级最高的是( ) 。(A)% (B) ! (C )>= (D) /7. 字符串常量“ME”的字符个数是( ) 。(A)4 (B )3 (C)2 (D)18. 在 C++语言中,080 是( ) 。(A)八进制数 (B )十进制数 (C)十六进制数 (D)非法数9. 整型变量 i 定义后赋初值的结果是( ) 。int i=2.8?6;(A)12 (B )16 (C)17 (D)1810.如有 int m=31;则表达式(m++*1/2)的值是( ) 。(A)0 (B)15 (C)15.5 (D)1611.每个 C++程序都必须有且仅有一个( ) 。(A)预处理命令 (B)主函数 (C )函数 (D)语句12.在 C++语言中,自定义的标志符( ) 。(A)能使用关键字并且不区分大小写 (B)不能使用关键字并且不区分大小写(C)能使用关键字并且区分大小写 (D )不能使用关键字并且区分大小写 13.下列 C++标点符号中表示一条语句结束的是( ) 。(A)# (B)// (C )} (D) ;14.下列 C++标点符号中表示一条预处理命令开始的是( ) 。(A)# (B)// (C )} (D) ;15. 定义如下变量:int i=2;int j=3;则 i/j 的结果为( ) 。(A)0.7 (B)0.66667 (C )0.666666… (D)016. 已知 int a=2,a+=a-=a*a 的值是( ) 。(A)-4 (B)-2 (C )0 (D)417. 下列关于 C++关键字的说法中正确的是( ) 。(A)关键字是用户为程序中各种需要命名的 “元素”所起的名字。(B)关键字是对程序中的数据进行操作的一类单词。(C)关键字是在程序中起分割内容和界定范围作用的一类单词。(D)关键字是 C++中预先定义并实现一定功能的一类单词。18.语句 n1=2,n2=++n1,n1=n2++,执行后变量 n1、n2 的值分别为( )(A)3,4 (B)3,3 (C)2,3 (D)2,419.字符型数据在内存中的存储形式是( ) 。(A)补码 (B)ASCII 码 (C ) 反码 (D)原码20.下列程序段执行后输出结果为( )char a= coutvoid main( ){ coutvoid main( ){ const int R=10;const double PI=3.14159;double a,b;a=2?R?PI;b=R?R?PI;int mian( ){int a,b,c,sum,cout>a>>b>>c>>sum=a+b+cavg=sum/3; cout>>?平均数是:?>>}第 3 章 基本程序设计一、判断题( )⒈ if 语句结构中必须有 else 语句。( )⒉ 表达式 7>=3+4 || 66||10>2*6iz”;表达式” (a+b)>cy=20;z=30;if(x>y) x=y;y=z;z=x; ( )13. break 和 continue 语句的作用都是终止本层循环的执行。( )14. 判断变量 x 的数值是否在 3 到 5 之间可以用关系表达式 3#include “iomanip”void main(){ if(a>b) coutn 为 false 或 mn (B) case ‘3’; (C) case 3; (D) case =319. 设 int a=10,b=11,c=12;(a+b)0 的值( ) 。(A) 为 true (B) 为 false (C) 与 n 的值相反 (D) 与 n 的值相同第 4 章 数组的应用一、判断题( )1. 在对全部数组元素赋初值时,不可以不指定一维数组的长度。( )2. 在对全部二维数组元素赋初值时,可以不指定二维数组的行数。( )3. 在 C++程序中,有定义:int a[10] ;数组 a 的最小下标是 1。( )4. 在 C++程序中,有定义:int a[10] ;数组 a 的最大下标是 10。( )5. 可以用同一个数组表示以一组数值型数据和字符型数据。( )6. 有声明: int a[3][2]={1,2,3,4,5,6}; 那么数组元素 a[2][1]的初始值是 6。( )7. 有声明: char ch[10]={’a’,’b’,’c’,’d’,’e’}; 那么赋给数组 ch 的是字符串“abcde ”。( )8. 在对全部二维数组元素赋初值时,必须要指定二维数组的列数。( )9. 字符串“hello,world“在内存中存放时,占用 12 个字节的空间。( )10.定义一个一维字符数组有 50 个元素,用该一维字符数组表示一个字符串数据最多允许有 50 个字符。( )11. C++中各种数据类型的变量在定义后会被自动初始化为 0 值。( )12. 定义数组时可以用变量来定义数组的大小,但不能用表达式。( )13. 定义一个有 50 个元素的一维字符数组,用该数组表示一个字符串数据最多允许有 50 个字符。( )14. 定义一个数组后该数组的最小下标取值是 0。( )15. 静态数组被定义时,数组的所有元素自动获取初始值 0。( )16. 数组是 C++的基本数据类型。( )17. 数组不能用来存放字符串。( )18. 同一数组的所有数组元素在内存中是连续存放的。( )19. 在 C++中数组是具有一定顺序关系的若干相同类型变量的集合体。( )20. 在给全部数组元素赋初值时,可以不指定二维数组中的常量表达式,例如:int a[][]={1,2,3,4,5,6}; 二、单项选择题1. 若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10};则下列( )是对数组元素的正确使用。(A) a[10] (B) a[a[3]-5] (C) a[a[9]] (D) a[a[4]+4]2. 对语句:int a[3][4]={0} ; 描述正确的是( ) 。 (A) 只有元素 a[0][0] 可得到初值 0 (B) 数组 a 中每个元素均可得到初值 0 (C) 此说明语句不正确 (D) 数组 a 中各元素都可得到初值,但其值不一定为 0 3. 若有以下定义,则数组元素 a[2][2]的值是( ) 。int a[][3]={{1,2},{3,2,4},{4,5,6},{1,2,3}};(A) 4 (B) 5 (C) 2 (D) 64. 在下面的一维数组定义中, ( )有语法错误。(A) int a[ ]={1,2,3}; (B) int a[ ]; (C) int a[ ]={0}; (D) int a[5];5. 在下面的一维数组的定义中,不正确的是( ) 。(A) int x[10][10]; (B) int x[ ][10]={{1,3},5,7};(C) int x[ ][ ]; (D) int x[10][10]={0};6. 对长度为 N 的线性表进行顺序查找,在最坏情况下所需要的比较次数为( ) 。(A) N+1 (B) N (C) (N+1)/2 (D) N/27. 将两个字符串连接起来组成一个字符串时,用( )函数。(A) strcat (B) strlen (C) strcpy (D) strcmp8. 希尔排序法属于哪一种类型的排序法( ) 。(A) 交换类排序法 (B) 插入类排序法 (C) 选择类排序法 (D) 建堆排序法9. 若定义了一个 4 行 3 列的数组,则第 8 个元素是( ) 。(A) a[1][3] (B) a[2][3] (C) a[3][1] (D) a[2][1]10.判断两个字符串(分别用 a、b 表示)是否相等的操作为( ) 。(A) a= =b (B) if(a= =b) (C) if(strcmp(a,b)) (D) if(strcpy(a,b))11. 定义一个一维数组,正确的语句是( ) 。(A)int a(10); (B )int n=10;int a[n]; (C)cin>>n;int a[n]; (D)const int n=10;int a[n];12. 以下那种说法错误?( ) 。(A)数组中的元素在某些方面彼此相关; (B)数组中的所有元素具有相同的下标;(C)数组中的所有元素具有相同的数据类型; (D)数组中的所有元素具有相同的名字;13. 语句 int a[]={0,1,2}执行后,数组的元素个数是( )。 (A)2 (B)3 (C)4 (D)不知道14. 下面数组定义错误的是( ) 。(A)#define n 5 (B)const int n=5; char a[n]={“good”}; char a[n]= {“good”};(C)int n=5; (D)const int n=5;char a[n]={“good”}; char a[n+2]={“good”};15. 执行下列语句:int c[4]={0,1,2,3}; for(int i=0; ivoid main( ){ int a[4],i,j,k;for(i=0;i#includvoid main(){ int s[3][3],i,j,k;for(i=0;void main( ){ int a[4],i,j,k;for(i=0;void main( ){ int a[2][3],j,k;for(k=0;k#includvoid main( ){ int s[4][4],i,j,k;for(i=0;void main( ){ const int N=7;int a[N][N],i,j;for(i=0;i#includvoid main( ){ const int N=5; int a[N][N]; int i,j;for(i=0;i#includvoid main( ){ int a[10]={1,1,2,3,2,7,4,2,8,9};int b=32%6; int i,j,c=0,k=9;for(i=0;void main( ){ int i,j;double a[11];cout>a[i];for(i=1;ivoid main( ) { const int N=10; int a[N], j,k;cout>a[j];for(j=0;void main( ){ int a[10],i,j,pos=1;for(i=0;i>a[i];for(i=1;i 2 3 void main( )4 { int a[10],low=9,mid,high=0,x,5 cout>a[i];8 cout>x; 10 while(lowx) 17 high=mid-1;18 else 19 low=mid+1; 20 }21 if(low>high) 22 cout>*p; } 从键盘输入数组的值。( )9. 在操作一个一维数组时,可能会用到两个指针变量指向该数组,这两个指针变量之间可以进行关系运算,其关系运算的结果表明了这两个指针变量所指向的数组元素的先后关系。( )10. 对于已经定义好的相同的两个指针变量之间,可以进行加法运算、减法运算和赋值运算。( )11. 设有如下一段程序 : int *var,;ab=100;var= 则数值为 9 的表达式可以表示为 *p+=9。( )13. 有定义语句:int a[5][5],*p;二维数组 a 首地址可表示为:p=a[0] 或 p=void fun(int *a, int b){ int *k;k=a; *a=b; b=*k;}void main( ){ int a=3,*x= int y=5; fun(x,y);couvoid fun(char *c,int d){ *c=*c+1;d=d+1;}void main( ){ char a= A ,b=fun(couvoid fun(char *a, char *b){ a=b; (*a)++; }void main( ){ char c1= A , c2= a , *p1, *p2;p1= p2= fun(p1,p2);cout>s1>>‘#’>>s2>>14.以下( )语句能将 city 变量写入名为 date1.dat 的输出文件。(A)date1.dat >city>>三、阅读程序题1:#include #includeclase Cdisp{ int x,y; public:Cdisp(int i=0,int j=0){ x=i; y=j; }void disp( ){ cout#includevoid main(){ int num[4],m[4],e [4],c[4];ifstream outFoutFile.open(“score1.dat“,ios::in);cout>num[i]>>m[i]>>e[i]>>c[i];if(File.is_open( )){ outFile#includevoid main(){ ofstream inFinFile.open(“Solution1.dat“, ios::app);int number = 0; int sum = 0;if(inFile.is_open(Solution1.da)){ inFile >>while (inFile.eof()){ sum = sum +cin >>} close();cout void main( ){int a,b,c,cout>a>>b>>c;sum=a+b+c;avg=sum/3.0; couta[j] ③ a[i]=a[j] ④ a[j]=temp 2、① k=pos ③ ilow)23 cout第 6 行 ofstream outF 或 fstream outF第 7 行 in 改为 out,即 outFile.open(“score.dat“,ios::out); 或 outFile.open(“score.dat“); 第 10 行 File 改为 outFile,即 outFile.is_open( )第 13 行 cout 改为 outFile第 14 行 outFile.close( )第 2 题第 5 行 ifstream inF第 6 行 app 改为 in,即 inFile.open(“Solution1.dat“, ios::in);或inFile.open(“Solution1.dat“);第 8 行 if(inFile.is_open())第 10 行 while(!inFile.eof())第 12 行 inFile>>第 14 行 inFile.close( );
下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档,不会出现我们的网址水印。3.登陆后可充值,充值成功后即可下载文档。。
文档加载中……请稍候!
下载文档到电脑,查找使用更方便
10 金币 &&0人已下载
还剩页未读,继续阅读
<a href="UserManage/CopyrightAppeal.aspx?bid=61254" title="版权申诉" class="fLeft works-manage-item works-manage-report" target="_blank"
关&键&词: 计算机 程序设计 基础 景红版 课后 全部 习题 参考答案 设计方案 范文 模版 范本 免费 下载 毕业论文 毕业设计 论文
& 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:计算机程序设计基础(C++)(景红版)课后全部习题及参考答案.doc 链接地址:
当前资源信息
编号: 42316
类型: 共享资源
格式: DOC
大小: 309.00KB
上传时间:
&& 广告或垃圾信息
&& 色情、淫秽、低俗信息
&& 反政府、反人类、反社会等反动信息
&& 散布赌博、暴力、凶杀、恐怖或者教唆犯罪等信息
&& 侮辱、诽谤等人身攻击信息
&& 散布谣言、扰乱社会秩序,破坏社会稳定等信息当前位置:
发表时间: 
教学资源网站
中国教育资源网
高等职业教育教学资源中心
中国仿真教学网
学校地址:西安市长安区郭杜北街19号  版权所有:陕西工商职业学院  联系电话:  邮编:7100119
访问总量: 计算机程序设计基础教程-C++语言
计算机程序设计基础教程-C++语言
计算机程序设计基础教程-C++语言
是否是套装
计算机程序设计基础教程-C++语言
出版社名称
刘卫国 周欣然21世纪高
和计算机程序设计基础教程-C++语言相关的文章因为热爱而学习
清华大学C++程序设计基础课程学习笔记
第一章 绪论
计算机系统简介
计算机系统=硬件+软件,指令系统是硬件和软件的界面
计算机语言是程序员与计算机沟通的语言,分类 { 二进制代码构成的机器语言,使用助记符的标记语言,使用类似英文单词和语句的高级语言 }
C++是面向对象的高级语言,将客观现实中的事物都看成对象,将同类的对象进行抽象形成类,类封装了细节,只对外暴露简单的接口,对象之间通过消息进行通讯
C++支持的程序设计方法:{ 面向过程的程序设计方法,面向对象的程序设计方法,泛型程序设计方法 }
C++程序的开发过程:{ 算法设计,源程序编辑,编译,连接,运行调试 }
计算机中存储的数据都是二进制的,逻辑数据和字符数据也用二进制码表示
一个只有硬件的计算机称为裸机,计算机解决问题是软件控制的,软件的程序就是操作步骤,程序要使用语言来表达
计算机能识别的是机器语言
计算机硬件能够识别的所有0和1组成的指令的集合,就是这种计算机系统的指令系统,指令系统是计算机硬件和软件的界面,硬件在底层,所有硬件设备能识别这些指令,并协同起来执行这些指令规定的操作,计算机软件最终都被转换成指令系统里面的指令序列
软件=程序+文档
计算机程序:{ 指令的序列,描述解决问题的方法和数据 }
计算机语言和程序设计方法的发展
机器语言&汇编语言&高级语言
面向过程的程序设计方法:机器语言,汇编语言,高级语言都支持;只要工作是设计求解问题的过程
面向对象的程序设计方法:一个系统由对象构成,对象之间通过消息进行通信
面向对象的基本概念
对象(object){ 面向对象方法中的对象:是系统中用来描述客观事物的一个实体 }
分类所依据的原则------抽象,抽象出同一类对象的共同属性和行为,形成类
类与对象的关系:类型与实例的关系
封装:{ 隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口,使用方便·、安全性好 }
继承:{ 意义在于软件复用,改造扩展已有类形成新的类 }
多态性:{ 同样的消息作用在不同对象上有可能引起不同的行为 }
对象的基本特点有:
对象唯一性。
每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
多态性(多形性)
多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。
程序的开发过程
高级语言程序翻译成机器语言程序
源程序:用源语言写的,有待翻译的程序
目标程序:源程序通过翻译程序加工以后生成的机器语言程序
可执行程序:连接目标程序以及库中的某些文件,生成的一个可执行文件
三种不同类型的翻译程序:{ 汇编程序:将汇编语言源程序翻译成目标程序;编译程序:将高级语言源程序翻译成目标程序;解释程序:将高级语言源程序翻译成机器指令,边翻译边执行 }
JAVA程序就是半编译半解释,目的为了跨平台
C++程序是直接编译为本地机器语言代码
C++程序的开发过程 { 算法与数据结构设计,源程序编辑,编译,连接,测试,调试 }
汇编语言、高级语言写的程序都是源程序
计算机中信息的存储与表示
计算机的基本功能:{ 算术运算,逻辑运算 }
信息的存储单位:位(bit,b),数据的最小单位,表示一位二进制信息
字节(byte,B),8位二进制数字组成,1byte = 8 bit
千字节 1kB = 1024B
兆字节 1MB=1024 k
吉字节 1GB=1024M
第二章 C++ 简单程序设计
C++能够处理的基本数据类型:{ 整数类型,实数类型,字符类型,布尔类型 }
字符串类型:有字符串常量,基本类型中没有字符串变量,采用字符数组存储字符串,标准C++库中的string类
x*=y+8 等价于 x=x*(y+8)
优先级顺序:!(非) &
&&(与)& ||(或)
条件表达式:a&b?a:b ,a&b为真,计算a,a&b为假,计算b
条件运算符的优先级高于赋值运算符
sizeof(类型名) 或 sizeof 表达式
位运算之按位与,或,异或(^),取反,移位
switch语句
C++语言程序设计(第4版) (郑莉,董渊) pdf扫描版
没有更多推荐了,&>&C++语言程序设计(第四版)课后答案第四版(郑莉)清华大学
C++语言程序设计(第四版)课后答案第四版(郑莉)清华大学
上传大小:83KB
本答案包含全部章节答案详解 以下是前两章示例答案:
1-1 简述计算机程序设计语言的发展历程。
迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。
1-2 面向对象的编程语言有哪些特点?
面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。C++语言是目前应用最广的面向对象的编程语言。
1-3 什么是结构化程序设计方法?这种方法有哪些优点和缺点?
结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构
组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。
1-4 什么是对象?什么是面向对象方法?这种方法有哪些特点?
从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。
面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体--对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过实现继承与多态性,还可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。
面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。
1-5 什么叫做封装?
封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。
1-6 面向对象的软件工程包括哪些主要内容?
面向对象的软件工程是面向对象方法在软件工程领域的全面应用,它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容。
1-7 简述计算机内部的信息可分为几类?
计算机内部的信息可以分成控制信息和数据信息二大类;控制信息可分为指令和控制字两类;数据信息可分为数值信息和非数值信息两类。
1-8 什么叫二进制?使用二进制有何优点和缺点?
二进制是基数为2,每位的权是以2 为底的幂的进制,遵循逢二进一原则,基本符号为0和1。采用二进制码表示信息,有如下几个优点:1.易于物理实现;2.二进制数运算简单;3.机器可靠性高;4.通用性强。其缺点是它表示数的容量较小,表示同一个数,二进制较其他进制需要更多的位数。
1-9 请将以下十进制数值转换为二进制和十六进制补码:
(1)2 (2)9 (3)93
(4)-32 (5)65535 (6)-1
(1) (2)10 = (10)2 = (2)16
(2) (9)10 = (1001)2 = (9)16
(3) (93)10 = ( = (5D)16
(4) (-32)10 = ( = (E0)16
(5) (65535)10 = (11111)2 = (FFFF)16
(6) (-1)10 = (11111)2 = (FFFF)16
1-10 请将以下数值转换为十进制:
(1)(1010)2 (2)( (3)(00011)2
(4)(7F)16 (5)(2D3E)16 (6)(F10E)16
(1)(1010)2 = (10)10
(2)( = (143)10
(3)(00011)2 = (24515)10
(4)(7F)16 = (127)10
(5)(2D3E)16 = (11582)10
(6)(F10E)16 = (61710)10
1-11 简要比较原码、反码、补码等几种编码方法。
原码:将符号位数字化为 0 或 1,数的绝对值与符号一起编码,即所谓&符号──绝对值表示&的编码。
正数的反码和补码与原码表示相同。
负数的反码与原码有如下关系:
符号位相同(仍用1表示),其余各位取反(0变1,1变0)。
补码由该数反码的最末位加1求得。
C++简单程序设计
2-1 C++语言有那些主要特点和优点?
C++语言的主要特点表现在两个方面,一是全面兼容C,二是支持面向对象的方法。C++是一个更好的C,它保持了C的简洁、高效、接近汇编语言、具有良好的可读性和可移植性等特点,对C的类型系统进行了改革和扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误。 C++语言最重要的特点是支持面向对象。
2-2 下列标识符哪些是合法的?
Program, -page, _lock, test2, 3in1, @mail, A_B_C_D
Program, _lock, test2, A_B_C_D是合法的标识符,其它的不是。
2-3 例2.1中每条语句的作用是什么?
#include &iostream.h&
void main(void)
cout&&&Hello!\n&;
cout&&&Welcome to c++!\n&;
#include &iostream.h& //指示编译器将文件iostream.h中的代码
//嵌入到该程序中该指令所在的地方
void main() //主函数名,void 表示函数没有返回值
{ //函数体标志
cout&&&Hello!\n&; //输出字符串Hello!到标准输出设备(显示器)上。
cout&&&Welcome to c++!\n&; //输出字符串Welcome to c++!
在屏幕输出如下:
Welcome to c++!
2-4 使用关键字const而不是#define语句的好处有哪些?
const定义的常量是有类型的,所以在使用它们时编译器可以查错;而且,这些变量在调试时仍然是可见的。
2-5 请写出C++语句声明一个常量PI,值为3.1416;再声明一个浮点型变量a,把PI的值赋给a。
const float PI = 3.1416;
float a = PI;
2-6 在下面的枚举类型中,Blue的值是多少?
enum COLOR { WHITE, BLACK = 100, RED, BLUE, GREEN = 300 };
Blue = 102
2-7 注释有什么作用?C++中有哪几种注释的方法?他们之间有什么区别?
注释在程序中的作用是对程序进行注解和说明,以便于阅读。编译系统在对源程序进行编译时不理会注释部分,因此注释对于程序的功能实现不起任何作用。而且由于编译时忽略注释部分,所以注释内容不会增加最终产生的可执行程序的大小。适当地使用注释,能够提高程序的可读性。在C++中,有两种给出注释的方法:一种是延用C语言方法,使用&/*&和&*/&括起注释文字。另一种方法是使用&//&,从&//&开始,直到它所在行的行尾,所有字符都被作为注释处理。
2-8 什么叫做表达式?x = 5 + 7是一个表达式吗?它的值是多少?
任何一个用于计算值的公式都可称为表达式。x = 5 + 7是一个表达式,它的值为12。
2-9 下列表达式的值是多少?
1. 201 / 4
2. 201 % 4
3. 201 / 4.0
2-10 执行完下列语句后,a、b、c三个变量的值为多少?
a:32 ; b:30 ; c:32;
2-11 在一个for循环中,可以初始化多个变量吗?如何实现?
在for循环设置条件的第一个&;&前,用,分隔不同的赋值表达式。
for (x = 0, y = 10; x & 100; x++, y++)
2-12 执行完下列语句后,n的值为多少?
for (n = 0; n & 100; n++)
n的值为100
2-13 写一条for语句,计数条件为n从100到200,步长为2;然后用while和do…while语句完成同样的循环。
for (int n = 100; n &= 200; n += 2);
while循环:
int x = 100;
while (n &= 200)
do…while循环:
int n = 100;
} while(n &= 200);
2-14 if ( x = 3 ) 和 if (x = = 3) 这两条语句的差别是什么?
语句if(x = 3)把3赋给x,赋值表达式的值为true,作为if语句的条件;语句if(x == 3)首先判断x的值是否为3,若相等条件表达式的值为ture,否则为false。
2-15 什么叫做作用域?什么叫做局部变量?什么叫做全局变量,如何使用全局变量?
作用域是一个标识符在程序正文中有效的区域。局部变量,一般来讲就是具有块作用域的变量;全局变量,就是具有文件作用域的变量。
2-16 已知x、y两个变量,写一条简单的if语句,把较小的的值赋给原本值较大的变量。
if (x & y)
else // y & x || y == x
2-17 修改下面这个程序中的错误,改正后它的运行结果是什么?
#include &iostream.h&
void main()
i = 10; /* 给i赋值
j = 20; /* 给j赋值 */
cout && &i + j = && i + /* 输出结果 */
#include &iostream.h&
int main()
i = 10; // 给i赋值
j = 20; /* 给j赋值 */
cout && &i + j = & && i + /* 输出结果 */
程序运行输出:
i + j = 30
2-18 编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。
#include &iostream.h&
int main()
cout && &请输入一个数字:&;
cout && &您输入一个数字是& && i &&
程序运行输出:
请输入一个数字:5
您输入一个数字是5
2-19 C++有哪几种数据类型?简述其值域。编程显示你使用的计算机中的各种数据类型的字节数。
#include &iostream.h&
int main()
cout && &The size of an int is:\t\t& && sizeof(int) && & bytes.\n&;
cout && &The size of a short int is:\t& && sizeof(short) && & bytes.\n&;
cout && &The size of a long int is:\t& && sizeof(long) && & bytes.\n&;
cout && &The size of a char is:\t\t& && sizeof(char) && & bytes.\n&;
cout && &The size of a float is:\t\t& && sizeof(float) && & bytes.\n&;
cout && &The size of a double is:\t& && sizeof(double) && & bytes.\n&;
程序运行输出:
The size of an int is: 4 bytes.
The size of a short int is: 2 bytes.
The size of a long int is: 4 bytes.
The size of a char is: 1 bytes.
The size of a float is: 4 bytes.
The size of a double is: 8 bytes.
2-20 打印ASCII码为32~127的字符。
#include &iostream.h&
int main()
for (int i = 32; i&128; i++)
cout && (char)
程序运行输出:
!&#$%G'()*+,./:;&&?@ABCDEFGHIJKLMNOP_QRSTUVWXYZ[\]^'abcdefghijklmnopqrstuvwxyz&|&~s
2-21 运行下面的程序,观察其输出,与你的设想是否相同?
#include &iostream.h&
int main()
unsigned int y = 100;
unsigned int z = 50;
cout && &Difference is: & &&
cout && &\nNow difference is: & && x &&
程序运行输出:
Difference is: 50
Now difference is:
注意,第二行的输出并非 -50,注意x、y、z的数据类型。
2-22 运行下面的程序,观察其输出,体会i++与++i的差别。
#include &iostream.h&
int main()
int myAge = 39; // initialize two integers
int yourAge = 39;
cout && &I am: & && myAge && & years old.\n&;
cout && &You are: & && yourAge && & years old\n&;
myAge++; // postfix increment
++yourA // prefix increment
cout && &One year passes...\n&;
cout && &I am: & && myAge && & years old.\n&;
cout && &You are: & && yourAge && & years old\n&;
cout && &Another year passes\n&;
cout && &I am: & && myAge++ && & years old.\n&;
cout && &You are: & && ++yourAge && & years old\n&;
cout && &Let's print it again.\n&;
cout && &I am: & && myAge && & years old.\n&;
cout && &You are: & && yourAge && & years old\n&;
程序运行输出:
I am 39 years old
You are 39 years old
One year passes
I am 40 years old
You are 40 years old
Another year passes
I am 40 years old
You are 41 years old
Let's print it again
I am 41 years old
You are 41 years old
2-23 什么叫常量?什么叫变量?
所谓常量是指在程序运行的整个过程中其值始终不可改变的量,除了用文字表示常量外,也可以为常量命名,这就是符号常量;在程序的执行过程中其值可以变化的量称为变量,变量是需要用名字来标识的。
2-24 变量有哪几种存储类型?
变量有以下几种存储类型:
auto存储类型:采用堆栈方式分配内存空间,属于一时性存储,其存储空间可以被若干变量多次覆盖使用;
register存储类型:存放在通用寄存器中;
extern存储类型:在所有函数和程序段中都可引用;
static存储类型:在内存中是以固定地址存放的,在整个程序运行期间都有效。
2-25 写出下列表达式的值:
1. 2 & 3 && 6 & 9
2. ! ( 4&7 )
3. ! ( 3 & 5) || (6 & 2 )
2-26 若a = 1,b = 2,c = 3,下列各式的结果是什么?
1. a | b - c
2. a ^ b & -c
3. a & b | c
4. a | b & c
2-27 若a = 1,下列各式的结果是什么?
1. ! a | a
2. ~ a | a
2-28 编写一个完整的程序,实现功能:向用户提问&现在正在下雨吗?&,提示用户输入Y或N。若输入为Y,显示&现在正在下雨。&; 若输入为N,显示&现在没有下雨。&;否则继续提问&现在正在下雨吗?&
#include &iostream.h&
#include &stdlib.h&
void main()
cout && &现在正在下雨吗?(Yes or No):&;
if ( toupper(flag) == 'Y')
cout && &现在正在下雨。&;
if ( toupper(flag) == 'N')
cout && &现在没有下雨。&;
程序运行输出:
现在正在下雨吗?(Yes or No):x
现在正在下雨吗?(Yes or No):l
现在正在下雨吗?(Yes or No):q
现在正在下雨吗?(Yes or No):n
现在没有下雨。
现在正在下雨吗?(Yes or No):y
现在正在下雨。
2-29 编写一个完整的程序,运行时向用户提问&你考试考了多少分?(0~100)&,接收输入后判断其等级,显示出来。规则如下:
#include &iostream.h&
void main()
cout && &你考试考了多少分?(0~100):&;
if (score&100 || score&0)
cout && &分数值必须在0到100之间!&;
i = score/10;
switch (i)
cout && &你的成绩为优!&;
cout && &你的成绩为良!&;
cout && &你的成绩为中!&;
cout && &你的成绩为差!&;
程序运行输出:
你考试考了多少分?(0~100):85
你的成绩为良!
2-30 (1)实现一个简单的菜单程序,运行时显示&Menu: A(dd) D(elete) S(ort) Q(uit), Select one:&提示用户输入,A表示增加,D表示删除,S表示排序,Q表示退出,输入为A、D、S时分别提示&数据已经增加、删除、排序。&输入为Q时程序结束。要求使用if … else语句进行判断,用break、continue控制程序流程。
#include &iostream.h&
#include &stdlib.h&
void main()
char choice,c;
cout && &Menu: A(dd) D(elete) S(ort) Q(uit), Select one:&;
choice = toupper(c);
if (choice == 'A')
cout && &数据已经增加. & &&
else if (choice == 'D')
cout && &数据已经删除. & &&
else if (choice == 'S')
cout && &数据已经排序. & &&
else if (choice == 'Q')
程序运行输出:
Menu: A(dd) D(elete) S(ort) Q(uit), Select one:a
数据已经增加.
Menu: A(dd) D(elete) S(ort) Q(uit), Select one:d
数据已经删除.
Menu: A(dd) D(elete) S(ort) Q(uit), Select one:s
数据已经排序.
Menu: A(dd) D(elete) S(ort) Q(uit), Select one:q
(2)实现一个简单的菜单程序,运行时显示&Menu: A(dd) D(elete) S(ort) Q(uit), Select one:&提示用户输入,A表示增加,D表示删除,S表示排序,Q表示退出,输入为A、D、S时分别提示&数据已经增加、删除、排序。&输入为Q时程序结束。要求使用Switch语句。
#include &iostream.h&
#include &stdlib.h&
void main()
cout && &Menu: A(dd) D(elete) S(ort) Q(uit), Select one:&;
switch(toupper(choice))
cout && &数据已经增加. & &&
cout && &数据已经删除. & &&
cout && &数据已经排序. & &&
程序运行输出:
Menu: A(dd) D(elete) S(ort) Q(uit), Select one:a
数据已经增加.
Menu: A(dd) D(elete) S(ort) Q(uit), Select one:d
数据已经删除.
Menu: A(dd) D(elete) S(ort) Q(uit), Select one:s
数据已经排序.
Menu: A(dd) D(elete) S(ort) Q(uit), Select one:q
2-31 用穷举法找出1~100间的质数,显示出来。分别使用while,do-while,for循环语句实现。
使用while循环语句:
#include &iostream.h&
#include &math.h&
void main()
int i,j,k,
while(i &= 100)
k = sqrt(i);
while (j &= k)
if(i%j == 0)
cout && i && &是质数.& &&
使用do…while循环语句:
#include &iostream.h&
#include &math.h&
void main()
int i,j,k,
k = sqrt(i);
if(i%j == 0)
}while (j &= k);
cout && i && &是质数.& &&
}while(i &= 100);
使用for循环语句:
#include &iostream.h&
#include &math.h&
void main()
int i,j,k,
for(i = 2; i &= 100; i++)
k = sqrt(i);
for (j = 2; j &= j++)
if(i%j == 0)
cout && i && &是质数.& &&
程序运行输出:
2-32 比较Break语句与Continue语句的不同用法。
Break使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句,不能用在别处;
continue 语句结束本次循环,接着开始判断决定是否继续执行下一次循环;
2-33 定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。
源程序见&实验指导&部分实验二
2-34 在程序中定义一个整型变量,赋以1~100的值,要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while、do…while语句实现循环。
//使用while语句
#include &iostream.h&
void main() {
int n = 18;
int m = 0;
while(m != n)
cout && &请猜这个数的值为多少?(0~~100):&;
if (n & m)
cout && &你猜的值太小了!& &&
else if (n & m)
cout && &你猜的值太大了!& &&
cout && &你猜对了!& &&
//使用do…while语句
#include &iostream.h&
void main() {
int n = 18;
int m = 0;
cout && &请猜这个数的值为多少?(0~~100):&;
if (n & m)
cout && &你猜的值太小了!& &&
else if (n & m)
cout && &你猜的值太大了!& &&
cout && &你猜对了!& &&
}while(n != m);
程序运行输出:
请猜这个数的值为多少?(0~~100):50
你猜的值太大了!
请猜这个数的值为多少?(0~~100):25
你猜的值太大了!
请猜这个数的值为多少?(0~~100):10
你猜的值太小了!
请猜这个数的值为多少?(0~~100):15
你猜的值太小了!
请猜这个数的值为多少?(0~~100):18
你猜对了!
2-35 定义枚举类型weekday,包括Sunday到Saturday七个元素在程序中定义weekday类型的变量,对其赋值,定义整型变量,看看能否对其赋weekday类型的值。
#include &iostream.h&
enum weekday
Wednesday,
void main()
weekday d = T
cout && &d = & && d &&
cout && &i = & && i &&
d = (weekday)6;
cout && &d = & && d &&
d = weekday( 4 );
cout && &d = & && d &&
程序运行输出:
3-1 C++中的函数是什么?什么叫主调函数,什么叫被调函数,二者之间有什么关系?如何调用一个函数?
...展开收缩
综合评分:5
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有6条
万分感谢,特别有帮助。
很好,答案很全,很详细
多谢分享,对我的学习很有用处,但是部分答案有错位的现象
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
Forrest-Lyu
综合评分:
积分/C币:12
KLFTESPACE
综合评分:
积分/C币:2
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
C++语言程序设计(第四版)课后答案第四版(郑莉)清华大学
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*投诉人姓名:
*投诉人联系方式:
*版权证明:
*详细原因:
C++语言程序设计(第四版)课后答案第四版(郑莉)清华大学

我要回帖

更多关于 计算机与程序设计基础 的文章

 

随机推荐