2009-2013年_江苏省计算机二级C语言历年真题及答案(含讲解).docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2009年春季江苏省高校计算机等级考试考试试题
第一部分计算机基础知识
1. 在下列有关现代信息技术的一些叙述中,正确的是 1 。
A.集成电路是20世纪90年代初出现的,它的出现直接导致了微型计算机的诞生
B.集成电路的集成度越来越高,目前集成度最高的已包含几百个电子元件
C.目前所有数字通信均不再需要使用调制解调技术和载波技术
D.光纤主要用于数字通信,它采用波分多路复用技术以增大信道容量‘.
2. 最大的10位无符号二进制整数转换成八进制数是 2 .。
A.1023
B.1777
C.1000
D.1024
3. 在下列有关目前PC机CPU的叙述中,错误的是 3 。
A.CPU芯片主要是由Intel公司和AMD公司提供的
B."双核"是指PC机主板上含有两个独立的CPU芯片
C.Pentium 4微处理器的指令系统由数百条指令组成
D.Pentium 4微处理器中包含一定容量的Cache存储器
4. 在下列有关当前PC机主板和内存的叙述中,正确的是 4 。
A.主板上的BIOS芯片是一种只读存储器,其内容不可在线改写
B.绝大多数主板上仅有一个内存插座,因此PC机只能安装一根内存条
C.内存条上的存储器芯片属于SRAM(静态随机存取存储器)
D.目前内存的存取时间大多在几个到十几个ns(纳秒)之间
5. 在下列有关PC机辅助存储器的叙述中,正确的是 5 。
A.硬盘的内部传输速率远远大于外部传输速率
B.对于光盘刻录机来说,其刻录信息的速度一般小于读取信息的速度
C.使用USB 2.0接口的移动硬盘,其数据传输速率大约为每秒数百兆字节
D.CD-ROM的数据传输速率一般比USB 2.0还快
6. 在下列PC机I/O接口中,数据传输速率最快的是 6 。
B 2.0
B.IEEE-1394
C.IrDA (红外)
D.SATA
7. 计算机软件可以分为商品软件、共享软件和自由软件等类型。
在下列相关叙述中,错误的是7 。
A.通常用户需要付费才能得到商品软件的使用权,但这类软件的升级总是免费的
B.共享软件通常是一种"买前免费试用"的具有版权的软件
C.自由软件的原则是用户可共享,并允许拷贝和自由传播
D.软件许可证是一种法律合同,它确定了用户对软件的使用权限
8. 人们通常将计算机软件划分为系统软件和应用软件。
下列软件中,不属于应用软件类型的是8
A.AutoCAD
B.MSN
C.Oracle
D.Windows Media Player
9. 在下列有关Windows 98/2000/XP操作系统的叙述中,错误的是9 。
A.系统采用并发多任务方式支持多个任务在计算机中同时执行
B.系统总是将一定的硬盘空间作为虚拟内存来使用
C.文件(夹)名的长度可达200多个字符
D.硬盘、光盘、优盘等均使用FAT文件系统
10. 在下列有关算法和数据结构的叙述中,错误的是10 。
A.算法通常是用于解决某一个特定问题,且算法必须有输入和输出
B.算法的表示可以有多种形式,流程图和伪代码都是常用的算法表示方法
C.常用的数据结构有集合结构、线性结构、树形结构和网状结构等
D.数组的存储结构是一种顺序结构
11•因特网的IP地址由三个部分构成,从左到右分别代表11 。
A.网络号、主机号和类型号
B.类型号、网络号和主机号
C.网络号、类型号和主机号
D.主机号、网络号和类型号
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编码。
设有一段纯文本,其机内码为CB F5 DO B4 50 43 CA C7 D6 B8,则在这段文本中含有:16 。
A.2个汉字和1个西文字符
B.4个汉字和2个西文字符
C.8个汉字和2个西文字符
D.4个汉字和1个西文字符
17.以下关于汉字编码标准的叙述中,错误的是17 。
A.GB 2312标准中所有汉字的机内码均用双字节表示
B.我国台湾地区使用的汉字编码标准BIG 5收录的是繁体汉字
C.GB 18030汉字编码标准收录的汉字在GB 2312标准中一定能找到
D.GB 18030汉字编码标准既能与UCS(Unicode)接轨,又能保护已有中文信息资源
18.若波形声音未进行压缩时的码率为64kb/s,已知取样频率为8kHz,量化位数为8,那么它的声道数是
A.1
B.2
C.4
D.8
19.从信息处理的深度来区分信息系统,可分为业务处理系统、信息检索系统和信息分析系统等。
在下列几种信息系统中,不属于业务处理系统的是19 。
A.DSS
B.CAI
C.CAM
D.OA
20.在下列有关信息系统开发、管理及其数据库设计的叙述中,错误的是20 。
A.常用的信息系统开发方法可分为结构化生命周期方法、原型法、面向对象方法和CASE方法等
B.在系统分析中常常使用结构化分析方法,并用数据流程图和数据字典来表达数据和处理过程的关系
C.系统设计分为概念结构设计、逻辑结构设计和物理结构设计,通常用E-R模型作为描述逻辑结构的工具
D.从信息系统开发过程来看,程序编码、编译、连接、测试等属于系统实施阶段的工作
第二部分C程序设计
21.以下定义和声明中,语法均有错误的是____(21)_________
①int j(int x){}②int f(int f){} ③int 2x=1; ④struet for{int x;};
A.②③B.③④C.①④D.①②③④
22.设有定义和声明如下:
#define d 2
int x=5;float Y =3.83;char c='d';
以下表达式中有语法错误的是_(22)______
A.x++ B.y++ C.c++ D.d++
23.以下选项中,不能表示函数功能的表达式是___(23)______。
A.s=(X>0)?1:(X<0)?-1:0 B.s=X<0?-1:(X>0?1:0)
C.s=X<=0?-1:(X==0?0:1) D.s=x>0?1:x==0?0:-1
24.以下语句中有语法错误的是____(24)______ 。
A.printf("%d",0e); B.printf("%f",0e2); C.printf("%d",Ox2); D.printf("%s","0x2");
25.以下函数定义中正确的是___(25)_________ 。
A.double fun(double x,double y){} B.double fun(double x;double Y){}
C.double fun(double x,double Y);{} D.double fun(double X,Y){}
26.若需要通过调用f函数得到一个数的平方值,以下f函数定义中不能实现该功能的是_____(26)______ 。
A.void f(double *a){*a=(*a)*(*a);} B.void f(double a,double *b){*b=a*a;}
C.void f(double a,double b){b=a*a;} D.double f(double a){return a*a;}
27.设有声明"int P[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.已知有声明"char a[]="It is mine",*p="It is mine";",下列叙述中错误的是28 。
A.strcpy(a,"yes")和strcpy(p,"yes")都是正确的B.a="yes"和p="yes"都是正确的
C.*a等于*p D.sizeof(a)不等于sizeof(p)
29.已知有声明"int a[3][3]={0},*p1=a[1],(*p2)[3]=a;",以下表达式中与"a[1][1]=1"不等价的表达式是29。
A.*(p1+1)=1 B.p1[1][1]=1 C.*(*(p2+1)+1)=1 D.p2[1][1]=1
30.设有结构定义及变量声明如下:
struct product
{char code[5];
float price;
}y[4]={"100",100}"
以下表达式中错误的是____(30)_____。
A.(*y).code[0]='2';
B.y[0].code[0]='2';
C.y->price=10;
D.(*y)->price=10;
二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分)
●基本概念
1.在一个C语言源程序中,必不可少的是(1) 。
2.若有声明"int x;"且sizeof(x)的值为2,则当x值为( 2 )时"x+1>x"为假。
3.若有声明"float y=3.14619;int x;",则计算表达式"x=y*100+0.5,Y=x/100.0"后y
的值是(3) 。
4.执行以下程序段中的语句"k=M*M+1"后k的值是(4)
#define N 2
#define M N+1
k=M*M+1:
●阅读程序
5.以下程序运行时输出结果是(5)
#include<stdio.h>
void main()
{double x[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)。
#include<stdio.h>
void main()
{ int k=5,n=0;
while(k>0)
{ switch(k)
{ case 1:
case 3:n+=1;k--;break"
default:n=0;k--;
case 2:
case 4: n+=2;k--;break;
}
}
printf("%3d",n);
}
}
7.以下程序运行时输出结果是(7) 。
#include<stdio.h>
void change(int x,int Y,int *z)
{ int t;
t=x;x=y;y=*z;*z=t;
}
void main()
{ int x=18,y=27,z=63;
change(x,y,&z);
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
8.以下程序运行时输出结果是(8) 。
#include<stdio.h>
int f(int x,int y)
{retum x+y; }
void main()
{double a=5.5,b=2.5;
printf("%d",f(a,b));
}
9.以下程序运行时输出结果中第-行是(9) ,第三行是(10) 。
#include<stdio.h>
define N 5
void main()
{ static char a[N][N];
int i,j,t,start=0,end=N-1;
char str[]="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<end;j++)a[i][j]=ch;
for(i=end;i>start;i--)a[i][j]=ch;
for(j=end;j>start;j--)a[i][j]=ch;
if(start==end) a[start][end]=ch;
start++,end--;
}
for(i=O;i<N;i++)
{ for(j=0;j<N;j++)
printf("%c",a[i][j]);
printf("\n");
}
}
10.以下程序运行时输出结果中第一行是(11),第二行是(12)。
#include<stdio.h>
void fun(int x,int P[],int *n)
{ int i,j=O;
for(i=1;i<=x/2;i++)
if(x%i==0)p[j++]=i;
*n=j:
}
void main()
{int x,a[10],n,i;
fun(27,a,&n);
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n%5d",n);
}
11.以下程序运行时输出结果是(11) 。
#include<stdio.h>
#include<ctype.h>
int count(char s[])
{ int i=0;
if(s[i]=='\0') return 0;
while(isalpha(s[i]))i++;
while(!isalpha(s[i])&&s[i]!='\O')i++;
return 1+count(&s[i]);
}
void main()
{char line[]="one world,one dream.";
printf("%d",count(line));
} .
12.以下程序运行时输出结果中第一行是(14),第二行是(15)
#include<stdio.h>
int fun(char *a,char *b)
{int m=0,n=0:
while(*(a+m)!='\0')m++;
while(b[n])
{ *(a+m)=b[n];m++;n++; }
*(a+m)='\0';
return m;
}
void main()
{char s1[20]="yes",s2[5]="no";
printf("%d\n",fun(s1,s2));
puts(s1);
}
13.以下程序运行时输出结果中第-行是(16) ,第二行是(17) ,第三行是( 18 )
#include<stdio.h>
typedef struct{int x;int y;}S;
void fun(S pp[],int n)
{int i,j,k;S t;
for(i=0;i<n-1;i++)
{ k=i;
for(j=i+1;j<n;j++)
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;}
}
}
void main()
{S a[5]={{3,2},{3,1},{1,2},{2,4},{2,3}};
int i,n=5;
fun(a,n);
for(i=0;i<n;i++)
printf("%d,%d\n",a[i].x,a[i].y);
} .
●完善程序
14?以下程序求一组整数的最大公约数。
试完善程序以达到要求的功能。
#include<stdio.h>
int gcd(int a,int b) i
{int r;
while(_____(19)_______)
{r=a%b;a=b;(_____20_____);}
return a;
}
void main()
{int x,i,a[6]={12,56,48,32,16,24};
x= (___21_____) ;
for(i=1;i<6;i++)
x=gcd(___(22)_____,a[i]);
printf("(%d,",a[O])
for(i=1;i<5;i++)
printf("%d,",a[i]);
printf("%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"
#include "string.h"
void add(char a[],char b[],char c[],__(23)____)
{int i,k;
c[n]='\0';k=0;
for(i=n-1;i>=0;i--)
{c[i]=(a[i]-'O')+(b[i]-'0')+k;
k=______(24)______;
c[i]=c[i]%10+'0';
}
if(k)
{for(i=n+1;i>O;i--)
c[i]=___(25)____;
c[i]=k+'0';
}
}
void main()
{char p1[80]="1000000001",pz[80]="9000000009",p3[80];
int i,x=strlen(p1),y=strlen(p2);
if(x<y)
{ for(i=x;i>=0;i--)
{p1[i+y-x]=p1[i];p1[i]='0';}
_____(26)______;
}
if(x>y)
for(i=y;i>=0;i--)
{p2[i+x-y]=p2[i];p2[i]='0';}
add(p1,p2,p3,x);
puts(p3);
}
16.以下程序创建-个链表并实现数据统计功能。
函数WORD *create(char a[][20], int n)创建-个包含n个结点的单向链表,结点数据来自a指向的数组中存储的n个单词(字符串)。
函数void count(WORD *h)统计h指向的单向链表中不同单词各自出现的次数,将统计结果保存到局部数组c中并输出。
程序运行时输出结果为"red:1 green:2 blue:3"试完善程序以达到要求的功能。
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct w
{char word[20];
struct w *next:
}WORD;
WORD *create(char a[][20],int n)
{WORD *p1,*p2,*h=0;int i;
for(i=0;i<n;i++)
{p1=(WORD *)malloc(sizeof(WORD));
strcpy(___(27)___,a[i]);
if(h==O)
h=p2=p1:
else
{p2->next=p1;p2=pl;}
}
p2->next=_____(28)____;
return h;
}
void count(WORD *h)
{ struct
{char word[20];
int num;
}c[6]={0};
int m=0,i;
while(h)
{if(m==O)
{strcpy(c[0].word,h->word);
c[0].num=1;m++;
}
else
{for(i=O;i<m;i++)
if(strcmp(c[i].word,h->word)==0
{ ______(29)_____ ;
break;
}
if(i>=m)
{strcpy(c[m].word,h->word);
c[m++].num=1;
}
}
____(30)_____;
}
for(i=0;i<m;i++)
printf("%s:%d",c[i].word,c[i].num);
}
void main()
{char words[6][20]={"red","green","blue","blue","green","blue"};
WORD *head=0:
head=create(words,6);
count(head);
}
2009秋季C语言笔试试卷
第一部分计算机基础知识
1.下列关于个人移动通信的叙述中,错误的是____
A.第1代个人移动通信(简称1G)采用的通信技术是数字通信技术
B.目前广泛使用的GSM手机采用的通信技术属于第2代移动通信技术(简称2G)
C.第3代移动通信技术(简称3G)将无线通信与互联网、多媒体通信相结合
D.3G有多个国际技术标准,其中也有我国自主制定的3G技术标准。
2.在下列有关集成电路的叙述中,正确的是2。
A.现代集成电路所使用的半导体材料都是硅
B.所有的集成电路都是数字集成电路
C.Moore定律认为单块集成电路的集成度平均每年翻一番
D.Intel公司微处理器产品Core 2 Duo,其集成度已高达数千万个电子元件
3.与十六进制数AB等值的八进制数是3 。
A. 253
B.254
C.171
D.172
4.在下列有关PC机CPU的叙述中,错误的是4。
A.CPU中包含几十个甚至上百个寄存器,用来临时存放数据、指令和控制信息
B.所有PC机的CPU都具有相同的指令系统,因而PC机可使用相同的软件
C.一台计算机至少包含1个CPU,也可以包含2个、4个、8个甚至更多个CPU
D.Intel公司是国际上研制和生产CPU的主要公司,我国也能生产CPU
5.在下列有关PC机主板上部件的叙述中,错误的是5 。
A.BIOS保存在主板上的一个闪存中,其内容在关机后通常不会改变
B.CMOS中保存有用户设置的开机口令,关机后主板上的电池继续给CMOS供电
C.启动CMOS设置程序可以重新设置CMOS中的数据,该程序是BIOS的组成部分
D.网卡通常集成在主板上,由主板上独立的IC实现其功能,与芯片组无关
6.从PC机存储器的层次结构来看,下列存储器中存取速度最快的是6 。
A.Cache存储器
B.RAM和ROM
C.寄存器
D.硬盘和优盘
7.在下列4种PC机常用I/O接口中,数据传输速率最高的是7。
A.PS/2
B.SATA
C.IEEE-1394b
B 2.0
8.在下列有关I/O操作、I/O总线和I/O接口的叙述中,错误的是8。
A.I/O操作的任务是在I/O设备与内存的指定区域之间传送信息
B.I/O总线传送的只能是数据信号,它不能传送控制信号和地址信号
C.不同类型的I/O接口,其插头/插座以及相应的通信规程和电气特性通常各不相同
D.并行总线的数据传输速率不一定比串行总线高
9.在下列有关PC机I/0设备的叙述中,错误的是9。
A.数码相机的成像芯片可以为CCD器件或CMOS芯片,目前大多数用CCD器件
B.平板式扫描仪的分辨率通常远远高于胶片扫描仪和滚筒式扫描仪
C.常见的宽屏液晶显示器的宽度与高度之比为16:9(或16:10)
D.目前在银行、超市等商业部门一般采用针式打印机来打印存折和票据
10.在下列有关计算机软件的叙述中,错误的是10 。
A.程序设计语言处理系统和数据库管理系统被归类为系统软件
B.共享软件是一种具有版权的软件,它允许用户买前免费试用
C.机器语言和汇编语言与特定的计算机类型有关,取决于CPU
D.目前PC机只能使用Windows系列操作系统,均不能使用UNIX和Linux操作系统
11.在下列常用的PC机软件中,编辑的文档(内容)能直接保存为图片类型(例如JPEG文件类型)的是11 。
A.Microsoft Word
B.Microsoft Excel
C.Microsoft PowerPoint
D.Microsoft FrontPage
12.在下列关于以太网(局域网)的叙述中,错误的是12。
A.在共享式以太网中,任何时间只允许一对计算机进行通信
B.在交换式以太网中,每台计算机均独享相同的带宽,其带宽仅由交换机决定
C.无论是共享式以太网还是交换式以太网,网络中的所有计算机都要安装以太网网卡
D.无论是共享式以太网还是交换式以太网,它们的数据帧和MAC地址格式均相同
13.连接在因特网上的每一台主机都有一个IP地址。
下面不能作为IP地址的是13 。
A.211.256.49.68
B.21.18.33.48
C.120.34.0.18
D.37.251.68.0
14.为了将异构的计算机网络互相连接起来,必须使用的网络设备是14 。
A.调制解调器
B.以太网集线器 c.以太网交换机 D.路由器
15.下列网络协议中,与发送电子邮件有关的是15 。
A.Http
B.FTP
C.SMTP
D.TELNET
16.在下列有关字符集及其编码的叙述中,错误的是16 。
A.基本的ASCII字符集共有128个字符,每个字符使用7个二进位进行编码
B.GB2312字符集中收录了6千多个汉字,每个字符在机内通常使用双字节编码
C.GBK字符集中的字符也采用双字节编码,且该字符集收录了部分繁体汉字
D.GB18030字符集中所有的字符均采用4字节编码,因此该字符集的代码空间很大
17.目前数码相机拍摄的照片在保存时通常采用的文件类型是17 。
A.BMP
B.GIF
C.JPEG
D.TIF
18.MP3是数字波形声音的一种压缩编码文件格式,它采用的压缩编码标准属于18 。
A.MPEG-1
B.MPEG-2
C.MPEG-4
D.Dolbv AC-3
19.使用Macromedia公司的Flash软件制作的动画是一种矢量图形,在保存为动画文件时其文件扩展名通常为
A.GIF
B.SWF
C.AVI
D.MPG 。
20.在计算机应用中,CAD和CAM是典型的信息系统。
它们属于20 。
A.管理业务系统
B.辅助技术系统
C.信息检索系统
D.信息分析系统
第二部分C语言程序设计
一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)
21.以下叙述中正确的是21 。
A.C语言系统以函数为单位编译源程序
B.main函数必须放在程序开始
C.用户定义的函数可以被一个或多个函数调用任意多次
D.在一个函数体内可以定义另外一个函数
22.以下选项中,不能用作c语言标识符的是22
A.print
B.FOR
C.&a
D._00
23.已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是23。
A.printf("%d",32768);
B.printf("%ld",32768);
C.printf("%f",32768);
D.printf("%c",32768);
24.已知有声明"int a=3,b=4,c=5;",以下表达式中值为0的是24 。
A.a&&b
B.a<=b
C.a||b&&c
D.!(!c||1)
25.已知有声明"long x,y;"且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是25 。
A.y=x/(10*(n-1))
B.y=x%(10*(n-1))
C.y=x%(long)pow(10,n-1)
D.y=x%(10^(n-1))
26.已知有声明"int x,y;",若要求编写一段程序实现"当x大于等于0时y取值1,否则Y取值-1",则以下程序段中错误的是___26___。
A.if(x>=0) y=1;else y=-1;
B.y=x>=0?1:-1;
C.switch()
D.switch(x-abs(x))
{ case x>=0: y=1;break; { case 0:y=1;break;
default:y=-1; default:y=-1;
} }
27.已知有声明"int m[]={5,4,3,2,1},i=0;",下列对m数组元素的引用中,错误是___27___。
A.m[++i]
B.m[5]
C.m[2*2]
D.m[m[4]]
28•已知有声明"char s[80];",若需要将键盘输入的一个不含空格的字符串保存到组中,则下列语句中正确的是
A.scanf("%s",s);
B.scanf("%s",s[0]);
C.s=gets();
D.s=getchar();
29.若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是29
A.实参和其对应的形参占用同一存储单元
B.形参不占用存储单元
C.同名的实参和形参占用同一存储单元
D.形参和实参占用不同的存储单元
30.已知有声明"int i,a[10],*p=a;",现需要将1--l0保存到a[0]--a[9]中,以下程序段中不能实现这一功能的是30 。
A.for(i=0;i<10;i++) a[i]=i+1;
B.for(i=0;i<10;i++) p[i]=i+1;
C.i=1;while(p<a+10) *p++=i++;
D.i=1;while(p<a+10) *a++=i++;
二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分)
●基本概念
1.C语言中有!、&&、||三个逻辑运算符,其中优先级高于算术运算符的是(1) 。
2.若有声明"int r=2;",则执行语句"printf("%d",sizeof(2*
3.14*r));"时输出(2) 。
3.数学表达式所对应的C语言表达式为(3) 。
4.若有以下声明:
char *p="%d,%d\n";int a=1,b=2;
则执行语句"printf(p,a,b);"时输出(4) 。
5.声明局部变量时若缺省存储类别,该变量的存储类别是(5) 。
●阅读程序
6.以下程序运行时输出到屏幕的结果是(6) 。
#include<stdio.h>
void main()
{FILE *fp;
int k,n,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w"); ’
fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);
fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);
fclose(fp);
fp=fopen("d2.dat","r");
fscanf(fp,"%d%d",&k,&n);
printf("%d,%d\n",k,n);
fclose(fp);
}
7.以下程序运行时输出到屏幕的结果是(7) 。
#include<stdio.h>
void main()
{int i=1,m=0;
switch(i)
{ case 1:
case 2: m++;
case 3: m++;
}
printf("%d",m);
}‘
8.以下程序运行时输出到屏幕的结果中第一行是(8) ,第二行是(9)。
#include<stdio.h>
void fun(int a[],int b[],int *x)
{ int i,j=0;
for(i=0;a[i];i++)
{if(i%2==0)continue;
if(a[i]>10)
b[j++]=a[i];
}
*x=j;
}
void main()
{int a[10]={3,15,32,23,11,4,5,9},b[10];
int i=0,x=0;
fun(a,b,&x);
for(i=0:i<x;i++)
printf("%d\t",b[i]);
printf("\n%d",x);
}
9.以下程序运行时输出到屏幕的结果是( 10 ) 。
#include<stdio.h>
int fun(int *x,int n)
{if(n==0) return x[0];
else return x[0]+fun(x+1,n-1);
}
void main()
{int a[ ]={1,2,3,4,5,6,7};
printf("%d\n",fun(a,2));
10.以下程序运行时输出到屏幕的结果是(11) 。
#include<stdio.h>
long f(int n)
{static long s;
if(n==1) return s=2;
else return ++s;
}
void main()
{long i,sum=0;
for(i=1;i<4;i++,) sum+=f(i);
printf("%ld",sum);
}
11.以下程序运行时输出到屏幕的结果中第一行是( 12 ) ,第二行是( 13 ) 。
#include、<stdio.h>
#define f(x,y) y=x*x
void g(int x,int y)
{ y=x*x; }
void main()
{ int a=2,b=0,c=2,d=0;
f(a,b);
g(c,d);
printf("%d\n%d",b,d);
}
12.以下程序运行时输出到屏幕的结果中第一行是(14) ,第三行是(15) 。
#include<stdio.h>
void main()
{ int a[3][3]={{3,8,12},{4,7,10},{2,5,11}},i,j,k,t;
for(j=0;j<3;j++)
for(k=0;k<2;k++)
for(i=0;i<2-k;i++)
if(a[i][J]>a[i+1][j])
t=a[i][j],a[i][j]=a[i+1][j],a[i+1][j]=t;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
13.以下程序运行时输出到屏幕的结果是( 16 ) 。
#include<stdio.h>
#include<string.h>
void main()
{ int i=0,n=0;char s[80],*p;
strcpy(s,"It is a book.");
for(p=s;p!='\0';p++)
if(*p==' ')
i=0;
else
if(i==0)
{n++;i=1; }
printf("%d\n",n);
}
14.以下程序运行时输_出到屏幕的结果第一行是(17) ,第二行是(18) 。
#include<stdio.h>
typedef struct fact
{ int m,z;
}FACT;
FACT fun1(FACT t1,FACT t2)
{FACT t3;
t3.m=t1.m*t2.m ;
t3.z=t1.z*t2.m+t2.z*t1.m;
retum t3;
}
FACT fun2(FACT t)
{int m,n,k;
m=t.m;
n=t.z;
while(k=m%n)
{ m=n;n=k; }
t.m=t.m/n;
t.z=t.z/n;
return t;
}
void main()
{FACT s,s1={8,4},s2={6,5};
s=fun1(sl,s2);
printf("%d,%d\n",s.z,s.m);
s=fun2(s);
printf("%d,%d",s.z,s.m);
}
●完善程序
15.以下程序求方程的一个近似根。
root函数采用二分法计算并返回方程f(x)=0在[a,b]内的一个近似根,main函数调用root函数求方程cos(x)=0在[0,3.14]内的一个近似根。
试完善程序以达到要求的功能。
#include<stdio.h>
#include<math.h>
double root(double a,double b,double(*f)(double))
{double x,y;
if((19))
{printf("There is no root between%f and%f",a,b);
return 0;
}
do
{ x=( 20 );
y=f(x);
if(fabs(y)<1e-6||fabs(b-a)<le-6) break;
if((21)<0)b=x;
else a=x;
}while(1);
return x;
}
void main()
{printf("\n x=%f",root(0,3.14,(22));
16.以下程序在3-50范围内验证:大于等于3的两个相邻素数的平方之间至少有4个素数。
例如,3和5是相邻素数,3^2~5^2之间有素数11、13、17、19、23。
试完善程序以达到要的功能。
#include<stdio.h>
#include<stdlib.h)
#include<math.h>
int prime(int n)
{int i;
for(i=2;i<=sqrt(n);i++)
if((23)) return 0;
return 1;
}
void main()
{int i,j,k=0,m,n,c,a[30]={0};
for(i=3;i<50;i++)
if(prime(i)) (24) ;
for(i=0;i<k-1;i++)
{ m=a[i]*a[i];
n=a[i+1]*a[i+1];
c= (25) ;
for(j=m+1;j<n;j++)
if((26)) c++:
if(c>=4)
printf("\n %d*%d-%d*%d:%d",a[i],a[i],a[i+1],a[i+1],c);
else{printf("Error");exit(0);}
}
17.fun函数的功能是删除s指向的链表中满足以下条件的结点:该结点的编号值是奇数且存放的字母ASCII编码值也为奇数(提示:a的ASCII编码是97);将删除的结点添加到t所指向的链表尾部。
试完善fun函数以达到要求的功能。
例如,若删除前的s链表为:
s à1 a à2 b à3 b à 4 c 0
则删除后的s链表为:
sà2 b à3 b à4 c 0
#include<stdio.h>
struct node
{int i; /* 存放结点的编号*/
char c: /* 存放一个字母的ASCII编码*/
struct node *next;
};
struct node *t=NULL:
struct node *fun(struct node *s)
{struct node *p,*q;struct node *r;
p=q=s;
while(p!=NULL)
{if(((pài)%2)&&((pàc)%2))
{if(s==p)
s=q=( 27 );
else
{ ( 28 ) ;
q=p->next;
}
if(t==NULL)
t=r=p;
else
{ r->next=p; r=r->next; } }
p=(29) ;
}
if(t!=NULL)
( 30 ) ;
return s;
}
2010年春江苏省计算机等级二级C考试试题
第一部分计算机基础知识
1.下面关于通信技术的叙述中,错误的是___1___ 。
A.任何一个通信系统都有信源、信道和信宿这三个基本组成部分,
B.为了实现远距离传输信息,在模拟通信和数字通信中均采用载波技术
C.为了降低传输信息的成本,在通信中广泛采用多路复用技术
D.数字通信系统的一个主要性能参数是信道带宽,它指实际进行数据传输时单位时间内传输的二进位数目2.在下列有关集成电路及其应用的叙述中,错误的是___2___ 。
A.集成电路的制造工序繁多,工艺复杂且技术难度高
B.经过抛光后的硅片称为晶圆,每个晶圆最多可以制成一个合格的集成电路芯片
C.IC卡分为接触式IC卡和非接触式IC卡,后者通常又称为射频卡或感应卡
D.集成电路应用十分广泛,目前我国第2代居民身份证中就有集成电路芯片
3.在下列有关数字技术的一些叙述中,错误的是_____3_____ 。
A.数字技术是采用有限个状态(例如"0"和"1")来表示、处理、存储和传输信息的
B.在逻辑代数中,1与1进行逻辑加(V)和逻辑乘(^)的结果相同
C.任何一个十进制数,均可以精确地转换成等值的二进制数
D.在PC机中,通常用原码表示正整数、用补码表示负整数
4.在下列有关PC机主机的叙述中,错误的是___4___ 。
A.BIOS和CMOS存储器安装在主板上,普通用户一般不能自己更换
B.由于PC机主板的物理尺寸等没有标准化,所以不同PC机的主板均不能互换
C.芯片组是PC机各组成部分相互连接和通信的枢纽,一般由2块VLSI芯片组成
D.芯片组决定了主板上所能安装的内存最大容量、速度及可使用的内存条类型
5.在下列4个Intel微处理器产品中,采用双核结构的是_____5_____ 。
A. Core 2 Duo B.Pentium PRO C.Pentium III D.Pentium 4
6.在下列四种PC机主存储器类型中,目前常用的是_____6_____ 。
A.EDODRAM B.SDRAM C.RDRAM D.DDR SDRAM
7.在下列有关PC机常用I/O接口的叙述中,错误的是7 。
A.目前显卡与显示器的接口大多采用VGA接口
B. 可用于连接鼠标器的USB接口和PS/2接口的数据传输方式均是串行传输方式
C. USB接口连接器有4个引脚,其中1个引脚可获得由主机提供的+1.5V电源
D.IEEE-1394b接口也是PC机常用的一种高速接口
8.在下列有关PC机外存储器的叙述中,错误的是8 。
A.由于数据存取速度慢、容量小等原因,软盘存储器已逐渐被淘汰
B. 所有的硬盘都是由2个或2个以上盘片组成的,硬盘中的盘面数为盘片数的2倍
C.目前有些优盘产品可以模拟软盘和硬盘启动操作系统
D. 目前常见的组合光驱(“康宝”)既有DVD只读光驱功能,又有CD光盘刻录机功能
9.在下列有关光盘存储容量的叙述中,错误的是9 。
A.80ram CD存储容量大约为200多兆字节B.120mm CD存储容量大约为600多兆字节
C.单面单层的120mm DVD存储容量大约为4.7GB D.单面单层的120mm蓝光光盘存储容量大约为17GB
10.在下列有关Windows系列操作系统及其功能的叙述中,错误的是10 。
A.Windows操作系统采用并发多任务方式支持系统中多个任务的执行
B.Windows XP分为多个版本,它们可用于不同计算机和不同的应用
C.与Windows XP相比,Windows Vista做了许多改进,但其硬件运行环境要求较高
D.无论是硬盘还是光盘,它们均采用相同的文件系统,即FAT文件系统
11.在下列常用应用软件中,不能对编辑的文档设置密码的是11 。
A.Microsoft Word B.Microsoft Excel C.Microsoft PowerPoint D.Microsoft FrontPage
12.在下列关于无线局域网的叙述中,错误的是12 。
A.在无线局域网中,无线接入点实际上是一种无线交换机,在室内覆盖距离可达几十米
B.目前无线局域网可采用的协议有Wi-Fi和蓝牙等,后者的数据传输速率比前者更高
C.若某电脑贴有Intel公司的"Centrino"(迅驰)标记,则该电脑应有集成的无线网卡
D.无线网卡有多种类型,例如PCI无线网卡、USB无线网卡等
13.IP地址分为A、B、C、D、E五类。
下列4个IP地址中,属于C类地址的是13
A. 1.110.24.2 B.202.119.23.12 C.130.24.35.68 D.26.10.35.48
14.因特网上有许多不同结构的局域网和广域网互相连接在一起,它们能相互通信并协调工作的基础是因为都采用了______14______
A.ATM协议B.TCP/lP协议C.X.25协议D.NetBIOS协议
15.下列有关因特网接入的叙述中,错误的是______15______ 。
A.采用电话拨号接入时,数据传输速率只能达几十kbps
B.采用ADSL接入时,网络的下行数据传输速率通常高于上行数据传输速率.
C.采用ADSL接入时,只需要ADSL调制解调器,不需要使用网卡
D.采用有线电视接入时,多个终端用户将共享连接段线路的带宽
16.在下列有关字符集及其编码的叙述中,错误的是______16______ 。
A.在我国台湾地区使用的汉字编码标准主要是GBK,该标准中收录了大量的繁体汉字
B.GBl8030标准中收录的汉字数目超过2万,Windows XP操作系统支持该标准
C.Unicode字符集中既收录了大量简体汉字,也收录了大量繁体汉字
D.GB2312是我国颁布的第一个汉字编码标准,该字符集还收录了俄文、希腊字母等
17.若一幅图像的大小为1024×768,颜色深度为16位,则该图像在不进行数据压缩时,其数据量大约为A.768KB B.1.5MB C.3MB D.12.3MB
18.在下列4种类型的数字化声音文件中,不可能包含人的说话声音的是18 。
A. WAV B.MP3 C.MID D.WMA
19.在下列有关数字视频的叙述中,错误的是19 。
A.PC机所使用的视频卡能将输入的模拟视频信号进行数字化
B.目前使用摄像头获取视频信息时,不需要使用专门的视频卡
C.数字视频在数据压缩时只能使用MPEG标准,DVD就是采用MPEG一4标准压缩的
D.计算机动画是一种合成视频,这种技术是发展动漫产业的基础
20.下列是几种常见的电子商务的分类方法。
若将电子商务分为B-C、B-B等类型,则该分类是____20______ 。
A.按交易的双方进行分类B.按使用的网络类型分类C.按交易商品性质分类D.按交易商品规模分类
第二部分C语言程序设计
一、选择题(用答题卡答题,答案依次填在21~30答题号内,共lO分)
21.C语言规定,在一个源程序中main函数的位置_____(21)_____ 。
A.必须在最开始B.必须在最后C.必须在预处理命令的后面D.可以在其他函数之前或之后22.以下选项中,______(22)______ 是C语言关键字
A.printf B.include C.fun D.default。