历年计算机二级c语言考试真题以及答案详解_第1页
历年计算机二级c语言考试真题以及答案详解_第2页
历年计算机二级c语言考试真题以及答案详解_第3页
历年计算机二级c语言考试真题以及答案详解_第4页
历年计算机二级c语言考试真题以及答案详解_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2010年9月全国计算机二级C语言笔试试题(16)表达式a+=a-=a=9的值是

(11)以卜关于结构化程序设计的叙述中正确的是A)9

A)•个结构化程序必须同时由顺序、分支、B)_9

循环三种结构组成C)18

B)结构化程序使用got。语句会很便捷D)0

C)在C语言中,程序的模块化是利用函数实

现的(17)若变量已正确定义,在if(W)printf

D)由三种基本结构构成的程序只能解决小规("%d\n,k");中,以下不可替代W的是

模的问题A)a<>b+c

B)ch=getchar()

(12)以下关于简单程序设计的步骤和顺序的C)a==b+c

说法中正确的是D)a++

A)确定算法后,整理并写出文档,最后进行

编码和上机调试(18)有以下程序

B)首先确定数据结构,然后确定算法,再编#include<stdio.h>

码,并上机调试,最后整理文档main()

C)先编码和上机调试,在编码过程中确定算{inta=l,b=0:

法和数据结构,最后整理文档if(!a)b++;

D)先写好文档,再根据文档进行编码和上机elseif(a=0)if(a)b+=2;

调试,最后确定算法和数据结构elseb+=3;

(13)以卜叙述中错误的是printf,b);

A)C程序在运行过程中所有计算都以二进制)

方式进行程序运行后的输出结果是

B)C程序在运行过程中所有计算都以十进制方A)0

式进行B)1

C)所有C程序都需要编译链接无误后才能运C)2

行D)3

D)C程序中整型变量只能存放整数,实型变量

只能存放浮点数(19)若有定义语句inta,b;doublex;则

下列选项中没有错误的是

(14)有以下定义:inta;longb;A)switch(x%2)B)switch

doublex,y;则以下选项中正确的表达式是((int)x/2.0

A)a%(int)(x-y){case0:a++;break:{case0:

B)a二x!二y;a++;break;

C)(a*y)%bcase1:b++;break;case1:

D)y=x+y=xb++;break;

default:a++;b++;default:

(15)以下选项中能表示合法常量的是a++;b++;

A)整数:1,200))

B)实数:1.5E2.0C)switch((int)x%2)D)switch

C)字符斜杠:'\'((int)(x)%2)

D)字符串:”\007〃{case0:a++;break;{case0.0:

a++;break;(23)有以下程序

case1:b++;break;case1.0:#includeVstdio.h>

b++;break;#includeVstring.h>

default:a++;b++;default:main()

a++;b++;{charx口="STRING”;

))x[0J=0;x[1]='\(T:x[2J=,0,:

(20)有以下程序printf(v%d%d\n”,sizeof(x),strlen

#include<stdio.h>(x));

main())

{inta=l,b=2;程序运行后的输出结果是

while(a<6){b+=a;a+=2;b%二10;}A)61

printf("%d,%d\n”,a,b);B)70

)C)63

程序运行后的输出结果是D)71

A)5,11

B)7,1(24)有以下程序

C)7,11#includeVstdio.h>

D)6,1Intf(intx);

main()

(21)有以下程序{intn=l,m;

#include<stdio.h>m=f(f(f(n)));printf("%d\n”,m);

main())

{inty=10:intf(intx)

while(y-);{returnx*2;}

printf("Y二%d\n”,Y);程序运行后的输出结果是

)A)1

程序执行后的输出结果是B)2

A)y=0C)4

B)y=-1D)8

C)y=l

D)while构成无限循环(25)以下程序段完全正确的是

(22)有以下程序A)int*p;scanf("机T,&p);

#include<stdio.h>B)int*p;scanf("Md",p);

main()C)intk,*p=&k;scanf("刎",p);

{chars[J="rstuv”;D)intk,*p:;*p=&k;scanf("%d",p);

printf("%c\n”,*s+2);(26)有定义语句:int*p[4];以下选项中与

)此语句等价的是

程序运行后的输出结果是A)intp[4];

A)tuvB)int**p;

B)字符t的ASCII码值C)int*(p[4J);

C)tD)int(*p)[4J;

D)出错

(27)下列定义数组的语句中,正确的是for(i=0,i<7;i++)printf("%d,”,aa

A)intN=10;B)#defineN10[i]));

intx[N];intx[N];printf("\n");

C)intx[0..103;D)intx[];)

程序运行后的输出结果是

(28)若要定义一个具有5个元素的整型数组,A)7,2,5,4,3,6,1

以下错误的定义语句是B)1,6,3,4,5,2,7

A)inta[5]={0};C)7,6,5,4,3,2,1

B)intb[]={0,0,0,0,0);D)1,7,3,5,6;2,1

C)intc[2+3];

I))inti=5,d[i];(31)下列选项中,能够满足“若字符串si

等于字符串s2,则执行S丁要求的是

(29)有以卜.程序A)if(strcmp(s2,si)=0)ST;

#includeVstdio.h>B)if(sl==s2)ST;

voidf(int*p);C)if(strcpy(s1,s2)==1)ST;

main()D)if(sl-s2=0)ST;

{inta[5]={1,2,3,4,5},*r=a;

f(r);printf("%d\n";火r);(32)以卜.不能将s所指字符串正确复制到t

)所指存储空间的是

voidf(int*p)A)while(*t=*s){t++;s++;}

{p=p+3;printf("%d,”,*p);}B)for(i=0;t[i]=s[i];i++);

程序运行后的输出结果是C)do{*t++=*s++;}while(*s);

A)1,4D)for(i=0,j=O;t[i++]=s[j++];);

B)4,4(33)有以下程序(strcat函数用以连接两

C)3,1个字符串)

D)4,1#includeVstdio.h>

(30)有以下程序(函数fun只对下标为偶数#include<string.h>

的元素进行操作)main()

#include<stdio.h>{chara[20]二"ABCD\0EFG\0",b[]

voidfun(int*a:intn)="IJK”;

{inti、j、k^t;strcat(a,b);printf("%s\n”,a);

for(i=0;i<n—1;l+=2))

{k=i;'程序运行后的输出结果是

for(j=i;j<n;j+=2)if(a[j]>a(k])A)ABCDE\0FG\0IJK

k=j;B)ABCDIJK

t=a(i];a[i]=a[k];a(k]=t;C)IJK

)D)EFGIJK

)

main()(34)有以下程序,程序中库函数islower(ch)

{intaaF10J={1、2、3、4、5、6、7),用以判断ch中的字母是否为小写字母

i;#include<stdio.h>

fun(aa、7);#includeVctype.h>

voidfun(char*p)程序运行后的输出结果是

{inti=0;A)11

while(p[i])B)21

{if(p[i]==*'&&islower(p[i-1J))C)6

p[i-l]=p[i-l]-匕'+'A,;D)120

i++:(37)有以下程序

)#inctude<stdio.h>

}#include<stdlib.h>

main()Main()

{charsi[100]="abcdEFG!”;{int*a,*b,*c;

fun(si);printf("%s\n",si);a=b=c=(int*)malloc(sizeof(int))

)*a=l;*b=2,*c=3;

程序运行后的输出结果是a=b;

A)abcdEFG!printf("%d,%d,%d\n",*a,*b

B)AbCdEFg!*c);

C)aBcDEFG!)

D)abcdEFg!程序运行后的输出结果是

(35)有以卜.程序A)3,3,3B)2,2,3C)1,2,3D)

#include<stdio.h>1,1,3

voidfun(intx)

{if(x/2>l)fun(x/2);(38)有以下程序

printf("%d”,x);#includeVstdio.h>

}main()

main(){ints,t,A=10;doubleB=6;

{fun(7);printf("\n");)s=sizeof(A);t=sizeof(B);

程序运行后的输出结果是printf("%d,%d\n”,s,l);

A)137)

B)731在VC6平台上编译运行,程序运行后的输出W

073果是

D)37A)2,4B)4,4C)4,8D)

10,6

(36)有以下程序

#include<stdio.h>(39)若有以下语句

intfun()TypedefstructS

{staticintx=l;{intg;charh;}T;

x+=l;returnx;以下叙述中正确的是

)A)可用S定义结构体变量

main()B)可用T定义结构体变量

{inti;s=l;C)S是struct类型的变量

for(i=l;i<=5;i++)s+=fun();D)T是structS类型的变量

printf("%d\n",s);

)(40)有以下程序

#includeVstdio.h>d\n",x+y);

main())

{shortc=124;程序运行时输入:1234567程序的运行结果是

c=c:[7]。

printf(“%d\n"、C);

)(8)在C语言中,当表达式值为0时表示逻

若要使程序的运行结果为248,应在下划线处辑值“假”,当表达式值为【8】时表示逻辑值

填入的是“真”。

A)»2B)|248C)&0248D)(9)有以下程序

