程序设计基础
第一部分练习(第一章、第二章和第三章)
一、填空题
1.世界上第一台电子数字计算机研制成功的时间是 年。
A)1936 B)1946 C)1956 D)1970
2. 计算机的发展阶段通常是按计算机所采用的 来划分的。
A)内存容量 B)逻辑元件 C)程序设计语言 D)操作系统
3.从第一代电子计算机到第四代计算机的体系结构都是相同的,都是由运算器、控制器、存储器以及输入/输出设备组成的,称为 体系结构。
A) 图灵 B)比尔·盖茨 C)冯·诺依曼 D)诺依斯
4.一个完整的计算机系统应该包括 。
A)系统软件和应用软件 B) 计算机及其外部设备
C)硬件系统和软件系统 D)系统硬件和系统软件
5.主要决定微机性能的是 。
A) CPU B) 耗电量 C)质量 D)价格
6.计算机应用广泛,而其应用最广泛的领域是 。
A)科学与工程计算 B) 数据处理与办公自动化
C) 辅助设计与辅助制造 D)信息采集与过程控制
7.计算机硬件系统中最核心的部件是 。
A) 主存储器 B) CPU C) 磁盘 D)输入/输出设备
8.计算机的主存储器一般由 ① 组成。主存储器比辅存储器 ② 。
① A) ROM和 RAM B) RAM 和磁盘 C) RAM 和 CPU D)ROM
②A) 存储容量大 B) 价格便宜 C) 存储可靠性高 D)读写速度快
9.解释程序的功能是 。
A) 将高级语言程序转换为目标程序 B) 将汇编语言程序转换为目标程序
C) 解释执行高级语言程序 D) 解释执行汇编语言程序
10. 下述所列程序中哪种程序不属于语言处理程序?
A) 汇编程序 B) 编译程序 C) 解释程序 D) 操作系统
11.在下列计算机语言中,哪个(哪些)依赖于具体的机器?
(1)高级语言 (2)机器语言 (3)汇编语言
A) 只有(1) B) 只有(2) C) 只有(2)和(3) D)(1)、(2)、(3)
12.解释程序和编译程序同属于语言处理程序,下列关于它们的叙述中哪一个是正确的?
A)解释程序产生目标程序 B)编译程序产生目标程序
C)两者均产生目标程序 D)两者均不产生目标程序
13.计算机硬件能直接执行的语言只有 。
A)符号语言 B) 机器语言 C) 算法语言 D)汇编语言
14.下述语言(1) JAVA (2)FORTRAN (3) C
哪个(些)一般是编译型语言?
A)全部 B) (2) C) (3) D) (2)和(3)
15.在数据结构中,从逻辑上可以把数据结构分成 。
A)线性结构和非线性结构。 B)动态和静态结构
C)紧凑结构和非紧凑结构 D)内部和外部结构
16.在软件方面,第一代计算机主要使用 。
A)机器语言 B)高级程序设计语言
C)数据库管理系统 D)BASIC和FORTRAN
17.计算机软件是指 。
A)计算机程序 B)源程序和目标程序
C)源程序 D)计算机程序及其有关文挡
18.用高级语言编写的程序 。
A)只能在某种计算机上运行
B)无需编译或解释,即可被计算机直接执行
C)具有通用性和可移植性
D)几乎不占用内存空间
二、填空题
1. 计算机的五大主要应用领域是 、 、 、 和
。
2.微型计算机是由 、 、 和 组成的。
3.计算机是一类智能机器,这是因为它除了完成算术运算外,还能完成某些 。
4.世界上第一台计算机取名为 。
5.个人计算机简称PC,这种计算机属于 型计算机 。
6.目前制造计算机所采用的电子器件是 。
7.CPU是 的英文缩写,它主要由 和 组成。
8.计算机的系统组成部分是 和 。
9.计算机的硬件系统一般可分为 、 、 、 等几个部分。
10.计算机的存储器分为 和 两类。
11.随机存储器和只读存储器的英文缩写分别为 和 。
12.按工作原理分类,电子计算机分为 和 。
13. 是管理计算机软、硬件资源,为用户提供方便、高效使用界面的最重要的一种系统软件。
14. 是在具体计算机上实现数据库技术的系统软件。
15.系统软件具有两个特点: 和 性。
16. 是现代计算机的抽象数学模型,奠定了现代计算机的基础, 则是现代计算机的一种物理实现。
17.判断程序质量的首要标准是 性。
18. 是为了解决一个特定问题而采取的特定的有限步骤,是解决问题的办法。它必须满足 、 、 、 和 。
19.高级语言源程序的翻译方式包括 和 。
20.按照语言的级别,程序设计语言分为 和 ;按照应用范围则分为 和 。
三、问答题
1. 计算机的主要特点是什么?
2. 什么是硬件?传统的计算机硬件系统由哪些组成?
3. 什么是软件?软件按功能如何分类?
4. 什么是系统软件和应用软件?它们的作用有何不同?
5. 软件和硬件的关系如何?
6. 简述存储程序控制的基本原理?
7. 什么是图灵机?它由哪几部分组成?图灵机和现代计算机有何关系?
8. 简述程序设计过程包括哪些步骤?
9. 简述你对数据结构、算法、程序三者之间关系的认识。
10. 编译过程分为几个阶段,各阶段的主要工作是什么?
11.程序设计语言有哪两种实现方式?各有什么特点?
12.面向过程的语言有哪几种基本的控制结构?
四、讨论题
1. 结合你了解的计算机应用情况,谈一下计算机对现代生活和带来的影响?结合你对信息社会的认识,谈一谈你准备如何适应好未来信息社会对人才的要求?
第二部分练习(第四章)
一.选择题
1.正确的C语言自定义标志符是 。
A)file_bak B)abc(10)
C)continue D)class+3
2.设a=6,b=4,则表达式b*=a+3的值为 。
A)3 B)18 C)27 D)36
3.若给定表达式(m)?a++:a--,则其中表达式m和
等价。
A)m==0 B)m!=0 C)m=0 D)m=1
4.设int x=8, y, z; 执行y = z = x + +;x = y = =z后,变量x的值是 。
A)0 B)1 C)8 D)9
5.设int a = 9,b = 8,c = 7, x = 1;则执行语句
if (a>7) if (b>8) if (c>9) x=2 ;else x = 3;
后 x 的值是 。
A)0 B)2 C)1 D)3
6.有如下程序
main ()
{ int x=23;
do {printf("%d",x--);}
while (! x);
}
该程序的执行结果是 。
A)321 B)23 C)不输出任何内容 D)陷入死循环
7. I,j为int型的变量,则下面程序中的循环体的执行次数为 。
I=1;j=0;
While(I+j<=10)
{ if (I>j) j=j+2;
else I=I+2;}
A)0 B)5 C)8 D)10
8.若调用一个函数,且此函数没有return语句,则正确的说法是 。
(A) 没有返回值
(B) 返回若干个系统默认值
(C) 能返回一个用户所希望的函数值
(D) 返回一个不确定的值
9.以下函数test返回值类型为 。
test(int x)
{ printf("%f/n",(float)x);
}
A)int B)float C)void D)不确定或错误
二.填空题
阅读分析下列程序,在 线处填上合适的内容使程序(或函数)完整。
1.下面程序的功能是判断输入的一个年份是否是闰年。(闰年能够被4整除,但不能被100整除;或能被400整除)
#include "stdio.h"
main()
{ int year ,leap;
printf("input year:");
scanf("%d, &year);
if (year%400==0) ;
else if(year%4==0)&&(year%100!=0) leap=1;
else leap=0;
if (leap!= ) printf("%d is a leap year./n",year);
else printf("%d is not a leap year./n",year);
}
2.下程序的功能是求三个数的最小公倍数。
Max (int x, int y ,int z)
{ if (x>y &&x>z ) return(x);
else if (y>=x &&y>z) ;
else return(z);
}
main()
{ int a,b,c,I=1,j,s;
scanf("%d%d%d",&a,&b,&c);
s= ;
while(1)
{ j=s*i;
if( )
break;
I++;
}
prinf("%d",j);
}
3.由键盘输入三个数a,b,c,计算以这三个数为边长的三角形面积。
#include
void main ( )
{ float a, b, c, s, s1;
scanf("%f%f%f", );
if ((a+b)>c && (a+c) > b && (b+c) >a)
{ s=(a+b+c)/2;
s1=s*(s-a)*(s-b)*(s-c);
s= ;
printf("/n 三角形面积为:%f /n",s);
}
else
printf(" /n 不是三角!/n");
}
4.下面程序用于计算n!的值。
main ()
{ int i,s,n;
s = 1;
printf ("enter n:");scanf("%d",&n);
for (i=1;i< = n;i + +)
( );
printf ("s=%d",s);
}
5.下面函数pi()的功能是根据以下公式求 π 值(直到最后一项小于10-5为止)。
π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9......
double pi()
{ double s = 0.0,t = 1.0;
int n;
for( );t>=1e-5; n++)
{ s+ =t;
t= ( );
}
return (2.0* );
}
三. 阅读下列程序,写出运行结果
1. #include
void main( )
{ int a=1,b=4,c=2;
a=(a+b)/c;
printf("%d /n",--a);
}
运行结果
2.
void main ( )
{ char c1=67; /*'A'的ASCII码值为65 */
if ('A' <=c1 && c1<='Z')
printf("%d,%c",c1,c1+1);
else printf("%c",c1); }
运行结果:
3.
viod main ( )
{ int a=0, n=5;
for ( ; ; )
{ a++; n--;
printf("%d,",a);
a=n;
if (n==0) break;
}
printf("%d",a);
}
运行结果:
4. main()
{ int k=10; char c='b';
do
swith(c++)
{ case 'a':k++;
case 'b':k--;
case 'c':k+=3;break;
case 'd':k=k%4;
}
while(c!='c');
printf("%d/n",k );
}
运行结果:
5. #include
main()
{ int x = 1,a = 0,b = 0;
switch(x)
{ case 0; b + +;
case 1; a + +;
case 2; a + +;b + +;
}
printf ("a = % d ,b = % d /n",a,b);
}
运行结果:
四.编程序(结合实验上机调试编写的程序)
1. 从键盘输入3个整数,输出其中最大数。
2. 有36块砖,共36人搬,成年男子一次搬4块砖,成年女子一次搬3块砖,儿童两人抬1块砖,恰好一次全部搬完,编程求出成年男子 成年女子和儿童各有多少人。
3.按下列公式
s(n)=12+22......+n2
编写计算并输出s值,其中的n值由键盘输入。
4.编写一程序,从键盘输入10个实数,计算并输出算术平均数。
5. 求方程ax2+bx+c=0的根。其中a、b、c由键盘输入,设b2-4ac>0。
五、讨论题
1.通过你对C语言的简单程序设计的学习,谈一下你对程序设计和程序设计语言的初步认识,你觉得应该如何学好程序设计呢?
第三部分练习(第五章)
一、 选择题
1. 是所有能输入到计算机中被计算机加工处理的信息集合, 是 的基本单位,它可以由若干个 组成。 是性质相同的 的集合。
A)数据元素 B)数据对象 C)数据项
D)数据 E)数据类型 F)数据结构
2.用链表表示线性表的优点是 。
A)便于随机存取 B)便于插入和删除操作
C)花费的存储空间较顺序存储少 D)元素的物理顺序与逻辑顺序相同
3.下述哪一 条是顺序存储方式的优点?
A)存储密度大 B)插入运算方便
C)删除运算方便 D)可方便地用于各种逻辑结构的存储表示
4.线性表的顺序存储结构是一种 的存储结构,线性表的链式存储结构是
一种 的存储结构
A)随机存储 B)顺序存取
C)有选择地存取 D)按大小顺序存取
5、在一个长度为n的顺序表中删除第i (0 A) n-i B) n-i+1 C) n-i-1 D) i
6、线性表L=(a1,a2...an),下列说法正确的是 。
A)每个元素都有一个直接前驱和直接后继。
B)线性表中至少要有一个元素。
C)表中各元素的排列顺序必须是由小到大或由大到小。
D)除第一个元素和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。
7、一个队列的入队序列是1,2,3,4,则队列的输出序列是 。
A)4,3,2,1 B)1,2,3,4
C)1,4,3,2 D)3,2,4,1
8.若进栈序列为1,2,3,4,进栈过程中可以出栈,则 不可能是一个出栈序列。
A)1,4,3,2 B)2,3,4,1
C)3,1,4,2 D)3,4,2,1
9.队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是 。
A)先进先出 B)后进先出
C)先进后出 C)进出不受限制
10.以下哪一个不是队列的基本运算?
A)从队尾插入一个新元素 B)从队列中删除第I个元素
C)判断一个队列是否为空 C)读取队头元素的值
11.栈和队列是一种限制了插入和删除操作位置的线性表。栈插入操作只能在栈 进行,删除操作只能在栈 进行 ;队列的插入操作只能在队 进行,删除操作只能在队 进行。
A)首 B)底 C)顶 D)尾 E)中
12.某二叉树的前序编历结点的访问顺序是ABCDEFG,中序编历结点的访问顺序是CBDAFGE,则其后序编历结点的访问顺序是 。
A)CDBGFEA B)CDGFEAB C)CDBAGFE D)CDBFAGE
13.有关二叉树的下列说法正确的是 。
A) 二叉树的度为2
B) 一棵二叉树的度可以小于2
C) 二叉树中任何一个结点的度都为2
D) 任何一棵二叉树中至少有一个结点的度为2
14.在二叉树结点的先序序列、中序序列和后序序列中,所有叶子结点的先后顺序 。
A)都不相同 B)完全相同
C)先序和中序相同,而与后序不同 D)中序和后序相同,而与先序不同
15、在一棵二叉树上第5层的结点数最多为 。
A)8 B)16 C)15 D)32
16、具有65个结点的完全二叉树其深度为 。
A)8 B)7 C)6 D)5
17、由带权为2,5,7,9的四个叶子结点构造一棵哈夫曼树,该树的带权路径为 。
A) 23 B)37 C) 46 D)44
18、在一个图中,所有顶点的度数之和等于所有边数的 倍,在一个有向图中,所有的顶点入度之和等于所有顶点的出度之和的 倍。
A)1/2 B)2 C)1 D)4
19、一个具有n个顶点的无向图中,要连通全部顶点至少需要 条边。
A)n B)n+1 C)n/2 D)n-1
20、关键路径是事件结点网络中的 。
A)从源点到汇点的最长路径
B)从源点到汇点的最短路径
C)最长的回路
D)最短的回路
21、对一个具有个顶点的图,采用邻接矩阵表示则该矩阵的大小为 。
A)n B)(n-1)2 C) (n+1)2 D) n2
22、已知一个图如下所示,则从顶点a出发按深度优先搜索遍历可以得到的一种顶点序列为
。
A)a,c,e,b,d,f B)a,b,f,e,c,d
C)a,e,c,b,f,d D)a,e,d,f,b,c
23、从未排序的序列中依次取出元素与已排序序列中的元素作比较,将其放人已排序序列中的正确位置上,此方法称为 。从未排序序列中挑选元素,并将其放人已排序序列的一端, 此方法称为 。
A)快速排序 B)简单选择排序
C)冒泡排序 D)直接插入排序
24、每次把待排序的元素划分为左、右两个区间,其中左区间中元素的关键字均小于等于基准元素关键字,右区间中元素的关键字均大于等于基准元素的关键字,则次排序方法叫做
。
A)快速排序 B)简单选择排序
C)冒泡排序 D)直接插入排序
25、快速排序在 情况下最不利于发挥其长处,在 情况下最易发挥其长处。
A)被排序的数据量很大 B)被排序的数据已经基本有序
C)被排序的数据完全无序 D)被排序的数据中最大的值与最小的值相差不大
二、 填空题
1.数据结构包括的三个方面的内容是:数据的 ,数据的 ,数据的 。
2.当向一个顺序表插入一个元素时,从插入位置开始后的所有元素均需 一个位置,移动过程是从 向 依次移动每一个元素。
3、数组的长度是 ,线性表的长度是 。
4、要从一个顺序表删除一个元素时,被删除之后的所有元素均需 一个位置,移动过程是从 向 依次移动每一个元素。
5、在线性表的顺序存储中,元素之间的逻辑关系是通过 决定的。顺序表中逻辑上相邻的元素,物理位置 紧邻。
6、线性表、栈和队列都是 结构,可以在线性表的 位置插入和删除元素,而栈只能在 插入和删除元素;对于队列只能在 插入元素,在 删除元素。
7、栈的插入和删除只能在栈的 进行,队列的插入和删除分别在 端进行,进行插入的一端叫做 ,进行删除的一端叫做 。
8、对于一个具有n个结点的二叉树,当它为一棵 二叉树时具有最小高度,当它为一棵单支树时具有 高度。
9、一棵深度为的k满二叉树的结点总数为 ,一棵深度为k的完全二叉树的结点总数的最小值为 ,最大值为 。
10、设无向图G的顶点数为n,图G最少有 条边,最多有 条边。
11、设有向图G的顶点数为n,图G最少有 条边,最多有 条边。
12、对一组记录(52,42,97,22,17,72,62,47,82)进行直接插入排序时,当把第7个记录62插入到有序表时,为寻找插入位置共需比较 次。
13、对一组记录(52,42,97,22,17,72,62,47,82)进行简单插入排序时,第4次交换和选择后,未排记录为 。
14、对一组记录(52,42,97,22,17,72,62,47,82)进行冒泡排序时,第一趟需进行相邻记录的交换的次数为 ,在整个排序过程中共需进行 趟才可完成。
15、在直接插入排序和简单选择排序中,若初始数据基本有序,则选用 ,若初始数据基本逆序,则选用 。
三、 简答题
1. 假定有四个元素依次进栈,进栈过程中允许出栈,试写出所有可能的出栈序列。
2.二叉树与树之间有什么区别?一棵度为的树与二叉树有什么区别?
3.具有3个结点的树和具有3个结点的二叉树它们的所有不同形态有哪些?
4.写出对如图所示二叉树进行先序遍历、中序遍历、后序遍历时得到的顶点序列。
5.已知一组数据序列为(40,20,75,55,13,25,7,35,65)试画出按数据序列输入生成的二叉排序树。
6.设有7个带权叶子结点,其权值分别为20,12,6,7,10,5,4,试以它们为叶子结点构造一棵哈夫曼树,并写出这7个叶子结点的哈夫曼编码。
第四部分练习(第六章和第七章)
一、 选择题与填空题
1.结构化程序流程图中一般包括三种基本结构,下述结构中哪一种不属于其基本结构。
A)顺序结构 B)分支结构
C)循环结构 D)嵌套结构
2.程序设计语言的选择是顺利实施编程的重要基础,评价语言的因素很多,而其重要的选择依据是 。
A)语言的应用领域 B)对语言的熟悉程度
C)数据结构的复杂度 D)算法的复杂度
3. 在软件工程中,软件测试的目的是 。
A)试验性运行软件 B) 发现软件错误
C)证明软件是正确的 D)找出软件中全部错误
4.软件危机是软件产业化过程中出现的一种现象,下述现象中, 是其主要表现。
A)软件需求难以满足 B)软件开发成本提高
C)软件开发进度难以控制 D)软件质量不易保证
E)全部
5.软件工程的出现主要是由于 。
A)程序设计方法学的影响 B)其他工程科学的影响
C)软件危机的出现 D)计算机的发展
6.算法的四种基本操作是 、 、 、 。
7.算法的控制结构给出了算法的执行框架,她决定了算法中各种操作的执行 。
8.算法的控制结构有三种基本形式: 、 、 。
9.评价算法的综合性能最主要的是算法的 和 。
10.算法的运行效率包括两方面,算法的 复杂度和算法的 复杂度。
11.结构化程序设计方法的主要技术是 和 。
12.程序模块化的一般目标主要体现在 和 。
13.模块的划分有两种方法 , 一种是以 为中心,另一种是以 为中心。
14. 是由数据及对数据的操作组成的逻辑实体。
15.软件生命周期包括软件的 、软件的 和软件 与 三个部分。
16. 在软件定义时期主要包括 和 两个阶段。
17.软件开发时期是具体设计和实现在前一时期定义的软件,它由 、 、 、 和 五个阶段组成。
18.下列程序的算法时间复杂性为 。
for i:=1 to n do
for j:=1 to n-1 do
A:=i+j;
19.软件工程的目标是提高 ,提高 , 降低 。
20.常见的软件开发模型有 、 、 。
二、简答题
1.什么是算法?它有哪几个重要特性?简述三种算法的描述形式和特点?
2.算法设计中有哪些基本设计方法,简述三种方法的基本思想和适应的问题?
3.什么是结构化程序设计?结构化程序设计的目标是什么?它对计算机科学的发展有哪些重要的影响?
4. 结构化程序设计的主要有哪些特征?
5. 模块化程序设计有哪些优点和缺点?简述模块的设计准则是什么?
6. 面向对象方法和结构化方法相比具有哪些特点?
7. 什么是软件工程?软件工程的目标是什么?
8. 软件开发模型有哪两类?瀑布模型和速成原型法各有什么特点?
五、讨论题
1.结合程序设计语言的发展和你的学习,谈谈你对程序设计和程序设计语言的认识,你觉得设计程序时应遵循哪些原则?
2.人才的成长道路是多种多样的,通过对程序设计基础课程的学习和你对计算机大师成就的了解,你有什么收获?为成为一个合格的人才,今后你将如何规划好自己的成才之路?
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
相关文章:
水的单位是吨还是立方04-30
下列词语解释有误的一项是[]A.隐秘:隐蔽,不外露B.小心翼翼04-30
sinx是收敛还是发散04-30
如图所示,均匀金属圆环总电阻为4R,磁感应强度为B的匀强04-30
高考英语作文的结尾方式有哪些04-30
最小的合数是2还是404-30
get sth done和have sth done的区别04-30
的部首是白还是勺04-30
盲的部首是亡还是目04-30