一 、选择题
(1)循环链表的主要优点是
A)不再需要头指针了
B)从表中任一结点出发都能访问到整个链表
C)在进行插入、删除运算时,能更好的保证链表不断开
D)已知某个结点的位置后,能够容易的找到它的直接前件
正确答案: B
(2)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是
A)ABCED B)DCBEA
C)DBCEA D)CDABE
正确答案: B
(3)n个顶点的强连通图的边数至少有
A)n-1 B)n(n-1)
C)n D)n+1
正确答案: C
(4)在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的
A)安全性 B)一致性
C)可理解性 D)合理性
正确答案: C
(5)模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的
A)抽象和信息隐蔽 B)局部化和封装化
C)内聚性和耦合性 D)激活机制和控制方法
正确答案: C
(6)软件开发的结构化生命周期方法将软件生命周期划分成
A)定义、开发、运行维护
B)设计阶段、编程阶段、测试阶段
C)总体设计、详细设计、编程调试
D)需求分析、功能定义、系统设计
正确答案: A
(7)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是
A)路径的集合 B)循环的集合
C)目标的集合 D)地址的集合
正确答案: A
(8)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有
A)特定的数据模型 B)数据无冗余
C)数据可共享 D)专门的数据管理软件
正确答案: A
(9)数据库设计包括两个方面的设计内容,它们是
A)概念设计和逻辑设计
B)模式设计和内模式设计
C)内模式设计和物理设计
D)结构特性设计和行为特性设计
正确答案: A
(10)实体是信息世界中广泛使用的一个术语,它用于表示
A)有生命的事物 B)无生命的事物
C)实际存在的事物 D)一切事物
正确答案: C
(11)以下说法错误的是
A)一个算法应包含有限个步骤
B)在计算机上实现的算法是用来处理数据对象的
C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现
D)算法的目的是为了求解
正确答案: C
(12)下列选项中不是结构化程序基本结构的是
A)顺序结构
B)跳转分支结构
C)选择结构
D)循环结构
正确答案: B
(13)已知int k,m=1;执行语句k=-m++;后,k的值是
A)-1
B)0
C)1
D)2
正确答案: A
(14)已知int m;float k;正确的语句是
A)(int k)%m
B)int(k)%m
C)int(k%m)
D)(int)k%m
正确答案: D
(15)下面各选项中,均是C语言标识符的选项组是
A)33 we auto
B)_23 me _3ew
C)_43 3e_ else
D)ER -DF 32
正确答案: B
(16)已知int k;float m=-3;执行语句k=m%2;后,变量k的值是
A)-1
B)0
C)1
D)语句有错误
正确答案: D
(17)不能进行++和--运算的数据类型为
A)指针
B)整型
C)长整型
D)常量
正确答案: D
(18)已知int k=10,m=3,n;则下列语句输出结果是
printf("%d\n",n=(k%m,k/m));
A)2
B)3
C)4
D)5
正确答案: B
(19)已知int a;float b;所用的scanf调用语句格式为:
scanf("a//%d,b=%f",&a,&b);
为了将数据3和25.08分别赋给x和y,正确的输入应当是
A)3,25.08<Enter>
B)a=3,b=25.08<Enter>
C)a//3,b=25.08<Enter>
D)a//3<Enter>b=25.08<Enter>
正确答案: C
(20)当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是
A)m=k=n
B)(m=k)&&(n=k)
C)(m=k)||(n=k)
D)(k=m)&&(n=k)
正确答案: B
(21)下列程序的运行结果是
#include "stdio.h"
main()
{ int x=-9,y=5,z=8;
if(x<y)
if(y<0)z=0;
else z+=1;
printf("%d\n",z);}
A)6
B)7
C)8
D)9
正确答案: D
(22)现有定义int k=1;则执行语句while(++k<4);后,k的值为
A)4
B)5
C)6
D)8
正确答案: A
(23)以下程序的运行结果为
#include "stdio.h"
main()
{int m,n;
for(m=0,n=10;m<n;m+=3,n--);
printf("%d,%d\n",m,n);}
A)6,7
B)7,6
C)9,7
D)7,9
正确答案: C
(24)阅读下列程序,程序的输出结果是
#include "stdio.h"
main()
{
int m,n;
float k;
for(m=6;m>2;m--)
{ k=0;
for(n=m;n>1;n--)
k=k+m*n;
}
printf("%f\n",k);
}
A)5.000000
B)15.000000
C)25.000000
D)35.000000
正确答案: B
(25)下列程序的输出结果是
#include "stdio.h"
main()
{int i,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;}
b++;}
printf("a=%d,b=%d",a,b);}
A)a=4,b=4
B)a=4,b=5
C)a=5,b=4
D)a=5,b=5
正确答案: B
(26)下列选项可以正确表示字符型常量的是
A)′\r′
B)"a"
C)"\897"
D)296
正确答案: A
(27)下面对C语言的描述中,正确的是
A)函数一定有返回值,否则无法使用函数
B)C语言函数既可以嵌套定义又可以递归调用
C)在C语言中,调用函数时,只能将实参的值传递给形参
D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
正确答案: C
(28)阅读下面程序段,则执行后的结果为
#include "stdio.h"
main()
{int m=4,n=2,k;
k=fun(m,n);
printf("%d\n",k);}
fun(int m,int n)
{return(m*m*m-n*n*n);}
A)64
B)8
C)56
D)0
正确答案: C
(29)阅读下面程序段,则执行后输出的结果是
#include "stdio.h"
main()
{ char fun(char,int);
char a=′A′;
int b=13;
a=fun(a,b);
putchar(a);}
char fun(char a,int b)
{char k;
k=a+b;
return k;}
A)A
B)M
C)N
D)L
正确答案: C
(30)编写求两个双精度数之和的函数,选项中正确的是
A)double add(double a,double b)
{double s;
s=a+b;
return s; }
B)double add(double a,b)
{double s;
s=a+b;
return (s);}
C)double add(double a double b)
{double s;
s=a+b;
returns;}
D)double add(a,b)
{double a,b,s;
s=a+b;
return (s);}
正确答案: A
(31)已知int a;则下面的说明指针变量p的语句正确的是
A)int p=&a
B)int *p=a
C)int *p=&a
D)int *p=*a
正确答案: C
(32)已知char **t;则变量t是
A)指向char变量的指针
B)指向指针的char变量
C)指向指针的指针
D)以上说法都不对
正确答案: C
(33)阅读下面程序,执行后的结果为
#include "stdio.h"
void fun(int *a,int *b)
{ int k;
k=5;
*a=k;
*b=*a+k;}
main()
{ int *a,*b,x=10,y=15;
a=&x;
b=&y;
fun(a,b);
printf("%d,%d\n",*a,*b);}
A)10,15
B)5,15
C)5,10
D)15,10
正确答案: C
(34)阅读下面程序,在程序执行后的结果为
#include "stdio.h"
int *fun(int *a,int *b)
{ int m;
m=*a;
m+=*b-3;
return(&m);}
main()
{int x=21,y=35,*a=&x,*b=&y;
int *k;
k=fun(a,b);
printf("%d\n",*k);}
A)53
B)21
C)35
D)14
正确答案: A
(35)已知int a[10];则对a数组元素的正确引用是
A)a[10]
B)a
C)a+5
D)a[10-10]
正确答案: D
(36)在C语言中,一维数组的定义方法为
类型说明符 数组名
A)[常量表达式]
B)[整型常量]
C)[整型变量]
D)[整型常量]或[整型表达式]
正确答案: A
(37)阅读下列程序,则运行结果为
#include "stdio.h"
fun()
{ static int x=5;
x++;
return x;}
main()
{ int i,x;
for(i=0;i<3;i++)
x=fun();
printf("%d\n",x);}
A)5
B)6
C)7
D)8
正确答案: D
(38)下列程序的输出结果是
#include "stdio.h"
#defineM(x,y)x%y
main()
{ int a,m=12,n=100;
a=M(n,m);
printf("%d\n",a--);}
A)2
B)3
C)4
D)5
正确答案: C
(39)阅读下面程序,则程序段的功能是
#include "stdio.h"
main()
{ int c[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i<7;i++)
{ t=c[i];j=i-1;
while(j>=0 && t>c[j])
{c[j+1]=c[j];j--;}
c[j+1]=t;}
for(i=0;i<7;i++)
printf("%d ",c[i]);
putchar(′\n′);}
A)对数组元素的升序排列
B)对数组元素的降序排列
C)对数组元素的倒序排列
D)对数组元素的随机排列
正确答案: B
(40)阅读下列程序,则执行后的结果为
#include "stdio.h"
main()
{ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};
printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
A)3e,6
B)62,5
C)56,5
D)3E,6
正确答案: A