«1#includeVstdio.h>

二、填空题(每空2分,共30分)main()

请将每空的正确答案写在答题卜3】至【15】{inti,n[]={0,0,0,0,0);

序号的横线上,答在试卷上不得分。for(i=l;i<=4;i++)

(1)一个栈的初始状态为空。首先将元素{n[i]=n[i-l]*3+1;printf("%d,,,n[i]);}

5,4,3,2,1依次入栈,然后退栈一次,再将元素)

A,B,C,D依次入栈,之后将所有元素全部退栈,则程序运行后的输出结果是[91。

所有元素退栈(包括中间退栈的元素)的顺序为【1】

(10)以Ffun函数的功能是:找出具有N个

(2)在长度为n的线性表中,寻找最大项至元素的•维数组中的最小值,并作为函数值返回。

少需要比较12]次。请填空。(设N已定义)

intfun(intx[N])

(3)一棵二叉树有10个度为1的结点,7个{inti,k=0;

度为2的结点,则该二叉树共有13】个结点。for(i=0;i<N;I++)

if(x[i]

(4)仅由顺序、选择(分支)和重复(循环)returnx[k]:

结构构成的程序是【4】程序。)

(5)数据库设计的四个阶段是:需求分析,(11)有以下程序

概念设计,逻辑设计【5】o#include<stdio.h>

int*f(int*p,int*q);

(6)以下程序运行后的输出结果是16】。main()

#includeVstdio.h>{intm=l,n=2,*r=&m;

main()r=f(r,&n):printf("%d\n”,:

{inta=200,b=010;)

printf("%d%d\n",a,b);int*f(int*p,inl*q)

){return(*p>*q)?p:q;}

程序运行后的输出结果是[111

(7)有以下程序

#include<stdio.h>(12)以下fun函数的功能是在N行M列的整

main()形二维数组中,选出•个最大值作为函数值返回,

{intx,Y;请填空。(设M,.N已定义)

scanfC^%2d%ld”,&x,&y);printf(w%intfun(inta[N][M))

{inti,j,row=0,col=0:#includeVstdio.h>

for(i=0;i<N;I++)main()

for(j=0;j{inta(10],*p,*s;

if(a[i][j]>a[row][col]){row=i;for(p=a:p-a<10:p++)scanf("%d”,p);

col=j;}for(p=a,s=a;p-a<10;p++)if(*p>*s)

return([12]):S=P;

}printf("max=%d\n”,[14]);

(13)有以下程序)

#includeVstdio.h>

main()(15)以卜.程序打开新文件f.txt,并调用字符

{intn[2],i,j;输出函数将a数组中的字符写入其中,请填空。

for(i=0;i<2;i++)n[i]=0:#includeVstdio.h>

for(i=0;i<2;i++)main()

for(j=0;j<2;j++)n[j]=n[i]A+l:{[15]*fp;

printf("%d\n”,n[l]);chara[5]=

}{'1,'2','3','4','5'},i;

程序运行后的输出结果是[13]fp=fopen("f.txt",“w");

for(i=0;i<5;i++)fputc(a[i],fp);

(14)以下程序的功能是:借助指针变量找出fclose(fp);

数组元素中最大值所在的位置并输出该最大值。请)

在输出语句中填写代表最大值的输出项。答案:

一、选择题

(1)B(2)c(3)D(4)A(5)A

(6)1)(7)I)(8)C(9)C(10)A

(11)C(12)D(13)B(14)A(15)C

(16)D(17)A(18)A(19)C(20)B

(21)B(22)C(23)B(24)D(25)0

(26)C(27)B(28)D(29)D(30)A

(30)A(32)C(33)B(34)C(35)1)

(36)B(37)A(38)C(39)B(40)D

—•、填空题6:200812:a[row][col]

1:1DCAB23457:1513:3

2:n-18:非014:*s

3:259:14134015:FILE

4:结构化10:i

5:物理设计11:2

2011年3月计算机等级考试二级C语言笔试:(10)定义无符号整数类为UInt,下面可以作为类UInt

文字版实例化值的是

A)-369B)369C)0369D)整数

集合(123,4,5}

(11)计算机高级语言程序的运行方法有编译执行和C)必须是正数D)可以是任意合

解释执行两种,以卜叙述中正确的是法的数值

A)C语言程序仅可以编译执行(18)有以下程序

B)C语言程序仅可以解释执行#include<stdio>

