第一章 绪论
思 考 题
1. 简述计算机应用与程序设计的关系。
2. 为什么说计算机与人类的其它发明不同?它有什么特点? 3. 你怎样理解程序设计语言?高级语言和低级语言是怎样划分的? 4. 什么是机器语言,汇编语言?
5. 高级程序设计语言的主要特征是什么?学习本书前接触过哪些高级语言? 6. 程序设计技术的发展可分成几个阶段?简述各阶段的主要特征。 7. 为了成为高水平的程序员,应该在哪几个方面进行学习和训练? 8. 谈谈选择C++语言的理论和原因。 9. C++语言的形成与其它语言有何不同? 10. C++语言受到欢迎的主要原因是什么? 11. 试分析C++语言与C语言完全兼容的利弊。 12. 简述C++语言的主要特点。 13. 学习C++语言的主要困难之处在哪里?
14. 如何学好C++语言?在学习中应注意的有哪些问题?
15. 在学习C++语言中,应如何处理C++语言中仍保留C语言中的语法成分?
第二章 C++语言初步
思 考 题
1. C++的基本符号有哪些? 分为哪几类?
2. 什么是关键字?什么是标识符?怎样构成合法的标识符?
3. 什么是常量?C++中常量的表示形式有哪些?C++的字面常量有哪几类? 4. 字符常量在机内如何存储?它与整数有什么关系? 5. 字符常量与字符串常量有什么区别?’a’与”a”有什么区别?
6. 以反斜杠开头的“字符”(也称为转义字符)主要用来表示什么样的字符?是否任何一个字符都可以用这种方式来表示?如何表示?
7. 从结构程序设计的观点看,C++程序是由哪几部分组成的?它们之间的关系如何? 8. C++程序的主函数与其它函数有什么不同?最常用的main函数的使用格式是什么样的? 9. 什么是预处理?预处理在C++程序中起什么作用? 10. 文件嵌入命令的作用是什么?什么是宏定义命令?
11. 程序中使用的cout代表什么?“<<”是用来完成什么功能的运算符? 12. 程序中使用的cin代表什么?“>>”是用来完成什么功能的运算符? 13. 什么情况下,程序中就必须使用“#include<iostream.h>”预处理命令? 14. C++注释的格式有哪几种形式?如何使用? 15. 简述结构程序设计(SP)的优缺点。
16. OOP框架的C++程序是由哪几部分组成的?与SP比较,OOP有哪些优越之处? 17. 简述从源程序到程序运行中间的各个处理步骤。
练 习 题
1. 选择题
(1)标识符中,( )符号不能组成标识符。 A.分割符 B.下划线 C.大小写字母 D.数字字符 (2)下面字符串中,( )是不合法的标识符。 A.Pad B.max C.P#d D.t1mp
(3)下面字符串中,( )是合法的标识符。 A.b-b B.CCP C.scanf D.*jer (4)下面的( )不是转义字符。 A.\\\\ B.\\t C.\\x11 D.\\ff
(5)预处理命令都是以( )开头。 A.* B.# C.: D./
2. 叙述下面三个程序的功能、分析它们执行后的输出结果,并上机进行测试验证。 (1)#include
cout<<”Hello,everyone!”<<” ”; cout<<”How are you!”<<”\\n”; cout< (2)#include const float pai=3.14; float radius; cout<<\ cin>>radius; float circum=2*pai*radius; cout<<\} (3)#include int x1,x2,x3,x4,x5,x6,x7,x8,x9,x10; cout<<\ cin>>x1>>x2>>x3>>x4>>x5>>x6>>x7>>x8>>x9>>x10; cout<<\ cout< 第三章 基本数据类型与基本运算 思 考 题 1. 类型概念的几个要点是什么? 2. C++语言中的基本数据类型有哪些?它们的含义是什么? 3. 基本类型的派生类型有哪些? 4. 怎样使用用户定义类型? 5. 导出类型有哪几种?怎样使用导出类型? 6. C++程序是由哪几类语句来构成的? 7. 常量和变量的区别是什么?为什么要区分常量和变量? 8. 在变量的声明和使用过程中,计算机都作了那些工作? 9. 全局变量与局部变量有什么不同?变量的作用域和生存期是否一致? 10. 数学中运算符和表达式的概念及其使用方式与C++语言中运算符和表达式的概念及其使用 方式有哪些异同? 11. “==”运算符和“=”运算符的使用含义是什么?与数学中的“=”运算符的使用含义相同吗? 12. 前缀增量++i与后缀增量i++的使用区别是什么?你能举一个实际例子来说明这种使用区别吗? 13. 若参加运算的两个分量的类型不同时,系统将怎样来处理它们? 14. 算术运算符、关系运算符和逻辑运算符的相对优先级关系是怎样的? 15. 什么是运算符的结合性?通过运算符优先级以及结合性规则,C++程序中出现的任何合法表达式是否都可以无二义性地唯一确定其计算次序? 16. 你现在是否能够通过使用定义自己的数据类型来表示生活中的一些事物(例如房屋、动物、人等)? 练 习 题 1. 设有如下的说明: int i = 8,j = 3,k,a,b; unsigned long w = 5; double x = 1.42,y = 5.2,t,f; 请判断以下表达式是否正确,如果正确,请写出表达式的值以及其中相关联(被改变后)的各变量值。如“k = i++”之表达式的值为8,相关联即被改变后的变量k之值为8,而i值变为9。 k = i++, w += -2, y += x++, i /= j+12, b = --j, a = 2*a = 3, ++(i+j), 20/3+11%3, 20/3.0 + 'a' - 'B', f = 3/2*(t=20.2-32.1), k=(a=2,b=3,a+b)。 2. 已知int i = 32,j = 1,k = 3,确定下面的复合关系测试产生真或假。 !(!(true||false)) (true && false) && !(true||false) i && j && k-3 34-i||k j!=k && i!=k !!!(i=6) (5>3) && (3>1) 5>3 && 3>1 5>3>1 !i||(j-k) && i && !(k-3||i*k) 3. 设有如下说明:unsigned char c1=71, c2=38, c3; 当按如下的各式对c3进行赋值以后,请给出各int(c3)的结果值,并上机进行验证。 c3=c1&c2; c3=c1|c2; c3=c1^c2; c3=c1<<1; c3=c1>>1; c3=~c1; 又假设有:unsigned char a=15, b=1, c=41, d; 请给出下述各输出语句所显示的结果。 cout<<((a<>b|a)< 4. 将下面的表达式加上括号,使得其计算顺序及计算结果(指表达式结果值和式中相关联的各变量值)都保持不变。并对每一个表达式,总假定a=1,b=2,c=3,d=4,去上机进行测试验证。 a + b++ a = b = c a++ > b++ + c || 4.3 * a == b *2 + c a = b++,b = c++ a && b + c < 2 || d++ == 4 !a<1 && b>c-a || --b<-5+2*d 5. 编写一个程序,当用户输入两个时间以后,求出这两个时刻的时间差(按秒计算)并打印到屏幕上。 第四章 基本控制结构与导出数据类型 思 考 题 1. 什么是控制语句?C++中的控制语句有哪几种? 2. 什么是复合语句?为什么要设立并使用复合语句? 3. 空语句的作用是什么?如何使用? 4. 分支语句的作用是什么?它如何控制程序的运行次序? 5. 两种if语句的一般使用格式各是什么?两者在使用含义上有什么不同? 6. C++规定,每个else只与它前面最近的那个尚未配对的if相配对。若没有这一规定会出现什么问题吗?能举例说明你的观点吗? 7. switch语句一般使用格式是什么?其各“<语句序列S>”中是否必须包含break语句? 8. 循环语句的重要作用是什么?C++提供了哪几种循环语句? 9. for语句的三个“<表达式E>”各自所起的作用是什么?缺省它们后的含义又各是什么? 10. 任何一个while语句是否都可以用for语句来改写?任何一个for语句是否都可以用while语句来改写? 11. do-while语句与while语句有什么异同? 12. while与do-while语句的循环体内通常要有这样的语句,它的执行将对还能否继续循环产生影响。为什么要有那样的语句呢? 13. “if(<表达式E>)<语句S>;”与“while(〈表达式E〉)<语句S>;”的使用区别是什么? 14. 你能说出几种用于求出sum=1+2+3+…+100之累加和的主体程序“模式”吗? 15. C++提供了哪几种转向语句?它们一般用于什么场合? 16. C++语言提供了哪些导出数据类型?它们与基本类型以及其它用户定义类型有何不同? 17. 如何定义和使用一维数组?如何定义和使用多维数组?数组的元素类型可以是一些什么数据类型呢? 18. C++以什么形式来表示数组元素?下标变量与同类型简单变量的语法地位及其使用方式是否有类似之处? 19. 若程序中有“int a[2][2];”的说明,是否之后就可以使用a、a[0]、a[1]、a[0][0]、a[0][1]、a[1][0]和a[1][1]这些“名称”了呢?a[0]和a[1]是否又是数组呢? 20. 任一个字符数组是否都是字符串?串尾符'\0'在一个字符数组中所起的作用是什么? 练 习 题 1. 输入任意3个实数,求出其中的最大者与最小者并在屏幕上显示出来。 2. 某商店出售四种商品:A商品每公斤2.75元;B商品每个12.5元;C商品每米26.8元;D商品每台512元,超过3台优惠10%,超过8台优惠15%。为其设计一个计算价格的程序(输入购买四种商品的数量,计算出应付款金额并显示付款金额明细单)。 3. 输入一个int型的百分制成绩d,程序负责将其转换为等级字母并输出。若d处于90到100之间,输出“grade=A”;若d处于80到89之间,输出“grade=B”;若d处于70到79之间,输出 “grade=C”;若d处于60到69之间,输出“grade=D”;若d为其他分数值时,输出“grade=E”。若输入数据不处于0~100之间时,提示出错信息后结束程序。要求使用switch语句来进行处理。 4. 用程序验证100以内的奇整数,其平方被8除余数均为1。 5. 求出正整数n的所有因子(包括1与n本身)以及这些因子的和,其中的n值通过键盘输入。 6. 设计一个程序,对于用户输入的任意正整数a(a≥1)和b(b≥2),求出满足bn≤a的最大整数n。 7. 编程序,对某参赛选手的m(m>2)个评委所给分数score(分数score为小于等于10的一个正实数)进行输入和处理,以求出最后得分lastScore:去掉一个最高分和一个最低分后另m-2个得分的平均值。 8. 输入两个正整数a和b,求出它们的最小公倍数c以及最大公约数d。 9. 键盘输入正整数n,求出n与其反序数之和并输出。例如,输入2038,输出应为 2038+8302=10340。 10. 编程序,使用如下所谓的简单变量“数据平移”方法来求出Fibonacci数列的第n项(的具体项值)并显示在屏幕上(正整数n通过键盘输入):说明变量old1=1,old2=1,newItem;新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。而后通过“old1=old2; old2=newItem;”进行所谓的“数据平移”。接着计算另一个新的Fibonacci项newItem,依次循环,直到求出数列的第n项时为止。 Fibonacci数列的计算公式如下: fib(1) = 1; fib(2) = 1; fib(n) = fib(n-1) + fib(n-2); //对大于等于3的任意n 11. 计算实数x的立方根 ,当|yn+1-yn|≤ε时,yn+1为 10和8后,输出的8个素数应为:11,13,17,19,23,29,31,37。 13. 求1000以内的所有“完全数”(若n的包括1但不包括n本身的所有因子之和等于n,则n为“完全数”。如:6=1+2+3;28=1+2+4+7+14)。 14. 求出100--500内的所有满足下述条件的“回文数”(正读与反读大小相同的数为“回文数”):该数的3位数字之和大于等于10。如181,191,262,272,282,…,484,494。 15. 编程序,循环进行如下的处理过程:由计算机生成简单的四则运算题;用户给出答案;计算机判断对错。直到用户回答说不再继续做了时结束程序。 提示:可让用户选择指定出加、减、乘、除哪一种运算题,以及出一位数还是两位数的运算题;而后通过使用“rand()”或“rand()0”来获得一个0到9的一位整数随机值或得到0到99的两位整数随机值来为用户出题。还可进一步对用户所做算术题的对错次数进行记录,结束程序时给出一个某种形式的成绩。 16. (1)计算200 (2)要求误差小于0.000001 π/4 = 1 - 1/3 + 1/5 -1/7 + 1/9 -… 12. 输入正整数i和n,由程序负责从i开始找起,连续找出n个素数并显示在屏幕上。如输入 17. 求下述三个序列的累加和(每一序列各累加n项,正整数n通过cin从键盘输入)。 s1 = 1/5 + 1/4 + 3/11 + 2/7 + 5/17 + 3/10 + 7/23 + … s2 = 2/1 + 3/2 + 5/3 + 8/5 + 13/8 + 21/13 + 34/21 + … 百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库第一章 绪论在线全文阅读。
相关推荐: