admin 管理员组

文章数量: 1184232


2023年12月18日发(作者:css添加背景图片)

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

【对此份试卷的评述】2011春江苏省C语言试卷与前几次比较,在难度上并未改变;经过仔细阅读和上机调试,本试卷存在如下几个不足之处,

一、印刷上误差一处:C语言部份“选择题26题”,3 4 2错误印成了 3 4 3

二、标准答案错误两处:1、填空第4题,正确答案是x=6c;而错误答案是x=108;

2、阅读第10题中答案是 -1和2;而错误答案是—2 和 2。

【评者简介】是苏州科技学院天平学院老师张柏雄(uuxzhang@21cn。com),搜集了从2005—2011年的江苏省高校计算机等级考试C语言笔试题,并编有自释放、自学软件,供应学生学习已有五年。

第一部份 计算机基础知识

1、下列有关通信技术的叙述中,错误的是___1_____.

A 无论是模拟通信还是数字通信,目前都是通过载波技术实现远距离的信息传递

B. 多路复用技术可以降低信息传输的成本,常用的多路复用技术有TDM和FDM

C. 卫星通信属于微波通信,它是微波接力通信技术和空间技术相结合的产物

D. 目前3G移动通信有多种技术标准,我国三大电信运营商均采用同一标准

注释:3G存在四种标准:CDMA2000,WCDMA,TD—SCDMA,WiMAX。国内支持国际电联确定三个无线接口标准,分别是中国电信的CDMA2000,中国联通的WCDMA,中国移动的TD—SCDMA

2、使用存储器存储二进位信息时,存储容量是一项很重要的性能指标。存储容量的单位有多种,下面不是存储容量单位的是____2______。

A. TB B. XB C。 GB D. MB

3、设有补码表示的两个单字节带符号整数a=01001110和b=01001111,则a—b的结果采用补码表示为__3___。

A。 11111111

B。 10011101

C。 00111111

D. 10111111

4、下列有关PC机主板上BIOS和CMOS的叙述中,错误的是_____4____。

A. BIOS芯片是一块闪烁存储器,其存储的信息关机后不会丢失

B。 BIOS中包含加电自检程序、系统自举程序等

C。 CMOS芯片属于易失性存储器,它使用电池供电

D。 CMOS中存放着与硬件相关的一些配置信息,以及CMOS设置程序

5、下列有关PC机中央处理器(CPU)和内存(内存条)的叙述中,正确的是___5_____。

A. 目前PC机所使用的Pentium和Core2微处理器的指令系统有数百条不同的指令

B. 所谓双核CPU或四核CPU,是指CPU由两个或四个芯片组成

C。 DDR内存条、DDR2内存条在物理结构上有所不同,例如它们的引脚不同

D. 通常台式机中的内存条与笔记本电脑中的内存条不同,不能互换

注释:单个封装包含两个功能完全相同的处理器(内核)

进一步发展为2个内核做在同一晶片上,共享L2 cache,提高性价比

2个双核晶片封装在一起成为4核处理器

4个/6个内核做在同一晶片上,共享L3 cache(Core i7)

6、下列有关PC机I/O总线与I/O接口的叙述中,正确的是___6_____.

A。 PC机中串行总线的数据传输速率总是低于并行总线的数据传输速率

B. SATA接口主要用于连接光驱,不能连接硬盘

C.通过USB集线器,一个USB接口理论上可以连接127个设备

D. IEEE1394接口的连接器与USB连接器完全相同,均有6根连接线

7、蓝光光盘(BD)是全高清影片的理想存储介质,其单层盘片的存储容量大约为____7_____.

第 1 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

A. 4。7GB

B. 8.5GB

C。 17GB

D。 25GB

8、下列有关PC机常用的I/O设备(性能)的叙述中,错误的是____8______。

A. 通过扫描仪扫描得到的图像数据可以保存为多种不同的文件格式,例如JPEG、TIF等

B。 目前数码相机的成像芯片均为CCD类型,存储卡均为SD卡

