全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx

上传人:b****3 文档编号:18404664 上传时间:2022-12-16 格式:DOCX 页数:16 大小:23.05KB
下载 相关 举报
全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx_第1页
第1页 / 共16页
全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx_第2页
第2页 / 共16页
全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx_第3页
第3页 / 共16页
全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx_第4页
第4页 / 共16页
全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx

《全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试二级C语言试题及答案1Word文档下载推荐.docx

B)scanf("

%d%d%d"

a,b,c);

C)scanf("

p);

D)scanf("

(17)有以下程序

main()

{intx,y,z;

x=y=1;

z=x++,y++,++y;

printf("

%d,%d,%d\n"

x,y,z);

}

程序运行后的输出结果是

A)2,2,3B)2,2,2C)2,3,1D)2,1,1

(18)若已定义:

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=19B)***a=26,b=14,c=19

C)###a=25,b=13,c=19D)###a=26,b=14,c=19

(19)下列程序段的输出结果是

inta=1234;

floatb=123.456;

doublec=12345.54321;

-,%2.1f,%2.1f"

A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5

(20)有以下程序

{inta=0,b=0;

a=10;

/*给a赋值

b=20;

给b赋值*/

a+b=%d\n"

a+b);

/*输出计算结果*/

程序运行后输出结果是

A)30B)a+b=30C)a+b=0D)出错

(21)若运行以下程序时,从键盘输入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′);

v0=%d,v1=%d,v2=%d\n"

v0,v1,v2);

A)v0=11,v1=4,v2=11B)v0=8,v1=4,v2=8

C)v0=7,v1=4,v2=7D)v0=13,v1=4,v2=12

(22)有以下程序

#include

main()

{inty=9;

for(y>

0;

y--)

if(y%3==0)printf("

--y);

}

程序的运行结果是

A)732B)433C)852D)874

(23)设有以下程序段

intx=0,s=0;

while(!

x!

=0)s+=++x;

s);

A)运行程序段后输出0B)运行程序段后输出1

C)程序段中的控制表达式是非法的D)程序段执行无限次

(24)有以下程序

fun(intx,inty){return(x+y);

{inta=1,b=2,c=3,sum;

sum=fun((a++,b++b,a+b),c++);

%d\n"

sum);

执行后的输出结果是

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

(25)执行下面的程序段后,变量k中的值为

intk=3,s[2];

s[0]=k;

k=s[1]*10;

A)不定值B)35C)31D)20

(26)以下叙述中错误的是

A)改变函数形参的值,不会改变对应实参的值

B)函数可以返回地址值

C)可以给指针变量赋一个整数作为地址值

D)当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL

(27)以下程序段的描述,正确的是

x=-1;

do

{x=x*x;

}while(!

x);

A)是死循环B)循环执行两次C)循环执行一次D)有语法错误

(28)有以下程序

fun(intx,inty)

{staticintm=0,i=2;

i+=m+1;

m=i+x+y;

returnm;

}

main()

{intj=1,m=I,k;

k=fun(j,m);

k);

k)

执行后的输出结果是

A)5,5B)5,11C)11,11D)11,5

(29)有以下程序

fun(intx)

{intp;

if(x==0║x==1)return(3);

p=x-fun(x=2);

retump;

}main()

{prinf("

fun(7));

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

(30)在16位编译系统上,右有定义inta[]={10,20,30},*p=&

a;

当执行p++;

后,下列说法错误的是

A)p向高地址移了一个字节B)p抽高地址移了一个存储单元

C)p向高地址移了两个字节D)p与a+1等价

(31)有以下程序

{inta=1,b=3,c=5;

int*p1=&

a,*p2=&

b,*p=&

*p=*p1*(*p2);

printf("

c);

A)1B)2C)3D)4

(32)下列程序执行后的输出结果是

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)helloB)helC)hloD)hlm

(33)在下述程序中,判断i>

j共执行的次数是

