江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx

上传人:b****7 文档编号:22441236 上传时间:2023-02-04 格式:DOCX 页数:114 大小:333.23KB
下载 相关 举报
江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx_第1页
第1页 / 共114页
江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx_第2页
第2页 / 共114页
江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx_第3页
第3页 / 共114页
江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx_第4页
第4页 / 共114页
江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx_第5页
第5页 / 共114页
点击查看更多>>
下载资源
资源描述

江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx

《江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx(114页珍藏版)》请在冰豆网上搜索。

江苏省计算机二级C语言历年真题及答案Word格式文档下载.docx

12•在下列有关ADSL技术及利用该技术接入因特网的叙述中,错误的是12。

A.从理论上看,其上传速度与下载速度相同B.一条电话线上可同时接听/拨打电话和进行数据传输

C.利用ADSL技术进行数据传输时,有效传输距离可达几公里

D.目前利用ADSL技术上网的计算机一般需要使用以太网网卡

13.人们往往会用"

我用的是10M宽带上网"

来说明白己计算机连网的性能,这里的"

10M"

指的是数据通信中的13指标。

A.最高数据传输速率B.平均数据传输速率

C.每分钟数据流量D.每分钟IP数据包的数

14•计算机局域网按拓扑结构进行分类,可分为环型、星型和14型等。

A.电路交换B.以太C.总线D.对等

15.网络信息安全主要涉及数据的完整性、可用性、机密性等问题。

保证数据的完整性就是15。

A.保证传送的数据信息不被第三方监视和窃取B.保证发送方的真实身份

C.保证传送的数据信息不被篡改D.保证发送方不能抵赖曾经发送过某数据信息

16.某计算机系统中,西文使用标准ASCII码、汉字采用GB2312编码。

设有一段纯文本,其机内码为CBF5DOB45043CAC7D6B8,则在这段文本中含有:

16。

A.2个汉字和1个西文字符B.4个汉字和2个西文字符

C.8个汉字和2个西文字符D.4个汉字和1个西文字符

17.以下关于汉字编码标准的叙述中,错误的是17。

A.GB2312标准中所有汉字的机内码均用双字节表示

B.我国台湾地区使用的汉字编码标准BIG5收录的是繁体汉字

C.GB18030汉字编码标准收录的汉字在GB2312标准中一定能找到

D.GB18030汉字编码标准既能与UCS(Unicode)接轨,又能保护已有中文信息资源

18.若波形声音未进行压缩时的码率为64kb/s,已知取样频率为8kHz,量化位数为8,那么它的声道数是

A.1B.2C.4D.8

19.从信息处理的深度来区分信息系统,可分为业务处理系统、信息检索系统和信息分析系统等。

在下列几种信息系统中,不属于业务处理系统的是19。

A.DSSB.CAIC.CAMD.OA

20.在下列有关信息系统开发、管理及其数据库设计的叙述中,错误的是20。

A.常用的信息系统开发方法可分为结构化生命周期方法、原型法、面向对象方法和CASE方法等

B.在系统分析中常常使用结构化分析方法,并用数据流程图和数据字典来表达数据和处理过程的关系

C.系统设计分为概念结构设计、逻辑结构设计和物理结构设计,通常用E-R模型作为描述逻辑结构的工具

D.从信息系统开发过程来看,程序编码、编译、连接、测试等属于系统实施阶段的工作

第二部分C程序设计

21.以下定义和声明中,语法均有错误的是____(21)_________

①intj(intx){}②intf(intf){}③int2x=1;

④struetfor{intx;

};

A.②③B.③④C.①④D.①②③④

22.设有定义和声明如下:

#defined2

intx=5;

floatY=3.83;

charc='

d'

;

以下表达式中有语法错误的是_(22)______

A.x++B.y++C.c++D.d++

23.以下选项中,不能表示函数功能的表达式是___(23)______。

A.s=(X>

0)?

1:

(X<

-1:

0B.s=X<

0?

(X>

0)

C.s=X<

=0?

(X==0?

0:

1)D.s=x>

x==0?

-1

24.以下语句中有语法错误的是____(24)______。

A.printf("

%d"

0e);

B.printf("

%f"

0e2);

C.printf("

Ox2);

D.printf("

%s"

"

0x2"

);

25.以下函数定义中正确的是___(25)_________。

A.doublefun(doublex,doubley){}B.doublefun(doublex;

doubleY){}

C.doublefun(doublex,doubleY);

{}D.doublefun(doubleX,Y){}

26.若需要通过调用f函数得到一个数的平方值,以下f函数定义中不能实现该功能的是_____(26)______。

A.voidf(double*a){*a=(*a)*(*a);

}B.voidf(doublea,double*b){*b=a*a;

}

C.voidf(doublea,doubleb){b=a*a;

}D.doublef(doublea){returna*a;

27.设有声明"

intP[10]={1,2},i=0;

"

以下语句中与"

P[i]=P[i+1],i++;

等价的是____(27)_______。

A.P[i]=P[i++];

B.P[++i]=P[i];

C.P[++i]=P[i+1];

D.i++,P[i-1]=P[i];

28.已知有声明"

chara[]="

Itismine"

*p="

下列叙述中错误的是28。

A.strcpy(a,"

yes"

)和strcpy(p,"

)都是正确的B.a="

和p="

都是正确的

C.*a等于*pD.sizeof(a)不等于sizeof(p)

29.已知有声明"

inta[3][3]={0},*p1=a[1],(*p2)[3]=a;

以下表达式中与"

a[1][1]=1"

不等价的表达式是29。

A.*(p1+1)=1B.p1[1][1]=1C.*(*(p2+1)+1)=1D.p2[1][1]=1

30.设有结构定义及变量声明如下:

structproduct

{charcode[5];

floatprice;

}y[4]={"

100"

100}"

以下表达式中错误的是____(30)_____。

A.(*y).code[0]='

2'

B.y[0].code[0]='

C.y->

price=10;

D.(*y)->

二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分)

●基本概念

1.在一个C语言源程序中,必不可少的是

(1)。

2.若有声明"

intx;

且sizeof(x)的值为2,则当x值为

(2)时"

x+1>

x"

为假。

3.若有声明"

floaty=3.14619;

则计算表达式"

x=y*100+0.5,Y=x/100.0"

后y

的值是(3)。

4.执行以下程序段中的语句"

k=M*M+1"

后k的值是(4)

#defineN2

#defineMN+1

k=M*M+1:

●阅读程序

5.以下程序运行时输出结果是(5)

#include<

stdio.h>

voidmain()

{doublex[3]={1.1,2.2,3.3},Y;

FILE*fp=fopen("

d:

\\a.out"

wb+"

fwrite(x,sizeof(double),3,fp)"

fseek(fp,2L*sizeof(double),SEEK_SET);

fread(&

y,sizeof(double),1,fp)"

printf("

%.1f"

y);

fclose(fp)"

}

6.以下程序运行时输出结果是(6)。

{intk=5,n=0;

while(k>

{switch(k)

{case1:

case3:

n+=1;

k--;

break"

default:

n=0;

case2:

case4:

n+=2;

break;

%3d"

n);

7.以下程序运行时输出结果是(7)。

voidchange(intx,intY,int*z)

{intt;

t=x;

x=y;

y=*z;

*z=t;

{intx=18,y=27,z=63;

change(x,y,&

z);

x=%d,y=%d,z=%d\n"

x,y,z);

8.以下程序运行时输出结果是(8)。

intf(intx,inty)

{retumx+y;

}

{doublea=5.5,b=2.5;

f(a,b));

9.以下程序运行时输出结果中第-行是(9),第三行是(10)。

defineN5

{staticchara[N][N];

inti,j,t,start=0,end=N-1;

charstr[]="

123"

ch;

for(t=0;

t<

=N/2;

t++)

{ch=str[t];

for(i=j-start;

i<

end;

i++)a[i][j]=ch;

for(j=start;

j<

j++)a[i][j]=ch;

for(i=end;

i>

start;

i--)a[i][j]=ch;

for(j=end;

j>

j--)a[i][j]=ch;

if(start==end)a[start][end]=ch;

start++,end--;

for(i=O;

N;

i++)

{for(j=0;

j++)

%c"

a[i][j]);

\n"

10.以下程序运行时输出结果中第一行是(11),第二行是(12)。

voidfun(intx,intP[],int*n)

{inti,j=O;

for(i=1;

=x/2;

i++)

if(x%i==0)p[j++]=i;

*n=j:

{intx,a[10],n,i;

fun(27,a,&

n);

for(i=0;

n;

%5d"

a[i]);

\n%5d"

11.以下程序运行时输出结果是(11)。

ctype.h>

intcount(chars[])

{inti=0;

if(s[i]=='

\0'

)return0;

while(isalpha(s[i]))i++;

while(!

isalpha(s[i])&

&

s[i]!

='

\O'

)i++;

return1+count(&

s[i]);

{charline[]="

oneworld,onedream."

count(line));

}.

12.以下程序运行时输出结果中第一行是(14),第二行是(15)

intfun(char*a,char*b)

{intm=0,n=0:

while(*(a+m)!

)m++;

while(b[n])

{*(a+m)=b[n];

m++;

n++;

*(a+m)='

returnm;

{chars1[20]="

s2[5]="

no"

%d\n"

fun(s1,s2));

puts(s1);

13.以下程序运行时输出结果中第-行是(16),第二行是(17),第三行是(18)

typedefstruct{intx;

inty;

}S;

voidfun(Spp[],intn)

{inti,j,k;

St;

n-1;

{k=i;

for(j=i+1;

if((pp[j].x<

pp[k].x)||(pp[j].x==pp[k].x&

pp[j].y<

pp[k].y))

k=j;

if(k!

=i)

{t=pp[i];

pp[i]=pp[k];

pp[k]=t;

{Sa[5]={{3,2},{3,1},{1,2},{2,4},{2,3}};

inti,n=5;

fun(a,n);

%d,%d\n"

a[i].x,a[i].y);

●完善程序

14?

以下程序求一组整数的最大公约数。

试完善程序以达到要求的功能。

intgcd(inta,intb)i

{intr;

while(_____(19)_______)

{r=a%b;

a=b;

(_____20_____);

returna;

{intx,i,a[6]={12,56,48,32,16,24};

x=(___21_____);

6;

x=gcd(___(22)_____,a[i]);

(%d,"

a[O])

5;

%d,"

%d)=;

d\n"

a[5],x);

15.以下程序完成两个长正整数的加法运算并输出计算结果。

函数add模拟手工加法运算的过程,将a和b指向的数组中存储的两个以字符串形式表示的n位正整数相加,并将运算结果以字符串形式保存到c指向的数组中。

main函数中pl和p2数组分别存放被加数字符串和加数字符串,p3数组存放运算结果字符串。

若p1中的字符串为"

1000000001"

、p2中的字符串为"

9000000009"

调用add函数后p3得到的是以字符串表示的这两个整数相加的结果"

10000000010"

#include"

stdio.h"

string.h"

voidadd(chara[],charb[],charc[],__(23)____)

{inti,k;

c[n]='

k=0;

for(i=n-1;

=0;

i--)

{c[i]=(a[i]-'

O'

)+(b[i]-'

0'

)+k;

k=______(24)______;

c[i]=c[i]%10+'

if(k)

{for(i=n+1;

O;

c[i]=___(25)____;

c[i]=k+'

{charp1[80]="

pz[80]="

p3[80];

inti,x=strlen(p1),y=strlen(p2);

if(x<

y)

{for(i=x;

{p1[i+y-x]=p1[i];

p1[i]='

_____(26)______;

if(x>

for(i=y;

{p2[i+x-y]=p2[i];

p2[i]='

add(p1,p2,p3,x);

puts(p3);

16.以下程序创建-个链表并实现数据统计功能。

函数WORD*create(chara[][20],intn)创建-个包含n个结点的单向链表,结点数据来自a指向的数组中存储的n个单词(字符串)。

函数voidcount(WORD*h)统计h指向的单向链表中不同单词各自出现的次数,将统计结果保存到局部数组c中并输出。

程序运行时输出结果为"

red:

1green:

2blue:

3"

stdlib.h"

typedefstructw

{charword[20];

structw*next:

}WORD;

WORD*create(chara[][20],intn)

{WORD*p1,*p2,*h=0;

inti;

{p1=(WORD*)malloc(sizeof(WORD));

strcpy(___(27)___,a[i]);

if(h==O)

h=p2=p1:

else

{p2->

next=p1;

p2=pl;

p2->

next=_____(28)____;

returnh;

voidcount(WORD*h)

{struct

intnum;

}c[6]={0};

intm=0,i;

while(h)

{if(m==O)

{strcpy(c[0].word,h->

word);

c[0].num=1;

{for(i=O;

m;

if(strcmp(c[i].word,h->

word)==0

{______(29)_____;

break;

if(i>

=m)

{strcpy(c[m].word,h->

c[m++].num=1;

____(30)_____;

%s:

c[i].word,c[i].num);

{charwords[6][20]={"

red"

green"

blue"

WORD*head=0:

head=create(words,6);

count(head);

答案

1.D2.B3.B4.D5.B6.D7.A8.C9.D10.A11.B12.A13.A14.C15.C16.B17.C18.A19.A20.C

21.B22.D23.C24.A25.A26.C27.D28.B29.B30.D

二:

填空

(1)main函数定义

(2)32767(3)3.15(4)6(5)3.3(6)2356(7)x=18,y=27,z=18(8)7

(9)11111(10)12321(11)139(12)3(13)4(14)5(15)yesno(16)1,2(17)2,3(18)2,4(19)b或b!

=0

(20)b=r(21)a[0](22)x(23)intn(24)c[i]/10(25)c[i-1](26)x=y(27)p1->

word

(28)0或NULL(29)c[i].min++(30)h=h->

next

2009秋季C

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

当前位置:首页 > 求职职场 > 自我管理与提升

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

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