2001年二级C语言笔试真题及答案1.doc_第1页
2001年二级C语言笔试真题及答案1.doc_第2页
2001年二级C语言笔试真题及答案1.doc_第3页
2001年二级C语言笔试真题及答案1.doc_第4页
2001年二级C语言笔试真题及答案1.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2001年4月二级C语言笔试真题及答案(考试时间:120分钟,满分100分)一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分)下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1) 计算机的存储器完整的应包括A) 软盘、硬盘B) 磁盘、磁带、光盘C) 内存储器、外存储器D) RAM、ROM(2) 计算机中运算器的作用是A) 控制数据的输入/输出B) 控制主存与辅存间的数据交换C) 完成各种算术运算和逻辑运算D) 协调和指挥整个计算机系统的操作(3) 软磁盘处于写保护状态时,其中记录的信息A) 绝对不会丢失B) 不能被擦除,但能追加新信息C) 不能通过写磁盘操作被更新D) 不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除(4) 光盘根据基制造材料和记录信息的方式不同,一般可分为A) CD、VCDB) CD、VCD、DVD、MP3C) 只读光盘、可一次性写入光盘、可擦写光盘D) 数据盘、音频信息盘、视频信息盘(5) 在计算机系统中,可执行程序是A) 源代码B) 汇编语言代码C) 机器语言代码D) ASCII码(6) 计算机软件系统包括A) 操作系统、网络软件B) 系统软件、应用软件C) 客户端应用软件、服务器端系统软件D) 操作系统、应用软件和网络软件(7) 目前,一台计算机要连入Internet,必须安装的硬件是A) 调制解调器或网卡B) 网络操作系统C) 网络查询工具D) WWW浏览器(8) 在多媒体计算机系统中,不能存储多媒体信息的是A) 光盘 B) 磁盘C) 磁带D) 光缆(9) 要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是A) TYPE a*.*B) TYPE abc.exeC) TYPE pro.cPRND) TYPE abc.txt(10) 下列更改文件名的命令中正确的是A) REN A:file1 C:F1B) RENAME A: A:file1 C:F1C) REN A:file1 F1D) REN A:file1 SUBF1(11) 已知A盘为DOS系统启动盘,只有A:DOS下有自动批处理文件,其中内容为:CDDOSMD USERCD USER由A盘启动DOS系统后,A盘的当前目录是A) DOSB) DOSUSERC) D) USER(12) MS-DOS是A) 分时操作系统B) 分布式操作系统C) 单用户、单任务操作系统D) 单用户、多任务操作系统(13) 在Windows操作系统中,不同文档之间互相复制信息需要借助于A) 剪切板B) 记事本C) 写字板D) 磁盘缓冲器(14) 在Windows操作系统中A) 同一时刻可以有多个活动窗口B) 同一时刻可以有多个应用程序在运行,但只有一个活动窗口C) 同一时刻只能有一个打开的窗口D) DOS应用程序窗口与Windows应用程序窗口不能同时打开着(15) 下列叙述中正确的是A) 所有DOS应用程序都可以在Windows操作系统中正确运行B) 所有DOS应用程序都不能在Windows操作系统中正确运行C) 大部分DOS应用程序可以在Windows操作系统中正确运行D) 为DOS5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行(16) 下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数(17) 以下所列的C语言常量中,错误的是A) 0xFF B) 1.2e0.5C) 2L D) 72(18) 下列选项中,合法的C语言关键字是A) VAR B) cher C) integer D) default(19) 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是A) x/y*zB) x*(1/(y*z)C) x/y*1/zD) x/y/z(20) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是A) -3 B) 9 C) -12D) 6(21) 设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为A) 不定值B) 4C) 3 D) 1(22) 若变量已正确说明为float类型,要通过语句scanf(“%f %f %f ”,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A) 10B) 10.0,22.0,33.02233C) 10.0D) 10 2222.0 33.0 33(23) 若执行以下程序时从键盘上输入9,则输出结果是A) 11 B) 10C) 9 D) 8Main0 int n; scanf(“%d”,&n); if(n+10) printf(“%dn”,n); else printf(“%dn”,n-);(24) 若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是A) swich(a+b);B) switch(a*a+b*b) case 1:y=a+b; break; case 3: case 0:y=a-b; break; case 1:y=a+b;break; case 3:y=b-a,break; C) switch a D) switch(a-b) case c1 :y=a-b; break default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:case 11:y=a-b;break; (25) 有以下程序段int k=0while(k=1)k+;while 循环执行的次数是A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次(26) 以下程序执行后sum的值是A)15 B)14C) 不确定D)0min() int i , sum; for(i=1;i6;i+) sum+=i; printf(“%dn”,sum);(27) 有以下程序段int x=3do printf(“%d”,x-=2); while (!(-x);其输出结果是A) 1 B) 3 0C) 1 -2D) 死循环(28) 若变量c为char类型,能正确判断出c为小写字母的表达式是A) a=c= a)|(c= z)C) (a=c)D) (c= a)&(c= z)(29) 以下所列的各函数首部中,正确的是A) void play(var :Integer,var b:Integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)(30) 以下程序的输出结果是A) 0 B) 29C) 31D) 无定值fun(int x, int y, int z) z=x*x+y*y; main() int a=31; fun(5,2,a); printf(“%d”,a);(31) 下列程序段的输出结果是A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2void fun(int *x, int *y) printf(“%d %d”, *x, *y); *x=3; *y=4;main() int x=1,y=2; fun(&y,&x); printf(“%d %d”,x, y);(32) 下列程序的输出结果是A) 非法 B)a4的地址 C)5 D)3main() char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5; printf(“%d”,*-p);(33) 下列程序的运行结果是A) 6 3 B) 3 6 C) 编译出错 D) 0 0void fun(int *a, int *b) int *k; k=a; a=b; b=k;main() int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf(“%d %d”, a, b);(34) 下面程序的输出结果是A) 0 B) 1 C) 10 D) 9main() int a =1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(“%dn”,*p+9);(35) 当调用函数时,实参是一个数组名,则向函数传送的是A) 数组的长度 B) 数组的首地址C) 数组每一个元素的地址 D) 数组每个元素中的值(36) 设有以下说明语句struct ex int x ; float y; char z ; example;则下面的叙述中不正确的是A) struct结构体类型的关键字B) example是结构体类型名C) x,y,z都是结构体成员名D) struct ex是结构体类型(37) 以下只有在使用时才为该类型变量分配内存的存储类说明是A) auto和 staticB) auto和 registerC) register和 staticD) extern和 register(38) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是A) EOF B) 1 C) 非零值 D) NULL(39) 以下程序的输出结果是A) 20 B) 21C) 22D)23main() int i, k, a10, p3; k=5; for (i=0;i10;i+) ai =i; for (i=0;i3;i+) pi =ai *(i+1); for (i=0;i3;i+) k+=pi *2; printf(“%dn”,k); (40) 以下程序的输出结果是A) 1,5,9 B) 1,4,7C) 3,5,7D)3,6,9main() int i, x33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(“%d,”,xi2-i);(41) 以下程序的输出结果是A) 18 B) 19C) 20D)21main() int a33= 1,2,3,4,5,6 ,i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+)s+=aij; printf(“%dn”,s);(42) 以下程序的输出结果是A) ABCDB) ABCDC) EFGD) EFGHFGH EFG JK IJKLKL IJ O Mmain() char w10= “ABCD”,”EFGH”,”IJKL”,”MNOP”,k; for(k=1;k3;k+) printf(“%sn”,wk);(43) 当执行下面的程序时,如果输入ABC,则输出结果是A) ABC6789 B) ABC67C) 12345ABC6 D) ABC456789#include “stdio.h”#include “string.h”main() char ss10=“1,2,3,4,5”; gets(ss); strcat(ss, “6789”); printf(“%sn”,ss);(44) 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH IJKL,则输出结果为A) ABCDEFG B) IJHLC) ABCDEFGHIJKL D) IJKLABCDEFGHmain( int argc, char *argv) while(-argc0) printf(“%s”,argvargc);printf(“n”);(45) 以下程序的输出结果是A) 1 B) 2C) 3 D) 4long fun( int n) long s; if(n= =1 | n= =2) s=2; else s=n-fun(n-1); return s;main() printf(“%ldn”, fun(3); (46) 以下程序的输出结果是A) 16B) 2C) 9 D) 1#define SQR(X) X*Xmain() int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); printf(“dn”,a);(47) 若定义了以下函数:void f() *p=(double *)malloc( 10*sizeof( double);p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是A) double *pB) float *p C) double *p D) float *p(48) 以下程序的输出是A) 10 B) 11 C) 51 D) 60struct st int x; int *y; *p;int dt4= 10,20,30,40 ;struct st aa4= 50,&dt0,60,&dt0,60,&dt0,60,&dt0,;main() p=aa; printf(“%dn”,+(p-x);(49) 假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是A) free(q); p-next=q-next;B) (*p).next=(*q).next; free(q);C) q=(*q).next; (*p).next=q; free(q);D) q=q-next; p-next=q; p=p-next; free(p);834headdata nextpq(50) 以下程序的输出结果是A) 0 B) 1 C) 2 D) 3main() int x=0.5; char z=a; printf(“%dn”, (x&1)&(zz) ); 二) 填空题(每空2分,共40分) 请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。(1) 计算机机领域中,通常用英文单词“Byte”表示 【】 。(2) 在DOS环境下,自动批处理的文件名为 【】 。(3) 要将当前盘当前目录下所有扩展名为.TXT的文件内容在打印机上打印输出,应使用的单条DOS内部命令为 【】 。(4) 在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的 【】 操作实现窗口的移动。(5) 在Windows环境下,可以将窗口最小化为 【】 。(6) 以下程序的输出结果是 【6】 main() int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(“%d,%dn”, a, b ); (7) 下列程序的输出结果是16.00,请填空。main() int a=9, b=2; float x= 【7】 , y=1.1,z; z=a/2+b*x/y+1/2; printf(“%5.2fn”, z ); (8) 用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*) 【8】 ;(9) 下列程序段的输出结果是 【9】 。main() char b=”Hello,you”; b5=0; printf(“%s n”, b ); (10) 下列程序段的输出结果是 【10】 。int n=c;switch(n+) default: printf(“error”);break; case a:case A:case b:case B:printf(“good”);break; case c:case C:printf(“pass”); case d:case D:printf(“warn”);(11) 以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。void fun(int *x,int *y) main() int a=10,b=20; 【11】 ; /定义变p */ p=fun; p(&a,&b); (12) 下列程序的输出结果是 【12】 。void fun(int *n) while( (*n)-); printf(“%d”,+(*n);main() int a=100; fun(&a);(13) 以下程序的输出结果是 【13】 。main() int arr =30,25,20,15,10,5, *p=arr; p+; printf(“%dn”,*(p+3);(14) 以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。struct st char name20; double score; ;main() struct st ex; printf(“ex size: %dn”,sizeof( 【14】 );(15) 下面程序把从终端读入的文本(用作为文本结束标志)输出到一个名为bi.dat的新文件中。请填空。#include “stdio.h”FILE *fp; char ch; if( (fp=fopen ( 【15】 ) )= = NULL)exit(0); while( (ch=getchar( ) !=) fputc (ch,fp); fclose(fp);(16) 若变量n中的值为24,则prnt函数共输出 【16】 行,最后一行有 【17】 个数。void prnt(int n, int aa ) int i; for(i=1; i=n;i+) printf(“%6d”, aai); if( !(i%5) ) printf(“n”); printf(“n”);(17) 以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。#define N 3#define M 4void LineMax(int xNM) int i,j,p; for(i=0; iN;i+) p=0; for(j=1; jM;j+) if(xipCON(8) 设当前盘为C盘,C盘的当前目录为ABC。下列DOS 命令中能正确执行的是A) MD B) MD A:C) MD ABD) CD C:(9) 为了将C:USER中的文件FILE.TXT同名复制到A盘根目录下,下列DOS命令中能正确执行的是A) TYPE C:USERFILE.TXT A:FILE.TXTB) TYPE C:USERFILE.TXT A:FILE.TXTC) COPY C:USERFILE.TXT A:FILE.TXTD) COPY C:USERFILE.TXT(10) 在Windows下,当一个应用程序窗口被最小化后,该应用程序A) 终止运行B) 暂停运行C) 继续在后台运行D) 继续在前台运行(11) 在Windows环境下,下列操作中与剪贴板无关的是A) 剪切B) 复制C) 粘贴D) 删除(12) 在Windows环境下,实现窗口移动的操作是A) 用鼠标拖动窗口中的标题栏B) 用鼠标拖动窗口中的控制按钮C) 用鼠标拖动窗口中的边框D) 用鼠标拖动窗口中的任何部位(13) 一台计算机连入计算机网络后,该计算机A) 运行速度会加快B) 可以共享网络中的资源C) 内存容量变大D) 运行精度会提高(14) 不能作为计算机网络中传输介质的是A) 微波B) 光纤C) 光盘D) 双绞线(15) 下列各项中,不属于多媒体硬件的是A) 声卡B) 光盘驱动器C) 显示器D) 多媒体制作工具(16) 在C语言中,合法的长整型常数是A) OL B) 4962710C) 324562& D) 216D(17) 以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define(18) 以下选项中合法的字符常量是A)“B” B) 010 C) 68 D) D(19) 假定x和y为 double型,则表达式x=2,y=x+3/2的值是A) 3.500000 B) 3 C) 2.000000 D) 3.000000(20) 以下合法的赋值语句是A) x=y=100 B) d-; C) x+y; D) c=int(a+b);(21) 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是pprintf(”%d,%dn”,x-,-y);A) 10,3B) 9.3 C) 9.2D)10.2(22) x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是A) INPUT x、y、z;B) scanf(“%d%d%d”,&x,&y,&z);C) scanf(“%d%d%d”,x,y,z);D) read(“%d%d%d”,&x,&y,&z);(23) 以下程序的输出结果是main() int a=3;printf(“%dn”,(a+a-=a*a) );A) 6B)12 C) 0 D) -12(24) 设 a、b、C、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=ab)&(n=cd)运算后,n的值位为A) 0 B) 1C)2D) 3(25) 阅读以下程序:main() int x;scanf(“%d”,&x);if(x-5) printf(“%d”x);else printf(“%d”x+);程序运行后,如果从键盘上输人5,则输出结果是A)3B) 4 C) 5D) 6(26) 假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(wx)?w; x; m=(my)?m;y; m=(mz)?m; z;则该程序运行后,m的值是itA) 4B) 3C) 2D) 2(27) t为int类型,进人下面的循环之前,t的值为0while( t=l ) 则以下叙述中正确的是A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对(28) 以下程序的输出结果是main() int num= 0;while(num=2) num+; printf(“%dn”,num);A) 1B) 1 C)1 D) l2 2 23 34(29) 以下各选项企图说明一种新的类型名,其中正确的是A) typedef v1 int; B) typedef v2=int;C) typedefv1 int v3; D) typedef v4: int;(30) 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A) 地址传递 B) 单向值传递C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定(31) 以下函数值的类型是fun ( float x ) float y;y= 3*x-4;return y;A) int B) 不确定 C) void D) float(32 ) 设有以下函数:f ( int a) int b=0;static int c = 3;b+; c+;return(a+b+c);如果在下面的程序中调用该函数,则输出结果是main() int a = 2, i;for(i=0;i=0;i-) ai=10-i;printf(“%d%d%d”,a2,a5,a8);A) 258 B) 741C) 852 D) 369(39) 以下数组定义中不正确的是A) int a23;B) int b3=0,1,2,3;C) int c100100=0;D) int d3=1,2,1,2,3,1,2,3,4;(40) 以下程序的输出结果是main() int a44=1,3,5,2,4,6,3,5,7;printf(“%d%d%d%dn”,a03,a12,a21,a30;A) 0650 B) 1470 C) 5430 D) 输出值不定(41) 以下程序的输出结果是main() char st20= “hello0t”;printf(%d %d n”,strlen(st),sizeof(st);A) 9 9 B) 5 20C) 13 20 D) 20 20(42) 以下选项中,不能正确赋值的是A) char s110;s1=“Ctest”;B) char s2=C, t, e, s, t;C) char s320=“Ctest”;D) char *s4=“Ctestn”(43) 以下程序的输出结果是amovep(int p, int (a)3,int n) int i, j;for( i=0;i;i+)for(j=0;jx,(h1,p)-y);A) 12 B) 23 C) 14 D) 32(45) 以下程序的输出结果是main() int a, b;for(a=1, b=1; a=10) break;if (b%3= =1) b+=3; continue; printf(“%dn”,a);A) 101B) 6 C) 5 D) 4(46) 以下程序的输出结果是union myun struct int x, y, z; u;int k; a;main() a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf(%dn”,a.u.x);A) 4B) 5C) 6D) 0(47) 以下程序的输出结果是int a, b;void fun() a=100; b=200; main() int a=5, b=7;fun();printf(“%dd n”, a,b);A) 100200 B) 57 C) 200100 D) 75(48) 以下程序的输出结果是#define M(x,y,z) x*y+zmain() int a=1,b=2, c=3;printf(“%dn”, M(a+b,b+c, c+a);A) 19B) 17C) 15D) 12(49) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是A) x | y B) x | y C) x & y D) x y(50) 下面的程序执行后,文件testt.t中的内容是#include void fun(char *fname.,char *st) FILE *myf; int i;myf=fopen(fname,“w” );for(i=0;i2);printf(“%dn”,j);(9) 设有以下程序:main() int n1,n2;scanf(“%d”,&n2);while(n2!=0) n1=n2%10;n2=n2/10;printf(“%d”,n1);程序运行后,如果从键盘上输入1298;则输出结果为 【9】 。(10) 以下程序输出的最后一个值是【10】 。int ff(int n) static int f=l;f=f*n;return f;main() int i;for(I=1;I=5;I+ printf(“%dn”,ff(i);(11) 以下函数的功能是:求x的y次方,请填空。double fun( double x, int y) int i;double z;for(i=1, z=x; iy;i+) z=z* 【11】;return z;(12) 设有以下程序:main() int a, b, k=4, m=6, *p1=&k, *p2=&m;a=pl=&m;b=(*p1)(*p2)+7;printf(“a=%dn”,a);printf(“b=%dn”,b);执行该程序后,a的值为【12】 ,b的值为【13】 。(13) 若已定义:int a10, i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论