{inti=0,j=10,k=2,s=0;

for(;

{i+=k;

if(i>

j)

s);

break;

}s+=i;

A)4B)7C)5D)6

(34)以下函数返回a所指数组中最大值所在的下标值

fun(int*a,intn)

{inti,j=0,p;

p=j;

for(i=j;

iif(a[i]>

a[p]);

return(p);

在下划线处应填入的内容是

A)i=pB)a[p]=a[i]C)p=jD)p=i

(35)下列程序执行后的输出结果是

{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)3B)6C)9D)随机数

(36)有以下程序

voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/

{intt,i,j;

for(i=0;

ifor(j=i+1;

jif(a}

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

for(i=0;

i<

10;

i++)printf("

%d,"

\n"

程序运行的结果是

A)1,2,3,4,5,6,7,8,9,0,B)0,9,8,7,6,5,1,2,3,4,

C)0,9,8,7,6,5,4,3,2,1,D)1,2,3,4,9,8,7,6,5,0,

(37)以下程序的输出结果是#include

voidprt(int*x,int*y,int*z)

%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

(38)有以下程序:

voidfun(char*t,char*s)

{

while(*t!

=0)t++;

while((*t++=*s++)!

=0);

charss[10]=”acc”,aa[10]=”bbxxyy”;

fun(ss,aa);

printf(“%s,%s\n”,ss,aa);

程序运行结果是

A)accxyy,bbxxyyB)acc,bbxxyy

C)accxxyy,bbxxyyD)accbbxxyy,bbxxyy

(39)有以下程序

{FILE*fp;

inti=20,j=30,k,n;

fp=fopen("

d1.dat"

"

w"

);

fprintf(fp,"

i);

j);

fclose(fp);

r"

fscanf(fp,"

%d%d"

,&

k,&

n);

%d%d\n"

k,n);

程序运行后的输出结果是

A)2030B)2050C)3050D)3020

(40)有以下程序

{intx[3][2]={0},I;

for(I=0;

I<

3;

I++)scanf("

x[i]);

%3d%3d%3d\n"

x[0][0],x[0][1],x[1][0]);

若运行时输入:

246<

回车>

,则输出结果为

A)200B)204C)240D)246

(41)有以下程序

#include<

string.h>

main(intargc,char*argv[])

{inti=1,n=0;

while(i<

arge){n=n+strlen(argv[i]);

i++;

printf(“%d\n”,n);

该程序生成的可执行文件名为:

proc.exe。

若运行时输入命令行:

proc1234567

则程序的输出结果是

A)3B)5C)7D)11

 

(42)有以下程序

voidfun2(chara,charb){printi(“%b%c”,a,b);

chara=‘A’,b=‘B’;

voidfun1(){a=‘C’lb=‘D’;

main()

{fun1()

printf(“%c%c”,a,b);

fun2(‘E’,‘F’);

程序的运行结果是

A)CDEFB)ABEFC)ABCDD)CDAB

(43)有以下程序

stdio.h>

#defineN5

#defineMN+1

#definef(x)(x*M)

{inti1,i2;

i1=f

(2);

i2=f(1+1);

printf(“%d%d\n”,i1,i2);

A)1212B)117C)1111D)127

(44)设有以下语句

typedefstructTT

{charc;

inta[4];

}CIN;

则下面叙述中正确的是

A)可以用TT定义结构体变量B)TT是struct类型的变量

C)可以用CIN定义结构体变量D)CIN是structTT类型的变量

(45)有以下结构体说明、变量定义和赋值语句

structSTD

{charname[10];

intage;

charsex;

}s[5],*ps;

ps=&

s[0];

则以下scanf函数调用语句中错误引用结构体变量成员的是

A)scanf(“%s”,s[0].name);

B)scanf(“%d”,&

s[0].age);

C)scanf(“%c”,&

(ps>

sex));

D)scanf(“%d”,ps>

age);

(46)若有以下定义和语句

