1.下列叙述中正确的是
A.所谓算法就是计算方法
B.程序可以作为算法的一种描述方法
C.算法设计只需考虑得到计算结果
D.算法设计可以忽略算法的运算时间
2.下列各序列中不是堆的是
A.(91,85,53,36,47,30,24,12)
B.(91,85,53,47,36,30,24,12)
C.(47,91,53,85,30,12,24,36)
D.(91,85,53,47,30,12,24,36)
3.深度为5的完全二叉树的结点数不可能是
A.15
B.16
C.17
D.18
4.
A.ABDEGCFH
B.DBGEAFHC
C.DGEBHFCA
D.ABCDEFGH
5.下面描述不属于软件特点的是
A.软件是一种逻辑实体,具有抽象性
B.软件在使用中不存在磨损、老化问题
C.软件复杂性高
D.软件使用不涉及知识产权
6.下面对类-对象主要特征描述正确的是
A.对象唯一性
B.对象无关性
C.类的单一性
D.类的依赖性
7.在数据库中,数据模型包括数据结构、数据操作和
A.数据约束
B.数据类型
C.关系运算
D.查询
8.一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是
A.一对多
B.一对一
C.多对一
D.多对多
9.设循环队列为Q(1: m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=30,rear=10。现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为
A.19
B.20
C.m-19
D.m-20
10.
A.投影
B.交
C.选择
D.并
11.关于C语言标识符,以下叙述错误的是
A.标识符可全部由数字组成
B.标识符可全部由下划线组成
C.标识符可全部由小写字母组成
D.标识符可全部由大写字母组成
12.以下叙述正确的是
A.只使用三种基本结构即可解决任何复杂问题
B.C语言程序并不是必须要定义main()函数
C.只要程序包含了任意一种基本结构,就肯定是结构化程序
D.程序中的语法错误只能在运行时才能显现
13.以下选项中,合法的数值型常量是
A. 3.2
B. 'X'
C. 099
D.0xEH
14.有以下程序
#include
main( )
{
intx = 0x13;
printf("INT:%d\n", x+1);
}
程序运行后的输出结果是
A. INT:14
B.INT:13
C. INT:12
D.INT:20
15.设有定义:intx=7,y=12;,则以下表达式值为3的是
A. y%=(x-x%5)
B. y%=(x%=5)
C.y%=x-x%5
D. (y%=x)-(x%=5)
16.以下不是合法C语言转义字符的是
A. '\b'
B. '\a'
C. '\c'
D.'\r'
17.有如下程序
#include
main( )
{
inti;
for (i=0; i<5; i++)
putchar('Z' - i);
}
程序运行后的输出结果是
A.ZYXWV
B.VWXYZ
C. 'X''Y''Z''W''V'
D. 'ABCDE'
18.字符数组a和b中存储了两个字符串,判断字符串a和b是否相等,应当使用的是
A.if(strcmp(a,b)==0)
B. if(strcpy(a,b))
C. if(a==b)
D. if(a=b)
19.以下程序段中,与其他三个功能不同的程序段是
A.s=0;i=1;
for( ; ; ) {s+=i; i++; if(i<=10) break;}
B. s=0,i=1;
for( ; i<=10; ) {s+=i,i++;}
C. s=0;
for(i=1; i<=10; i++) {s+=i;}
D.for(s=0,i=1; i<=10; s+=i,i++) ;
20.有以下程序
#include
main( )
{int x=1, y=2, z=3;
if(x>1)
if(y>x) putchar('A');
else putchar('B');
else
if(z
else putchar('D');
}
程序的运行结果是
A.A
B.C
C. B
D.D
21.有语句:k=x,以下选项中,与此语句功能相同的是
A.if(x
B. if(xk=0;else if(y
C.if(xif(y
D. if(x
22. 有如下程序
#include
void change(int*array, intlen)
{
for (; len>=0; len--)
array[len] -= 1;
}
main( )
{
inti, array[5] = {2,2};
change(array, 4);
for (i=0; i<5; i++)
printf("%d,", array[i]);
printf("\n");
}
程序运行后的输出结果是
A. 1,0,-1,1,-1,
B. 1,1,-1,-1,-1,
C. 1,1,1,1,1,
D. 1,-1,1,-1,1,
23.有以下程序
#include
main( )
{
char*p1 = 0;
int*p2 = 0;
float*p3 = 0;
printf("%d,%d,%d\n", sizeof(p1), sizeof(p2), sizeof(p3));
}
程序运行后的输出结果是
A. 1,4,8
B. 4,4,4
C.1,2,4
D.1,1,4
24. 有以下程序段
int*p1,*p2,a[10];
p1=a;
p2=&a[5];
则p2-p1的值为
A.5
B. 10
C. 12
D. 无法确定
25.以下叙述中错误的是
A.字符型指针可以指向一个字符串
B.函数可以通过指针形参向所指单元传回数据
C.基类型不同的指针可以直接相互赋值
D.指针的运用可使程序代码效率更高
26. 有以下程序
#include
main( )
{int i,j = 0;
char a[] = "How are you", b[10] = {0};
for (i=0; a[i]; i++)
if (a[i] == ' ')
b[j++] = a[i+1];
printf("%s\n",b);
}
程序运行后的输出结果是
A.Hay
B.Howareyou
C. we
D.ay
27. 有以下程序
#include
main( )
{char w[20], a[5][10] = {"abcdef", "ghijkl", "mnopq", "rstuv", "wxyz"};
int i,j;
for (i=0; i<5; i++)
{j=0;
while (a[i][j]!='\0')j++;
w[i] = a[i][j/2+1];
}
w[5]= '\0';
puts(w);
}
程序运行后的输出结果是
A.djoty
B.agmrw
C.flqvz
D.ekpuz
28.有以下程序
#include
main( )
{int i,j = 0;
char a[] = "How are you!", b[10] = {0};
for (i=0; a[i]; i++)
if (a[i] == ' ')
b[j++] = a[i-1];
printf("%s\n", b);
}
程序运行后的输出结果是
A.we
B.Howareyou!
C.ay
D.we!
29.以下涉及字符串数组、字符指针的程序段,没有编译错误的是
A.char* str, name[5];
str = "C/C++";
B. char* str, name[6];
name = "Hello";
C. char str1[7] = "prog.c", str2[8];
str2 = str1;
D. char line[];
line = "//";
30.有如下程序
#include
void get_put()
{
charch;
ch = getchar();
if (ch != '\n') get_put();
putchar(ch);
}
main( )
{
get_put();
}
程序运行时,输入ABCD,则输出结果是
A. DCDC
B.DCBA
C.BABA
D.ABCD
31.有以下程序
#include
main( )
{
charname[10] = {'S', 'T', 'R'};
name[2] = '#'; name[6] = 0;
printf("%s\n", name);
}
程序运行后的输出结果是
A. STR#0
B. STR#
C.ST#
D.STR0
32. 有以下函数
int fun(char*ps)
{char*p;
p=ps;
if(*ps==0)return 0;
while(*++p);
return(p-ps);
}
该函数的功能是
A.计算字符串的长度
B.实现字符串的赋值
C.将字符串逆序存放
D.计算字符串所占字节数
33.有以下函数
void fun(char *p, char *q)
{ while ((*p++ = *q++) != '\0'); }
该函数的功能是
A.计算字符串的长度
B.计算字符串所占字节数
C. 将字符串逆序存放
D.实现字符串的复制
34. 以下叙述错误的是
A. 未经赋值的auto变量值不确定
B.未经赋值的全局变量值不确定
C.未经赋值的register变量值不确定
D.未经赋值的静态局部变量值为0
35.有以下程序
#include
main( )
{int c, d;
c = 10^3;
d = 10+3;
printf("%d,%d\n", c, d);
}
程序运行后的输出结果是
A.13,13
B.9,13
C.10,13
D. 103,13
36.有以下程序
#include
#include
typedef struct stu {
charname[10];
chargender;
intscore;
} STU;
void f(char*name, char*gender, int*score)
{strcpy(name, "Qian");
*gender = 'f';
*score = 350;
}
main( )
{STUa = {"Zhao", 'm', 290}, b;
b = a;
f(b.name, &b.gender, &b.score);
printf("%s,%c,%d,", a.name, a.gender, a.score);
printf("%s,%c,%d\n", b.name, b.gender, b.score);
}
程序运行后的输出结果是
A. Zhao,m,290,Qian,f,350
B.Zhao,m,290,Zhao,m,290
C.Zhao,m,290,Qian,m,350
D. Zhao,m,290,Qian,m,290
37.有如下程序
#include
main( )
{
inta = 9, b;
b = (a >> 3) % 4;
printf("%d,%d\n", a, b);
}
程序运行后的输出结果是
A. 9,3
B. 4,0
C. 4,3
D.9,1
38. 有如下定义:
struct
{intnum;
charname[10];
struct
{ inty; intm; intd;} birth;
} s,*ps=&s;
以下对内嵌结构体成员的引用形式错误的是
A.ps.birth.y
B.s.birth.y
C.ps->birth.y
D. (*ps).birth.y
39. 函数rewind(fp)的作用是
A.使文件位置指针移至下一个字符的位置
B.使文件位置指针指向文件的末尾
C.使文件位置指针移至前一个字符的位置
D.使文件位置指针重新返回到文件的开头
40.以下选项中错误的是
A.a^=b与a=a^b等价
B.a!=b与a=a!b等价
C.a|=b与a=a|b等价
D. a&=b与a=a&b等价
1.B2.C3.A4.A5.D6.A7.A8.A9.D10.A11.A12.A13.A14.D15.D16.C17.A18.A19.A20.D21.D22.B23.B24.A25.C26.D27.D28.A29.A30.B31.C32.A33.D34.B35.B36.A37.D38.A39.D40.B