求2010年3月计算机二级C语言笔试复习资料。
1.(1)下列数据结构中,属于非线性结构的有
a)循环队列
b)链式队列
c)二叉树
d)皮带链堆栈
A B C D
2.
(2)在下列数据结构中,可以按照“先入后出”原则访问数据的有
a)循环队列
b)堆栈
c)队列
d)二叉树
A B C D
3.
(3)对于循环队列,下列说法是正确的
a)组长指针是固定的。
b)头指针必须大于尾指针。
c)头指针必须小于尾指针。
d)头指针可以大于尾指针,也可以小于尾指针。
A B C D
4.
(4)算法的空间复杂度是指
a)算法执行期间所需的计算机存储空间。
b)算法处理的数据量
c)算法程序中语句或指令的数量
d)算法执行期间所需的临时工作单元的数量。
A B C D
5.
(5)软件设计中划分模块的一个标准是
a)低内聚力和低耦合度
b)高内聚和低耦合
c)低内聚力和高耦合度
d)高内聚和高耦合
A B C D
6.
(6)下列选项中不属于结构化程序设计原理的是
a)可以包装
b)从上到下
c)模块化
d)逐步完善
A B C D
7.(7)软件的详细设计产生以下图表:
图片是
N-S图
b)焊盘图
c)程序流程图
D)E-R图
A B C D
8.
(8)数据库管理系统是
a)操作系统的一部分
b)操作系统支持的系统软件
c)编译系统
d)操作系统
A B C D
9.
(9)在E-R图中,用来表示实体连接的图形是
a)椭圆形
b)矩形
c)菱形
d)三角形
A B C D
10.(10)R、S和T有如下三种关系:
其中,关系T由关系R和S通过某种运算得到,该运算为
a)选择
b)投影
c)薪酬
d)以及
A B C D
11.(11)以下说法正确。
a)编程的任务是编写程序代码,并在计算机上调试。
b)编程的任务是确定所用的数据结构。
c)编程的任务是确定使用的算法。
d)以上三种说法都不完整。
A B C D
12.(12)在下列选项中,可以用作用户标识符的是
a)无效
b)8-8
C)_0_
d)未签名
A B C D
13.(13)阅读以下程序
# include & ltstdio.h & gt
主()
{ int casefloat printF
Printf("请输入2个数字:");
scanf("%d %f ",& amp案例& ampprintF);
printf("%d %f\n ",case,printf);
}
程序在编译过程中产生了一个错误,错误的原因是
a)定义语句时出错。case是关键字,不能用作用户定义的标识符。
b)定义语句时出错,printF不能用作用户定义的标识符。
c)定义语句正确,scanf不能作为输入函数。
d)定义语句不知所措,printf无法输出case的值。
A B C D
14.(14)表达式:(int)((double)9/2)-(9)% 2的值为
A)0
B)3
C)4
D)5
A B C D
15.(15)如果有定义语句:int x = 10;,表达式x-=x+x的值为
答)-20
B)-10
C)0
D)10
A B C D
16.以下是可用的程序。
# include & ltstdio.h & gt
主()
{ int a=1,b = 0;
printf("%d ",b = a+b);
printf("%d ",a = 2 * b);
}
程序运行后的输出结果是
A)0,0
B)1,0
C)3,2
D)1,2
A B C D
17.(17)有一个定义:int a=1,b=2,c = 3;以下语句中的执行效果与其他三个不同。
a)如果(a & gtb) c=a,a=b,b = c;
b)如果(a & gtb){c=a,a=b,b = c;}
c)如果(a & gtb)c = a;a = b;b = c;
d)如果(a & gtb){ c = a;a = b;b = c;}
A B C D
18.以下是可用的程序。
# include & ltstdio.h & gt
主()
{ int c=0,k;
for(k = 1;k & lt3;k++)
开关(k)
{默认值:c+= k;
案例二:c++;打破;
情况四:c+= 2;打破;
}
printf("%d\n ",c);
}
程序运行后的输出结果是
A)3
B)5
C)7
D)9
A B C D
19.(19)在下面的程序段中,还有语句:k = a >;b?(b & gtc?1:0):0;相同的功能是
a)如果((a & gtb)和amp& amp(b & gtc))k = 1;
否则k = 0;
b)如果((a & gtb)| |(b & gt;c))k = 1;
否则k = 0;
c)如果(a & lt= b)k = 0;
else if(b & lt;= c)k = 1;
d)如果(a & gtb)k = 1;
else if(b & gt;c)k = 1;
否则k = 0;
A B C D
20.(20)有以下程序
# include & ltstdio.h & gt
主()
{ char s[]= { " 012xy " };int i,n = 0;
for(I = 0;s[i]!=0;i++)
if(s[I]& gt;一个'和amp& amps[I]& lt;= ' z ')n++;
printf("%d\n ",n);
}
程序运行后的输出结果是
A)0
B)2
C)3
D)5
A B C D
21.
(21)有以下程序。
# include & ltstdio.h & gt
主()
{ int n=2,k = 0;
而(k++ & amp;& ampn++ & gt;2);
printf("%d %d\n ",k,n);
}
程序运行后的输出结果是
A)0 2
B)1 3
C)5 7
D)1 2
A B C D
22.
(22)有以下定义语句,编译时会出现编译错误。
a)char a = ' a ';
b)char a = ' \ n ';
c)char a = ' aa ';
d)char a = ' \ x2d ';
A B C D
23.
(23)有以下程序
# include & ltstdio.h & gt
主()
{ char c1,C2;
c 1 = ' A '+' 8 '-" 4 ";
C2 = ' A '+' 8 '-' 5 ';
printf("%c,%d\n ",c1,C2);
}
已知字母A的ASCII码是65,程序运行后的输出结果是
阿)东,68
69岁
英、德
d)输出没有固定值。
A B C D
24.
(24)有以下程序
# include & ltstdio.h & gt
无效资金(利息)
{ int d = 2;
p = d++;
printf("%d ",p);
}
主()
{ int a = 1;
好玩(一);
printf("%d\n ",a);
}
程序运行后的输出结果是
A)32
B)12
C)21
D)22
A B C D
25.
(25)以下函数findmax旨在查找数组中的最大值,并将其作为函数值返回。
但是程序出现了错误,导致无法实现预定的功能。
#定义MIN -2147463647
int findmax(int x[],int n)
{ int i,max
for(I = 0;我& ltn;i++)
{ max = MIN
if(max & lt;x[I])max = x[I];
}
返回max
}
错误的原因是
a)定义语句int i,max不赋值。
b)赋值语句max = MIN最大值不应分配给最小值。
c)声明if(最大
d)赋值语句max = MIN把它放在错误的地方
A B C D
26.
(26)有以下程序
# include & ltstdio.h & gt
主()
{ int m=1,n=2,* p = & ampm,* q = & ampn,* r;
r = p;p = q;q = r;
printf("%d,%d,%d,%d\n ",m,n,*p,* q);
}
程序运行后的输出结果是
a)1.2,1.2
B)1,2,2,1
c)21
D)2,1,1,2
A B C D
27.
(27)如果有定义的语句:int a[4][10],*p,* q[4];和0
A)p=a
B)q[i]=a[i]
C)p=a[i]
p = & amp[2][1]
A B C D
28.
(28)有以下程序
# include & ltstdio.h & gt
# include & ltstring.h & gt
主()
{ char str[][20]={ "一个*世界","一个*梦想!"},* p = str[1];
printf("%d,",strlen(p));
printf("%s\n ",p);
}
程序运行后的输出结果是
A)9、一个*世界
B)9,一个*梦想!
C)10,一个*梦!
D)10,一个*世界
A B C D
29.
(29)有以下程序
# include & ltstdio.h & gt
主()
{ int a[]={2,3,5,4},I;
for(I = 0;我& lt4;i++)
开关(i%2)
{案例0:
开关(a[i]%2)
{ case 0:a[I]++;打破;
案例1:a[I]-;
}破;
案例1:a[I]= 0;
}
for(I = 0;我& lt4;i++)
printf("%d ",a[I]);
printf(" \ n ");
}
程序运行后的输出结果是
A)3 3 4 4
B)2 0 5 0
C)3 0 4 0
D)0 3 0 4
A B C D
30.
(30)有以下程序
# include & ltstdio.h & gt
# include & ltstring.h & gt
主()
{ char a[10]= " ABCD ";
printf("%d,%d\n ",strlen(a),sizeof(a));
}
程序运行后的输出结果是
a)7.4
b)410
C)8,8
10,10
A B C D
31.
(31)以下是C语言中字符数组的描述,其中错误为
a)不能用赋值语句将字符串赋给字符数组名。
b)可以使用input语句将整个字符串输入到字符数组中。
c)字符数组中的内容不一定是字符串。
d)字符数组只能保存字符串。
A B C D
32.
(32)以下功能的功能是
乐趣(char *a,char *b)
{ while((*b=*a)!= ' \ 0 '){ a++;b++;} }
A)将由A表示的字符串分配给由b表示的空格
b)使指针b指向a所指的字符串。
c)将由A表示的字符串与由b表示的字符串进行比较
d)检查A和b表示的字符串中是否有' \0 '
A B C D
33.
(33)提供以下功能:
void fun(int n,char *s){……}
下列函数指针的定义和赋值是正确的。
a)void(* pf)();pf =好玩;
b)void * pf();pf =好玩;
c)void * pf();* pf =好玩;
D)void (*pf)(int,char);pf = & amp好玩;
A B C D
34.(34)有以下程序
# include & ltstdio.h & gt
int f(int n);
主()
{ int a=3,s;
s = f(a);s = s+f(a);printf("%d\n ",s);
}
整数f(整数n)
{ static int a = 1;
n++ = a++;
返回n;
}
程序运行后的输出结果是
A)7
B)8
C)9
D)10
A B C D
35.
(35)有以下程序
# include & ltstdio.h & gt
#定义f(x) x*x*x
主()
{ int a=3,s,t;
s = f(a+1);t = f((a+1));
printf("%d,%d\n ",s,t);
}
程序运行后的输出结果是
A)10,64
10,10
64,10
D)64,64
A B C D
36.
(36)在下列结构的定义语句中,错误的是
a)结构顺序{ int x;int y;int z;};结构订单a;
b)结构顺序{ int x;int y;int z;}结构顺序a;
c)结构顺序{ int x;int y;int z;} n;
d)struct { int x;int y;int z;} a;
A B C D
37.(37)有一个定义:char * c;下面的选项可以使字符指针C正确地指向一个字符串。
a)char str[]= " string ";c = str
B) scanf("%s ",c);
c)c = getchar();
d)* c = " string ";
A B C D
38.
(38)有以下程序
# include & ltstdio.h & gt
# include & ltstring.h & gt
结构A
{ int a;char b[10];双c;};
struct A f(struct A t);
主()
{ struct A a={1001,"张达",1098.0 };
a = f(a);printf("%d,%s,%6.1f\n ",a.a,a.b,a . c);
}
结构f(结构A t)
{ t . a = 1002;strcpy(t.b,“常戎”);t . c = 1202.0;return t;}
程序运行后的输出结果是
a)张达1001,1098.0
B)1002,张达,1202.0
C)1001,常戎,1098.0
d)常戎1002,1202.0
A B C D
39.
(39)有以下程序
int r = 8;
printf("%d\n ",r & gt& gt1);
输出结果是
A)16
B)8
C)4
D)2
A B C D
40.
(40)下列关于C语言文件的说法正确的是
A)一个文件由一系列一次排列的数据组成,只能构成一个二进制文件。
b)文件由结构序列组成,可以是二进制文件,也可以是文本文件。
c)文件由数据序列组成,可以是二进制文件,也可以是文本文件。
d)文件由字符序列组成,只能是文本文件。
A B C D
二、填空(每空2分,* * * 30分)
1.(1)如果一棵二叉树有5个度为2的节点和3个度为1的节点,那么该二叉树有1个节点。
输入不带空格的答案:
2.
(2)程序流程图中的菱形框代表2。
输入不带空格的答案:
3.
(3)软件开发过程主要分为需求分析、设计、编码和测试四个阶段。其中,三个阶段
生成“软件需求说明书”。
输入不带空格的答案:
4.
(4)在数据库技术中,实体集之间的关系可以是一对一或一对多或多对多,所以“生”
与“选修课”的联系是4。
输入不带空格的答案:
5.
(5)人员基本信息一般包括:身份证号、姓名、性别、年龄等。它可以用作主键。
现在是5点
输入不带空格的答案:
6.
(6)如果有定义的语句:int a = 5;,表达式a++的值是6。
输入不带空格的答案:
7.
(7)如果有语句double x = 17;int y;执行y=(int)(x/5)%2时;之后,y的值是7
输入不带空格的答案:
8.
(8)以下程序运行后的输出结果是8。
# include & ltstdio.h & gt
主()
{ int x = 20
printf("%d ",0 & ltx & lt20);
printf("%d\n ",0 & ltx & amp& ampx & lt20);
}
输入不带空格的答案:
9.
(9)以下程序运行后的输出结果是9。
# include & ltstdio.h & gt
主()
{ int a=1,b = 7;
做{
b = b/2;a+= b;
} while(b & gt;1);
printf("%d\n ",a);
}
输入不带空格的答案:
10.
(10)具有以下过程。
# include & ltstdio.h & gt
主()
{ int f,f1,f2,I;
f 1 = 0;F2 = 1;
printf("%d %d ",f1,F2);
for(I = 3;我& lt=5;i++)
{ f = f 1+F2;printf("%d ",f);
f 1 = F2;F2 = f;
}
printf(" \ n ");
}
程序运行后的输出结果是10。
输入不带空格的答案:
11.
(11)有如下程序。
# include & ltstdio.h & gt
int a = 5;
无效资金(int b)
{ int a = 10;
a+= b;printf("%d ",a);
}
主()
{ int c = 20
乐趣(c);a+= c;printf("%d\n ",a);
}
程序运行后的输出结果是11。
输入不带空格的答案:
12.
(12)已定义。
结构人
{ int ID字符名称[12];} p;
请发送scanf("%d ",12);语句使其完整,这样它就可以是结构变量p
成员ID正确读取数据。
输入不带空格的答案:
13.
(13)有以下步骤。
# include & ltstdio.h & gt
主()
{ char a[20]=“你好吗?”,b[20];
scanf("%s ",b);printf("%s %s\n ",a,b);
}
当程序运行时,从键盘输入:你好吗?& lt输入>
输出结果是13。
输入不带空格的答案:
14.
(14)有以下步骤。
# include & ltstdio.h & gt
typedef结构
{ int num双s;} REC
void fun 1(REC x){ x . num = 23;x.s = 88.5}
主()
{ REC a={16,90.0 };
fun 1(a);
printf("%d\n ",a . num);
}
输入不带空格的答案:
15.
(15)有以下步骤。
# include & ltstdio.h & gt
乐趣(int x)
{ if(x/2 & gt;0)好玩(x/2);
printf("%d ",x);
}
主()
{趣味(6);printf(" \ n ");}
程序运行后的输出结果是15。
输入不带空格的答案: