全国计算机等级考试二级C语言考试
<;考试时间120分钟,满分100分>
一、选择题〔〔1〕~〔10〕每小题2分,〔11〕~〔50〕每小题1分,共60分〕
〔1〕数据的存储结构是指< >
A〕存储在外存中的数据
B〕数据所占的存储空间量
C〕数据在计算机中的顺序存储方式
D〕数据的逻辑结构中计算机中的表示
〔2〕下列关于栈的描述中错误的是< >
A〕栈是先进后出的线性表
B〕栈只能顺序存储
C〕栈具有记忆作用
D〕对栈的插入与删除操作中,不需要改变栈底指针
〔3〕对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是< > A〕冒泡排序为n/2
B〕冒泡排序为n
C〕快速排序为n
D〕快速排序为n<n-1>/2
<4>对长度为n的线性表进行顺序查,在最坏情况下所需要的比较次数为< >
A〕log2n
B> n/2
C> n
D> n+1
<5>下列对于线性链表的描述中正确的是< >
A〕存储空间不一定是连续,且各元素的存储顺序是任意的
B〕存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C〕存储空间必须连续,且前件元素一定存储在后件元素的前面
D〕存储空间必须连续,且各元素的存储顺序是任意的
〔6〕下列对于软件的描述中正确的是< >
A〕软件测试的目的是证明程序是否正确
B〕软件测试的目的是使程序运行结果正确
C〕软件测试的目的是尽可能多地发现程序中的错误
D〕软件测试的目的是使程序符合结构化原则
〔7〕为了使模块尽可能独立,要求< >
A〕模块的内聚程序要尽量高,且各模块间的耦合程序要尽量强
B〕模块的内聚程序要尽量高,且各模块间的耦合程序要尽量弱
C〕模块的内聚程序要尽量低,且各模块间的耦合程序要尽量弱
D〕模块的内聚程序要尽量低,且各模块间的耦合程序要尽量强
〔8〕下列描述中正确的是< >
A〕程序就是软件
B〕软件开发不受计算机系统的限制
C〕软件既是逻辑实体,又是物理实体
D〕软件是程序、数据与相关文档的集合
〔9〕数据独立性是数据库技术的重要特点之一.所谓数据独立性是指< > A〕数据与程序独立存放
B〕不同的数据被存放在不同的文件中
C〕不同的数据只能被对应的应用程序所使用
D〕以上三种说法都不对
〔10〕用树形结构表示实体之间联系的模型是< >
A〕关系模型
B〕网状模型
C〕层次模型
D〕以上三个都是
〔11〕算法具有五个特性,以下选项中不属于算法特性的是< >
A〕有穷性
B〕简洁性
C〕可行性
D〕确定性
〔12〕以下选项中可作为C语言合法常量的是< >
A〕-80.
B〕-080
C〕-8e1.0
D〕-80.0e
<13>以下叙述中正确的是< >
A〕用C程序实现的算法必须要有输入和输出操作
B〕用C程序实现的算法可以没有输出但必须要有输入
C〕用C程序实现的算法可以没有输入但必须要有输出
计算机二级考c语言吗D〕用C程序实现的算法可以既没有输入也没有输出
14.以下不能定义为用户标识符的是< >
A〕Main
B〕_0
C〕_int
D〕sizeof
<15>以下选项中,不能作为合法常量的是< >
A〕1.234e04
C〕1.234e+4
D〕1.234e0
<16>数字字符0的ASCII值为48,若有以下程序< >
main<>
{chara='1',b='2';
printf<"%c,",b++>;
printf<"%d\n",b-a>;
}
程序运行后的输出结果是< >
A〕3,2
B〕50,2
C〕2,2
D〕2,50
<17>有以下程序
main<>
{int m=12,n=34;
printf<"%d%d",m++,++n>;
printf<"%d%d\n",n++,++m>;
}
程序运行后的输出结果是< >
A〕12353514
B〕12353513
C〕12343514
D〕12343513
<18>有定义语句:intb;charc[10];,则正确的输入语句是〔〕
A〕scanf<"%d%s",&b,&c>;
B〕scanf<"%d%s",&b,c>;
C〕scanf<"%d%s",b,c>;
D〕scanf<"%d%s",b,&c>;
<19>有以下程序
main<>
{ intm,n,p;
scanf<"m=%dn=%dp=%d",&m,&n,&p>;
printf<"%d%d%d\n",m,n,p>;
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是〔〕
A〕m=123n=456p=789
B〕m=123n=456p=789
C〕m=123,n=456,p=789
D〕123 456 789
<20>有以下程序
main<>
{
inta,b,d=25;
a=d/10%9;
b=a&&<-1>;
printf<"%d,%d\n",a,b>;
}
程序运行后的输出结果是〔〕
A〕6,1
B〕2,1
C〕6,0
D〕2,0
<21>有以下程序
main<>
{inti=1,j=2,k=3;
if<i++==1&&<++j==3||k++==3>>
printf<"%d%d%d\n",i,j,k>;
}
程序运行后的输出结果是〔  D 〕
A〕123
B〕234
C〕223
D〕233
<22>若整型变量a、b、c、d中的值依次为:1、4、3、2.则条件表达式a<b?a:c<d?c:d的值是〔〕
A>1B>2c>3D>4
<23>有以下程序
main<>
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while<i++<7>if<p[i]%2> j+=p[i];
printf<"%d\n",j>;
}
程序运行后的输出结果是〔〕
A〕42
B〕45
C〕56
D〕60
〔24〕有以下程序
main<>
{chara[7]="a0\0a0\0";inti,j;
i=sizeof<a>;j=strlen<a>;
printf<"%d%d\n",i,j>;
}
程序运行后的输出结果是〔〕
A〕22B〕76C〕72D〕62
<25>以下能正确定义一维数组的选项是〔〕
A〕inta[5]={0,1,2,3,4,5};
B〕chara[]={0,1,2,3,4,5};
C〕chara={'A','B','C'};
D〕inta[5]="0123";
<26>有以下程序
intf1<intx,inty>{returnx>y?x:y;}
intf2<intx,inty>{returnx>y?y:x;}
main<>
{ inta=4,b=3,c=5,d=2,e,f,g;
e=f2<f1<a,b>,f1<c,d>>;
f=f1<f2<a,b>,f2<c,d>>;
g=a+b+c+d-e-f;
printf<"%d,%d%d\n",e,f,g>;
}
程序运行后的输出结果是〔〕
A〕4,3,7
B〕3,4,7
C〕5,2,7
D〕2,5,7
〔27〕已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是〔〕A〕数组a和b的长度相同
B〕a数组长度小于b数组长度
C〕a数组长度大于b数组长度
D〕上述说法都不对
〔28〕有以下程序
voidf<int*x,int*y>
{ intt;
t=*x;*x=*y;*y=t;
}
main<>
{ inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while<p<q>
{
f<p,q>;
p++;
q--;
}
for<i=0;i<8;i++>
printf<"%d,",a[i]>;
}
程序运行后的输出结果是〔〕
A〕8,2,3,4,5,6,7,1,
B〕5,6,7,8,1,2,3,4,
C〕1,2,3,4,5,6,7,8,
D〕8,7,6,5,4,3,2,1,
〔29〕有以下程序
main<>
{
inta[3][3],*p,i;
p=&a[0][0];
for<i=0;i<9;i++>
p[i]=i;
for<i=0;i<3;i++>
printf<"%d ",a[1][i]>;
}
程序运行后的输出结果是〔〕
A〕0 1 2
B〕1 2 3
C〕2 3 4
D〕3 4 5
<30>以下叙述中错误的是〔〕
A〕对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B〕数组名代表的是数组所占存储区的首地址,其值不可改变
C〕当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息
D〕可以通过赋初值的方式确定数组元素的个数
〔31〕有以下程序
#defineN20
fun<inta[],intn,int m>
{ int i,j;
for<i=m;i>=n;i-->
a[i+1]=a[i];
}
main<>
{
int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun<a,2,9>;
for<i=0;i<5;i++>
printf<"%d",a[i]>;
}
程序运行后的输出结果是〔〕
A〕10234
B〕12344
C〕12334
D〕12234
〔32〕有以下程序
main<>
{ inta[3][2]={0},<*ptr>[2],i,j;
for<i=0;i<2;i++>
{ ptr=a+i;
scanf<"%d",ptr>;
ptr++;
}
for<i=0;i<3;i++>
{
for<j=0;j<2;j++>
printf<"%2d",a[i][j]>;
printf<"\n">;
}
}
若运行时输入:123<;回车>,则输出结果为〔〕A〕产生错误信息
B〕1 0
2 0
0 0
C〕1 2
3 0
0 0
D〕1 0
2 0
3 0
<33>有以下程序
prt<int*m,intn>
{
int i;
for<i=0;i<n;i++>
m[i]++;
}
main<>
{
int a[]={1,2,3,4,5},i;
prt<a,5>;
for<i=0;i<5;i++>
printf<"%d,",a[i]>;
}
程序运行后的输出结果是:〔  B 〕
A〕1,2,3,4,5,
B〕2,3,4,5,6,
C〕3,4,5,6,7,
D〕2,3,4,5,1,
〔34〕有以下程序
main<>
{ inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for<p=a;p<a+10;p++>
printf<"%d,",*p>; }
程序运行后的输出结果是〔  A 〕
A〕1,2,3,4,5,6,7,8,9,0,
B〕2,3,4,5,6,7,8,9,10,1,
C〕0,1,2,3,4,5,6,7,8,9,
D〕1,1,1,1,1,1,1,1,1,,1,
〔35〕有以下程序
#defineP 3
#defineF<intx> {return<P*x*x>;}
main<>
{
printf<"%d\n",F<3+5>>;
}
程序运行后的输出结果是〔  A 〕
A〕192
B〕29
C〕25
D〕编译出错
〔36〕有以下程序
main<>
{
intc=35;printf<"%d\n",c&c>;
}
程序运行后的输出结果是〔  C 〕
A〕0
B〕70
C〕35
D〕1
〔37〕以下叙述中正确的是〔〕
A〕预处理命令行必须位于源文件的开头
B〕在源文件的一行上可以有多条预处理命令
C〕宏名必须用大写字母表示
D〕宏替换不占用程序的运行时间
〔38〕若有以下说明和定义
uniondt
{
inta; charb;doublec;
}data;
以下叙述中错误的是〔〕
A〕data的每个成员起始地址都相同
B〕变量data所占内存字节数与成员c所占字节数相等
C〕程序段:data.a=5;printf<"%f\n",data.c>;输出结果为5.000000 D〕data可以作为函数的实参
〔39〕以下语句或语句组中,能正确进行字符串赋值的是〔〕A〕char*sp;*sp="right!";
B〕char s[10];s="right!";
C〕chars[10];*s="right!";
D〕char*sp="right!";
<40>设有如下说明
typedefstructST
{
long a;
intb;
charc[2];
} NEW;
则下面叙述中正确的是〔〕
A〕以上的说明形式非法
B〕ST是一个结构体类型
C〕NEW是一个结构体类型
D〕NEW是一个结构体变量
〔41〕有以下程序
main<>
{
inta=1,b;
for<b=1;b<=10;b++>
{
if<a>=8> break;
if<a%2==1>{a+=5;continue;}
a-=3;
}
printf<"%d\n",b>;
}
程序运行后的输出结果是〔  B 〕
A〕3
B〕4
C〕5
D〕6
〔42〕有以下程序
main<>
{
chars[]="159",*p;
p=s;
printf<"%c",*p++>;
printf<"%c",*p++>;
}
程序运行后的输出结果是〔  A 〕A〕15
B〕16
C〕12
D〕59
〔43〕有以下函数
fun<char*a,char*b>
{
while<<*a!='\0'>&&<*b!='\0'>&&<*a= =*b>>
{ a++; b++;}
return<*a-*b>;
}
该函数的功能是〔  B 〕
A〕计算a和b所指字符串的长度之差
B〕将b所指字符串复制到a所指字符串中
C〕将b所指字符串连接到a所指字符串后面
D〕比较a和b所指字符串的大小
〔44〕有以下程序
main<>
{
intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for<i=0;i<4;i++>
{
for<j=1;j<=i;j++> printf<"%c",' '>;
for<j= j<4;j++> printf<"%4d",num[i][j]>;
printf<"\n">;
}
}+
若要按以下形式输出数组右上半三角
123 4
67 8
11 12
16
则在程序下划线处应填入的是〔  B 〕
A〕i-1
B〕i
C〕i+1
D〕4-i
<45>有以下程序
point<char*p>
{
p+=3;
}
main<>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。