一 、选择题
(1)下列数据结构中,按先进后出原则组织数据的是
A)线性链表 B)栈
C)循环链表 D)顺序表
正确答案: B
(2)具有3个结点的二叉树有
A)2种形态 B)4种形态
C)7种形态 D)5种形态
正确答案: D
(3)设有下列二叉树:
对此二叉树前序遍历的结果为
A)ZBTYCPXA B)ATBZXCYP
C)ZBTACYXP D)ATBZXCPY
正确答案: B
(4)结构化程序设计主要强调的是
A)程序的规模 B)程序的效率
C)程序设计语言的先进性 D)程序易读性
正确答案: D
(5)程序的3种基本控制结构是
A)过程、子过程和分程序 B)顺序、选择和重复
C)递归、堆栈和队列 D)调用、返回和转移
正确答案: B
(6)下列叙述中,不属于测试的特征的是
A)测试的挑剔性 B)完全测试的不可能性
C)测试的可靠性 D)测试的经济性
正确答案: C
(7)需求分析中开发人员要从用户那里了解
A)软件做什么 B)用户使用界面
C)输入的信息 D)软件的规模
正确答案: A
(8)下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是
A)选择 B)连接
C)投影 D)并
正确答案: B
(9)下列叙述中,正确的是
A)用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系
B)用E-R图只能表示实体集之间一对一的联系
C)用E-R图只能表示实体集之间一对多的联系
D)用E-R图表示的概念数据模型只能转换为关系数据模型
正确答案: C
(10)"年龄在18~25之间"这种约束是属于数据库当中的
A)原子性措施 B)一致性措施
C)完整性措施 D)安全性措施
正确答案: C
(11)以下说法错误的是
A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式
B)计算机只能处理由0和1的代码构成的二进制指令或数据
C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件
D)每一种高级语言都有它对应的编译程序
正确答案: C
(12)算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是
A)有零个输入或多个输入
B)高效性
C)有穷性
D)确定性
正确答案: B
(13)已知int a=6; 则执行a+=a-=a*a;语句后,a的值为
A)36
B)0
C)-24
D)-60
正确答案: D
(14)下面各选项中,均是C语言标识符的选项组是
A)forchinato
B)long_123short56_do
C)voidunion_342
D)text.txt _023_3ew
正确答案: B
(15)下列表达式中,结果为5的是
A)6*5%6
B)5*-2+15
C)5+75%10
D)6+-2/3
正确答案: B
(16)下列常量中,为不合法的实型常量表示的是
A).0032
B)0.0
C)0.3242E8
D).E3
正确答案: D
(17)关于C语言的主函数描述正确的是
A)C程序可以有多个main函数
B)C程序必有一个而且只能有一个main函数
C)C程序可以没有main函数
D)C程序的执行不一定在main函数开始执行
正确答案: B
(18)已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是
A)-1
B)0
C)1
D)语句错误
正确答案: B
(19)已知int a,b;double c;则以下语句中错误的函数调用是
A)scanf("%d,%x,%lf",&a,&b,&c);
B)scanf("%d,%d,%le",&a,&b,&c);
C)scanf("%o,%x,%o",&a,&b);
D)scanf("%d,%o,%e",&a,&b,&c);
正确答案: D
(20)已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为
A)1
B)2
C)3
D)4
正确答案: C
(21)若int k=8;则执行下列程序后,变量k的正确结果是
main()
{int k=8;
switch(k)
{case 9:k+=1;
case 10:k+=1;
case 11:k+=1;break;
default:k+=1;}
printf("%d\n",k);}
A)12
B)11
C)10
D)9
正确答案: D
(22)若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是
A)9
B)8
C)3
D)2
正确答案: C
(23)下列程序的输出结果是
#include "stdio.h"
main()
{ int i=6;
while(i--)
printf("%d",--i);
printf("\n");}
A)531
B)420
C)654321
D)死循环
正确答案: B
(24)阅读下列程序,则执行结果是
#include "stdio.h"
main()
{int a=0,b=0,c=0,i;
for(i=0;i<4;i++)
switch(i)
{case 0:a=i++;
case 1:b=i++;
case 2:c=i++;
case 3:i++;}
printf("%d,%d,%d,%d\n",a,b,c,i);}
A)0,1,3,4
B)1,2,3,4
C)0,1,2,5
D)0,2,3,4
正确答案: C
(25)下面程序的运行结果是
#include "stdio.h"
main()
{int j,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))break;
if(i>=j-1){printf("%d",j);
k++;}}}
A)5359
B)5953
C)3595
D)9535
正确答案: A
(26)已知char ch=′C′;则以下表达式的值是
ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;
A)A
B)a
C)Z
D)c
正确答案: D
(27)以下描述错误的是
A)C程序中,函数可以直接或间接的调用自己
B)函数调用时,函数名必须与所调用的函数名字完全一致
C)函数说明语句中的类型必须与函数返回值的类型一致
D)实参数可以与形参个数不一致
正确答案: D
(28)阅读下面程序,则执行后的结果为
#include "stdio.h"
main()
{fun3(fun1(),fun2());}
fun1()
{ int k=20;
return k;}
fun2()
{ int a=15;
return a;}
fun3(int a,int b)
{int k;
k=(a-b)*(a+b);
printf("%d\n",k);}
A)0
B)184
C)175
D)编译不通过
正确答案: C
(29)阅读下面程序,则执行后的输出结果为
#include "stdio.h"
fun(int a,int b)
{int s;
s=a*b/2;
printf("%d\n",s);}
main()
{int a=10,b=16;
fun(a,b);}
A)10
B)16
C)160
D)80
正确答案: D
(30)阅读下面程序,则程序执行后的结果为
#include "stdio.h"
main()
{int a=4,b=6,c=7;
double d,fun(int,int,int);
d=fun(a,b,c);
printf("%lf\n",d);}
double fun(int a,int b,int c)
{double s;
s=a%b*c;
return s;}
A)27
B)27.000000
C)28
D)28.000000
正确答案: D
(31)下列不合法的指针变量的定义是
A)int *_k;
B)char *_245;
C)int *p;
D)double *5_is
正确答案: D
(32)下列关于指针变量赋空值的说法错误的是
A)当赋空值的时候,变量指向地址为0的存储单元
B)赋值语句可以表达为变量名=′\0′;
C)赋值语句可以表达为变量名=0;
D)一个指针变量可以被赋空值
正确答案: A
(33)阅读下面程序,则执行后输出的结果为
#include "stdio.h"
void fun(int *a,int *b)
{int m;
m=(*a+*b)*(*a+*b);
m+=(*a-*b)*(*a-*b);
printf("%d\n",m);}
main()
{ int a=5,b=6,*x=&a,*y=&b;
fun(x,y);}
A)120
B)121
C)122
D)123
正确答案: C
(34)阅读下面程序,则输出结果是
#include "stdio.h"
void fun(int *a,int *b)
{int c=20,d=25;
*a=c/3;
*b=d/5;}
main()
{ int a=3,b=5;
fun(&a,&b);
printf("%d,%d\n",a,b);}
A)6,5
B)5,6
C)20,25
D)3,5
正确答案: A
(35)以下对一维数组c进行正确的定义初始化的语句是
A)int c[10]=0;
B)int c[10]={0}*10;
C)int c[1]={0,0,0,0,0,0,0};
D)int c[10]={0};
正确答案: D
(36)以下二维数组c的定义形式是
A)int c[3][]
B)float c[3,4]
C)double c[3][4]
D)float c(3)(4)
正确答案: C
(37)阅读下列程序,则执行后输出的结果是
#include "stdio.h"
int k=1;
main()
{fun(k);
printf("%d\n",k);}
fun(int k)
{ k++;
k=k*6;}
A)1
B)2
C)6
D)12
正确答案: A
(38)已知#define M 2;的宏定义,执行语句k=M*5;后,k的值是
A)10
B)5
C)2
D)以上答案都不对
正确答案: D
(39)已知:int c[3][4];则对数组元素引用正确的是
A)c[1][4]
B)c[1.5][0]
C)c[1+0][0]
D)以上表达都错误
正确答案: C
(40)现有如下程序段
#include "stdio.h"
void fun(int *a,int *b,int *c)
{*c=*a+*b;}
main()
{int a[2]={12,23},c;
fun(a,a+1,&c);
printf("%d\n",c);}
则程序的输出结果为
A)23
B)12
C)0
D)35
正确答案: D