admin 管理员组

文章数量: 1086019


2024年12月30日发(作者:java数据库根据id查询)

电大程序设计基础复习题

Last updated on the afternoon of January 3, 2021

《程序设计基础》题库

一、 填空题

1. 总线通常由3部分组成:(数据)总线、(地址)总线和控制总线。

2. (流程图)算法描述方法是用规定式样的几何图形、流程线及文字说明组合起

来表示算法的框图。

3. 在数据结构的指定位置上添加一个新结点称为(插入)运算操作。

4. while语句与do-while语句的区别是(while中的循环体可能一次也不执行,而

do-while中的循环体至少执行一次)。

5. 采用链式存储的有序数据要进行查找,可以采用(顺序查找)。

6. 队列的最主要特点是(先进先出)。

7. (过程式)语言是通过知名一系列可执行的运算及运算的次序来描述计算过程

的语言。

8. 软件系统按其功能可分为(系统)软件和(应用)软件两大部分。

9. 冯·诺依曼型计算机的两大特征是(程序存储)和(采用二进制)。

10. 计算机语言有三种类型:(机器)语言、(汇编)语言和(高级)语言。

11. (过程式)语言,也叫命令式语言或强制式语言。

12. (过程式)语言是通过知名一系列可执行的运算及运算的次序来描述计算过程

的语言。

13. 微机中常用的高级语言主要有三类:面向(过程)的程序设计语言、数据库语

言和面向(对象)的程序设计语言。

14. 高级语言程序翻译成机器语言程序一般有两种方法:(编译)方式和解释方

式。

15. 我们用(时间复杂度)和(空间复杂度)来度量算法的运行效率。

二、 选择题

1. 以下各标识符组中,合法的用户标识符是()。C

A.3A3?B.KEY%

C._ABC?D.char

1. 以下哪种类型语言的表达方式更接近人类自然语言()C

A. 汇编语言

B. 机器语言

C. 高级语言

D. 低级语言

2. 以下哪个系统是为了运行、管理、维护和使用计算机而编写的各种程序(包

括文档)的总和。()B

A. 硬件系统

B. 软件系统

C. 总线系统

D. 操作系统

3. C语言中,取地址采用运算符()C

A. &&

B. ||

C. &

D. !

4. 如果i的初值为3,则k=(++i)+(++i);结果k的值为()D

A.

B.

C.

D.

6

8

7

10

5. 下面结论中()是错误的。B

A. 二叉树是树

B. 二叉树的左右子树的位置可以颠倒

C. 可以使用二叉树的思想对数值进行排序

D. 可以采用链表方式存储二叉树

6. 计算机发展的分代史中通常划分时代的标准是以计算机所采用的_____。A

A逻辑元件B程序设计语言C操作系统发展D硬件运算速度

7. 世界上第一台电子数字计算机研制成功的时间是______。B

A1936年B1946年C1956年D1970年

8. CASE的含义是______。D

A计算机辅助设计

C计算机辅助教学

9. 硬盘是______。C

A输入设备B输出设备C存储设备D计算设备

10. 系统软件的核心软件是______。A

A操作系统B编译程序C汇编程序D机器语言

11. 下面4句话中,最准确的表述是______。A

A程序=算法+数据结构 B程序是使用编程语言实现算法

B计算机辅助制造

D计算机辅助软件工程

C程序的开发方法决定算法设计 D算法是程序设计中最关键的因素

12. 程序设计要遵循一定的开发方法及思想,以下有一个不是程序设计过程中应

该遵循的开发方法,它是______。D

A结构化设计方法

B模块化程序设计方法

D数据结构优先原则 C面向对象的程序设计方法

13. 计算机能直接执行的语言是______。A

A机器语言 B汇编语言 C高级语言 D目标语言

14. 世界上第一个高级语言是______。C

ABASIC语言

BC语言 CFORTRAN语言

DPASCAL语言

15. 下面4种程序设计语言中,不是面向过程式语言的是______。D

AFORTRAN BALGOL CAda DC++

16. 下面4种程序设计语言中,不是面向对象式语言的是______。D

AJAVA

DC

17. 栈的最主要特点是______。B

A先进先出

一端出

18. 队列的最主要特点是______。A

A先进先出

一端出

19. 下面4句结论中只有一句是错误的,它是_____。B

A二叉树是树

B先进后出 C两端进出 D一端进

B先进后出 C两端进出 D一端进

BObjectPascal CDelphi

B二叉树的左右子树的位置可以颠倒

C可以使用二叉树的思想对数值进行排序

D可以采用链表方式存储二叉树

20. 采用链式存储的有序数据要进行查找,可以采用______。A

A顺序查找

折半查找

21. 螺旋模型中包括需求定义、风险分析、工程实现和评审四个阶段,在开发过

程中______。A

A每个周期都要包括这四个阶段

C在最后交付使用之前才进行评审

险分析

22. 关于计算机程序的错误说法是______。B

B每个周期可以包括不同的阶段

D开项目开始时才需要进行风

B折半查找 C顺序索引查找 D顺序或