C)C语言程序既可以编译执行又可以解释执行main()

D)以上说法都不对{intx=011;

(12)以下叙述中错误的是printf(H%d\n",++x);

A)C语言的可执行程序是由一系列机器指令构)

成的程序运行后的输出结果是

B)用C语言编写的源程序不能直接在计算机A)12B)llC)10

上运行D)9

C)通过编译得到的二进制目标程序需要连接(19)有以下程序

才可以运行

#include<stdio>

D)在没有安装C语言集成开发环境的机器上

main()

不能运行C源程序生成的.exe文件

{ints;

(13)以下选项中不能用作C程序合法常量的是

scanf(H%dn,&s);

A)1,234B)'123,

while(s>0)

C)123D)"\x7G,'

{switch(s)

(14)以下选项中可用作C程序合法实数的是

{easel:printf(H%d",s+5);

A).leOB)3.0e0.2

case2:printf("%dn,s+4);break;

C)E9D)9.12E

case3:printf("%cT,s+3);

(15)若有定义语句:inta=3,b=2,c=l;»以下选项中错

default:printf(',%d,,,s+1);break;

误的赋值表达式是

}

A)a=(b=4)=3;B)a=b=c+1;

scanf("%d”,&s);

C)a=(b=4)+c;D)a=l+(b=c=4);

}

(16)有以卜程序段

1

charname[20];

运行时,若输入12345Ov回车>,则输出结

intnum;

果是

scanf("name=%snum=%dn,name;&num);

A)6566456B)66656C)66666

当执行上述程序段,并从键盘输入:name二Lili

D)6666656

num=1001v回车〉后,name的值为

(20)有以卜.程序段

A)Lili

inti,n;

B)name=Lili

for(i=0;i<8;i++)

C)Lilinum=

{n=rand()%5;

D)name=Lilinum=1001

switch(n)

(17)if语句的基本形式是:if(表达式)语句,以下关

{case1:

于“表达式”值的叙述中正确的是

case3:printf("%d\n'\n);break;

A)必须是逻辑值B)必须是整数

case2:

case4:printf("%d\n'\n);continue;

caseO:exit(O);A)ABCDEFB)AbCdEfC)aBcDeF

)D)abcdef

printf(u%d\n",n);

设有定义:以下能给数组

)(24)doublex[10],*p=x;,x

卜.标为的元素读入数据的正确语句是

以下关于程序段执行情况的叙述,正确的是6

A)scanf("%f",&x[6]);

A)for循环语句固定执行8次

B)scanf(H%lf;*(x+6));

B)当产生的随机数n为4时结束循环操作

C)scanf("%lf\p+6);D)scanf(',%lf,p[6]);

C)当产生的随机数n为1和2时不做任何操作

(25)有以下程序(说明:字母A的ASCII码值是65)

D)当产生的随机数n为0时结束程序运行

#include<stdio>

(21)有以下程序

voidfun(char*s)

#include<stdio>

{while(*s)

main()

{if(*s%2)printf("%cn,*s);

{chars[]=',OI2xy\O8s34f4w2n;

s++;

inti,n=O;

)

for(i=0;s[i]!=0;i++)

)

if(s[i]>='0'&&s[i]<='9,)n++;

main()

printf(u%d\n",n);

{chara[]=HBYTE";

)

fun(a);printf("\n");

程序运行后的输出结果是

)

A)0B)3C)7D)8

程序运行后的输出结果是

(22)若i和k都是int类型变量,有以下for语句

A)BYB)BTC)YTD)YE

for(i=0,k=-l;k=l;k++)printf("*****\n");

(26)有以下程序段

卜,面关于语句执行情况的叙述中正确的是

#include<stdio>

A)循环体执行两次

main()

B)循环体执行一次

{

C)循环体•次也不执行

while(getchar()!='\n');

D)构成无限循环

(23)有以下程序

I

#include<stdio>

以下叙述中正确的是

main()

A)此while语句将无限循环

{charb,c;inti;

B)getchar。不可以出现在while语句的条件表

b='a,;c=A\

达式中

for(i=0;i<6;i++)

C)当执行此while语句时,只有按回车键程序

{if(i%2)putchar(i+b);

才能继续执行

elseputchar(i+c);

D)当执行此while语句时,按任意键程序就能

)printfCAn");继续执行

(27)有以下程序

程序运行后的输出结果是#include<stdio>

main()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论