资源描述
秋江苏省二级C语言考试
第一部份 计算机基本知识
一、选用题(用答题卡答题,答案依次填在1-20题号内)
1、下列有关信息、信息技术、信息产业与信息化论述中,错误是___(1)_____。
A 信息、物质与能量是客观世界三大构成要素,没有信息则任何事物都没故意义
B. 现代信息技术重要特性之一是以计算机及其软件为关键
C. 信息化概念来源于上世纪90年代,国内信息化建设起步于本世纪初
D. 信息产业重要波及信息设备制造业、信息服务业、信息开发业等
2、对二进制数01与01分别进行算术加和逻辑加运算,其成果用二进制形式体现分别为____(2)______。
A. 01、10 B. 10、01 C. 01、01 D. 10、10
3、芯片组是PC机各构成某些互相连接和通信枢纽。下列有关芯片组描述中,错误是__(3)___。
A. 芯片组是主板上重要部件。它直接固定在主板上,一般不可更换
B. 芯片组与CPU类型必要相配
C. 芯片组提供了CPU时钟信号
D. 所有外部设备控制功能都集成在芯片组中
4、有关PC机主板中CMOS芯片,下列说法中对旳是_____(4)____。
A. CMOS芯片需要一种电池给它供电,否则其中数据在主板断电后会丢失
B. CMOS芯片用于存储加电自检程序
C. CMOS芯片用于存储BIOS,是易失性
D. CMOS芯片用于存储计算机系统配置参数,它是只读存储器
5、USB是一种可以连接多种设备总线式串行接口,目前在PC机及多种数码设备中普遍使用。在下列有关论述中错误是_____(5)____。
A. USB接口有USB1.0、USB1.1、USB2.0和USB3.0之分
B. 通过USB接口给外部I/O设备提供电源,电源为+5V
C. 目前广泛使用USB2.0最高数据传播率可达每秒数十兆字节
D. 借助于“USB接线器”可以扩展PC机USB接口数目,使得一种USB接口理论上能连接1024个设备
6、显示屏是计算机比不可少一种图文输出设备,其作用是将数字信号转换为光信号,使文字与图形在屏幕上显示出来。下列有关论述中错误是___(6)_____。
A. 目前PC机使用显示屏重要有两类,即CRT显示屏和LED显示屏
B. 显示屏屏幕大小以显示屏对角线长度来度量
C. PC机显示控制器过去大多数做成插卡形式,为了减少成本,目前显示控制器已经越来越多地集成在主板芯片组或CPU芯片中
D. 目前显卡重要使用AGP接口或PCI-E x16接口,前者性能优于后者
7、下列有关PC机常用外存储器论述中,错误是____(7)_____。
A. 移动硬盘一般采用微型硬盘加上特制配套硬盘构成,采用USB接口与主机相连接
B. 目前U盘可以模仿光驱和硬盘启动操作系统
C. 存储卡是用闪存做成一种固态存储器,具有与U盘相似多种长处,目前所有PC机都配置了读卡器,以便对存储卡进行读写操作
D. SSD是基于半导体存储器芯片一种外存储设备,可被用在便携式计算机中替代常规硬盘
8、下列有关计算机软件论述中,错误是____(8)______。
A. 软件含义比程序更宏观、更物化某些。一般状况下,软件往往指是设计比较成熟、功能比较完善、具有某种使用价值程序
B. 软件产品一般是指软件开发厂商交付给顾客用于特定用途一整套程序、数据及有关文档(波及安装和使用手册等)
C. 免费软件一般是指顾客可共享软件,容许随意拷贝、修改其源代码,容许自由传播
D. MS Office软件包中包括多种软件产品,安装时顾客可以进行有选用安装
9、下列有关Windows操作系统处理器管理论述中,错误是___(9)_____。
A. 处理器管理重要目是提高CPU使用效率
B. 多任务处理是将CPU时间化成时间片,轮番为多种任务服务
C. 并行处理系统可以让多种CPU同步工作,提高计算机系统性能
D. 多任务处理规定计算机必要使用多核CPU
10、下列有关程序设计语言论述中,对旳是_____(10)_____。
A. 高档语言程序执行速度比低级语言程序快
B. 高档语言就是人们寻常使用自然语言
C. 高档语言与CPU逻辑构造无关
D. 无需通过翻译或转换,计算机就可以直接执行用高档语言编写程序
11、下列有关目前最常用无线通信通道论述中,错误是____(11)____。
A. 无线电波可用于传播模仿信号,也可以用于传播数字信号
B. 运用微波可将信息集中向某个方向进行定向传播,以防止她人截取信号
C. 短波通信合用于环球通信
D. 激光能在长距离内保持聚焦并能穿透物体,因而可以传播很远距离
12、目前国内和欧洲广泛使用GSM(全球通) 属于____(12)____移动通信。
A. 第一代 B. 第二代 C. 第三代 D. 第四代
13、如下选项中,只有___(13)____可用作某台主机IP地址。
A. 62.26.1.256 B. 202.119.24.5 C. 78.0.0.0 D. 223.268.129.1
14、因特网中主机符号名被称为它域名。下列有关域名论述中,错误是___(14)____。
A. 域名是IP地址一种符号体现
B. 上网每台计算机均有一种IP地址,因此也有各自域名
C. 把域名翻译成IP地址软件称为域名系统DNS
D. 运行域名系统DNS主机叫做域名服务器,每个校园网均有一种域名服务器
15、目前采用无线方式接入因特网技术重要有无线局域网(WLAN)接入、GPRS移动 网接入和3G移动 网接入等。下列有关论述中错误是___(15)____。
A. 采用无线局域网接入方式,可以在任何地方接入
B. 采用3G移动 上网比GPRS快得多
C. 目前大多数智能 支持WLAN接入技术
D. 目前采用移动 上网费用还比较高
16、下列有关网络信息安全措施论述中,对旳是____(16)_____。
A. 带有数字签名信息是未泄密信息
B. 防火墙可以防止外界接触到内部网络,从而保证内部网络绝对安全
C. 数据加密目是在网络通信被窃听状况下仍然保证数据安全
D. 使用最佳杀毒软件可以杀掉所有病毒
17、下列有关字符编码原则论述中,对旳是____(17)_______。
A.UCS/Unicode编码目旳是实现全球不一样语言文字统一编码
B. ASCII、GB2312、GBK是国内为适应中文信息处理需要而制定一系列中文编码原则
C. UCS/Unicode编码与GB2312编码保持向下兼容
D. GB18030原则就是Unicode编码原则,它是国内为了与国际原则UCS接轨而公布一种中文编码原则
18、与计算机能合成图像同样,计算机也能合成(生成)声音。计算机合成声音分为合成语音和合成音乐两类,其中合成音乐文献扩展名是___(18)____。
A. WAV B. MID C. MP3 D. WMA
19、彩色图像所使用颜色描述措施称为颜色模型。显示屏使用颜色模型为RGB三基色模型,彩色打印机使用颜色模型大多为___(19)____。
A. YUV B.HSB C. CMYK D. RGB
20、数字视频信息数据量相称大,对存储、处理和传播都是极大承担,为此必要对其进行压缩。目前数字有线电视和卫星电视所传播数字视频采用压缩编码原则大多是__(20)__。
A. MPEG-1 B. MPEG-2 C. MPEG-4 D. MPEG-7
第二部份 C语言程序设计
一、选用题(用答题卡答题,答案依次填在21~30答题号内,共10分)
21、在C语言源程序中,不能用于体现整型常数数制是____(21)_____。
A. 十六进制 B. 八进制
C. 十进制 D. 二进制
22、如下选项中不符合C语言标识符命名规则是______(22)_______。
A. printf B. _00 C. &a D. FOR
23、如下选项中,可作为C语言合法体现式是___(23)____。
A. 3.0%2 B. 3=2=1=0 C. {3,2,1,0} D. (3,2,1,0)
24、若有宏定义“#define S(x,y) x/y ”,则执行语句“printf("%d",S(6+3,2+2));”后输出是__(24)___。
A. 9 B. 2 C. 9.5 D. 2.25
25、体现式“3<2||-1&& !0 ”值是__(25)__。
A. 2 B. 1 C. 0 D. -1
26. 已经有申明“char s[10];” ,若要将键盘输入持续5个字母字符存储到s数组中,则如下选项中错误输入语句是_______(26)_____。
A. gets(&s[0]); B. scanf(“%s”,s+1); C. gets(s); D. scanf(“%s”,s[1]);
27. 已经有申明“int a[10]={1,2,3,4,5,6,7,8,},*p=&a[5];”,则*(p-3)值是___(27)_____。
A. 6 B. 3 C. 2 D. 1
28. 如下数组申明中错误是___(28)________。
A. int num[2][4]= { {1,2},{3,4},{5,6}}; B. int num[][3]= { {1,2},{3,4},{5,6}};
C. int num[]= { 1,2,3,4,5,6}; D. int num[][4]= { 1,2,3,4,5,6};
29. 已经有申明“typedef char STRING ;STRING s[10] ;”,则sizeof(s)值是___(29)____。
A. 20 B. 10 C. 2 D. 4
30.已经有申明“struct date{ int y,m;}a={ ,5},b={0};”,如下选项中合法语句是______(30)_____。
A. if(a>b)b=a; B. a++; C. b=a ; D. b={a.y,a.m};
二、填空题(请将答案填写在答题纸对应答题号内,每个答案只占一行,共30分)
l 基本概念
1、可以体现数学式C语言体现式是______(1)___。
2、已知y为float类型变量,执行语句“(int )y;”后,y类型是_______(2)___。
3、已知有申明“int a[5]={5,4,3,2,1},i=3;”,执行语句“a[i++]++;printf(“%d”,a[i]);”后,屏幕输出为___(3)___。
4、已经有申明“int a[3][4];”,若规定对旳执行语句“p=a[0];”,则p申明应是___(4)___。
5、若要用fopen函数以文本方式打开或新建一种可读可写文献,规定:(1)若指定文献存在则打开它,否则新建一种文献;(2)使写入数据追加在该文献末尾,并且在不关闭文献状况下能读出原有数据及写入新数据;则在fopen中“文献打开方式”对旳形式应是_______(5)___。
l 阅读程序(13分)
6、如下程序运行时,输出到屏幕成果是__(6)__。
#include <stdio.h>
int main()
{ int a=6,b=15,t=a;
while(t%b !=0)
t+=a ;
printf("%d",t);
return 0;
}
7. 如下程序运行时,输出到屏幕成果是__(7)__。
#include <stdio.h>
void fun(char *a,char *b)
{
while(*a==’*’)a++;
while((*b=*a)!=’\0’)
{ b++;a++;}
}
int main()
{ char *s=”*****a*b**”,t[80];
fun(s,t);
puts(t);
return 0;
}
8.如下程序运行时,输出到屏幕成果是__(8)__。
#include <stdio.h>
void fun(int n)
{ int t;
putchar(n%10+’0’) ;
t=n/100 ;
if(t!=0)fun(t);
}
int main()
{ int m=12345;
fun(m) ;
printf("\n");
return 0;
}
9. 如下程序运行时,输出到屏幕成果是__(9)__。
#include <stdio.h>
#include <sting.h>
void f(char s[],char t[])
{ int i,m=strlen(t),k;
for(i=0 ;s[i] !=’\0’;i++)
if(s[i]>=’a’&&s[i]<=’z’)
{ k=t[i%m]-‘0’;
s[i]=(s[i]-‘a’+k)%26+’a’;
}
}
int main()
{ char s1[10]=”Be”;
f(s1,”123”);
puts(s1);
return 0;
}
10. 如下程序运行时,输出到屏幕成果中第一行是__(10)__,第二行是__(11)__。
#include <stdio.h>
void fun(int *t)
{ static int i=0;
do
t[i]+= t[i+1] ;
while(++i<3) ;
}
int main()
{ int i,a[10]={1,2,3,4,5};
for(i=1 ;i<3 ;i++)
fun(a);
for(i=0 ;i<4 ;i++)
printf("%d",a[i]);
printf("\n%d\n",a[i]);
return 0;
}
11.如下程序运行时,输出到屏幕成果中第一行是_____(12)____,第三行是_____(13)____。
#include <stdio.h>
#define N 3
int main()
{ int a[N][N],b[N*N]={1,1},i,j;
for(i=0;i<N*N;i++)
b[i]=b[i-1]+b[i-2];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=b[i*N+j];
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%5d",a[i][j]);
printf(“\n”);
}
return 0;
}
12. 如下程序运行时,输出到屏幕成果中第一行是__(14)_,第二行是__(15)___。
#include <stdio.h>
void fun(int a[],int n)
{ int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{ t=a[i];a[i]=a[j];a[j]=t;}
}
int main()
{ int i,aa[6]={1,2,3,4,5,6};
fun(aa+2,3);
for(i=0;i<6;i++)
{ printf("%d",aa[i]);
if((i+1)%3==0)printf("\n");
}
return 0;
}
13、如下程序运行时,输出到屏幕成果中第一行是__(16)___,第三行是__(17)___,第四行是__(18)___。
#include <stdio.h>
struct n
{ int x ; char c ;}
void fun(struct n *b)
{ b++->x=20 ;
b->c=’y’ ;
}
int main()
{ struct n a[2]={10,’x’} ;
fun(a) ;
printf ("%d\n%c\n%d\n%c\n",a[0].x,a[0].c,a[1].x,a[1].c);
return 0;
}
l 完善程序(12分)
14. 如下程序功能是:(1)模仿scanf函数调用时格式字符串中转换阐明“%le”转换功能,即接受键盘输入一种以小数形式或指数形式体现实数字符串,将该字符串转化成double类型数据;(2)以小数形式输出该double类型数据。例如,若输入“123.4”,则输出123.400000;若输入“123.4e5”,则输出12340000.000000。
#include <stdio.h>
double toDouble(char *s)
{ int e=0;
double t=0,idx=1.0;
char *p,sign=’+’;
for(p=s;*p&&(*p==’ ’||*p==’\t’);p++); /*跳过前面空白符*/
if(*p==’+’||*p==’-’) sign=*p++; /*符号处理*/
while(*p>=’0’&&*p<=’9’) /*提取整数某些*/
{ t=t*10+(*p-‘0’);
p++;
}
if(*p==’.’)
{ __(19)___; /*超过小数点,继续处理小数某些*/
idx/=10;
while(*p>=’0’&&*p<=’9’)
{ t+=(*p-‘0’)*idx;
p++;
idx/=10;
}
}
if(sign==’-’) __(20)___;
if(*p!=’e’&&*p!=’E’) /*若无指数某些,则结束转换 */
return t;
p++;
sign=’+’; /*提取指数某些*/
if(*p==’+’||*p==’-’)
sign=*p++;
while(*p>=’0’&&*p<=’9’)
{ e=__(21)___;
p++;
}
if(sign==’-’) idx=0.1;
else idx=10;
while(e>0)
{ t*=idx;
__(22)___;
}
return t;
}
int main()
{ char ss[80];
gets(ss);
printf("%f \n",toDouble(ss));
return 0;
}
15. 如下程序中函数int check(int *a,int *b,int len)功能是:(1)将a指向包括len个元素整型数组中所有相邻元素值之差绝对值依次存储在b指向一维数组中;(2)检查b数组中所有元素值与否构成一种公差不不不小于0等差数列,若是则函数返回1,否则函数返回0。例如:当a指向数组各元素值是{-3,-2,1,6,13}时,b指向数组各元素值{1,3,5,7}构成一种公差为2等差数列,因而函数返回1。
#include <math.h>
#include <stdio.h>
#define M 5
#define N 10
/*tongj函数记录a指向二维数组每行中存储持续非0整数个数并依次保留到n指向数组中*/
void tongj(int a[ ][N],int n[ ])
{ int i,j;
for(i=0;i<M;i++)
{ j=0;
while(a[i][j]!=0&& j<N )
j++;
__ _ (23)____ ;
}
}
int check(int *a,int *b,int len)
{ int i,g ;
if(len<=3)return 0 ;
for(i=0 ;i<len-1 ;i++)
b[i]=0;
for(i=0;i<len-1;i++)
{ g= a[i+1]-a[i];
if(g<0)___(24)____;
b[i]=g;
}
g=b[1]-b[0] ;
if(g<=0)return 0;
for(i=2;i<;len-1;i++ )
if( __(25)___!=g) return 0;
return 1;
}
int main()
{ int a[M][N]={{-3,-2,1,6,13},{1,2,3,4},{2,5,4,6},{1,2,5,7,11,6,13,7},{5,2,4}},b[N];
int i,j,x,n[M];
tongj(a,n);
for(i=0;i<M;i++)
{ x=check(__(26)___);
if(x==1)
printf("\nYes ");
else
printf("\nNo ");
for( j=0;j<n[i]-1;j++)
printf("%4d",b[j]);
}
printf("\n");
return 0;
}
16、已知一种单向链表结点数据构造定义如下:
struct node
{ char data; struct node *next;};
函数struct node*cre( char *s)功能是:根据s指向字符串建立一种结点类型为struct node、头指针为h单向链表,使h链表中各结点数据域分别存储s指向字符串中所有大写字母编码,函数返回h链表首结点地址。例如,若s指向字符串为“3Aa26Bx5Y9”,则h指向链表如下图所示。
A
B
Y 0
h
#include <stdio.h>
#include <stdlib.h>
struct node { char data ;struct node *next;};
struct node *cre(char *s)
{
struct node *p,*p1,*h;
while(*s&&(*s<’A’||*s>’Z’)) s++;
if(__(27)___) return NULL;
h=p1=p=(struct node*)malloc(sizeof(struct node));
p->data=*s;
s++;
while(*s)
{ if(*s>=’A’&&*s<=’Z’)
{ p=(struct node*)malloc(sizeof(struct node));
p->data=*s;
__(28)___=p;
p1=p;
}
s++;
}
__(29)___ =NULL;
__(30)___ ;
}
void print(struct node *h)
{ struct node *p=h;
while(p!=NULL)
{ printf("%3c",p->data);
p=p->next;
}
printf(“\n”);
}
int main()
{ struct node *head=NULL;
char *p=" 3Aa26Bx5Y9”;
head=cre(p); print(head);
return 0;
}
展开阅读全文