历年江苏省计算机二级C语言历年真题及标准答案(笔试)docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
历年江苏省计算机二级C语言历年真题及答案(笔试)docx
————————————————————————————————作者:————————————————————————————————日期:
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);
}
答案
第一部分计算机基础知识
1.D
2.B
3.B
4.D
5.B
6.D
7.A
8.C
9.D 10.A 11.B 12.A 13.A 14.C 15.C 16.B 17.C 18.A 19.A 20.C
第二部分C程序设计
21.B 22.D 23.C 24.A 25. A 26.C 27.D 28.B 29.B 30.D
二:填空
(1)main函数定义(2)32767 (3)3.15 (4) 6 (5)3.3 (6)2 3 5 6 (7)x=18, y=27 , z=18
(8)7
(9)11111 (10)12321 (11)1 3 9 (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)int n (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语言笔试试卷
第一部分计算机基础知识
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;
}
答案
一、选择题
1.A
2.D
3.A
4.B
5.D
6.C
7.B
8.B
9.B 10.D 11.C 12.B 13.A 14.D
15.C 16.D 17.C 18.A 19.B 20.B
21.C 22.C 23.B 24.D 25.C 26.C 27.B 28.A 29.D 30.D
二、填空题
(1)! (2)8 (3)sqrt(fabs(x))!=4*a/(b*c)或sqrt(fabs(x))!=4*a/b/c (4)1,2 (5)auto (6)123,456 (7)2 (8)15 23 (9)2 (10)6 (11)9 (12)4 (13)0 (14)2 5 10 (15)4 8 12 (16)4 (17)64,48 (18)4,3 (19)f(a)*f(b)>0 (20)(a+b)/2 (21)y*f(a)或f(x)*f(a) (22)cos (23)n%i==0或!(n%i)
(24)a[k++]=i或a[k]=i,k++ (25)0 (26)prime(j) (27)p->next (28)q->next=p->next (29)p->next (30)r->next=NULL
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.在无线局域网中,无线接入点实际上是一种无线交换机,在室内覆盖距离可达几十米。