1、全国计算机等级考试二级C语言笔试试题2003年4月全国计算机等级考试二级C语言笔试试题一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分)下列各题A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1) 用8位无符号二进制数能表示的最大十进制数为A) 127 B) 128 C) 255 D) 256(2) 在64位高档微机中,一个字长所占的二进制位数为A) 8 B) 16 C) 32 D) 64(3) 在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住A) Alt键 B) Esc
2、键 C) Shift键 D) Ctrl键(4) 在Windows菜单中,暗淡(灰色)的命令项表示该命令A) 暂时不能用 B) 正在执行 C) 包含下一层菜单 D) 包含对话框(5) 在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为A) TYPE B) TYPE/H C) TYPE/* D) TYPE/?(6) 下列选项中,能作为合法DOS文件名的是A) ANP/A.DAT B) ABCCOM C) ECD.BASIC D) XY+Z.TXT(7) 下列叙述中正确的是A) 在Windows环境下,最大化的窗口是不能移动的 B) 在Windows环境下,应用程序窗口最小化后,该应
3、用程序暂停执行C) 在Windows环境下,只有最小化的窗口才能关闭D) 在Windows环境下,不能关闭最小化窗口(8) 在Windows环境下,工具栏中用于完成复制操作的按钮是A) 打印按钮 B) 剪切按钮 C) 复制按钮 D) 粘贴按钮(9) 在Windows环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按A) Ctrl+Printscreen键 B) Alt+Printscreen键 C) Shift+Printscreen键 D) Printscreen键(10) 目前,计算机病毒扩散最快的途径是A) 通过软件复制 B) 通过网络传播 C) 通过磁盘拷贝 D) 运行游戏软件(11
4、) 以下叙述正确的是A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点(12) C语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构 B) if、switch、breakC) for、while、do-whileD) if、for、continue(13) 在一个C语言程序中A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置(14) 下列叙
5、述中正确的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型 C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型(15) 下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头(16) 若有以下程序段(n所赋的是八进制数)int m=32767,n=032767;printf(%d,%on,m,n);执行后输出结果是A)
6、32767,32767 B) 32767,032767C) 32767,77777D) 32767,077777(17) 下列关于单目运算符+、-的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float型变量(18) 若有以下程序段int m=0xabc,n=0xabc;m-=n;printf(%Xn,m);执行后输出结果是A) 0X0 B) 0x0 C) 0 D)
7、0XABC(19) 有以下程序段int m=0,n=0; char c=a;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是: A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0(20) 有以下程序main() int i;for(i=0;ibc)printf(%dn,d);else if(c-1=d)=1)printf(%dn,d+1);else printf(%dn,d+2);执行后输出的结果是A) 2 B) 3 C) 4 D) 编译时有错,无结果(23) 有以下程序mai
8、n() int p7=11,13,14,15,16,17,18,i=0,k=0;while(i7&pi%2)k=k+pi; i+;printf(%dn,k);执行后输出的结果是A) 58 B) 56 C) 45 D) 24(24) 有以下程序main() int i=0,s=0;doif(i%2)i+;continue;i+;s+=i; while(i7);printf(%dn,s);执行后输出的结果是A) 16 B) 12 C) 28 D) 21(25) 有以下程序main() int i=10,j=1;printf(%d,%dn,i-,+j);执行后输出的结果是A) 9,2 B) 10,2
9、 C) 9,1 D) 10,1(26) 有以下程序main() char a,b,c,*d;a=; b=xbc;c=0xab; d=0127;printf(%c%c%c%cn,a,b,c,*d);编译时出现错误,以下叙述中正确的是A) 程序中只有a=;语句不正确 B) b=xbc;语句不正确 C) d=0127;语句不正确 D) a=;和 c=0xab;语句都不正确(27) main()int a=4,b=3,c=5,d,e,f;d=f1(a,b); d=f1(d,c);e=f2(a,b); e=f2(e,c);f=a+b+c-d-e;printf(%d,%d,%dn,d,f,e);执行后输出
10、的结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 3,5,4(28) 有以下程序void f(int x,int y) int t;if(xy) t=x; x=y; y=t; main() int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf(%d,%d,%dn,a,b,c);执行后输出的结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5(29) 若有一些定义和语句#include int a=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是A) *q=0;
11、B) w=p; C) *p=va; D) *p=*w;(30)有以下程序int *f(int *x,int *y) if(*x*y) return x;elsereturn y;main() int a=7,b=8,*p,*q,*r;p=&a; q=&b;r=f(p,q);printf(%d,%d,%dn,*p,*q,*r);执行后输出结果是A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8(31)有以下程序main() char *s=one,two,three,*p;p=s1;printf(%c,%sn,*(p+1),s0);执行后输出结果是A) n,two B) t,
12、one C) w,one D) o,two(32)有以下程序main() int x8=8,7,6,5,0,0,*s;s=x+3;printf(%dn,s2);执行后输出结果是A) 随机值 B) 0 C) 5 D) 6(33) 以下能正确定义数组并正确赋初值的语句是A) int N=5,bNN;B) int a12=1,3;C) int c2=1,2,3,4;D) int d32=1,2,3,4;(34)有以下程序main() int m3=1,4,7,2,5,8,3,6,9;int i,j,k=2;for(i=0;i3;i+) printf(%d ,mki); 执行后输出结果是A) 4 5
13、6 B) 2 5 8 C) 3 6 9 D) 7 8 9(35) 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10void arrin(int xN) int i=0;while(i=0;ps-) puts(ps);执行后输出结果是A) yzxyz B) zyz C) zyzxyz D) xxyxyz(42) 有以下程序main()int a3=1,2,3,4,5,0,(*pa)3,i;pa=a;for(i=0;i3;i+)if(i2) pa1i=pa1i-1;else pa1i=1;printf(%dn,a01+a11+a12);执行后输出结果是A) 7
14、B) 6 C) 8 D) 无确定值(43) 有以下程序void fun(int *a,int i,int j) int t;if (ij) t=ai;ai=aj;aj=t;fun(a,+i,-j);main() int a=1,2,3,4,5,6,i;fun(a,0,5);for(i=0;i6;i+)printf(%d,ai);_执行后输出结果是A) 6 5 4 3 2 1 B) 4 3 2 1 5 6 C) 4 5 6 1 2 3 D) 1 2 3 4 5 6(44) 有以下程序main(int argc,char *argv) int n,i=0;while(argv1i!=0) n=fu
15、n(); i+;printf(%dn,n*argc);int fun() static int s=0;s+=1;return s;假设程序编译、连接后生成可执行文件exam.exe,若键入以下命令exam 123回车则运行结果为A) 6 B) 8 C) 3 D) 4(45) 以下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是A) main()int *p; fun(p); int fun(int *p) int s; p=&s;B) main()int *p;fun(&p); int fun(int *p) int s; *p=&s;C) #inclu
16、demain() int *p;fun(&p); int fun(int *p)*p=(int*)malloc(2);D) #includemain() int *p;fun(p); int fun(int *p)p=(int*)malloc(sizeof(int);(46) 若要说明一个类型名STP,使得定义语句STP s;等价于char *s;,以下选项中正确的是A) typedef STP char *s;B) typedef *char STP;C) typedef STP *char;D) typedef char* STP ;(47) 设有如下定义struct ss char na
17、me10;int age;char sex; std3,* p=std;下面各输入语句中错误的是A) scanf(%d,&(*p).age);B) scanf(%s,&std.name);C) scanf(%c,&std0.sex);D) scanf(%c,&(p-sex);(48) 设char型变量x中的值为10100111,则表达式(2+x)(3)的值是A) 10101001 B) 10101000 C) 11111101 D) 01010101(49) 以下叙述中不正确的是A) C语言中的文本文件以ASCII码形式存储数据B) C语言中对二进制位的访问速度比文本文件快C) C语言中,随机
18、读写方式不使用于文本文件D) C语言中,顺序读写方式不使用于二进制文件(50) 以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#include main() FILE *fout; char ch;fout=fopen(abc.txt,w);ch=fgetc(stdin);while(ch!=#) fputc(ch,fout);ch =fgetc(stdin);fclose(fout);_出错的原因是A) 函数fopen调用形式有误B) 输入文件没有关闭C) 函数fgetc调用形式有误D) 文件指针stdin没有定义 二
19、) 填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。(1) 用十六进制给存储器中的字节地址进行编号,若地址编号从0000到FFFF,则该存储器的容量为【】KB。(2) 假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现在要将文件B.TXT合并连接到文件A.TXT的后面。若使用COPY命令,则完整的命令为【】。(3) E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【】。(4) 假设在当前盘当前目录下有一个可执行程序USER.EXE。现要执行该程序,并要求在执行过程中将显示输出的结果信息存入当前盘当前目录的文件OU
20、T.DAT中,则完整的DOS命令为【】。(5) 在DOS环境下,表示打印机的设备文件名是【】。(6) 若有语句int i=-19,j=i%4;printf(%dn,j);则输出的结果是【6】。 (7) 若有程序main() int i,j;scanf(i=%d,j=%d,&i,&j);printf(i=%d,j=%dn ,i,j);要求给i赋10,给j赋20,则应该从键盘输入【7】。(8) 若有以下程序main() int p,a=5;if(p=a!=0)printf(%dn,p);elseprintf(%dn,p+2);执行后输出结果是【8】。(9) 若有以下程序main() int a=4
21、,b=3,c=5,t=0;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;printf(%d %d %dn,a,b,c);执行后输出结果为【9】。(10) 若有以下程序main() int a44=1,2,-3,-4,0,-12,-13,14 ,-21,23,0,-24,-31,32,-33,0;int i,j,s=0; for(i=0;i4;i+) for(j=0;j4;j+) if(aij0) continue;if(aij=0) break;s+=aij;printf(%dn,s);执行后输出结果是【10】。(11) 若有以下程序main() char a;a=H
22、-A+0;printf(%cn,a);执行后输出结果是【11】。(12) 若有以下程序int f(int x,int y) return(y-x)*x; main() int a=3,b=4,c=5,d;d=f(f(3,4),f(3,5);printf(%dn,d);执行后输出结果是【12】。(13) 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下11 11 2 11 3 3 11 4 6 4 1.其构成规律是:(1) 第0列元素和主对角线元素均为1(2) 其余元素为其左上方和正上方元素之和(3) 数据的个数每行递增1请将程序补充完整。#define N 6voi
23、d yanghui(int xNN) int i,j;x00=1;for(i=1;iN;i+) xi0=【13】=1;for(j=1;ji;j+)xij=【14】; (14) 以下函数的功能是删除字符串s中的所有数字字符。请填空。viod dele(char *s) int n=0,i;for(i=0;si;i+) if(【15】)sn+=si;sn=【16】;(15) 设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。main() int findbig(int,int,int);int (*f)(),x,y,z,big;f=【17】;scanf(%d%d%d,&x,&y,&z);big=(*f)(x,y,z);printf(big=%dn,big);(16) 以下程序的输出结果是【18】。#define MCRA(m) 2*m#define MCRB(n,m) 2*MCRA(n)+mmain() int i=2,j=3;printf(%dn,MCRB(j,MCRA(i);(17) 设有以下定义stuct ss int info; struct ss *link;x,y,z;且已建立如下
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1