uniondata

{inti;

charc;

floatf;

}x;

inty;

则以下语句正确的是

A)x=10.5;

B)x.c=101;

C)y=x;

D)printf(“%d\n”,x);

(47)若变量已正确定义,则以下语句的输出结果是

s=32;

s^=32;

printf(“%d”,s);

A)-1B)0C)1D)32

(48)若程序中有宏定义行:

#defineN100则以下叙述中正确的是

A)宏定义行中定义了标识符N的值为整数100

B)在编译程序对C源程序进行预处理时用100替换标识符N

C)对C源程序进行编译时用100替换标识符N

D)在运行时用100替换标识符N

(49)以下叙述中正确的是

A)C语言中的文件是流式文件,因此只能顺序存取数据

B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

(50)有以下程序

{FILE*fp;

inti;

charch[]=”abcd”,t;

fp=fopen(“abc.dat”,”wb+”);

for(i=0;

4;

i++)fwriter&

ch[],1,1fp;

fseek(fp,-2L,SEEK_END);

fread(&

t,1,1,fp);

fclose(fp);

printf(“%c\n”,t);

程序执行后的输出结果是

A)dB)cC)bD)a

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

(1)在面向对象方法中,类之间共享属性和操作的机制称为【1】。

(2)一个关系表的行称为【2】。

(3)耦合和内聚是评价模块独立性的两个主要标准,其中【3】反映了模块内各成分之间的联系。

(4)线性表的存储结构主要分为顺序存储结构和链式存储结构.队列是一种特殊的线性表,循环队列是队列的【4】存储结构.

(5)【5】的任务是诊断和改正程序中的错误。

(6)以下程序的输出结果是【6】.

{intn=12345,d;

while(n!

=0){d=n%10;

d);

n/=10;

(7)以下程序运行后的输出结果是【7】。

intm=011,n=11;

%d%d\n"

++m,n++);

(8)有以下程序,若运行时从键盘输入:

18,11<

,则程序输出结果是【8】。

{inta,b;

Entera,b:

scanf("

%d,%d"

b);

while(a!

=b)

{while(a>

b)a-=b;

while(b>

a)b-=a;

%3d%3d\n"

a,b);

(9)有以下程序段,且变量已正确定义和赋值

for(s=1.0,k=1;

k<

=n;

k++)s=s+1.0/(k*(k+1));

s=%f\n\n"

请填空,使下面程序段的功能为完全相同

s=1.0;

k=1;

while(_【9】_______){s=s+1.0/(k*(k+1));

_【10】_______;

(10)执行以下程序的输出结果是【11】______.

{inti,n[4]={1};

=3;

i++)

{n=n[i-1]*2+1;

n);

(11)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空.

viodf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];

p0=p1=0;

for(m=0;

m{if(x[m]>

i){i=x[m];

p0=m;

elseif(x[m]}

t=x[p0];

x[p0]=x[n-1];

x[n-1]=t;

t=x[p1];

x[p1]=_【12】_______;

【13】______=t;

{inta[10],u;

for(u=0;

u<

u++)scanf("

a);

f(a,10);

u++)printf("

a);

(12)下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新的字符串。

例如,若t所指字符串为efgh,调用strcpy2后,s所指字符串为efghefgh。

请填空。

#include<

voidstrcpy2(char*s,char*t)

{char*p=t;

while(*s++=*t++);

s=【14】;

while(【15】=*p++);

{charstr1[100]="

abcd"

str2[]="

efgh"

strcpy2(str1,str2);

%s\n"

str1);

(13)以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推.用#号结束输入,请填空.

{intnum[26]={0},i;

while((_【16】_______)!

='

#'

if(isupper(c))num[c-‘A’]+=【17】_______;

26;

Printf("

%c:

i+'

A'

num);

(14)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

#include"

math.h"

doublefun(doublex){return(x*x-2*x+6);

doublex,y1,y2;

Enterx:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1