admin 管理员组

文章数量: 1184232


2024年1月13日发(作者:substr函数截取后六位)

精品文档

江苏省二级 C 语言程序设计 2008 年(秋)

第一部分 计算机基础知识

(1)信息技术指的是用来扩展人们信息器官功能、协助人们更有效地进行信息处理的一类技术。在下列

有关信息技术的叙述中,错误的是__________。

A)现代信息技术的主要特征之一是以数字技术和电子技术为基础

B)遥感遥测技术、自动控制技术等均属于现代信息技术

C)微电子技术是信息技术领域的关键技术,它以集成电路为核心

D)利用磁带、光盘、电话、传真等进行信息传递均属于现代通信

(2)二进制数 10111000 和 11001010 进行逻辑“与”运算,结果再与 10100110 进行逻辑“或”运算,最

终结果的十六进制形式为__________。

A)A2 B)DE C)AE D)95

(3)计算机的性能在很大程度上是由 CPU 决定的。在下列有关 CPU 结构和原理的一些叙述中,错误的是

__________。

A)目前 PC 机所使用的 CPU 均是 Intel 公司的产品

B)从逻辑组成上看,CPU 主要由寄存器组、运算器和控制器等部分组成

C)目前 CPU 中的运算部件 ALU 有多个,每个 ALU 均可独立完成运算

D)不同 CPU 能执行的指令有所不同,但同一系列 CPU 产品通常是“向下兼容的”

(4)在下列有关目前 PC 机主板及其组件的叙述中,正确的是__________。

A)主板的物理尺寸没有标准,通常不同品牌的主板采用不同的尺寸

B)主板上的 BIOS 芯片是一种 RAM 芯片,因而其存储的信息是可以随时刷新的

C)主板上的存储器控制和 I/O 控制功能大多集成在芯片组内

D)主板上的 CMOS 芯片是一种非易失性存储器,其存储的信息永远不会丢失

(5)在下列有关 PC 机硬盘存储器的叙述中,错误的是__________。

A)硬盘上的数据块要用柱面号、扇区号和磁头号这三个参数来定位

B)目前硬盘一般都含有 DRAM 芯片构成的高速缓存(Cache)

C)目前硬盘与主机的接口大多为串行 ATA 接口

D)硬盘容量的增加主要是靠碟片数增加,目前硬盘一般均有数十个碟片组成

(6)在下列有关 PC 机 I/O 总线和接口的叙述中,错误的是__________。

A)可用于连接键盘或鼠标器的 PS/2 接口是一种并行数据传输接口

B)USB 2.0 接口的数据传输速率可达每秒几十 MB

C)通过 USB 集线器,USB 接口连接设备数最多可达 100 多个

D)目前数字视频设备常用 IEEE-1394 接口与主机连接

(7)在下列有关 PC 机软件的叙述中,错误的是__________。

A)任何软件都具有版权,因此均不能随意复制和使用

B)软件由程序及相关的数据和文档组成

C)数据库管理系统属于系统软件

D)Outlook Express 属于应用软件

(8)操作系统产品有许多种。在下列软件中,不属于操作系统产品类型的是__________。

A)UNIX B)Linux

C)Access 2000 D)Windows Server 2003

.

精品文档

(9)在下列有关 Windows 操作系统的叙述中,错误的是__________。

A)Windows 操作系统采用图形用户界面

B)Windows XP 操作系统分为家庭版、专业版、平板 PC 版等多种版本

C)在 Windows XP 环境下,用户可以通过“任务管理器”查看 CPU 的使用率

D)在 Windows XP 中,作为虚拟内存使用的交换文件的文件名是 Win386.swp

(10)在下列有关算法和数据结构的叙述中,错误的是__________。

A)算法描述解决问题的步骤,数据结构描述求解问题的对象

B)算法应具有确定性、有穷性和能行性

C)数据结构研究的内容包括数据的逻辑结构和存储结构,与数据的运算无关

D)精心选择和设计的数据结构可以提高算法的时间效率和空间效率

(11)常用局域网有以太网、FDDI 网等类型。下面的相关叙述中,错误的是__________。

