全国计算机等级考试二级C语言模拟试题及答案二.docx
- 文档编号:10605614
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:19
- 大小:22.63KB
全国计算机等级考试二级C语言模拟试题及答案二.docx
《全国计算机等级考试二级C语言模拟试题及答案二.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言模拟试题及答案二.docx(19页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级C语言模拟试题及答案二
全国计算机等级考试二级C语言模拟试题及答案
(二)
一、选择题
(1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为
A)GEDHFBCA
B)DGEBHFCA
C)ABCDEFGH
D)ACBFEDHG
正确答案:
B
(2)树是结点的集合,它的根结点数目是
A)有且只有1
B)1或多于1
C)0或1
D)至少2
正确答案:
A
(3)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是
A)e3,e1,e4,e2
B)e2,e4,e3,e1
C)e3,e4,e1,e2
D)任意顺序
正确答案:
B
(4)在设计程序时,应采纳的原则之一是
A)不限制goto语句的使用
B)减少或取消注解行
C)程序越短越好
D)程序结构应有助于读者理解
正确答案:
D
(5)程序设计语言的基本成分是数据成分、运算成分、控制成分和
A)对象成分
B)变量成分
C)语句成分
D)传输成分
正确答案:
D
(6)下列叙述中,不属于软件需求规格说明书的作用的是
A)便于用户、开发人员进行理解和交流
B)反映出用户问题的结构,可以作为软件开发工作的基础和依据
C)作为确认测试和验收的依据
D)便于开发人员进行需求分析
正确答案:
D
(7)下列不属于软件工程的3个要素的是
A)工具
B)过程
C)方法
D)环境
正确答案:
D
(8)单个用户使用的数据视图的描述称为
A)外模式
B)概念模式
C)内模式
D)存储模式
正确答案:
A
(9)将E-R图转换到关系模式时,实体与联系都可以表示成
A)属性
B)关系
C)键
D)域
正确答案:
B
(10)SQL语言又称为
A)结构化定义语言
B)结构化控制语言
C)结构化查询语言
D)结构化操纵语言
正确答案:
C
(11)下列叙述中正确的是
A)C语言编译时不检查语法
B)C语言的子程序有过程和函数两种
C)C语言的函数可以嵌套定义
D)C语言的函数可以嵌套调用
正确答案:
D
(12)在C语言中,退格符是
A)\n
B)\t
C)\f
D)\b
正确答案:
D
(13)以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其他函数之前
D)所有被调用的函数一定要在调用之前进行定义
正确答案:
A
(14)在C程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。
在求逻辑值时,用()表示逻辑表达式值为"真",又用()表示逻辑表达式值为"假"。
A)1 0
B)0 1
C)非0 非0
D)1 1
正确答案:
A
(15)在C语言中,运算对象必须是整型数的运算符是
A)%
B)\
C)%和\
D)**
正确答案:
A
(16)字符型数据在机器中是用ASCII码表示的,字符"5"和"7"在机器中表示为
A)10100011和01110111
B)01000101和01100011
C)00110101和00110111
D)01100101和01100111
正确答案:
C
(17)若已定义:
inta=25,b=14,c=19;以下三目运算符(?
:
)所构成语句的执行后
a<=25&&b--<=2&&c?
printf("***a=%d,b=%d,c=%d\n",a,b,c):
printf("###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
正确答案:
C
(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
正确答案:
A
(19)下列程序段的输出结果是:
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("%2d,%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
正确答案:
C
(20)若运行以下程序时,从键盘输入ADescriptor
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
正确答案:
D
(21)设有以下程序段
intx=0,s=0;
while(!
x!
=0)s+=++x;
printf("%d",s);
则
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
正确答案:
B
(22)有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x>10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);}
该程序的输出结果是
A)0.000000
B)0.250000
C)0.500000
D)1.000000
正确答案:
D
(23)执行下面的程序段后,变量k中的值为
intk=3,s[2];
s[0]=k;k=s[1]*10;
A)不定值
B)33
C)30
D)10
正确答案:
A
(24)以下程序段的描述,正确的是
x=-1;
do
{x=x*x;}
while(!
x);
A)是死循环
B)循环执行两次
C)循环执行一次
D)有语法错误
正确答案:
C
(25)以下选项错误的是
A)main()
{intx,y,z;
x=0;y=x-1;
z=x+y;}
B)main()
{intx,y,z;
x=0,y=x+1;
z=x+y;}
C)main()
{intx;int
inty;
x=0,y=x+1;
z=x+y;}
D)main()
{intx,y,z;
x=0;y=x+1;
z=x+y,}
正确答案:
D
(26)有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&&b)&&(c<′B′);
执行该程序段后,x的值为
A)ture
B)false
C)0
D)1
正确答案:
D
(27)下列程序执行后的输出结果是
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!
";
voidfunc1(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
voidfunc2(inti)
{printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main()
{inti=0;func1(i);printf("\n");}
A)hello
B)hel
C)hlo
D)hlm
正确答案:
C
(28)以下函数返回a所指数组中最大值所在的下标值
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;i if(a[i]>a[p])_________; return(p);} 在下划线处应填入的内容是 A)i=p B)a[p]=a[i] C)p=j D)p=I 正确答案: D (29)下面说明不正确的是 A)chara[10]="china"; B)chara[10],*p=a;p="china" C)char*a;a="china"; D)chara[10],*p;p=a="china" 正确答案: D (30)以下程序的输出结果是 #include voidprt(int *x,int *y,int *z) {printf("%d,%d,%d\n",++*x,++*y,*(z++));} main() {inta=10,b=40,c=20; prt(&a,&b,&c); 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 正确答案: B (31)若有函数内部说明: inta[3][4];则数组a中各元素 A)可在程序的运行阶段得到初值0 B)可在程序的编译阶段得到初值0 C)不能得到确定的初值 D)可在程序的编译或运行阶段得到初值0 正确答案: C (32)有如下程序 main() {chars[]="ABCD",*p; for(p=s+1;p 该程序的输出结果是 A)ABCD BCD CD D B)A B C D C)B C D D)BCD CD D 正确答案: D (33)下列程序执行后的输出结果是 main() {inta[3][3],*p,i; p=&a[0][0]; for(i=1;i<9;i++)p[i]=i+1; printf("%d\n",a[1][2]);} A)3 B)6 C)9 D)随机数 正确答案: B (34)定义如下变量和数组: intk; inta[3][3]={9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是 for(k=0;k<3;k++)printf("%d",a[k][k]); A)753 B)951 C)963 D)741 正确答案: B (35)下列程序执行后的输出结果是 main() {chararr[2][4]; strcpy(arr,"you");strcpy(arr[1],"me"); arr[0][3]=′&′; printf("%s\n",arr);} A)you&me B)you C)me D)err 正确答案: A (36)有以下函数 charfun(char*p) {returnp;} 该函数的返回值是 A)无确切的值 B)形参p中存放的地址值 C)一个临时存储单元的地址 D)形参p自身的地址值 正确答案: B (37)以下正确的说法是 A)定义函数时,形参的类型说明可以放在函数体内 B)return后边的值不能为表达式 C)如果函数值的类型与返回值类型不一致,以函数值类型为准 D)如果形参与实参类型不一致,以实参类型为准 正确答案: C (38)有以下程序 intf(intn) {if(n==1)return1; elsereturnf(n-1)+1;} main() {inti,j=0; for(i=1;i<3;i++)j+=f(i); printf("%d\n",j);} 程序运行后的输出结果是 A)4 B)3 C)2 D)1 正确答案: B (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; 正确答案: C (40)以下对结构体类型变量的定义中,不正确的是 A)typedefstructaa {intn; floatm; }AA; AAtdl; B)#defineAAstructaa AA{intn; floatm; }tdl; C)struct {intn; floatm; }aa; structaatdl; D)struct {intn; floatm; }tdl; 正确答案: C (41)若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是 A)p=&n;scanf("%d",&p); B)p=&n;scanf("%d",*p); C)scanf("%d",n); D)p=&n;scanf("%d",p); 正确答案: D (42)在下述程序中,判断i>j共执行的次数是 main() {inti=0,j=10,k=2,s=0; for(;;) {i+=k; if(i>j) {printf("%d",s); break; }s+=i; } } A)4 B)7 C)5 D)6 正确答案: D (43)以下4个选项中,不能看做一条语句的是 A); B)a=5,b=2.5,c=3.6; C)if(a<5); D)if(b! =5)x=2;y=6; 正确答案: D (44)在C语言中,变量的隐含存储类别是 A)auto B)static C)extern D)无存储类别 正确答案: A (45)若有以下程序 #include voidf(intn); main() {voidf(intn); f(5); } voidf(intn) {printf("%d\n",n);} 则以下叙述中不正确的是 A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f C)对于以上程序,编译时系统会提示出错信息: 提示对f函数重复说明 D)函数f无返回值,所以可用void将其类型定义为无返回值型 正确答案: C (46)若有下面的说明和定义 structtest {intml;charm2;floatm3; unionuu{charul[5];intu2[2];}ua; }myaa; 则sizeof(structtest)的值是 A)12 B)16 C)14 D)9 正确答案: A (47)以下程序的输出是 structst {intx;int*y;}*p; intdt[4]={10,20,30,40}; structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]}; main() {p=aa; printf("%d\n",++(p->x)); } A)10 B)11 C)51 D)60 正确答案: C (48)若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是 A)sizeof,&=,<<,^ B)sizeof,<<,^,&= C)^,<<,sizeof,&= D)<<,^,&=,sizeof 正确答案: B (49)函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是 A)文件开始 B)文件末尾 C)文件当前位置 D)以上都不对 正确答案: B (50)有以下程序 #include main() {FILE*fp;inti=20,j=30,k,n; fp=fopen("d1.dat","w"); fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j); fclose(fp); fp=fopen("d1.dat","r"); fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n); fclose(fp); } 程序运行后的输出结果是 A)2030 B)2050 C)3050 D)3020 正确答案: A 二、填空题 (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("%d\n",MAX(i,j)); } 正确答案: 1.(9) (7)以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。 请填空。 main() {floatx,amax,amin; scanf("%f",&x); amax=x; amin=x; while(【7】) {if(x>amax) amax=x; else if【8】 amin=x; elsescanf("%f",&x); } printf("\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,请填空。 main() {inta=9,b=2; floatx=【12】,y=1.1,z; z=a/2+b*x/y+1/2; printf("%5.2f\n",z); } 正确答案: 1.(6.6) (12)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【13】。 要求形参名为b。 main() {doubles[10][22]; intn;┆ ┆ fun(s); ┆ } 正确答案: 1.(voidfun(doubleb[][22])) (13)下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。 main() {inti,x,y=1; scanf("%d",&x); for(i=2;i<=x/2;i++) if【14】{y=0;break;} printf("%d\n",y); } 正确答案: 1.((x%i==0)) (14)下面程序的功能是将一个字符串str的内容颠倒过来,请填空。 #include main() {inti,j,【15】;charstr[]={"1234567"}; for(i=0,j=strlen(str)【16】;i {k=str[i];str[i]=str[j];str[j]=k;} printf("%s\n",str); } 正确答案: 1.(k)2.(-1) (15)以下程序可把输入的十进制数以十六进制数的形式输出,请填空。 main() {charb[17]={"0123456789ABCDEF"}; intc[64],d,i=0,base=16; longn; printf("Enteranumber: \n");scanf("%ld",&n); do{c[i]=【17】;i++;n=n/base;} while(n! =0); printf("Transmitenewbase: \n"); for(--i;i>=0;--i) {d=c[i];printf("%c",b【18】);} printf("\n"); } 正确答案: 1.(n%base)2.([d]) (16)若给fun函数的形参s传送字符串: "]]6354abcc"(其中]表示空格字符),则函数的返回值是【19】。 #include 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.(->)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 语言 模拟 试题 答案