计算机等级考试二级C模拟试题2Word下载.docx
《计算机等级考试二级C模拟试题2Word下载.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C模拟试题2Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
C)\f
D)\b
(13)以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其他函数之前
D)所有被调用的函数一定要在调用之前进行定义
(14)在C程序中,判逻辑值时,用"
非0"
表示逻辑值"
真"
,又用"
0"
假"
。
在求逻辑值时,用()表示逻辑表达式值为"
,又用()表示逻辑表达式值为"
A)10
B)01
C)非0非0
D)11
(15)在C语言中,运算对象必须是整型数的运算符是
A)%
B)\
C)%和\
D)**
(16)字符型数据在机器中是用ASCII码表示的,字符"
5"
和"
7"
在机器中表示为
A)10100011和01110111
B)01000101和01100011
C)00110101和00110111
D)01100101和01100111
(17)若已定义:
inta=25,b=14,c=19;
以下三目运算符(?
:
)所构成语句的执行后
a<
=25&
&
b--<
=2&
c?
printf("
***a=%d,b=%d,c=%d\n"
a,b,c):
###a=%d,b=%d,c=%d\n"
,a,b,c);
程序输出的结果是
A)***a=25,b=13,c=19
B)***a=26,b=14,c=19
C)###a=25,b=13,c=19
D)###a=26,b=14,c=19
(18)若有定义:
inta=7;
floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是
A)2.500000
B)2.750000
C)3.500000
D)0.000000
(19)下列程序段的输出结果是:
inta=1234;
floatb=123.456;
doublec=12345.54321;
-,%2.1f,%2.1f"
a,b,c);
A)无输出
B)12,123.5,12345.5
C)1234,123.5,12345.5
D)1234,123.4,1234.5
(20)若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是#include
main()
{charc;
intv0=1,v1=0,v2=0;
do{switch(c=getchar())
{case′a′:
case′A′:
case′e′:
case′E′:
case′i′:
case′I′:
case′o′:
case′O′:
case′u′:
case′U′:
v1+=1;
default:
v0+=1;
v2+=1;
}
}while(c!
=′\n′);
printf("
v0=%d,v1=%d,v2=%d\n"
v0,v1,v2);
}
A)v0=7,v1=4,v2=7
B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11
D)v0=13,v1=4,v2=12
(21)设有以下程序段
intx=0,s=0;
while(!
x!
=0)s+=++x;
%d"
s);
则
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
(22)有如下程序
{floatx=2.0,y;
if(x<
0.0)y=0.0;
elseif(x>
10.0)y=1.0/x;
elsey=1.0;
%f\n"
y);
该程序的输出结果是
A)0.000000
B)0.250000
C)0.500000
D)1.000000
(23)执行下面的程序段后,变量k中的值为
intk=3,s[2];
s[0]=k;
k=s[1]*10;
A)不定值
B)33
C)30
D)10
(24)以下程序段的描述,正确的是
x=-1;
do
{x=x*x;
x);
A)是死循环
B)循环执行两次
C)循环执行一次
D)有语法错误
(25)以下选项错误的是
A)main()
{intx,y,z;
x=0;
y=x-1;
z=x+y;
B)main()
x=0,y=x+1;
C)main()
{intx;
int
inty;
D)main()
y=x+1;
z=x+y,}
(26)有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&
b)&
(c<
′B′);
执行该程序段后,x的值为
A)ture
B)false
C)0
D)1
(27)下列程序执行后的输出结果是
voidfunc1(inti);
voidfunc2(inti);
charst[]="
hello,friend!
"
;
voidfunc1(inti)
{printf("
%c"
st[i]);
if(i<
3){i+=2;
func2(i);
}}
voidfunc2(inti)
func1(i);
{inti=0;
func1(i);
\n"
);
A)hello
B)hel
C)hlo
D)hlm
(28)以下函数返回a所指数组中最大值所在的下标值
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;
iif(a[i]>
a[p])_________;
return(p);
在下划线处应填入的内容是
A)i=p
B)a[p]=a[i]
C)p=j
D)p=I
(29)下面说明不正确的是
A)chara[10]="
china"
B)chara[10],*p=a;
p="
C)char*a;
a="
D)chara[10],*p;
p=a="
(30)以下程序的输出结果是
#include
voidprt(int*x,int*y,int*z)
{printf("
%d,%d,%d\n"
++*x,++*y,*(z++));
{inta=10,b=40,c=20;
prt(&
a,&
b,&
c);
A)11,42,31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
(31)若有函数内部说明:
inta[3][4];
则数组a中各元素
A)可在程序的运行阶段得到初值0
B)可在程序的编译阶段得到初值0
C)不能得到确定的初值
D)可在程序的编译或运行阶段得到初值0
C
(32)有如下程序
{chars[]="
ABCD"
*p;
for(p=s+1;
p该程序的输出结果是
A)ABCD
BCD
CD
D
B)A
B
C
C)B
D)BCD
(33)下列程序执行后的输出结果是
{inta[3][3],*p,i;
p=&
a[0][0];
for(i=1;
i<
9;
i++)p[i]=i+1;
%d\n"
a[1][2]);
A)3
B)6
C)9
D)随机数
(34)定义如下变量和数组:
intk;
inta[3][3]={9,8,7,6,5,4,3,2,1};
则下面语句的输出结果是
for(k=0;
k<
3;
k++)printf("
a[k][k]);
A)753
B)951
C)963
D)741
(35)下列程序执行后的输出结果是
{chararr[2][4];
strcpy(arr,"
you"
strcpy(arr[1],"
me"
arr[0][3]=′&
′;
%s\n"
arr);
A)you&
me
B)you
C)me
D)err
(36)有以下函数
charfun(char*p)
{returnp;
该函数的返回值是
A)无确切的值
B)形参p中存放的地址值
C)一个临时存储单元的地址
D)形参p自身的地址值
(37)以下正确的说法是
A)定义函数时,形参的类型说明可以放在函数体内
B)return后边的值不能为表达式
C)如果函数值的类型与返回值类型不一致,以函数值类型为准
D)如果形参与实参类型不一致,以实参类型为准
(38)有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
{inti,j=0;
i<
i++)j+=f(i);
j);
程序运行后的输出结果是
A)4
B)3
C)2
(39)设有如下定义:
strucksk
{inta;
floatb;
}data;
int*p;
若要使P指向data中的a域,正确的赋值语句是
A)p=&
a;
B)p=data.a;
C)p=&
data.a;
D)*p=data.a;
(40)以下对结构体类型变量的定义中,不正确的是
A)typedefstructaa
{intn;
floatm;
}AA;
AAtdl;
B)#defineAAstructaa
AA{intn;
}tdl;
C)struct
}aa;
structaatdl;
D)struct
(41)若说明int*p,n;
则通过语句scanf能够正确读入数据的程序段是
n;
scanf("
&
p);
B)p=&
*p);
C)scanf("
n);
D)p=&
p);
(42)在下述程序中,判断i>
j共执行的次数是
{inti=0,j=10,k=2,s=0;
for(;
)
{i+=k;
if(i>
j)
s);
break;
}s+=i;
B)7
C)5
D)6
(43)以下4个选项中,不能看做一条语句的是
A);
B)a=5,b=2.5,c=3.6;
C)if(a<
5);
D)if(b!
=5)x=2;
y=6;
(44)在C语言中,变量的隐含存储类别是
A)auto
B)static
C)extern
D)无存储类别
(45)若有以下程序
voidf(intn);
{voidf(intn);
f(5);
voidf(intn)
}
则以下叙述中不正确的是
A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f
C)对于以上程序,编译时系统会提示出错信息:
提示对f函数重复说明
D)函数f无返回值,所以可用void将其类型定义为无返回值型
(46)若有下面的说明和定义
structtest
{intml;
charm2;
floatm3;
unionuu{charul[5];
intu2[2];
}ua;
}myaa;
则sizeof(structtest)的值是
A)12
B)16
C)14
D)9
(47)以下程序的输出是
structst
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&
dt[0],60,&
dt[0]};
{p=aa;
++(p->
x));
A)10
B)11
C)51
D)60
(48)若有运算符<
<
sizeof,^,&
=,则它们按优先级由高至低的正确排列次序是
A)sizeof,&
=,<
^
B)sizeof,<
^,&
=
C)^,<
sizeof,&
D)<
=,sizeof
(49)函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是
A)文件开始
B)文件末尾
C)文件当前位置
D)以上都不对
(50)有以下程序
{FILE*fp;
inti=20,j=30,k,n;
fp=fopen("
d1.dat"
"
w"
);
fprintf(fp,"
i);
fclose(fp);
r"
fscanf(fp,"
%d%d"
,&
k,&
n);
%d%d\n"
k,n);
A)2030
B)2050
C)3050
D)3020
二、填空题
(1)数据结构分为逻辑结构与存储结构,线性链表属于【1】。
1.(存储结构)
(2)在面向对象方法中,类之间共享属性和操作的机制称为【2】。
1.(继承)
(3)耦合和内聚是评价模块独立性的两个主要标准,其中【3】反映了模块内各成分之间的联系。
1.(内聚)
(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"
项目主管"
与实体"
项目"
的联系属于【4】的联系。
1.(一对多或1:
N)
(5)数据库设计分为以下6个设计阶段:
需求分析阶段、【5】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
1.(数据库概念设计阶段)
(6)以下程序的运行结果是【6】。
#defineMAX(a,b)(a>
b?
a:
b)+1
main()
{inti=6,j=8,k;
printf("
MAX(i,j));
1.(9)
(7)以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。
请填空。
{floatx,amax,amin;
scanf("
%f"
amax=x;
amin=x;
while(【7】)
{if(x>
amax)
else
if【8】
elsescanf("
\namax=%f\namin=%f\n"
amax,amin);
1.(x>
0)2.(x
(8)在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是【9】。
1.(rewind()或fseek())
(9)在计算机中,字符的比较是对它们的【10】进行比较。
1.(ASCII码)
(10)在内存中,存储字符′x′要占用1个字节,存储字符串″X″要占用【11】个字节。
1.
(2)
(11)下列程序的输出结果是16.00,请填空。
{inta=9,b=2;
floatx=【12】,y=1.1,z;
z=a/2+b*x/y+1/2;
%5.2f\n"
z);
1.(6.6)
(12)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;
请写出fun函数的首部【13】。
要求形参名为b。
{doubles[10][22];
intn;
┆
┆
fun(s);
1.(voidfun(doubleb[][22]))
(13)下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。
{inti,x,y=1;
&
for(i=2;
=x/2;
i++)
if【14】{y=0;
break;
y);
1.((x%i==0))
(14)下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
#include
{inti,j,【15】;
charstr[]={"
1234567"
};
for(i=0,j=strlen(str)
【16】;
i{k=str[i];
str[i]=str[j];
str[j]=k;
str);
1.(k)2.(-1)
(15)以下程序可把输入的十进制数以十六进制数的形式输出,请填空。
{charb[17]={"
0123456789ABCDEF"
intc[64],d,i=0,base=16;
longn;
Enteranumber:
%ld"
do{c[i]=【17】;
i++;
n=n/base;
while(n!
=0);
Transmitenewbase:
for(--i;
i>
=0;
--i)
{d=c[i];
b【18】);
1.(nose)2.([d])
(16)若给fun函数的形参s传送字符串:
]]6354abcc"
(其中]表示空格字符),则函数的返回值是【19】。
longfun(chars[])
{longn;
intsign;
for(;
isspace(*s);
s++);
sign=(*s==′-′)?
-1:
1;
if(*s==′+′||*s==′-′)s++;
for(n=0;
isdigit(*s);
s++)n=10*n+(*s-′0′);
returnsign*n;
1.(6354)
(17)设有定义"
struct{inta;
floatb;
charc;
}abc,*p_abc=&
abc;
,则对结构体成员a的引用方法可以是abc.a和p_abc【20】a。
1.(->