A)总线式以太网采用带冲突检测的载波侦听多路访问(CSMA/CD)方法进行通信

B)以太网交换机比集线器具有更高的性能,它能提高整个网络的带宽

C)FDDI 网通常采用光纤双环结构,具有高可靠性和数据传输的保密性

D)FDDI 网的 MAC 地址和帧格式与以太网相同,因此这两种局域网可以直接互连

(12)路由器用于连接多个异构的计算机网络。下列是一些有关网络中路由器与 IP 地址的叙述,其中正确

的是__________。

A)路由器不能有 IP 地址 B)路由器可不分配 IP 地址

C)路由器只需要分配一个 IP 地址 D)路由器应分配两个或两个以上 IP 地址

(13)下列关于利用有线电视网和电缆调制解调技术(Cable MODEM)接入互联网的优点的叙述中,错

误的是__________。

A)每个用户独享带宽且速率稳定 B)无需拨号

C)不占用电话线 D)可永久连接

(14)Web 浏览器和 Web 服务器都遵循__________协议,该协议定义了浏览器和服务器的网页请求格式及

应答格式。

A)TCP B)HTTP C)UDP D)FTP

(15)下列有关网络信息安全的叙述中,正确的是__________。

A)只要加密技术的强度足够高,就能保证数据不被非法窃取

B)访问控制的任务是对每个文件或信息资源规定各个(类)用户对它的操作权限

C)硬件加密的效果一定比软件加密好

D)根据人的生理特征进行身份鉴别的方式在单机环境下无效

(16)若内存中相邻 2 个字节的内容为十六进制 7451,则它们不可能是__________。

A)2 个西文字母的 ASCII 码 B)1 个汉字的机内码

C)1 个 16 位整数 D)一条指令的组成部分

(17)以下关于汉字编码标准的叙述中,错误的是__________。

A)Unicode 和 GB18030 中的汉字编码是相同的

B)GB18030 汉字编码标准兼容 GBK 标准和 GB 2312 标准

C)我国台湾地区使用的汉字编码标准主要是 BIG 5

D)GB18030 编码标准收录的汉字数目超过 2 万个

(18)不同的图像文件格式往往具有不同的特性。有一种格式具有图像颜色数目不多、数据量不大、能实

现 累 进 显 示 、 支 持 透 明 背 景 和 动 画 效 果 、 适 合 在 网 页 上 使 用 等 特 性 , 这 种 图

像 文 件 格 式是

__________。

A)TIF B)GIF C)BMP D)JPEG

(19)制造业信息系统是一个复杂的信息系统,它可分为辅助技术系统和管理业务系统两大类。在下列缩

写中,不属于计算机辅助技术系统的是__________。

A)CAD B)CAPP C)CEO D)CAM

.

精品文档

(20)在信息系统的结构化生命周期开发方法中,具体的程序编写属于__________阶段的工作。

2008 年(秋)笔试试卷第 2 页(共 7 页)

.

精品文档

A)系统规划

B)系统分析

C)系统设计 D)系统实施

第二部分 C 语言程序设计

一、选择题

(21)以下叙述中正确的是__________。

A)在编译时可以发现注释中的拼写错误

B)C 语言程序的每一行只能写一条语句

C)main(){}必须位于程序的开始

D)C 语言程序可以由一个或多个函数组成

(22)以下选项中不能用作变量名的是__________。

A)_float B)switch C)sum D)_123

(23)已知 sizeof(int)的值为 2,为将 10!的值存储到变量 f 中(10!=3628800),变量 f 的类型应声明为

__________。

A)long int B)int C)short int D)unsigned int

(24)若有声明“double x=3,c,* a=&x,* b=&c;”,则下列语句中错误的是__________。

A)a=b=0; B)a=&c,b=a; C)&a=&b; D)*b= * a;

(25)数学式

a

C 程序中正确的表示形式为__________。

2b 在

A)sqrt(a)/2 * b B)sqrt(a)/2/b C)sqrt(a)/2b D)sqrt a/(2 * b)