C. 刷新速率是显示器的主要性能指标参数之一,目前PC显示器刷新速率一般在60HZ以上

D。 从彩色图像输出来看,目前喷墨打印机比激光打印机有性价比优势

注释:目前数码相机的成像芯片有CCD、CMOS;存储卡有SD卡、记忆棒(Sony)等

9、下列有关计算机软件的叙述中,错误的是___9_____。

A. 软件的的主体是程序,单独的数据和文档资料不能称为软件

B. 软件受知识产权(版权)法的保护,用户购买软件后仅得到了使用权

C. 软件的版权所有者不一定是软件的作者(设计人员)

D. 共享软件允许用户对其进行修改,且可在修改后散发

注释:软件按软件权益处置方式可分为:商品软件、共享软件和自由软件。只有自由软件才能允许用户进一步复制与修改的自由。

10、PC机从硬盘启动Windows XP操作系统是一个比较复杂的过程.在这个过程中,它需要经过以下这些步骤:

Ⅰ。装入并执行引导程序

Ⅱ。读出主引导记录

Ⅲ。装入并执行操作系统

Ⅳ。加电自检

在上述步骤中,正确的工作顺序是_____10_____。

A。 Ⅰ、Ⅱ、Ⅲ、Ⅳ

B。 Ⅳ、Ⅰ、Ⅱ、Ⅲ

C. Ⅳ、Ⅱ、Ⅰ、Ⅲ

D。 Ⅳ、Ⅲ、Ⅱ、Ⅰ

11、下列有关算法和程序关系的叙述中,正确的是____11____.

A。 算法必须使用程序设计语言进行描述

B. 算法与程序是一一对应的

C。 算法是程序的简化

D. 程序是算法的具体实现

12、采用ADSL方式拉入因特网时,ADSLModem将电话线传输信道分为三个信息通道:语音通道、上行数据通道、下行数据通道。下列有关这三个信息通道的叙述中,错误的是____12____。

A. 语音通道的频带最宽、采用的频率最高,以保证电话通话的质量

B. 通常上行数据通道的数据传输速率低于下行数据通道的数据传输速率

C。 ADSL的数据传输速率是根据线路情况自动调整的

D。 这三个信息通道可以同时工作,即可以同时传输信息(数据)

13、无线局域网是以太网与无线通信技术相结合的产物,其采用的网络协议主要是IEEE制订的____13____。

A. IEEE 802。3 B。 IEEE 802.11 C. IEEE 1394 D. IEEE 1394b

14、在因特网中目前主要采用IPv4协议,IP地址长度为32位,只有大约36亿个地址。新的第6版IP协议(IPv6)已经将IP地址长度扩展到___14___位,几乎可以不受限制地提供地址。

第 2 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

A。 48 B。 64 C。 128 D。256

15、因特网由大量的计算机和信息资源组成,它为网络用户提供了非常丰富的网络服务,下列与WWW服务相关的叙述中,错误的是___15_____。

A。 WWW采用客户机/服务器工作模式

B。 网页到网页链接信息由URL指出

C. 浏览器是客户端应用程序

D。 所有的网页均是HTML文档

注释:WWW网上大多数网页是HTML文档(超文本文档).

网页文档类型:

动态页:.asp/.aspx/。jsp

静态页:。htm/.html/。shtml

16、目前Windows操作系统支持多种不同语种的字符集,即使同一语种(例如汉语)也可以有多种字符集.下列字符集中,不包括“臺”、“灣”等繁体汉字的是____16_____.

A. GBK

B。 Big 5

C。 GB2312

D。 GB18030

17、下列与数字图像/图形相关叙述中,错误的是____17_______.

A.彩色图像在数字化过程中需进行分色处理,然后对不同的基色进行取样和量化

B. 如果某RGB图像的像素深度为12,则可表示的颜色的数目为236

C. 数码相机常用JPEG格式保存图像文件,该格式的图像大多采用有损压缩编码

D. 图形是计算机合成图像,也称矢量图形

18、文件的扩展名用于标记文件的类型,用户应该尽可能多地知晓各类文件的扩展名。下列文件中,属于数字视频的文件是___18___。

