全国计算机等级考试二年级C语言模拟试题及答案精修订.docx
《全国计算机等级考试二年级C语言模拟试题及答案精修订.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二年级C语言模拟试题及答案精修订.docx(22页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二年级C语言模拟试题及答案精修订
标准化管理部编码-[99968T-6889628-J68568-1689N]
全国计算机等级考试二年级C语言模拟试题及答案
全国计算机等级考试二级C语言模拟试题及答案
(一)
一、选择题
(1)栈和队列的共同特点是
A)都是先进先出
B)都是先进后出
C)只允许在端点处插入和删除元素
D)没有共同点
正确答案:
C
(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是
A)acbed
B)decab
C)deabc
D)cedba
正确答案:
D
(3)链表不具有的特点是
A)不必事先估计存储空间
B)可随机访问任一元素
C)插入删除不需要移动元素
D)所需空间与线性表长度成正比
正确答案:
B
(4)结构化程序设计的3种结构是
A)顺序结构、选择结构、转移结构
B)分支结构、等价结构、循环结构
C)多分支结构、赋值结构、等价结构
D)顺序结构、选择结构、循环结构
正确答案:
D
(5)为了提高测试的效率,应该
A)随机选取测试数据
B)取一切可能的输入数据作为测试数据
C)在完成编码以后制定软件的测试计划
D)集中对付那些错误群集的程序
正确答案:
D
(6)算法的时间复杂度是指
A)执行算法程序所需要的时间
B)算法程序的长度
C)算法执行过程中所需要的基本运算次数
D)算法程序中的指令条数
正确答案:
C
(7)软件生命周期中所花费用最多的阶段是
A)详细设计
B)软件编码
C)软件测试
D)软件维护
正确答案:
D
(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为
A)C
B)Basic
C)DDL
D)DML
正确答案:
C
(9)下列有关数据库的描述,正确的是
A)数据库是一个DBF文件
B)数据库是一个关系
C)数据库是一个结构化的数据集合
D)数据库是一组文件
正确答案:
C
(10)下列有关数据库的描述,正确的是
A)数据处理是将信息转化为数据的过程
B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
C)关系中的每一列称为元组,一个元组就是一个字段
D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
正确答案:
D
(11)以下叙述中正确的是
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现的最晚,具有其他语言的一切优点
正确答案:
C
(12)C语言中用于结构化程序设计的3种基本结构是
A)顺序结构、选择结构、循环结构
B)if,switch,break
C)for,while,do-while
D)if,for,continue
正确答案:
A
(13)C语言中最简单的数据类型包括
A)整型、实型、逻辑型
B)整型、实型、字符型
C)整型、字符型、逻辑型
D)字符型、实型、逻辑型
正确答案:
B
(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是
A)a:
=b+1
B)a=b=c+2
C)int%3
D)a=a+7=c+b
正确答案:
B
(15)下列可用于C语言用户标识符的一组是
A)void,define,WORD
B)a3_b3,_123,Car
C)For,-abc,IFCase
D)2a,DO,sizeof
正确答案:
B
(16)C语言中运算对象必须是整型的运算符是
A)%=
B)/
C)=
D)<=
正确答案:
A
(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是
A)a==1
B)++i;
C)a=a++=5;
D)a=int(i);
正确答案:
B
(18)已知
intt=0;
while(t=1)
{...}
则以下叙述正确的是
A)循环控制表达式的值为0
B)循环控制表达式的值为1
C)循环控制表达式不合法
D)以上说法都不对
正确答案:
B
(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予,b赋予,c赋予,下列不正确的输入形式是
A)10<回车>22<回车>33<回车>
B),,<回车>
C)<回车>22.033.0<回车>
D)1022<回车>33<回车>
正确答案:
B
(20)有如下程序:
main()
{
intx=1,a=0,b=0;
switch(x)
{
case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);}
该程序的输出结果是
A)a=2,b=1
B)a=1,b=1
C)a=1,b=0
D)a=2,b=2
正确答案:
A
(21)有以下程序
main()
{inti=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是
A)1,1,2
B)2,2,1
C)2,2,2
D)2,2,3
正确答案:
C
(22)有如下程序
main()
{floatx=,y;
if(x<)y=;
elseif(x<)y=x;
elsey=;
printf("%f\n",y);}
该程序的输出结果是
A)
B)0.250000
C)
D)
正确答案:
C
(23)有如下程序:
main()
{intn=9;
while(n>6){n--;printf("%d",n);}
}
该程序的输出结果是
A)987
B)876
C)8765
D)9876
正确答案:
B
(24)在下列选项中,没有构成死循环的是A)inti=100;while
(1){i=i%100+1;if(i>100)break;}
B)for(;;);
C)intk=10000;
do{k++;}while(k>10000);
D)ints=36;
while(s)--s;
正确答案:
D
(25)设intx=1,y=1;表达式(!
x||y--)的值是
A)0
B)1
C)2
D)-1
正确答案:
B
(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A)函数调用可以作为独立的语句存在
B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中
D)函数调用可以作为一个函数的形参
正确答案:
D
(27)有以下程序
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));
}
程序运行后的输出结果是
A)编译出错
B)9
C)21
D)
正确答案:
B
(28)若有以下调用语句,则不正确的fun函数的首部是
main()
{…
inta[50],n;
…
fun(n,&a[9]);
…
}
A)voidfun(intm,intx[])
B)voidfun(ints,inth[41])
C)voidfun(intp,int*s)
D)voidfun(intn,inta)
正确答案:
D
(29)fseek函数的正确调用形式是
A)fseek(文件指针,起始点,位移量)
B)fseek(文件指针,位移量,起始点)
C)fseek(位移量,起始点,文件指针)
D)fseek(起始点,位移量,文件指针)
正确答案:
B
(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是
A)EOF
B)-1
C)1
D)NULL
正确答案:
C
(31)若有说明语句:
charc='\72';则变量c
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法,c的值不确定
正确答案:
A
(32)若有说明inta[3][4];则a数组元素的非法引用是
A)a[0][2*1]
B)a[1][3]
C)a[4-2][0]
D)a[0][4]
正确答案:
D
(33)设有以下说明语句
structstu
{inta;
floatb;
}stutype;
则下面的叙述不正确的是
A)struct是结构体类型的关键字
B)structstu是用户定义的结构体类型
C)stutype是用户定义的结构体类型名
D)a和b都是结构体成员名
正确答案:
C
(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是
A)整型常量
B)整型表达式
C)整型常量或整型表达式
D)任何类型的表达式
正确答案:
C
(35)若运行时给变量x输入12,则以下程序的运行结果是
main()
{intx,y;
scanf("%d",&x);
y=x>12x+10:
x-12;
printf("%d\n",y);
}
A)0
B)22
C)12
D)10
正确答案:
A
(36)以下说法正确的是
A)C语言程序总是从第一个的函数开始执行
B)在C语言程序中,要调用函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
正确答案:
C
(37)表达式0x13^0x17的值是
A)0x04
B)0x13
C)0xE8
D)0x17
正确答案:
A
(38)有以下程序
#defineF(X,Y)(X)*(Y)
main()
{inta=3,b=4;
printf("%d\n",F(a++,b++));
}
程序运行后的输出结果是
A)12
B)15
C)16
D)20
正确答案:
A
(39)下列程序执行后的输出结果是
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5];
a=0;b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
A)6
B)7
C)8
D)9
正确答案:
A
(40)若有下面的程序段:
chars[]="china";char*p;p=s;
则下列叙述正确的是
A)s和p完全相同
B)数组s中的内容和指针变量p中的内容相等
C)s数组长度和p所指向的字符串长度相等
D)*p与s[0]相等
正确答案:
D
(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;ifor(j=i+1;jif(a[i]}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=0;i<10;i++)printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10,
B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7,6,5,4,9,10,
D)1,2,10,9,8,7,6,5,4,3,
正确答案:
C
(42)以下程序的运行结果是
#include""
main()
{structdate
{intyear,month,day;}today;
printf("%d\n",sizeof(structdate));
}
A)6
B)8
C)10
D)12
正确答案:
A
(43)若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是
A)a,point,*&a
B)&*a,&a,*point
C)*&point,*point,&a
D)&a,&*point,point
正确答案:
D
(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是
A)地址传递
B)单向值传递
C)由实参传形参,再由形参传实参
D)传递方式由用户指定
正确答案:
B
(45)已定义以下函数
fun(char*p2,char*p1)
{
while((*p2=*p1)!
='\0'){p1++;p2++;}
}
函数的功能是
A)将p1所指字符串复制到p2所指内存空间
B)将p1所指字符串的地址赋给指针p2
C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有'\0'
正确答案:
A
(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){inta,b,s;scanf("%d%d",&a,&b);s=aif(a
A)36
B)64
C)48
D)以上都不对
正确答案:
B
(47)fscanf函数的正确调用形式是
A)fscanf(fp,格式字符串,输出表列);
B)fscanf(格式字符串,输出表列,fp);
C)fscanf(格式字符串,文件指针,输出表列);
D)fscanf(文件指针,格式字符串,输入表列);
正确答案:
D
(48)下列关于C语言数据文件的叙述中正确的是
A)文件由ASCII码字符序列组成,C语言只能读写文本文件
B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
正确答案:
D
(49)有以下程序
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-'a'+'A';
s++;
}
}
main()
{charstr1[100]="abcddfefdbd",c='d';
ss(str1,c);printf("%s\n",str1);
}
程序运行后的输出结果是
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdbd
正确答案:
B
(50)若以下定义:
structlink
{intdata;
structlink*next;
}a,b,c,*p,*q;
且变量a和b之间已有如下图所示的链表结构:
指针p指向变量a,q指向变量c。
则能够把c插入到a和b之间并形成新的链表的语句组是:
A)=c;=b;
B)=q;=;
C)p->next=&c;q->next=p->next;
D)(*p).next=q;(*q).next=&b;
正确答案:
D
二、填空题
(1)算法的基本特征是可行性、确定性、【1】和拥有足够的情报。
正确答案:
1.(有穷性)
(2)在长度为n的有序线性表中进行二分查找。
最坏的情况下,需要的比较次数为【2】。
正确答案:
1.(log2n)
(3)在面向对象的程序设计中,类描述的是具有相似性质的一组【3】。
正确答案:
1.(对象)
(4)通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【4】。
正确答案:
1.(软件生命周期)
(5)数据库管理系统常见的数据模型有层次模型、网状模型和【5】3种。
正确答案:
1.(关系模型)
(6)设y是int型,请写出y为奇数的关系表达式【6】。
正确答案:
1.((y%2)==1或(y%2)!
=0)
(7)设inta=5,b=6,表达式(++a==b--)++a:
--b的值是【7】。
正确答案:
1.(7)
(8)下列程序的输出结果是【8】。
maim()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);}
正确答案:
1.(Hello)
(9)当调用函数时,实参是一个数组名,则向函数传递的是【9】。
正确答案:
1.(数组的首地址)
(10)以下程序的输出结果是【10】。
inta=1234;
printf("%2d\n",a);
正确答案:
1.(1234)
(11)用高级语言编写的程序称为【11】程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。
正确答案:
1.(源程序)
(12)以下程序的输出结果是【12】。
main()
{inta=0;
a+=(a=8);
printf("%d\n",a);}
正确答案:
1.(16)
(13)函数voidfun(float*sn,intn)的功能是:
根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。
请填空。
voidfun(float*sn,intn)
{floats=,w,f=;
inti=0;
for(i=0;i<=n;i++)
{f=【13】*f;
w=f/(2*i+1);
s+=w;}
【14】=s;}
正确答案:
1.(-1)2.(*sn)
(14)函数fun的功能是:
根据以下公式求p的值,结果由函数值返回。
m与n为两个正数且要求m>n。
例如:
m=12,n=8时,运行结果应该是。
请在题目的空白处填写适当的程序语句,将该程序补充完整。
#include<>
#include<>
floatfun(intm,intn)
{inti;
doublep=;
for(i=1;i<=m;i++)【15】;
for(i=1;i<=n;i++)【16】;
for(i=1;i<=m-n;i++)p=p/i;
returnp;}
main()
{clrscr();
printf("p=%f\n",fun(12,8));}
正确答案:
1.(p=p*i)2.(p=p/i)
(15)该程序运行的结果是【17】。
#include<>
#include<>
#defineM100
voidfun(intm,int*a,int*n)
{inti,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i%11==0)
a[j++]=i;
*n=j;}
main()
{intaa[M],n,k;
clrscr();
fun(10,aa,&n);
for(k=0;kif((k+1)%20==0)printf("\n");
elseprintf("%4d",aa[k]);
printf("\n");}
正确答案:
1.(7)
正确答案:
1.(*ss!
='\0')
(17)下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为的新文件中,请填空。
#include""
FILE*fp;
{charch;
if((fp=fopen(【19】))==NULL)exit(0);
while((ch=getchar()))fputc(ch,fp);
fclose(fp);}正确答案:
1.("","w"或"","w+")
(18)设有如下宏定义
#defineMYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通过宏调用实现变量a,b内容交换,请填空。
floata=5,b=16,c;
MYSWAP(【20】,a,b);
正确答案:
1.(c)