(26)已知有程序段“char str[][10]={"Aoyun","Beijing"},* p=&str[0][0];printf("%sn",p+10);",则执行 printf 语

句后输出为__________。

A)Beijing B)Aoyun C)ing D)ng

(27)以下声明中错误的是__________。

A)int a[2] B)int a[]={0,1} C)int a[3]=0 D)int a[3][4]={0}

(28)已知有结构定义和变量声明如下:

struct student

{ char name[20];int score; struct student * h;}stu,* p;int * q;

以下选项中错误的是__________。

A)p=&stu; B)q=&;

C)scanf("%s%d",&stu); D)stu.h=p;

(29)已有声明“int a=3,b=3,c=2;”,以下选项中值为 0 的表达式是__________。

A)!a&&! b&&c B)!a||!b||c C)a==b&&b>=c D)a>=b&&b>c

(30)若有声明“char ss[8]="Red";”,则 sizeof(ss)的值是D)1

__________。

A)8 B)4 C)3

二、填空题

● 基本概念题(共 5 分)

(1)已知有函数定义“int fun(){return(3,4);}”,则调用 fun 后的函数返回值是 【1】 。

(2)设有声明“int a=3,b=4;float x=4.5,y=3.5;”,则表达式“(float)(a+b)/2+(int)x%(int)y”的值是 【2】 。

(3)若已有定义“enum TP{A,B,C};”,则执行语句“printf("%dn",A+1);”后输出结果是 【3】 。

(4)若需要打开 D 盘上 user 子目录下已经存在的名为 的文本文件,先读出文件中数据,后追加写

入新数据,则正确的函数调用语句是:“fp=fopen("D:", 【4】 );”。

● 阅读程序题(共 13 分)

.

精品文档

(5)以下程序运行时输出结果的最后一行是 【5】 。

#include

void main()

2008 年(秋)笔试试卷第 3 页(共 7 页)

.

精品文档

{ int a=1,b=1,i;

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

{ a=a+b; printf("%d/%d,",b,a); b=a+b; printf("%d/%dn",a,b);}

printf("n");}

(6)以下程序运行时输出结果为 【6】 。

#include

void main()

{ int i,sum=0;

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

{ switch(i)

{ case 0:

case 1:sum++;

case 3:sum++;

case 4:sum--;break;}}

printf("%dn",sum);}

(7)以下程序运行时输出结果是 【7】 。

#include

void func(int b)

{ int a;a=b;b=10; }

void main()

{ int a=10,b=20; func(b); printf("%d,%d",a,b);}

(8)以下程序运行时输出结果的第一行是 【8】 ,第二行是 【9】 。#include

int f1()

{ static int i=0,f=1; return f*=++I;}

int f2()

{ int i=0,f=1; return f*=++i:}

void main()

{ printf("%dn",f1()+f1()); printf("%dn",f2()+f2());}

(9)以下程序运行时输出结果是 【10】 。

#include

#include

void sf(char * s1,char * s2)

{ if( * s1= * s2) sf(s1+1,s2+1);}

void main()

{ char a[20]="ABC",b[20]="xyz";

sf(a+strlen(a),b); puts(a);}

(10)以下程序运行时输出结果的第一行是 【13】 ,第三行是 【12】

#include

void main()