A。

B. ABC。DLL

C。 ABC。PDF

D。 ABC。MIDI

19、下列几种类型信息系统软件中,不属于计算机集成制造系统(CIMS)范畴(或者说,与CIMS无直接关系)的是___19____。

A。 GIS

B。 CAM

C。 MRP

D. ERP

20、下列有关Microsoft Powerpoint 2003和Microsoft Frontpage 2003软件的叙述中,错误的是___20__。

A。 利用Powerpoint软件编辑演示文稿时,可以将每张幻灯片保存为JPEG图片

B。 利用Powerpoint软件编辑演示文稿时,可以录制声音

C. 利用Frontpage制作网页时,无法直接查看网页的HTML代码

D. 利用Frontpage制作网页时背景图片可以设置为“水印"效果,

第 3 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

第二部份 C语言程序设计

一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)

21、以下关于预处理命令的叙述中错误的是____(21)_____。

A. 预处理命令由预处理程序解释

B. 程序中的预处理命令是以#开始的

C。 若在程序的一行中出现多条预处理命令,这些命令都是有效的

D。 预处理命令既可以出现在函数的定义的外部,也可以出现在函数体内部

22、有如下一段程序:

char p1[80]= ”NaJing", p2[80]= ”Young", p3[80]= ”Olympic”;

strcpy(p1,strcat(p2,p3));

printf("%sn”,p1);

执行该程序后的输出是______(22)_______。

A. NaJingYoungOlympic B. YoungOlympic

C。 Olympic D。 NaJing

23、已知有声明“int x[2][3]={0},*p=x[0];”,以下表达式中有语法错误的是___(23)_______。

A。 x[0]=1 B. p[0]=1 C。 *p=1 D。 x[0][0]=1

注释:A。 x[0]代表是第一行一维数组的数组名和首地址。不允许给地址赋值

会产生如下错误error C2106: ’=’ : left operand must be l-value

B. p[0]=1;系统认为给x[0][0]赋值1。依次类推,p[1]代表0行1列元素。.。p[5]代表1行2列元素。

24、程序中已有预处理命令“#include 〈math。h〉”和声明“char x=4,y,*z;”,以下表达式中能通过编译且无警告信息的是__(24)___.

A.y=sqrt(x)%2 B。 y="x” C. y='x'+1 D. y=&'x’

注释:C.上机时不会产生错误信息:即给变量y赋以121.在VC++中,以“%d"输出格式,显示为121;以“%c”输出格式,显示为'y'。

D错误原因是取地址符“&"后只能跟变量或数组元素,不准跟常量(“error C2101: '&'

on constant”)。

B. y=”x”错误原因是对于字符变量不准用字符串赋值

A. 。y=sqrt(x)%2的错误原因是'%' : illegal, left operand has type ’double ’,即取余运算符’%'左边不准用教科书P371中所有数学库函数!!例如log(x)%2、pow(x,2)等都是会出现错误。

25、已知有定义和声明:

struct

{ int x; } a[4]={{1},{1},{4},{6}},b;

以下语句中语法正确的是__(25)__。

A. if(a[0]==a[1]) b=a[0]; B. if(a[0].x==a[1].x) b=a[0];

C。 if(a[0]-〉x==a[1]->x) b=a[0]; D。 if(!(a[0]-a[1])) b=a[0];

第 4 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

注释:答案C在编译时会产生错误信息“'—>x' : left operand has 'struct' type, use '.'”。即要求x左边用结构体形式’。’,而非指针形式'->’。其他A、D引用结构体成员出错。

26. 已有声明“int x,a=3,b=2;”,则执行赋值语句“x=a〉b?a++:b++;”后,变量x、a、b的值分别为_______(26)_____.

A。 3 4 3 B. 3 3 4 C. 3 3 3 D。 4 3 4

注释:正确答案应该是“3 4 2"

这是2011春江苏省计算机计算机等级考试试卷印刷出错。

(网站)

27。 下面选项中可用作变量名的是_____(27)_____.