A程序是按照工作步骤事先编排好的、具有特殊功能的指令序列

B运行在硬件系统之上的软件应该采用高级语言编写

C在现代的计算机系统中程序采用二进制形式存储

D同一计算机系统可以完成不同的功能是因为执行了不同的程序

23. 程序设计过程中的三要素是______。A

A算法、数据结构和程序设计方法学

C输入、操作处理和输出

处理

24. JAVA语言的类别是______。C

B数据、算法和数据结构

D数据、数据结构和

A面向过程的程序设计语言 B面向问题的程序设计语言

C面向对象的程序设计语言 D面向硬件的程序设计语言

25. 在C语言中,字符串常量的定界符是______。C

A空格 B单引号 C双引号 D方括号

26. C语言中int变量能够表示的数值范围是______。B

A-32767~32768 B-32768~32767 C0~65535 D0~65536

27. C语言中的循环控制语句中属于“直到型”循环的语句是______。D

Agoto Bwhile Cfor Ddo-while

28. 数据的存储结构分为两种,它们是______。B

A线性存储和数组存储

C线性存储和树型存储

B顺序存储和链式存储

D数组存储和指针存储

29. 如果在内存中采用链式保存线性表,则元素之间的逻辑关系通过______。B

A元素在内存中的相对位置表示逻辑次序

B保存在元素中的指针表示先后次序

C设立单独的区域存储元素之间的逻辑次序

D元素本身的关键字来表示逻辑次序

30. 栈的逻辑结构是______。B

A集合

31. 若按照一定的顺序依次访问树中的每一个结点,而且每个结点只被访问一

次,则称这样的操作为______。C

A排序 B查找 C遍历 D建立

B线性结构 C树型结构 D图型结

32. 进行顺序查找的条件是______。D

A数据有序且采用顺序存储方式

C数据有序且采用链式存储方式

B数据不需要有序,但需要顺序存储

D数据不需要有序,也不限制存储方

33. 早期进行程序开发过程中存在不少问题,在下列问题中有一个并不是早期程

序员常见的问题,它是______。D

A程序员过分依赖技巧与天分,不太注重所编写程序的结构

B程序中的控制随意跳转,不加限制地使用goto语句

C无固定程序设计方法

D对问题的抽象层次不够深入

34. 如果在进行单元测试的时候发现错误,则针对该被发现的错误,可以判

断在整个软件开发过程最可能出现错误的阶段是______。C

A需求分析

三、 问答题

1. 下图是一种什么类型的数据结构A结点度为多少E结点的度为多少根结点是哪

个结点F结点的兄弟结点和双亲结点分别是哪些结点

一般的树,3,0,A,E,B

2. 用流程图描述求3个正整数中最大值的算法

B概要设计 C详细设计 D单元测试

开始

输入a,b,c

a值赋予max

b>max?

N

Y

b值赋予max

N

c>max?

Y

C值赋予max

输出max

结束

3. 简述计算机程序设计语言的分类和各类的特点。

一般分为三类:机器语言(也称机器指令集),汇编语言和高级语言。

机器语言是每台计算机出厂时,厂家都为它配备一套机器语言,不同的计算机,

其机器语言通常是不同的。由于机器语言是面向具体机器的,所以其程序缺乏通用

性,编写程序的过程繁琐复杂,易出错,错了又不易查找和修改,编出的程序可读性

极差。

汇编语言是机器语言的符号化形式。用汇编语言编写的程序(又称源程序)经汇

编器加工处理后,就转换成可由计算机直接执行的目标程序。汇编语言提高了程序设

计效率和计算机利用率。汇编语言仍属面向机器的一种低级语言,其程序的通用性和

可读性较差。

高级程序设计语言是指通用性好,不必对计算机的指令系统有深入的了解就可以

编写程序。采用高级语言编写的程序在不同型号的计算机上只需做某些微小的改动便

可运行,只要采用这些计算机上的编译程序重新编译即可。高级语言具有通用性,与

具体的机器无关

4. 请写出下面二叉树的先根遍历、中根遍历和后根遍历序列。

5. 请分别写出下面二叉树的先根遍历、中根遍历和后根遍历

A

B C

D

四、 完善程序

1. 用递归方法求1到10的阶乘

#include<>

longfactorial(intn)

{longresult;

if(n==0)

result=1;

else

result=;

returnresult;

}

voidmain()

{intj;

for(j=0;j<10;j++)

printf(“%d”,);

}

n*factorial(n-1),factorial(j+1)

E F

2. 输入一个整数,计算并显示其绝对值

#include<>

voidmain()

{intx;

printf(“Input:”);

scanf(“%d”,);

=(x>0?;-x);

printf(“Theabsofxis:%d”,x);

}

&x,x,x

3. 输入三个整数,然后按由小到大的次序输出

#include<>

Voidmain()

{inta,b,c,temp;

printf("pleaseinput:");

scanf("%d,%d,%d",&a,&b,&c);

if(a>b)

{temp=a;

a=b;

b=temp;

}

if(b>c)

{temp=b;

b=;

c=temp;

}

if()

{temp=a;

a=b;

b=temp;

}

printf("result:%d,%d,%d",);

}

}