{ int i,j,a[3][3];

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

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

if(i

else a[i][j]=i-j+1;

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

.

精品文档

{for(j=0;j<3;j++) pfintf("%4d",a[i][j]);

2008 年(秋)笔试试卷第 4 页(共 7 页)

.

精品文档

pfintf("n");}}

(11)以下程序运行时输出结果是 【13】 。

#include

void sort(int a[],int n)

{ int i,j,p;int t;

for(i=1;i

{ p=i;

for(j=i+2;j

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

if(p!=i) { t=a[i];a[i]=a[p];a[p]=t;}}}

void main()

{ int s[]={8,1,4,3},n=4,k;

sort(s,n);

for(k=0;k

pfintf("n");}

(12)以下程序运行时输出结果的第一行是 【14】 ,第二行是 【15】 。

#include

struct s

{ int x,* y; } * p;

int d[5]={10,20,30,40,50};

struct s a E5]={100,&d[0],200,&d[1],300,&d[2],400,&d[3],500,&d[4]};

void main()

{ p=a; printf("%5d",p->x++); pfintf("%5dn",p->x);

pfintf("%5d",* p->y); printf("%5dn",* ++p->y);}

(13)以下程序运行时若输入 8,则输出结果中第一行是 【16】

是 【18】 。

#include

void main()

{ int k,i,m,n,num[20];

scanf("%d",&n);

for(i=0;i

i=k=m=0;

while(m

{ if(num[i]!=0) k++;

if(k==3)

{ printf("%4d",num[i]);

num[i]=0;

k=0; m++;

if(m%3==0) printf("n");}

i++;

if(i==n) i=0;}

i=0;

while(num[i]==0) i++;

printf("%4d",num[i]);}

● 完善程序题(共 12 分)

,第二行是 【17】 ,第三行(14)以下程序的功能是:求 a 数组中前 4 个元素之和及后 6 个元素之和。试完善程序以达到要求的功能。

.

精品文档

int fsum(int * array,int n)

{ int i,s;

.

精品文档

s=0:

for(i=0; 【19】 ;i++) s+=array[i];

return(s);}

void main(void)

{ int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

int sumh,sumt;

sumh=fsum(a,4); sumt= 【20】 ; printf("%d%dn",sumh,sumt);}

(15)以下程序对二维数组 a 中存储的 N×N 矩阵做如下操作:先将每一行中值最大的元素与该行位于主

对角线处的元素交换值,然后对主对角线上的所有元素排序使其自左上角到右下角升序排列,最后

输出排序后主对角线上各元素的值。试完善程序以达到要求的功能。

#include

#define N 5

void fun(int x[][N],int n)

{ int i,j,t,arr,col;

for(i=0;i

{ arr=x[i][0];col=0;

for(j=0;j=arr) { arr=x[i][j]; 【21】 ;}

t=x[i][i]; 【22】 ; x[i][col]=t;}

for(i=0;i

for(j=i+1;j

void main()

{ int a[N][N]={{10,25,24,13,23},{11,22,12,21,14},{20,15,19,16,18},

{17,9,4,5,3},{2,1,6,7,8}},i;

fun(a,N);

for(i=0;i

printf("n");}

(16)以下程序中函数 replace 的功能是:将字符串 s 中所有属于字符串 s1 中的字符都用 s2 中的对应位置

的字符替换。假如 s 为“ABCBA”,s1 为“AC”,s2 为“ac”,则调用 replace 函数后,字符串 s 的

内容将变换为“aBcBa”。试完善程序以达到要求的功能。

#include

#define MAX 20

void replace(char * S,char * s1,char * s2)

{ char * p;

for(;*s;s++)

{ p=s1;

while(*p&& 【24】 ) p++;

if(*p)*s= 【25】 ;}}

void main()

{ char s[MAX]="ABCBA",s1[MAX]="AC",s2[MAX]="ac";

【26】 ; printf("The string of s is:"); printf("%sn",s);}

(17)以下程序的功能是:函数 struct node * insert(struct node * head,struct node * p)将 p 指向的结点作为

首结点插入 head 指向的链表中。main 函数接收从键盘输入的一行字符,每接收一个字符后,申请

一个新结点保存该字符,并调用 insert 函数将新结点插入链表中。最后从表头开始依次输出该链表

各结点成员 c 的值。试完善程序以达到要求的功能。

#include

#include

struct node

.

精品文档

{ char c; struct node * next;};

void main()

{ struct node * insert(struct node * head,struct node * p);

char ch; struct node * head,* p;

head=NULL;

while((ch=getchar())!='n')

{ p=(struct node * )malloc(sizeof(struct node));

【27】 =ch; p->next=NULL; 【28】 ; }

P=head;

while(p!=NULL) { printf("%c",p->c); 【29】 ;}}

struct node * insert(struct node * head,struct node * p)

{ if(head==NULL) head=p;

else { 【30】 ; head=p;}

return head;}

.


本文标签: 叙述 程序 技术 数据 属于