计算机2极
全国计算机等级考试(二级)考试大纲
基本要求
1.具有计算机的基础知识。
2.了解操作系统的基本概念,掌握常用操作系统的使用。
3.掌握基本数据结构和常用算法,熟悉算法描述工具──流程图的使用。
4.能熟练地使用一种高级语言或数据库语言编写程序、调试程序。
考试内容
一、基础知识与基本操作
(一)基础知识1.计算机系统的主要技术指标与系统配置。
2.计算机系统、硬件、软件及其相互关系。
3.微机硬件系统的基本组成。包括:中央处理器(运算器与控制器),内存储器(RAM与ROM),外存储器(硬盘、软盘与光盘),输入设备(键盘与鼠标)输出设备(显示器与打印机)。
4.软件系统的组成,系统软件与应用软件;软件的基本概念,文档;程序设计语言与语言处理程序(汇编程序、编译程序、解释程序)。
5.计算机的常用数制(二进制、十六进制及其与十进制之间的转换);数据基本单位(位、字节、字、字长)。
6.计算机的安全操作;计算机病毒的防治。
7.计算机网络的一般知识。
8.多媒体技术的一般知识。
(二) DOS的基本操作1.操作系统的基本功能与分类。
2.DOS操作系统的基本组成。
3.文件、目录、路径的基本概念。
4.常用DOS操作,包括:
初始化与启动;文件操作(TYPE,COPY,DEL,REN,XCOPY,ATTRIB);目录操作(DIR,MD,CD,RD,TREE,PATH);磁盘操作(FORMAT,DISKCOPY,CHKDSK);功能操作(VER,DATE,TIME,CLS,PROMPT,HELP);批处理(批处理文件的建立与执行,自动批处理文件);输入输出改向。
(三) WINDOW的基本操作1.Windows的特点、基本构成及其运行环境。
2.Windows用户界面的基本元素。包括:窗口、图标、菜单、对话框、按钮、光标等。
3.Windows基本操作。包括:启动与退出,鼠标操作,窗口操作,图标操作、菜单操作,对话框操作。
二、程序设计
1.能运用结构化程序设计方法编写程序。
2.掌握基本数据结构和常用算法。
3.能熟练使用一种高级或一种数据库语言(共有QBASIC、FORTRAN、PASCAL、C以及FOXBASE等五种语言,考生任选其中一种。各种语言的考试内容附后)。
三、上机操作
在指定的时间内使用微机完成下述操作:
1.完成指定的计算机基本操作(包括机器启动和操作命令的使用)。
2.按给定要求编写和运行程序。
3.调试程序,包括对给出的不完善的程序进行修改和补充,使之能得到正确的结果。
各种语言的考试内容
一、QBASIC语言程序设计
(一) QBASIC的基本概念1.QBASIC提供的数据类型。
2.常量和变量的概念、变量的命名规则、变量的类型说明。
3.运算符和运算规则(算术运算、关系运算、逻辑运算、字符运算)。
4.表达式(算术表达式、关系表达式、逻辑表达式、字符表达式)的概念及求值。
(二)顺序结构程序设计1.变量的赋值(LET语句)。
2.数据输出(PRINT语句)。
3.数据输入(INPUT语句,READ/DATA语句,RESTORE语句)。
4.程序停止执行(END语句,STOP语句)。
5.程序注释(REM语句)。
(三)选择结构程序设计1.行IF语句。
2.块IF结构。
3.SELECT CASE结构。
4.选择结构的嵌套。
(四)循环结构程序设计1.循环的概念。
2.WHILE循环结构。
3.FOR-NEXT循环结构。
4.DO循环结构。
5.循环结构的嵌套。
(五)数组1.数组和数组元素。
2.数组定义的方法。
3.引用数组元素的方法。
4.静态数组和动态数组。
5.一维数组和多维数组。
6.数组的运算。
(六)函数与子程序1.标准函数。
2.单行自定义函数和多行自定义函数的定义和引用。
3.块内子程序──子例程(GOSUB-RETURN语句,ON GOSUB-RETURN语句及ON KEY(n)GOSUB-RETURN语句)。
4.独立模块的子程序的定义(SUB-END SUB语句)和调用(CALL语句)。
5.模块化函数的定义(FUNCTION-END FUNCTION语句)和调用。
6.模块间的数据传递(虚实结合)。
7.全局变量与局部变量。
8.过程的嵌套调用。
9.过程的递归调用。
(七)字符处理1.字符串和字符串变量的概念。
2.字符串变量的赋值。
3.字符串的运算。
4.字符串函数。5.字符串数组。(八)文件1.文件的概念。
2.对源程序文件的操作。
3.对顺序文件的操作。4.记录型变量的定义(TYPE-END TYPE语句)和随机文件的操作。
(九)屏幕控制与作图1.屏幕控制(CLS语句,LOCATE语句)。
2.显示模式的控制(SCREEN语句)。
3.颜色的设置(COLOR语句)。
4.标准作图语句(PSET语句,PRESET语句,LINE语句,DRAW语句和CIRCLE语句)。
5.图形的着色(PAINT语句)。
二、FORTRAN语言程序设计
(一)FORTRAN程序的结构、书写规则1.FORTRAN程序的构成(主程序和子程序)。
2.FORTRAN源程序的书写格式。
(二)数据类型及其运算1.常量和变量的类型(整型、实型、双精度型、复型、逻辑型、字符型)。
2.定义变量类型的方法(用I-N规则隐式说明和显示说明)。
3.符号常量及其定义方法(PARAMETER语句)。
4.运算符及运算优先级。
5.表达式(算术表达式、关系表达式、逻辑表达式和字符表达式)及其求值规则。不同类型数据的混合运算。
(三)最基本的语句1.赋值语句(算术、逻辑和字符型赋值语句)。
2.表控格式的输入与输出。
3.格式输入与输出:
⑴格式编辑符(X、H、I、F、E、D、A、L、/),格式的重复作用。
⑵格式语句与输入输出语句(包括READ,WRITE语句)的相互作用。
⑶在输入输出语句中包含格式说明的方法。
4.暂停语句(STOP语句),停语句(END语句)。
5.赋初值语句(DATA语句)。
6.转移语句(GO TO语句)。
(四)选择结构程序设计1.逻辑IF语句。
2.块IF结构。3.选择结构的嵌套。
(五)循环结构程序设计1.当型循环与直到型循环。
2.用DO语句实现循环:
⑴用DO语句时循环次数的计算。
⑵循环体的概念。
⑶循环终端语句和CONTINUE语句。
3.用块IF和GOTO语句实现循环。4.循环的嵌套。
(六)数组的应用1.定义数组的方法(用DIMENSION语句和类型语句定义一维或多维数组)。
2.数组元素的正确引用。
3.数组在内存中存储顺序(按列存储)。
4.对数组赋初值的方法。
5.数组的输入与输出。6.可调数组。
(七)函数和子程序1.内部函数的调用方法。
2.语句函数的定义及引用方法。
3.函数子程序(FUNCTION子程序)的结构及调用方法。
4.子例行程序(SUBROUTINE子程序)的结构及调用方法。
5.模块间的数据传递(虚实结合)。
(八)数据联系1.公用语句(COMMON语句),无名公用区和有名公用区2.数据块子程序(九)字符处理1.字符串、字符型变量和字符型数组。
2.字符型数据的赋值和运算。
3.字符型数据的输入与输出。
(十)文件1.文件与记录的概念。
2.文件的打开与关闭。
3.顺序文件的存取方法。
4.直接文件的存取方法。
三、Pascal语言程序设计
(一)Pascal程序的构成1.源程序的组成语言要素。
2.程序首部,说明部分,执行部分。
3.程序的书写规定。
(二)数据的类型及其运算1.Pascal的数据类型、定义方法及其使用:
⑴标准类型(实型、整型、布尔型和字符型)。
⑵用户自定义类型(枚举类型、子界类型)。⑶构造类型(数组类型、集合类型、记录类型、文件类型)。
⑷指针类型。
2.运算符和表达式(包括算术型、集合型、关系型和布尔型)。
3.数据类型的相容性。
(三)基本语句1.赋值语句。2.输入输出语句及其格式控制。
3.复合语句。
(四)选择结构程序设计1.用IF语句实现选择结构。
2.用CASE语句实现多分支选择结构。
3.选择结构的嵌套。
(五)循环结构程序设计1.FOR循环结构。
2.REPEAT循环结构。
3.WHILE循环结构。
4.循环结构的嵌套。
(六)数组1.一维数组和多维数组的基本概念、定义方法和引用数组元素的方法。
2.压缩数组的概念。
3.字符串和字符数组。
(七)过程和函数1.过程与函数的概念。
2.标准过程和标准函数。
3.过程和函数的定义方法和调用方法。
4.形式参数和实在参数的结合,值参数和变量参数的使用。
5.过程和函数的递归调用。
6.标识符的作用域(全程量的局部量)。
(八)动态数据结构1.指针变量的概念。
2.动态存储单元的开辟、释放和引用。
3.单向链表和循环链表的操作。
(九)文件1.文件的概念。
2.文件的基本操作(建立、打开、关闭、存取)。
四、C语言程序设计
(一)C语言的结构1.程序的构成,main函数和其他函数。
2.头文件、数据说明、函数的开始和结束标志。
3.源程序的书写格式。
4.C语言的风格。
(二)数据类型及其运算1.C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。
(三)基本语句1.表达式语句,空语句,复合语句。
2.数据的输入与输出,输入输出函数的调用。
3.复合语句。
4.goto语句和语句标号的使用。
(四)选择结构程序设计1.用if语句实现选择结构。
2.用switch语句实现多分支选择结构。
3.选择结构的嵌套。
(五)循环结构程序设计1.for循环结构。
2.while和do while循环结构。
3.continue语句和break语句。
4.循环的嵌套。
(六)数组的定义和引用1.一维数组和多维数组的定义、初始化和引用。
2.字符串与字符数组。
(七)函数1.库函数的正确调用。
2.函数的定义方法。3.函数的类型和返回值。
4.形式参数与实在参数,参数值的传递。
5.函数的正确调用,嵌套调用,递归调用。
6.局部变量和全局变量。
7.变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期。
8.内部函数与外部函数。
(八)编译预处理1.宏定义:不带参数的宏定义;带参数的宏定义。
2."文件包含"处理。
(九)指针1.指针与指针变量的概念,指针与地址运算符。
2.变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型数据。
3.用指针作函数参数。
4.返回指针值的指针函数。
5.指针数组,指向指针的指针,main函数的命令行参数。
(十)结构体(即"结构")与共用体(即"联合")。
1.结构体和共用体类型数据的定义方法和引用方法。
2.用指针和结构体构成链表,单向链表的建立、输出、删除与插入。
(十一)位运算1.位运算符的含义及使用。
2.简单的位运算。
(十二)文件操作只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。
1.文件类型指针(FILE类型指针)。
2.文件的打开与关闭(fopen,fclose)。
3.文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数),文件的定位(rewind,fseek函数)。
五、数据库语言程序设计
(一)数据库系统及FoxBASE+基础知识1.基本概念:数据库、数据库管理系统、数据库系统、数据库模型及其相互关系2.关系数据库:
(1)关系模型,关系模式、关系、元组、属性、域。
(2)关系运算:选择、投影、联接以及三种关系运算在FoxBASE+中的体现。
3.系统性能与工作方式:
(1)各种文件类型及特点,命令格式。
(2)系统主要性能指标。
(3)两种工作方式:交互方式和程序运行方式。
4.FoxBASE+的数据元素:
(1)常量:数值型、字符型、逻辑型、日期型常量。
(2)变量:字段变量、简单内存变量、数组、内存变量的保存及恢复。
(3)表达式:表达式的类型及运算。
(4)常用函数:数值计算函数、字符处理函数、日期类函数、数据类型转换函数、测试函数。
(二)数据库的基本操作1.数据库的建立、修改与复制:
(1)数据库结构的建立、修改与复制。
(2)数据库记录的增、删、改与复制。
(3)文件管理命令。
2.数据库的重新组织及查询:
(1)直接查询与记录指针定位。
(2)数据库排序与索引。
(3)快速检索FIND,SEEK。
3.数据统计与计算:
(1)统计记录数、求和、求平均值。
(2)分类汇总。
4.多重数据库操作:
(1)工作区的选择和使用。
(2)数据库关联与联接SET RELATION,JOIN。
(3)数据库间的数据更新UPDATE。
(三)程序设计(命令文件)1.命令文件的建立与运行。
2.程序的三种基本结构:(1)顺序结构。
(2)选择结构:
条件选择语句IF-ELSE-ENDIF及其嵌套形式的使用。
多分支选择语句DO CASE-ENDCASE的使用。
(3)循环结构:循环语句DO WHILE-ENDDO及其嵌套形式的使用。
3.格式设计:
(1)格式设计命令@的使用。
(2)屏幕格式的建立与使用。
(3)光带式菜单的设计。
4.子程序与过程:
(1)子程序设计与调用。
(2)过程与过程文件。(3)局部变量和全局变量、过程调用中的参数传递。
5.命令文件的编译与使用。
(四)系统环境和状态参数1.常用的SET命令:
(1)常用的开关状态设置命令。
(2)常用的环境参数设置命令。
2.FoxBASE+的系统配置文件:CONFIG.FX配置文件的作用。
2004年4月二级笔试试题-基础部分和C程序设计
一、选择题,(1-40)每题1分,(41-50)每题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 1MB等于
A) 1000字节 B) 1024字节
C) 1000×1000字节 D) 1024×1024字节
(2) 与十六进制数200等值的十进制数为
A) 256 B) 512 C) 1024 D) 2048
(3) 所谓“裸机”是指
A) 单片机 B) 单板机
C) 不装备任何软件的计算机 D) 只装备操作系统的计算机
(4) 能将高级语言编写的源程序转换成目标程序的是
A) 链接程序 B) 解释程序 C) 编译程序 D) 编辑程序
(5) 在64位计算机中,一个字长所占的字节数为
A) 64 B) 8 C) 4 D) 1
(6) 在Windows环境下,当一个应用程序窗口被最小化后,该应用程序
A) 继续在后台运行 B) 继续在前台运行
C) 终止运行 D) 暂停运行
(7) 在Windows环境下,能实现窗口移动的操作是
A) 用鼠标拖动窗口中的任何部位 B) 用鼠标拖动窗口的边框
C) 用鼠标拖动窗口的控制按钮 D) 用鼠标拖动窗口的标题栏
(8) 在Windows环境下,PrintScreen键的作用是
A) 打印当前窗口的内容 B) 打印屏幕内容
C) 复制屏幕到剪贴板 D) 复制当前窗口到剪贴板
(9) Internet的通信协议是
A) TCP/IP B) BBS C) WWW D) FTP
(10) 下列叙述中正确的是
A) 计算机病毒只感染可执行文件
B) 计算机病毒只感染文本文件
C) 计算机病毒只能通过软件复制的方式进行传播
D) 计算机病毒可以通过网络或读写磁盘等方式进行传播
(11) 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是
A) 有零个或多个输入 B) 有零个或多个输出
C) 有穷性 D) 可行性
(12) 以下叙述中正确的是
A) C语言的源程序不必通过编译就可以直接运行
B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C) C源程序经编译形成的二进制代码可以直接运行
D) C语言中的函数不可以单独进行编译
(13) 以下符合C语言语法的实型常量是
A) 1.2E0.5 B) 3.14.159E C) .5E-3 D) E15
(14) 以下4组用户定义标识符中,全部合法的一组是
A) _main B) If C) txt D) int
enclude -max REAL k_2
sin turbo 3COM _001
(15) 若以下选项中的变量已正确定义,则正确的赋值语句是
A) x1=26.8%3 B) 1+2=x2 C) x3=0x12 D) x4=1+2=3;
(16) 设有以下定义
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是
A) a++; B) b++ C) c++; D) d++;
(17) 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符的是
A) (a+B) *h/2 B) (1/2)*(a+B) *h
C) (a+B) *h*1/2 D) h/2*(a+B)
(18) 有以下程序
main( )
{
int x=102,y=012;
printf(“%2d,%2d\n”,x,y);
}
执行后输出结果是
A) 10,01 B) 02,12 C) 102,10 D) 02,10
(19) 以下4个选项中,不能看作一条语句的是
A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;
(20) 设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是
A) scanf(“%d”,pA) ; B) scanf(“%d”,A) ;
C) scanf(“%d”,&pA) ; D) scanf(“%d”,*pA) ;
(21) 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是
A) if((a>B) &&(b>C) ) k=1; B) if((a>B) ||(b>C) ) k=1
else k=0;
C) if(a<=B) k=0; D) if(a>B) k=1;
else if(b<=C) k=1; else if(b>C) k=1;
else k=0;
(22) 有以下程序
main( )
{ char k; int I;
for(i=1;i<3;i++)
{ scanf(“%c”,&k);
switch(k)
{ case ‘0’: printf(“another\n”);
case ‘1’: printf(“number\n”);
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是
A) another B) another C) another D) number
number number number number
another number
(23) 有以下程序
main( )
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
}
程序执行后的输出结果是
A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5
(24) 有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
}
程序执行后的输出结果是
A) 自然数1~9的累加和 B) 自然数1~10的累加和
C) 自然数1~9中的奇数之和 D) 自然数1~10中的偶数之和
(25) 有以下程序 main( )
{ int i,n=0;
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;
} while(!i);
n++;
}
printf(“n=%d\n”,n);
}
程序执行后的输出结果是
A) n=5 B) n=2 C) n=3 D) n=4
(26) 若程序中定义了以下函数
double myadd(double a,double B)
{ return (a+B) ;}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是
A) double myadd(double a,B) ;
B) double myadd(double,double);
C) double myadd(double b,double A) ;
D) double myadd(double x,double y);
(27) 有以下程序
char fun(char x , char y)
{ if(x return y;
}
main( )
{ int a=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,B) ,fun(b,C) ));
}
程序的执行结果是
A) 函数调用出错 B)8 C)9 D)7
(28) 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是
A) p=1; B) *q=2; C) q=p; D) *p=5;
(29) 有以下程序
void f(int v , int w)
{ int t;
t=v;v=w;w=t;
}
main( )
{ int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
执行后输出结果是
A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1
(30) 有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是
A) 5 B) 6 C) 8 D) 9
(31) 31、有以下程序
main( )
{ char a[]=”abcdefg”,b[10]=”abcdefg”;
printf(“%d %d\n”,sizeof(A) ,sizeof(B) );
}
执行后输出结果是
A) 7 7 B) 8 8 C) 8 10 D) 10 10
(32) 有以下程序
void swap1(int c[])
{ int t;
t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;
}
main( )
{ int a[2]={3,5},b[2]={3,5};
swap1(A) ; swap2(b[0],b[1]);
printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);
}
其输出结果是
A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3
(33) 有以下程序
void sum(int *A)
{ a[0]=a[1];}
main( )
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;i>=0;i--) &nb
sp; sum(&aa);
printf(“%d\n”,aa[0]);
}
执行后的输出结果是
A) 4 B) 3 C) 2 D) 1
(34) 34、有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
{ i=j;
if(i>2) i=3-j;
s+=b[j];
}
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(A) );
}
执行后的输出结果是
A) 12 B) 11 C) 18 D) 16
(35) 有以下定义
#include
char a[10],*b=a;
不能给数组a输入字符串的语句是
A) gets(A) B) gets(a[0]) C) gets(&a[0]); D) gets(B) ;
(36) 有以下程序
main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
printf(“%d\n”,strlen(p[4]));
}
执行后输出结果是
A) 2 B) 3 C) 4 D) 5
(37) 有以下程序
int a=2;
int f(int *A)
{return (*A) ++;}
main( )
{ int s=0;
{ int a=5;
s+=f(&A) ;
}
s+=f(&A) ;
printf(“%d\n”,s);
}
执行后输出结果是
A) 10 B) 9 C) 7 D) 8
(38) 有以下程序
#define f(x) x*x
main( )
{ int i;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
}
执行后输出结果是
A) 28 B) 22 C) 16 D) 4
(39) 设有以下语句
typedef struct S
{ int g; char h;} T;
则下面叙述中正确的是
A) 可用S定义结构体变量 B)可以用T定义结构体变量
C)S是struct类型的变量 D)T是struct S类型的变量
(40) 有以下程序
struc STU
{ char name[10];
int num;
};
void f1(struct STU C)
{ struct STU b={“LiSiGuo”,2042};
c=b;
}
void f2(struct STU *C)
{ struct STU b={“SunDan”,2044};
*c=b;
}
main( )
{ struct STU a={“YangSan”,2041},b={“WangYin”,2043};
f1(A) ;f2(&B) ;
printf(“%d %d\n”,a.num,b.num);
}
执行后的输出结果是
A)2041 2044 B)2041 2043 C)2042 2044 D)2042 2043
(41) 有以下程序
main( )
{ unsigned char a,b;
a=4|3;
b=4&3;
printf(“%d %d\n”,a,b(;
}
执行后输出结果是
A) 7 0 B) 0 7 C) 1 1 D) 43 0
(42) 下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
main( )
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++) printf(“ “);
for(j=1;j<=_______;j++) printf(“*”);
printf(“\n”);
}
}
在下划线处应填入的是
A) i B) 2*i-1 C) 2*i+1 D) i+2
(43) 有以下程序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i for(j=i+2;j if(a }
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++) printf(“%d”,aa);
printf(“\n”);
}
其输出结果是
A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1,
C) 9,2,7,4,5,6,3,8,1,10, D) 1,10,3,8,5,6,7,4,9,2,
(44) 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是
A) char s[10]=”abcdefg”; B) char t[]=”abcdefg”,*s=t;
C) char s[10];s=”abcdefg”; D) char s[10];strcpy(s,”abcdefg”);
(45) 有以下程序
#include
main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i printf(“5d\n”,len);
}
经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
ex abcd efg h3 k44
执行后输出结果是
A) 14 B) 12 C) 8 D) 6
(46) 有以下程序
void f(int a[],int i,int j)
{ int t;
if(i { t=a; a=a[j];a[j]=t;
f(a,i+1,j-1);
}
}
main( )
{ int i,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++) printf(“%d,”,aa); printf(“\n”);
}
执行后输出结果是
A) 5,4,3,2,1, B) 5,2,3,4,1, C) 1,2,3,4,5, D) 1,2,3,4,5,
(47) 有以下程序
struct STU
{ char name[10];
int num;
int Score;
};
main( )
{ struct STU s[5]={{“YangSan”,20041,703},{“LiSiGuo”,20042,580},
{“wangYin”,20043,680},{“SunDan”,20044,550},
{“Penghua”,20045,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++) p=&s;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p->Score>p[j]->Score)
{ t=p;p=p[j];p[j]=t;}
printf(“5d %d\n”,s[1].Score,p[1]->Score);
}
执行后输出结果是
A) 550 550 B) 680 680 C) 580 550 D) 580 680
(48) 有以下程序
#include
struct NODE{
int num;
struct NODE *next;
};
main( )
{ struct NODE *p,*q,*r;
int sum=0;
p=(struct NODE *)malloc(sizeof(struct NODE));
q=(struct NODE *)malloc(sizeof(struct NODE));
r=(struct NODE *)malloc(sizeof(struct NODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
printf(“%d\n”,sum);
}
执行后的输出结果是
A) 3 B) 4 C) 5 D) 6
(49) 有以下程序
#include
main( )
{ FILE *fp; int i,k=0,n=0;
fp=fopen(“d1.dat”,”w”);
for(i=1;i<4;i++) fprintf(fp,”%d”,i);
fclose(fp);
fp=fopen(“d1.dat”,”r”);
fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n);
fclose(fp);
}
执行后输出结果是
A) 1 2 B) 123 0 C) 1 23 D) 0 0
(50) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)
#include
main( )
{ FILE *fp; int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a,sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat
","rb");
fseek(fp,-2L*sizeof(int).SEEK_END) ;
fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/
fclose(fp);
printf("%d\n",B) ;
}
执行后输出结果是
A) 2 B) 1 C) 4 D) 3
二、填空题(每空2分,共40分)
请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上, 答在试卷上不得分.
(1) E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1】 。
(2) 计算机网络分为广域网和局域网,因特网属于【2】 。
(3) 从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为【3】 。
(4) 在Windows环境下,只要在“开始”菜单中单击【4】选项,就可以查阅最近打开过的文档清单。
(5) 计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行【5】条指令。
(6) 已知字符A的ACSII码值为65,以下语句的输出结果是【6】
char ch=’B’;
printf(“%c %d\n”,ch,ch);
(7) 有以下语句段
int n1=10,n2=20;
printf(“ 【7】 ”,n1.n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
(8) 有以下程序
main( )
{ int t=1,i=5;
for(;i>=0;i--) t*=i;
printf(“%d\n”,t);
}
执行后输出结果是【8】 。
(9) 有以下程序
main( )
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf(“%d\n”,x);
}
执行后输出结果是【9】 。
(10) 有以下程序
#include
main( )
{ char ch1,ch2; int n1,n2;
ch1=getchar(); ch2=getchar();
n1=ch1-‘0’; n2=n1*10+(ch2-‘0’);
printf(“%d\n”,n2);
}
程序运行时输入:12<回车>,执行后输出结果是【10】 。
(11) 有以下程序
void f( int y,int *x)
{y=y+*x; *x=*x+y;}
main( )
{ int x=2,y=4;
f(y,&x);
printf(“%d %d\n”,x,y);
}
执行后输出的结果是【11】 。
(12) 函数fun的功能是计算xn
double fun(double x,int n)
{ int i; double y=1;
for(i=1;i<=n;i++) y=y*x;
return y;
}
主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+B) 3。实现这一计算的函数调用语句为【12】 。
(13) 下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如:
1 2 3 4 1 5 9 13
5 6 7 8 2 6 10 14
当 A= 9 10 11 12 则 A’= 3 7 11 15
13 14 15 16 4 8 12 16
请填空
#define N 4
void rotate(int a[][N])
{ int i,j,t;
for(i=0;i for(j=0;【13】;j++)
{ t=a[j];
【14】 ;
a[j]=t;
}
}
(14) 以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char *s,char *t)
{ while(*s++=【15】);}
main( )
{ char str1[100],str2[]=”abcdefgh”;
sstrcpy(str1,str2);
printf(“%s\n”,str1);
}
(15) 下列程序的运行结果是:【16】
#include
char *ss(char *s)
{ return s+strlen(s)/2;}
main( )
{ char *p,*str=”abcdefgh”;
p=ss(str); printf(“%s\n”,p);
}
(16) 下面程序的运行结果是:【17】
int f( int a[], int n)
{ if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main ( )
{ int aa[3]={1,2,3},s;
s=f(&aa[0],3); printf(“%d\n”,s);
}
(17) 以下程序中给指针p分配三个double型动态内存单元,请填空。
# include
main ( )
{ double *p;
p=(double *) malloc(【18】);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf(“%f%f%f\n”,p[0],p[1],p[2]);
}
(18) 以下程序的运行结果是【19】
# include
typedef struct student{
char name[10];
long sno;
float score;
}STU;
main( )
{ STU
a={“zhangsan”,2001,95},b={“Shangxian”,2002,90},c={“Anhua”,2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0) d=b;
if(strcmp(c.name,d.name)>0) d=c;
printf(“%ld%s\n”,d.sno,p->name);
}
(19) 以下sum函数的功能是计算下列级数之和。
S=1+x+x2/2!+x3/3!+........+xn/n!
请给函数中的各变量正确赋初值。
double sum( double x, int n )
{ int i; double a,b,s;
【20】
for( i=1;i<=n;i++)
{ a=a*x; b=b*i; s=s+a/b; }
return s;
}
附参考答案
01~10:DBCCB ADCAD
11~20:BBCAC DBCDA
21~30: ACBDD ADDCD
31~40: CBADB ACADA
41~50: ABCCD ACBBD
填空题:
1、@
2、广域网
3、EXIT或exit
4、文档
5、百万条或一百万条或1000000条
6、B 66
7、n1=%d\nn2=%d
8、0
9、-4
10、12
11、8 4
12、fun(a,4)+fun(b,4)-fun(a+b,3);
13、j<=i
14、a[j]=a[j]
15、*t++
16、6
17、efgh
18、3*sizeof(double)
19、2002Shangxian
20、a=1.0;b=1.0;s=1.0;
--------------------------------------------------------------------------------