全国计算机等级考试计算机二级考试C语言真题文档格式.docx
《全国计算机等级考试计算机二级考试C语言真题文档格式.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试计算机二级考试C语言真题文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
9.在E—R图中,用来表示实体联系的图形是
A)椭圆形
B)矩形
C)菱形
D)三角形
实体型在E-R图中用矩形表示,矩形框内写明实体名;
属性在E—R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;
联系在E—R图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型
10。
(10)有三个关系R,S,和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为
A)选择
B)投影
C)交
D)并
ABCD
11.(11)以下叙述中正确的是
A)程序设计的任务就是编写程序代码并上机调试
B)程序设计的任务就是确定所用的数据结构
C)程序设计的任务就是确定所用算法
D)以上三种说法都不完整
12.(12)以下选项中,能用作用户标识符的是
A)void
B)8_8
C)_0_
D)unsigned
13.(13)阅读以下程序
#include <
stdio.h>
main()
{ int case;
float printF;
printf("
请输入2个数:
”);
scanf("
%d %f”,&case,&
printF);
%d %f\n"
case,printf);
}
该程序在编译时产生错误,其出错原因是
A)定义语句出错,case是关键字,不能用作用户自定义标识符
B)定义语句出错,printF不能用作用户自定义标识符
C)定义语句无错,scanf不能作为输入函数使用
D)定义语句无措,printf不能输出case的值
14。
(14)表达式:
(int)((double)9/2)-(9)%2的值是
A)0
B)3
C)4
D)5
15。
(15)若有定义语句:
int x=10;
,则表达式x-=x+x的值为
A)-20
B)—10
C)0
D)10
16.(16)有以下程序
stdio.h〉
{ int a=1,b=0;
%d,”,b=a+b);
printf(”%d"
,a=2*b);
程序运行后的输出结果是
A)0,0
B)1,0
C)3,2
D)1,2
17。
(17)设有定义:
int a=1,b=2,c=3;
以下语句中执行效果与其它三个不同的是
A)if(a〉b) c=a,a=b,b=c;
B)if(a>
b){c=a,a=b,b=c;
C)if(a〉b) c=a;
a=b;
b=c;
D)if(a〉b){c=a;
18.(18)有以下程序
stdio。
h>
{ int c=0,k;
for(k=1;
k<
3;
k++)
switch(k)
{ default:
c+=k;
case 2:
c++;
break;
case 4:
c+=2;
}
printf("
%d\n"
c);
A)3
B)5
C)7
D)9
19。
(19)以下程序段中,与语句:
k=a〉b?
(b>
c?
1:
0):
0;
功能相同的是
A)if((a〉b)&&(b>
c)) k=1;
else k=0;
B)if((a>
b)||(b〉c)) k=1;
else k=0;
C)if(a<
=b)k=0;
else if(b<
=c) k=1;
D) if(a>
b) k=1;
else if(b〉c) k=1;
else k=0;
20。
(20)有以下程序
{ char s[]={"
012xy”};
int i,n=0;
for(i=0;
s[i]!
=0;
i++)
if(s[i]〉'
a'
&
s[i]<
=’z'
) n++;
printf(”%d\n"
n);
}
B)2
C)3
21。
(21)有以下程序
#include <
{ int n=2,k=0;
while(k++&
&n++〉2);
printf("
%d %d\n"
,k,n);
A)0 2
B)1 3
C)5 7
D)1 2
22.
(22)有以下定义语句,编译时会出现编译错误的是
A) char a='
a’;
B) char a='
\n’;
C) char a='
aa’;
D) char a='
\x2d’;
23。
(23)有以下程序
#include 〈stdio.h〉
{ char c1,c2;
c1='
A'
+'
8’—’4'
;
c2='
8’-'
5’;
printf("
%c,%d\n"
,c1,c2);
已知字母A的ASCII码为65,程序运行后的输出结果是
A)E,68
B)D,69
C)E,D
D)输出无定值
24。
(24)有以下程序
#include 〈stdio.h>
void fun(int p)
{ int d=2;
p=d++;
%d"
p);
{ int a=1;
fun(a);
printf(”%d\n"
a);
A)32
B)12
C)21
D)22
25。
(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,
但程序中有错导致不能实现预定功能
#define MIN -2147463647
int findmax(int x[],int n)
{ int i,max;
for(i=0;
i〈n;
{ max=MIN;
if(max<
x[i]) max=x[i];
}
return max;
造成错误的原因是
A)定义语句int i,max中max未赋值
B)赋值语句max=MIN;
中,不应该给max赋MIN值
C)语句if(max<
x[i]) max=x[i];
中判断条件设置错误
D)赋值语句max=MIN;
放错了位置
26。
(26)有以下程序
{ int m=1,n=2,*p=&
m,*q=&
n,*r;
r=p;
p=q;
q=r;
%d,%d,%d,%d\n”,m,n,*p,*q);
A)1,2,1,2
B)1,2,2,1
C)2,1,2,1
D)2,1,1,2
27。
(27)若有定义语句:
int a[4][10],*p,*q[4];
且0<
=i〈4,则错误的赋值是
A)p=a
B)q[i]=a[i]
C)p=a[i]
D)p=&a[2][1]
28.
(28)有以下程序
#include 〈string。
{ char str[][20]={"
One*World"
,”One*Dream!
"
},*p=str[1];
printf(”%d,"
,strlen(p));
printf(”%s\n"
A)9,One*World
B)9,One*Dream!
C)10,One*Dream!
D)10,One*World
29.
(29)有以下程序
h〉
{ int a[]={2,3,5,4},i;
for(i=0;
i<
4;
switch(i%2)
{ case 0:
switch(a[i]%2)
{ case 0:
a[i]++;
case 1:
a[i]——;
} break;
case 1:
a[i]=0;
}
for(i=0;
i〈4;
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
30。
(30)有以下程序
{ char a[10]=”abcd"
printf(”%d,%d\n"
strlen(a),sizeof(a));
A)7,4
B)4,10
C)8,8
D)10,10
31.
(31)下面是有关C语言字符数组的描述,其中错误的是
A)不可以用赋值语句给字符数组名赋字符串
B)可以用输入语句把字符串整体输入给字符数组
C)字符数组中的内容不一定是字符串
D)字符数组只能存放字符串
32.
(32)下列函数的功能是
fun(char *a,char *b)
{ while((*b=*a)!
=’\0’){a++;
b++;
} }
A)将a所指字符串赋给b所指空间
B)使指针b指向a所指字符串
C)将a所指字符串和b所指字符串进行比较
D)检查a和b所指字符串中是否有’\0'
33。
(33)设有以下函数:
void fun(int n,char *s){……}
则下面对函数指针的定义和赋值均正确的是
A)void (*pf)();
pf=fun;
B)void *pf();
pf=fun;
C)void *pf();
*pf=fun;
D)void (*pf)(int,char);
pf=&fun;
34。
(34)有以下程序
int f(int n);
{ int a=3,s;
s=f(a);
s=s+f(a);
printf("
,s);
int f(int n)
{ static int a=1;
n+=a++;
return n;
A)7
B)8
C)9
35。
(35)有以下程序
#include 〈stdio。
#define f(x) x*x*x
{ int a=3,s,t;
s=f(a+1);
t=f((a+1));
%d,%d\n"
s,t);
A)10,64
B)10,10
C)64,10
D)64,64
36。
(36)下面结构体的定义语句中,错误的是
A)struct ord {int x;
int y;
int z;
};
struct ord a;
B)struct ord {int x;
int z;
} struct ord a;
C)struct ord {int x;
int y;
} n;
D)struct {int x;
} a;
37.(37)设有定义:
char *c;
以下选项中能够使字符型指针C正确指向一个字符串的是
A) char str[]="
string"
c=str;
B) scanf("
%s”,c);
C) c=getchar();
D) *c=”string"
;
38。
(38)有以下程序
string。
struct A
{ int a;
char b[10];
double c;
};
struct A f(struct A t);
{ struct A a={1001,"
ZhangDa"
,1098。
0};
a=f(a);
printf("
%d,%s,%6。
1f\n"
,a.a,a。
b,a.c);
struct A f(struct A t)
{ t。
a=1002;
strcpy(t.b,”ChangRong”);
t.c=1202。
return t;
A)1001,ZhangDa,1098。
B)1002,ZhangDa,1202。
C)1001,ChangRong,1098。
D)1002,ChangRong,1202.0
39.
(39)有以下程序
int r=8;
r>
〉1);
输出结果是
A)16
D)2
40。
(40)下列关于C语言文件的叙述中正确的是
A)文件由一系列数据一次排列组成,只能构成二进制文件
B)文件由结构序列组成,可以构成二进制文件或文本文件
C)文件由数据序列组成,可以构成二进制文件或文本文件
D)文件由字符序列组成,只能是文本文件
二、填空题(每空2分,共计30分)
1.
(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。
输入答案,中间不含空格:
(2)程序流程图中菱形框表示的是【2】
输入答案,中间不含空格:
3.
(3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段.其中【3】阶段
产生”软件需求规格说明书“。
4.
(4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么”学生“
和”可选课程”的联系为【4】
5.
(5)人员基本信息一般包括:
身份证号,姓名,性别,年龄等.其中可以作为主关键字的
是【5】
6.
(6)若有定义语句:
int a=5;
,则表达式a++的值是【6】。
输入答案,中间不含空格:
7。
(7)若有语句double x=17;
,当执行y=(int)(x/5)%2;
之后y的值是【7】
8.
(8)以下程序运行后的输出结果是【8】
{ int x=20;
%d ”,0<
x〈20);
0〈x&&x<
20);
}
9。
(9)以下程序运行后的输出结果是【9】
#include 〈stdio.h〉
{ int a=1,b=7;
do{
b=b/2;
a+=b;
} while (b>
1);
printf(”%d\n”,a);
}
(10)有一下程序
{ int f,f1,f2,i;
f1=0;
f2=1;
%d %d ”,f1,f2);
for(i=3;
i〈=5;
{ f=f1+f2;
printf(”%d”,f);
f1=f2;
f2=f;
}
\n”);
程序运行后的输出结果是【10】
输入答案,中间不含空格:
11。
(11)有以下程序
void fun(int b)
{ int a=10;
a+=b;
printf(”%d"
,a);
{ int c=20;
fun(c);
a+=c;
%d\n”,a);
程序运行后的输出结果是【11】
12.
(12)设有定义
struct person
{ int ID;
char name[12];
} p;
请将scanf(”%d”,【12】);
语句补充完整,使其能够为结构体变量p的
成员ID正确读入数据。
13。
(13)有以下程序
{ char a[20]="
How are you?
,b[20];
scanf(”%s”,b);
%s %s\n”,a,b);
程序运行时从键盘输入:
How are you?
〈回车〉
则输出结果为【13】
(14)有以下程序
typedef struct
{ int num;
double s;
} REC;
void fun1(REC x){ x.num=23;
x。
s=88.5;
}
{ REC a={16,90.0};
fun1(a);
a。
num);
15.
(15)有以下程序
fun(int x)
{ if(x/2〉0) fun(x/2);
%d ”,x);
{ fun(6);
\n"
程序运行后的输出结果是【15】
答案:
CBDABACBCDDCABBDCAABDCACDBACCBDAACABADCC
14判断需求分析多对多身份证号51105011233025&
p。
ID
Howareyou?
How16136