A. Case B。 a—b C. $cd D。 2ab

28. 执行以下程序后的结果是___(28)________。

#include 〈stdio.h>

void main()

{ int x=3;

do

{ printf("%dt”,x=x—3);

}while(!x);

A. 输出一个数:0 B。 输出一个数:3

C。 输出2个数:0 和 —3 D。 无限循环,反复输出数

29。 以下关于C语言函数的叙述中。正确的是___(29)____。

A. 在一个函数体中可以定义另一个函数,也可以调用其他函数

B. 在一个函数体中可以调用另一个函数,但不能定义其他函数

C。 在一个函数体中不可以调用另一个函数,但不能定义其他函数

D.在一个函数体中可以定义另一个函数,但不能调用其他函数

30. 设有声明“int a=4,b=3,c=5;”,以下4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是:_____30________。

A。 if(a〉b) c=a,a=b,b=c; B. if(a〉b) {c=a,a=b,b=c;}

C。 if(a>b) c=a;a=b;b=c; D. if(a>b) {c=a;a=b;b=c;}

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

 基本概念

1、 除goto 语句外,在循环结构中执行______(1)___语句可提前结束本次循环直接进入下一次循环。 (continue)

2、 若有程序段“int a[10],*p=a,*q;q=&a[5];”,则表达式q—p的值是_______(2)___。(5)

注释:q—p是数组元素的地址位置相减(5—0)

3、执行语句列“int a,b; a=b=4; a+=b%3;"后,变量a、b的值分别是______(3)_______。(5 4)

4、执行语句段“int x=0x6c;printf(”x=%xn”,x);”后输出结果为_______(4)_________。(x=6c)

注释:若输出格式为”x=%dn”,则输出结果为x=108。显然2011春江苏省计算机计算机等级C语言试卷答案x=108是错误的.(。net网站)

5、使用TURBO C系统编译C语言源程序后生成的文件名后缀是_______(5)___。(obj)

 阅读程序

6、以下程序运行时输出到屏幕的结果为_______(6)___.

#include

第 5 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

#define L 10

#define C L+L

void main()

{ int Area;

Area=C*L;

printf(”%dn",Area);

(答案:(6) 110 .注释:公式展开:L+L*C)。

7。 以下程序运行时输出到屏幕的结果是_____(7)_____.

#include 〈stdio。h>

enum {A,B,C=4}i;

void main()

{ int k=0;

for(i=B;i

k++;

printf(”%d”,k]);

(答案:(7) 3)

8. 以下程序运行时输出到屏幕的结果是_____(8)_____.

#include

void fun(int a)

{ printf(”%d ”, a%10);

if(a=a/10!=0) fun(a);

void main()

{ int a=—13;

if(a〈0)

{ printf(”—”);

a=—a;

fun(a);

}

(答:(8) —31)

9. 以下程序运行时若输入“2010 10”,则输出到屏幕的结果的第一行是_____(9)____,第三行是_____(10)____.

#include 〈stdio.h〉

char *fun(int n)

{ static char s[20];

static int c;

char t[10]={0}, i=0,j,k;

while(n>0)

t[i++]=n%10+'0',n=n/10;

puts(t);

for(j=0;j〈i/2;j++)

k=t[j], t[j]=t[i-1—j], t[i—1—j]=k;

strcat(s,t);

if(c〈1)

{ strcat(s, ”/"); c++;}

第 6 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

else

strcat(s, ”0");

return s;

}

void main()

{ int i,m; char *p;

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

{ scanf("%d”, &m);

p=fun(m);

}

puts(p);

(答案为(9)_0102 (10) 2010/10 )

注释:从第9题可推导出一个长整型量转化为倒序的字符串量通用程序。此程序段中循环变量i变化如下:' x0'、' x01、' x2'、’ x3’………。字符串t初始值为””.

10。 以下程序运行时输出到屏幕的结果是第一行是____(11)_____,第二行是_____(12)____。

#include 〈stdio.h〉

#define M 3

#define N 4

void fun(int a[M][N])

{ int i,j,p;

for(i=0;i

{ p=0;

for(j=1;j〈N;j++)

if(a[i][p]>a[i][j]) p=j;

printf(”%dn ", a[i][p]);

}

void main()

{ int a[M][N]={{—1,5,7,4},{5,2,4,3},{8,2,3,0}};

fun(a);

}

(答案:(11) -1 (12) 2 .)

注释:此题实质是求每行最小值,依次为 -1 2 0。显然2011春江苏省计算机计算机等级C语言试卷答案(11) -2 (12) 2中(11)答案是错误的.(。net网站)

11.以下程序运行时输出到屏幕的结果中第一行是____(13)_____,第二行是_____(14)____.

#include 〈stdio。h>

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

{ *x=*y ;

*y=z;

z=*x;

return z;

void main()

{ int a=1,b=2,c=3,d;

d=f(&a,&b,c);

第 7 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

printf("%2d%2dn %2d%2dn ",a,b,c,d);

}

(答案:第一行(13) 2 3 第二行为(14) 3 2 注释:此题非常简单)

12。 以下程序运行时输出到屏幕的结果中第一行是____(15)_____,第二行是____(16)_____。

#include 〈stdio。h>

struct grade

{ int id;

char level[3];

int score[3];

};

char fun(struct grade *t)

{ int i,count=0,total=0;

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

{ if(t—〉level[i]== ’A’) count++;

total=total+t-〉score[i];

total=total+count;

if(count==3) total++;

return (total>380? 'Y': 'N’);

void main()

{ int i;

struct grade stu[3]={{106, "AAA",130,132,115},{107, ”BAB",113,125,104},{109, "AAB”,128,135,114}};

for(i=0;i〈2;i++)

printf("%d %cn",stu[i]。id,fun(&stu[i]));

(答案:第一行是(15) 106 Y 第二行是(16) 107 N )

13. 以下程序运行时输出到屏幕的结果第一行是____(17)_____,第二行是_____(18)____。

#include 〈stdio.h>

int fun(int a[], int *p)

{ int i,n;

n=*p;

p=&a[n-1];

for(i=n—2;i>=0;i-—)

if(a[i]〉*p) p=&a[i];

return *p;

void main()

{ int a[5]={18,2,16,3,6},x=5,y;

y=fun(a,&x);

printf(”%dn”,x);

printf(”%dn",y);

(答案: (17)是 5 (18)是 18 )

 完善程序

14. 以下程序的功能是验证下列公式是否成立。请完善程序以达到要求的功能。

第 8 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

将x取某一值时公式鹄左侧的函数值表示为f(x),等号右侧的级数值表示为g(x),若f(x)与g(x)的相对误差小于10-6,即认为f(x)与g(x)相等。计算g(x)时,当最后一项的绝对值小于10-10时停止累加。

f(x)与g(x)的相对误差计算公式:

#include

#include 〈math。h〉

void main()

{ double x,f,g,term;

int n;

printf(”n input x(—1〈x〈1): ");

scanf(”__(19)__”,&x);

f=1/__(20)__;

n=1;

g=term=1;

while(fabs(term)〉1e—10)

{ term=term*__(21)__;

g=g+term;

__(22)__;

}

if(fabs(f-g)/(fabs(f)—fabs(g))<1e-6)

printf("ntrue x=%f,f=%f, g=%f”,x,f,g);

else

printf(”nfalse x=%f,f=%f, g=%f",x,f,g);

}

(答案:(19):%lf (20):pow(1+x,1/3。0 (21) n/(n+2) (22) n=n+3 )

15。 以下程序的功能是:将输入的十进制整数转换为指定进制的字符串形式,itob函数的形参s指向的数组用于保存将形参n的值转换为base进制数后的字符串形式.请完善程序以达到要求的功能.

#include

void reverse( char s[])

{ int i,j;

char temp;

for(j=0;s[j]!=’0';j++);

for(i=0,j--;i

{ temp=s[i];

s[i]=s[j];

s[j]=temp;

}

void itob(int n, char s[], int base)

{ int i=0,sign,t;

if((sign=n)〈0)

n=-n;

while(n>0)

{ t=___(24)___;

if(t>=10)

s[i++]=t—10+'A’;

else

第 9 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

s[i++]=__(25)__;

n=n/base;

}

if(sign〈0)

s[i++]= ’-’;

__(26)__;

reverse(s);

void main()

{ char str[100];

int n,base;

printf(”请输入被转换的十进制整数和进位制的基数:n”);

scanf("%d%d",&n,&base);

itob(n,str,base);

printf("转换的结果为:n");

printf("10 进制数%d—>%s(%d进制数)”,n,str,base);

(答案: (23):n%base (24):t+'0 ' (25):s[i]='0' (26):i++ )

16. 存储一组整数的某单向链表结点定义为:

typedef struct n

{ int x;

struct n *next;

}NODE;

函数NODE *sort(NODE *head)采用插入法对head指向的单向链表中存储的数据按成员x的值从小到大排序。

算法提示:对链表中从第2个结点开始直到最后结点范围内的每个结点做以下操作:若第i个结点(i 从2开始)的成员x值大于或等于第i-1个结点的成员的x值,则保持i个结点在链表中的位置不变;否则,先将第i个结点从链表中删除(使第i—1个结点的指针域指向第i+1个结点),再将已脱离链表的原第i个结点插入到链表的前i-1个结点中,并保持插入结点后链表的前i个结点按成员x的值从小到大有序。请完善sort函数以达到要求的功能。

NODE *sort (NODE *head)

{ __(27)__*p1, *p2, *q1, *q2;

p1=head;

p2=p1—〉next;

while(p2)

{ if(p1-〉x==p2-〉x)

{ p1=p2;

__(28)__=p2—〉next;

}

else

{ p1—>next=__(29)__; /*从链表中删除p2指向的结点*/

/*以下程序段实现将p2指向的结点插入到链表中*/

q1=head; q2=q1-〉next;

if(p2—〉x〈head—〉x)

{ p2->next=__(30)__;

head=p2;

}

第 10 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

else

{ q1=head;

q2=head—>next;

while(p2-〉x>q2->x)

{ q1=q2;

q2=q2-〉next;

p2->next=q2;

q1->next=p2;

}

p2=p1—>next;

}

return head;

}

答案:(27):NODE (28):p2 (29):p2—>next (30):head

链表调试程序

#include 〈stdio.h>

typedef struct n

{ int x;

struct n *next;

}NODE;

NODE *sort (NODE *head)

{ NODE *p1,*p2,*q1,*q2;

p1=head;

p2=p1—〉next;

while(p2)

{ if(p1-〉x〈=p2—〉x)

{ p1=p2;

p2=p2->next;

}

else

{ p1-〉next=p2-〉next; /*从链表中删除p2指向的结点*/

/*以下程序段实现将p2指向的结点插入到链表中*/

q1=head; q2=q1->next;

if(p2-〉x〈head->x)

{ p2-〉next=p1—〉next;

head=p2;

else

{ q1=head;

q2=head—〉next;

while(p2->x〉q2->x)

{ q1=q2;

q2=q2—〉next;

}

p2—〉next=q2;

第 11 页 共 12 页

2011年3月12日江苏省高校C语言二级考试笔试试卷及其调试答案

q1-〉next=p2;

}

p2=p1-〉next;

}

}

return head;

void print(NODE *phead) /*输出链表通用函数*/

{ while(phead)

{ printf(”%4d”, phead-〉x);

phead=phead—>next; /*移向链表下一条记录*/

}

printf("n");

void main()

{ NODE h1[]={{—2},{3},{2},{20},{4}}, *h3; int j;

for(j=0;j<5;j++)

{ h1[j].next=&h1[j+1]; }

h1[j—1].next=NULL; /*生成h1链表*/

print(h1); printf("n”); /*输出原始链表*/

h3=sort(h1);

print(h3); printf("n"); /*输出从小到大有序排列的链表*/

【调试结果】

第 12 页 共 12 页


本文标签: 信息 程序 软件 输出 链表