春.docx
《春.docx》由会员分享,可在线阅读,更多相关《春.docx(31页珍藏版)》请在冰豆网上搜索。
春
江苏省高等学校非计算机专业学生
计算机基础知识和应用能力等级考试
二级C语言程序设计2008年(春)笔试试卷
(考试时间120分钟,满分60分)
第一部分计算机基础知识
(1)在下列有关微电子技术与集成电路的叙述中,错误的是__________。
A)微电子技术是以集成电路为核心的技术
B)集成度是指单个集成电路所含电子元件的数目
C)Moore定律指出,单个集成电路的集成度平均每18~24个月翻一番
D)IC卡仅有存储器和处理器,卡中不可能存储有软件
(2)在下列有关通信技术的叙述中,错误的是__________。
A)目前无线电广播主要还是采用模拟通信技术
B)数字传输技术最早是被长途电话系统采用的
C)数字通信系统的信道带宽就是指数据的实际传输速率(简称“数据速率”)
D)局域网中广泛使用的双绞线既可以传输数字信号,也可以传输模拟信号
(3)CPU的运算速度与许多因素有关,下面哪些是提高CPU速度的有效措施?
__________
①增加CPU中寄存器的数目
②提高CPU的主频
③增加CPU中高速缓存(Cache)的容量④优化BIOS的设计
A)①、③和④B)①、②和③C)①和④
D)②、③和④
(4)下面是PC机常用的4种外设接口,其中键盘、鼠标、数码相机和移动硬盘等均能连接的接口是
__________。
A)RS-232B)IEEE-1394
C)USB
D)IDE
(5)下列有关PC机外部设备的叙述中,错误的是__________。
A)扫描仪的工作过程主要基于光电转换原理,分辨率是其重要性能指标之一
B)制作3~5英寸的照片(图片),数码相机的CCD像素必须在600万以上
C)集成显卡(指集成在主板上的显卡)的显示控制器主要集成在芯片组中
D)存折和票据的打印,目前主要是采用针式打印机
(6)下列有关PC机辅助存储器的叙述中,错误的是__________。
A)硬盘的盘片转动速度特别快,目前一般为每秒数千转
B)近年来使用的串行ATA(SATA)接口硬盘,其传输速率比采用IDE接口的要快
C)目前移动硬盘大多采用USB2.0接口,其传输速率可达每秒数十兆字节
D)40倍速的CD-ROM驱动器的速率可达6MB/s左右
(7)在下列有关商品软件、共享软件、自由软件及其版权的叙述中,错误的是__________。
A)通常用户需要付费才能得到商品软件的合法使用权
B)共享软件是一种“买前免费试用”的具有版权的软件
C)自由软件允许用户随意拷贝,但不允许修改其源代码和自由传播
D)软件许可证确定了用户对软件的使用方式,扩大了版权法给予用户的权利
(8)下面有关Windows操作系统多任务处理的叙述中,正确的是__________。
A)用户如果只启动一个应用程序工作,则该程序自始至终独占CPU
B)由于CPU具有多个执行部件,所以操作系统才能同时进行多个任务的处理
C)前台任务和后台任务都能得到CPU的响应
D)处理器调度程序根据各个应用程序运行所需要的时间多少来确定时间片的长短
(9)从算法需要占用的计算机资源角度分析其优劣时,应考虑的两个主要方面是__________。
A)空间代价和时间代价
B)正确性和简明性
C)可读性和开放性
D)数据复杂性和程序复杂性
(10)接入因特网的每台计算机的IP地址__________。
A)由与该计算机直接连接的交换机及其端口决定
B)由该计算机中网卡的生产厂家设定
C)由网络管理员或因特网服务提供商(ISP)分配
D)由用户自定
(11)以下关于局域网和广域网的叙述中,正确的是__________。
A)广域网只是比局域网覆盖的地域广,它们所采用的技术是完全相同的
B)局域网中的每个节点都有一个惟一的物理地址,称为介质访问地址(MAC地址)
C)现阶段家庭用户的PC机只能通过电话线接入网络
D)单位或个人组建的网络都是局域网,国家或国际组织建设的网络才是广域网
(12)目前在网络互连中用得最广泛的是TCP/IP协议。
事实上,TCP/IP是一个协议系列,它已经包含了
100多个协议。
在TCP/IP协议中,远程登录使用的协议是
A)TELNET
B)FTP
C)HTTP
D)UDP
(13)关于电子邮件服务,下列叙述中错误的是__________。
A)网络中必须有邮件服务器用来运行邮件服务器软件
B)用户发出的邮件会暂时存放在邮件服务器中
C)用户上网时可以向邮件服务器发出接收邮件的请求
D)发邮件者和收邮件者如果同时在线,则可不通过邮件服务器而直接通信
(14)国际标准化组织(ISO)将世界各国和地区使用的主要文字符号进行统一编码的方案称为__________。
A)UCS/Unicode
B)GB2312C)GBK
D)GB18030
(15)存放一幅1024×768像素的未经压缩的真彩色(24位)图像,大约需要多少字节的存储空间?
__________
A)1024×768×24B)1024×768×3C)1024×768×2D)1024×768×12
(16)对带宽为300~3400Hz的语音,若采样频率为8kHz、量化位数为8位且为单声道,则未压缩时的
码率约为__________。
A)64kb/sB)64kB/sC)128kb/sD)128kB/s
(17)彩色图像所使用的颜色描述方法称为颜色模型。
在下列颜色模型中,主要用于彩色喷墨打印机的是
__________。
A)YUVB)HSB
C)CMYK
D)RGB
(18)从信息处理的深度来区分,信息系统可分为业务信息处理系统、信息检索系统、信息分析系统和专
家系统。
在下列相关叙述中,错误的是__________。
A)业务信息处理系统是采用计算机进行日常业务处理的信息系统
B)信息检索系统就是指因特网上提供的各种搜索引擎,可以供各类用户免费使用
C)决策支持系统是一种常见的信息分析系统
D)专家系统可模仿人类专家的思维活动,通过推理与判断来求解问题
(19)在下列有关MicrosoftExcel2000(中文版)功能的叙述中,错误的是__________。
A)可以将Excel工作簿或选定的工作表另存为网页文件(.htm)
B)对数据清单进行排序时,最多可以选择5个关键字
C)通过设置,可以实现在某单元格中输入数据后按回车键,光标自动移动到上边一单元格或左边
一单元格
D)在工作表中可以插入“艺术字”
(20)在下列有关MicrosoftFrontPage2000(中文版)功能的叙述中,错误的是__________。
A)执行菜单命令“新建”时,可以选择是新建网页还是新建站点
B)用户可以对框架网页的框架进行拆分或删除
C)如同MicrosoftWord中的表格,用户可以在网页中手绘表格或插入表
D)系统提供了“绘图”工具栏,便于用户在网页中绘图
第二部分C语言程序设计
一、选择题
(21)下列叙述中正确的是__________。
A)main函数必须出现在其他函数之前
B)main函数中至少必须有一条语句
C)C程序总是从main函数的第一条语句开始执行
D)C程序总是在执行完main函数的最后一条语句后结束
(22)以下常量表示中正确的是__________。
A)\xffB)5LC)aEbD)3.14U
(23)若程序中已有相应的声明,下列语句中错误的是__________。
A)printf(i==4?
"%6d\n":
"%6d",i);
B)i==4?
printf("%6d\n",i):
printf("%6d",i);
C)for(i==10;;i--)if(i==1)break;
D)for(i=10;;)if(i--);break;
(24)若有声明“floatf=123.45678;”,则执行语句“printf("%.3f",f);”后,输出结果是__________。
A)1.23e+02B)123.457C)123.456780D)1.234e+02
(25)若有声明“intx=2,y=1,z=0;”,则下列关系表达式中有语法错误的是__________。
A)x>y=2
B)z>y>x
C)x>y==1D)x==(x=0,y=1,z=2)
(26)若有声明“intx[10]={0,1,2,3,4,5,6,7,8,9},*p;”,则值不为4的表达式是__________。
A)p=x,*(p+4)
C)p=x+3,*(p++)
B)p=x+4,*p++
D)p=x+3,*++p
(27)若有声明“inti,k=1;unsignedj;”,则下列语句执行时会出现无限循环的语句是__________。
A)for(j=15;j>0;j-=2)k++;B)for(j=0;j<15;j+=2)k++;
C)for(i=0;i<15;i+=2)k++;D)for(i=15;i>0;i-=2)k++;
(28)已知A盘根目录下有文本文件“data.txt”且程序中已有声明“FILE*fp;”,若程序需要先从“data.txt”文件中读出数据,修改后再写入“data.txt”文件中,则调用fopen函数的正确形式是__________。
A)fp=fopen("a:
\\data.txt","rw");B)fp=fopen("a:
\\data.txt","w+");
C)fp=fopen("a:
\\data.txt","r+");D)fp=fopen("a:
\\data.txt","nr");
(29)以下选项均为fun函数定义的头部,其中错误的是__________。
A)intfun(intx,inty[])B)intfun(intx,inty[x])
C)intfun(intx,inty[3])D)intfun(intx,int*y)
(30)以下结构变量stu1的声明形式中,错误的是__________。
A)typedefstruetstu{charname[10];floatscore;}STU;STUstu1;
B)#defineSTUstruetstu
STU{charname[10];floatscore;}stu1;
C)structstu{charname[10];floatscore;}stu1;
D)structstu{charname[10];floatscore;}STU;STUstu1;
二、填空题
●基本概念题(共5分)
(1)在C语言源程序中,不带任何修饰符的浮点数直接量(例如:
3.14)都是按【1】类型数据存储的。
(2)若有声明“chars1[10]="ABCDE",s2[10]="A\\0";”,则语句“printf("%d",strlen(strcpy(s1,s2)));”的输出
结果是【2】。
(3)可以改变局部变量的生存期、但不能改变它的作用域的存储类别是【3】。
(4)C语言有效的预处理命令总是以【4】开头。
(5)若有声明“inta=15,b=20,c=25,e;”,则执行语句“e=a>b?
–c:
++c;”后变量e的值是【5】。
●阅读程序题(共13分)
(6)以下程序运行后的输出结果是【6】。
#include
#defineCount(n)++n
voidmain()
{intx=-3,n=8;
while(Count(x))
n--;
printf("%d\n",n);
}
(7)以下程序运行后的输出结果是【7】。
#include
intfun(intw1,intw2)
{
returnw2-w1;
}
voidmain()
{
intw=1,k;
k=fun(fun(w+1,w),w);
printf("%d\n",k);
}
(8)下列程序运行后的输出结果第一行是【8】,第二行是【9】。
#include
voidmain()
{inti,a=0,c=2;
for(i=0;i<2;i++)
{
switch(++a,a*c)
{
case1:
printf("1");
case2:
printf("2");
case3:
printf("3\n");break;
default:
printf("other\n");
}
}
}
(9)以下程序运行后的输出结果是【10】。
#include
voidmain()
{
chara[]="369",*p=a;
ints=0,t=1;
while(*++p)
{
t*=10;
}
p--;
while(t)
{
s+=(*p-'0')*t;
p--;
t/=10;
}
printf("%d\n",s);
}
(10)以下程序运行后的输出结果第一行是【11】,第二行是【12】。
#include
structnun
{
intx,y;
}st[]={{1,10},{2,20},{3,30},{4,40},{-1,-1}},s1[2],s2[2];
main()
{
inti=0,j=0,k;
for(k=0;st[k].x!
=-1;k++)
{
if(st[k].x%2)
s1[i++]=st[k];
else
s2[j++]=st[k];
}
printf("%d\n%d\n",s1[0].y,s2[0].y);
}
(11)以下程序运行后的输出结果第一行是【13】。
#include
voidprint(intn);
voidprint_n(intn);
main()
{
print(4);
}
voidprint(intn)
{
if(n==0)
{
return;
}
print_n(n);
if(n>0)
{
print(n-1);
}
}
voidprint_n(intn)
{
if(n==0)
{
return;
}
printf("%d",n);
if(n>1)
{
print_n(n-1);
}
else
{
printf("\n");
}
}
(12)以下程序运行后的输出结果第一行是【14】,第二行是【15】,第三行是【16】。
#include
voidsot(inta[3][3])
{
inti,j,i0,j1,min,max,temp;
min=max=a[0][0];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(a[i][j]<=min)
{
min=a[i][j];
i0=i;
}
if(a[i][j]>=max)
{
max=a[i][j];
j1=j;
}
}
}
for(j=0;j<3;j++)
{
temp=a[i0][j];
a[i0][j]=a[2][j];
a[2][j]=temp;
}
for(i=0;i<3;i++)
{
temp=a[i][j1];
a[i][j1]=a[i][2];
a[i][2]=temp;
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
}
main()
{
intb[3][3]={{3,2,1},{6,5,4},{9,8,7}};
sot(b);
}
(13)以下程序运行时,若在键盘上输入2,则输出是【17】;若在键盘上输入i,则输出是【18】。
#include
#include
intstrch(char*s,charch)
{
inti;
for(i=strlen(s);i>0;i--)
{
if(s[i-1]==ch)
{
returni;
}
}
return0;
}
voidmain()
{
charch,s1[]="asl23d2nfghjkm";
intk;
printf("inputch:
");
ch=getchar();
k=strch(s1,ch);
if(k!
=0)
printf("k=%d\n",k);
else
printf("notfound\n");
}
●完善程序题(共12分)
(14)某餐厅用苹果、桔子、香蕉、菠萝、梨五种水果制作水果拼盘,要求每个拼盘中恰有三种不同水果。
以下程序的功能就是计算可以制作出多少种这样的水果拼盘并列出组合方式。
#include
voidmain()
{
___19___fruits[]={"apple","orange","banana","pineapple","pear"};
intx,y,z,k=0;
for(x=___20___;x<=4;x++)
{
for(y=x+1;y<=4;y++)
{
for(z=y+1;z<=4;z++)
{
printf("%d%s%s%s\n",++k,fruits[x],fruits[y],fruits[z]);
}
}
}
}
(15)以下程序通过给出的公式
计算π的近似值,计算过程在所加项的值小于10-10时终止。
#include
voidmain()
{
doublesum=0.5,t,t1,t2,t3;
intodd=1,even=2;
t=t1=t2=1.0;
t3=0.5;
while(t>1e-10)
{
t1=___21___;
odd+=2;
even+=2;
t2=1.0/odd;
t3=___22___;
t=t1*t2*t3;
sum+=t;
}
printf("PI=%.8lf\n",___23___);
}
(16)以下程序中函数longfun(char*str)的功能是:
自左至右取出非空字符串str中的所有数字字符,将这些数字字符组成一个不超过8位的十进制整数并输出。
例如,字符串str为“efg32gh76.jbejing08t5y4u2”,程序输出:
32760854。
#include
longfun(char*str)
{
inti=0;
longk=0;
char*p=str;
while(*p!
='\0'&&___24___)
{
if(*p>='0'&&*p<='9')
{
k=___25___+*p-'0';
++i;
}
___26___;
}
returnk;
}
voidmain()
{
charx[]="efg32gh76.jbejing08t5y4u2";
printf("%ld\n",fun(x));
}
(17)设某单向链表结点的数据结构定义为:
typedefstructnode
{
charch;
structnode*next;
}linklist;
以下程序首先建立一个单向链表head,该链表每个结点中保存x数组的一个元素值;输出head链表中每个结点的值;再将head链表变换为倒序链表,输出倒序后head链表中每个结点的值。
head链表倒序算法提示:
(1)使hp指向head链表,置head为0(head链表为空链表)。
(2)从hp指向的链表第一个结点开始,依次从hp链表中删除每个结点,将所删除的结点再依次插入到head链表第一个结点之前,直到hp链表为空时结束。
#include
#include
typedefstructnode
{
charch;
structnode*next;
}linklist;
linklist*create(charx[])
{
inti;
linklist*pt,*pr,*p=NULL;
for(i=0;x[i]!
='\0';i++)
{
pt=(linklist*)malloc(sizeof(linklist));
pt->ch=x[i];
pt->next=NULL;
if(p==NULL)
{
___27___;
pr=pt;
}
else
{
pr->next=pt;
___28___;
}
}
returnp;
}
linklist*revlist(linklist*head)
{
linklist*hp,*p=NULL;
hp=head;
head=___29___;
while(hp)
{
p=hp;
hp=hp->next;
p->next=head;
___30___;
}
returnhead;
}
voidprint(linklist*phead)
{
while(phead)
{
printf("%c",phead->ch);
phead=phead->next;
}
printf("\n");
}
voidmain()
{
linklist*head;
charx[]="ABCD";
head=create(x);
print(head);
head=revlist(head);
print(head);
}
2008年(春)笔试试卷参考答案及解析
第一部分计算机基础知识
(1)D)【解析】IC卡又称集成电路卡,它是一个塑