c,a>b,a,b,c

4. 以下程序可以实现从键盘输入一串数字(要求输入的数要在长整型数值范围之

内),然后以相反的顺序将它们输出,例如,输入12345,输出54321,请填

空。

voidmain()

{

longintnum,n;

printf("请输入数字n");

scanf("%d",&num);

do

{

n=________;

printf("%d",n);

num=________;

}while(num!=0);

}

num%10num/10

a) 阅读程序,写出运行结果

1. 以下程序的输出结果是__________。

voidmain()

{

intx=17,y=26;

printf("%dn",y/=(x%6));

}

5

2. 以下程序的输出结果是。

voidmain()

{

intx=0,y=5,z=5;

if(x=y-z)

printf("0000");

else

printf("1111");

}

1111

3. 定义:intx=2,y=3;则下面表达式的值及运算后变量x、y和z的值是多少?

4.

(x++)*(--y)

表达式的值为:4

x=3

y=2

5. 定义:intx=2,y=3;则下面表达式的值及运算后变量x、y和z的值是多少?

6.

(++x)*(--y)

表达式的值为:6

x=3

y=2

五、 改错

1. 下列程序的功能是实现1+2+3+……+10。请改正错误(不能增减语句)。

voidmain()

{

inti,s;

for(i=1,i<=10);

{

s+=i;

i+1;

}

printf("s=%dn",s);

}

改:

voidmain()

{

inti,s=0;

for(i=1;i<=10;)

{

s+=i;

i++;

}

printf("s=%dn",s);

}

2. 请修改found提示下的一行代码(其他行不能动),使程序没有语法错误。

voidmain()

{

/************found****************/

intc,d;

scanf("%d,%d",c,d);

e=c+d;

printf("%d",e);

}

改:

voidmain()

{

/************found****************/

intc,d,e;

scanf("%d,%d",&c,&d);

e=c+d;

printf("%d",e);

}

3. 请修改found提示下的一行代码(其他行不能动),使程序没有语法错误。

voidmain()

{

inta=1,b=5;

/************found**************/

IFa

b=a+1;

else

b=1;

printf("%d,%dn",a,b);

}

改:

voidmain()

{

inta=1,b=5;

/************found**************/

if(a

b=a+1;

else

b=1;

printf("%d,%dn",a,b);

}

六、 编写程序

1. 从键盘输入三个不相等的数A、B、C,把它们按由大至小的顺序排列出来。

voidmain()

{

floata,b,c,m;

scanf("%f%f%f",&a,&b,&c);

if(a

{m=a;a=b;b=m;}

if(a

{m=a;a=c;c=m;}

if(b

{m=b;b=c;c=m;}

printf("%f>%f>%f",a,b,c);

}

2. 将一个数组的元素首尾倒置(本题15分)

#include<>

voidmain()

{

floata[10];

intk,m;

printf(“nInputarray:”);

for(k=0;k<10;k++)

scanf(“%f”,&a[k]);

for(k=0,m=9;k

{

floattemp=a[k];

a[k]=a[m];

a[m]=temp;

}

for(k=0;k<10;k++)

printf(“%f,”,a[k]);

}

3. 一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车

号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照

的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号

刚好是一个整数的平方。请根据以上线索求出车号。

#include”"

main()

{inti,j,k,m;

for(i=1;i<=9;i++)/*i:车号前二位的取值*/

for(j=0;j<=9;j++)/*j:车号后二位的取值*/

if(i!=j){/*判断两位数字是否相异*/

k=i*1100+j*11;

for(m=31;m*m

/*判断是否为整数的平方*/

if(m*m==k)

printf("%d.n",k);

}

}

4. 从键盘输入h值,输出h行用@号组成等腰三角形。例:输入h=4,输出

的图形如下:

@

@@@

@@@@@

@@@@@@@

#include<>

main()

{inth,k,j;

scanf(”%d”,&h);

for(k=1;k<=h;k++)/*控制打印h行*/

{for(j=1;j<=h-k;j++)/*打印空格*/

printf(””);

for(j=1;j<=2*k-1;j++)/*打印*号*/

printf(”@”);

printf(”n”);

}

}

5. 从键盘输入h值,输出h行用#号组成等腰三角形。例:输入h=4,输出

的图形如下:

#

###

#####

#######

#include<>

main()

{inth,k,j;

scanf(”%d”,&h);

for(k=1;k<=h;k++)/*控制打印h行*/

{for(j=1;j<=h-k;j++)/*打印空格*/

printf(””);

for(j=1;j<=2*k-1;j++)/*打印*号*/

printf(”#”);

printf(”n”);

}

}

6. 请编程序打印出一张乘法“九九表”。表的样式如下:

9

141618

369

486

5045

6854

main()

{inti,j;

for(i=1;i<10;i++)

{for(j=1;j<10;j++)printf("%4d",i*j);

printf("n");

}


本文标签: 语言 程序 程序设计 采用 计算机