24年计算机基础与程序设计模拟题(三)试卷及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
24年考前测试模拟题试卷三
计算机基础与程序设计
一、单项选择题。
1.以下叙述中正确的是()
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号"{"和"}"只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
2.已定义c为字符型变量,则下列语句中正确的是()
A.c=’97’;
B.c=”97”;
C.c=97 ;
D.c=”a”;
3.设有定义:int x=2;以下表达式的值不为6的是()
A.x*=x+1
B.x++,2*x
C.x*=(1+x)
D.2*x,x+=2
4.设int a=1234;执行语句printf(“%2d”,a);后的输出结果是()
A.12
B.34
C.1234
D.出错
5.以下选项中非法的表达式是()
A.0<=x<100
B.i=j==0
C.(char)(65+3)
D.x+1=x+1
6.有以下程序运行后的输出结果是()
main ( )
{ int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a);
printf(“%d,%d”,k,m);}
A.0,0
B.0,1
C.1,0
D.1,1
7.下面程序段的循环次数是()
for(i=2;i==0;)
printf(‘%d’,i--);
A.无限次
B.0次
C.1次
D.2次
8.int a[10];则正确引用数组a元素的是()
A.a[10]
B.a[3]
C.a[5]
D.a[-10]
9.运行下面的程序后,会出现()
int f(int x,int y)
{x=x>y?x:y;return(x);}
mian( )
{ int d;d=f(f(12,5),f(8,10));
print(“%d\n”,d);}
A.语法错误
B.输出12
C.输出5
D.输出值不确定
10.下面程序段执行后的输出结果是()
char*s=’abcde’;
s+=2;
printf(‘%d’,s);
A.cde
B.字符’c'
C.字符’c’的地址
D.不确定
11.为便于判别有向图中是否存在回路,可借助于()
A.广度优先搜索算法
B.最小生成树算法
C.最短路径算法
D.拓扑排序算法
12.堆的形状的一棵()
A.二叉排序树
B.满二叉树
C.完全二叉树
D.平衡二查树
13.下面说法中正确的是()
A.度为2的树是二叉树
B.度为2的有序树的二叉树
C.子树有严格左右之分的树是二叉树
D.子树有严格左右之分,且度不超过2的树是二叉树
14.按照二叉树的定义,具有3个结点的二叉树有()种。
A.3
B.4
C.5
D.6
15.对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要进行相邻记录的比较的次数为,在整个排序过程中最多需要进行趟排序才可以完成。
A.8,8
B.9,9
C.1,7
D.9,8
16.队列的删除操作是在()
A.队首
B.队尾
C.队前
D.队后
17.若让元素1,2,3,依次进栈,则出栈次序不可能是()
A.3,2,1
B.2,1,3
C.3,1,2
D.1,3,2
18.一个顺序表的第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的存储地址是()
A.98
B.100
C.102
D.106
19.在线性表的下列存储结构中,读取元素花费的时间最少的是()
A.单链表
B.双链表
C.循环链表
D.顺序表
20.计算机中的算法指的解决某一个问题的有限运算序列,它必须具备输入、输出、()等4个特性。
A.可执行性、可移植性和可扩充性
B.确定性、有限性
C.确定性、有穷性和稳定性
D.易读性、稳定性和确定性
二、判断题。
21.用C语言可直接进行位运算和取地址等运算,因此C语言是一种低级语言。
()
22.C程序是由函数构成的,每一个函数完成相对独立的功能。
()
23.对整型常量可进行自加或自减运算,而对变量或表达式不可以。
()
24.switch语句中各个case和default出现先后次序不影响执行结果。
()
25.数组元素通常也称为下标变量。
必须先定义数组,才能使用下标变量。
()
26.只有在函数被调用时,其形式参数才临时地占有存储空间。
()
27.从源点到终点的最短路径是唯一的。
()
28.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。
()
29.简单选择排序和直接插入排序算法的平均时间复杂度为O(n2)。
()
30.顺序存储方式只能用于存储线性结构。
()
三、填空题。
31.C文件通过了编译、连接之后,生成一个后缀名为的文件。
32.若x、a、b均是int型变量,则执行表达式x=(a=1,b=2)后的结果为。
33.表达式(int)(double)(5/2)+2.5)的值是。
34.已知,a=3,b=4,c=5;逻辑表达式a||b+c&&b-c的值为。
35.测试字符串长度的函数为。
36.可以将被调函数中获得的值返回主调函数的语句是。
37.遍历图的基本方法有深度优先搜索和广度优先搜索,其中是一
个递归过程。
38.优先级树中任一结点中存储的元素优先级其儿子结点中存储的元素的优先级。
39.由如图所示的二叉树,回答以下问题:
(1)其中序遍历序列为;
(2)其前序遍历序列为。
四、简答题。
40.语句的五种类型?
41.break和continue语句在循环中的区别?
42.简述树的遍历?三种遍历方法?
43.简述什么是图?有向图?完全图?
44.执行以下程序段后,i的值是。
int i=10;
switch(i+1)
{ case 10:i++;break;
case 11:++i;
case 12:++i;break;
default:i=i+1;}
45.下列程序运行时,若输入labcedf2df<回车>输出结果为。
#include <stdio.h>
mian( )
{ char a=0,ch;
while((ch=getchar())!=‘\n’)
{ if(a%2!=0&&(ch>=’a’&&ch<=’z’)) ch=ch-’a’+’A’
a++;putchar(ch);
}
printf(“\n”);
}
46.已知有向图如下所示,请写出该图所有的拓扑序列。
47.已知图G如下,根据克鲁斯卡尔算法求图G的一棵最小生产树。
(要求给出构造过程)
48.将50-100之间的不能被3整除的数输出,每行输出5个数。
49.用选择排序法对10个整数进行排序[1,12,4,9,10,22,-7,0,99,8]。
参考答案
一、单项选择题。
1-5:ACDCD 6-10:CBBBC
11-15:DCDCA 16-20:ACBDB
二、判断题。
21.× 22.√ 23.× 24.√ 25.√
26.√ 27.× 28.× 29.√ 30.×
三、填空题。
31.exe
32.2
33.4
34.1
35.strlen
36.return
37.深度优先搜索
38.不大于
39.(1)Dbaechif
(2)abdcefhi
四、简答题。
40.C语句分为以下5类:
(1)控制语句:if、switch、for、while、do...while、continue、break、return、goto等
(2)函数调用语句
(3)表达式语句
(4)空语句
(5)复合语句
41.break语句是结束整个循环;continue语句是结束本次循环,跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判断
42.遍历是指对树中所有结点的系统的访问,即依次对树中每个结点访问一次且仅访问一次。
树的3种最重要的遍历方式分别称为前序遍历、中序遍历和后序遍历。
43.图中的每个结点(也称为顶点)即可能前驱结点也可能有后继结点,且个数不限。
图记为G=(V,E),V是顶点的非空有限集,E是V中顶点对,也就是边的
有限集。
有向图:图中的每条边都是有方向的。
无向图:每条边是没有方向的。
完全图:恰好有n(n-1)/2条边的无向图称为完全无向图;恰好有n(n-1)条的有向图称为完全有向图。
44.12
bCeDf2dF
46.拓扑排序如下:
v1,v2,v4,v6,v5,v3,v7,v8 v1,v2,v4,v6,v5,v7,v3,v8
v1,v2,v6,v4,v5,v3,v7,v8 v1,v2,v6,v4,v5,v7,v3,v8
v1,v6,v2,v4,v5,v3,v7,v8 v1,v6,v2,v4,v5,v7,v3,v8
47.kruskal算法的最小生成树
48.参考程序:
#include <stdio.h>
void mian( )
{
count=0;
for(n=50;n<=100;n++)
{
if(n%3!=0)
{printf(“%6d”,n);
count++;
if(count%5==0)
printf(“\n”);
}
}
printf(“\n”);
}
49.
#include <stdio.h>
int mian( )
{
int i,j,min,temp,a[11]={1000,1,12,4,9,10,22,-7,0,99,8}; for(i=1;i<=9;i++){
min=i;
for(j=i+1;i<=10;j++)
if(a[min]>a[j]min=j;
temp=a[i]
a[i]=a[min];
}
for(i=1;i<=10;i++)
printf(“%d”,a[i]);
return 0;
}。