1、全国计算机等级考试二级笔试试卷基础知识和C程序设计(考试时间120分钟,满分100分)2023年4月一、选择题((1)(40)每小题1分,(41)(55)每小题2分,共60分)下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是对的的,请将对的选项涂写在答题卡相应位置上,答在试卷上不得分。(1) 用8位无符号二进制数能表达的最大十进制数为A) 127B) 128C) 255D) 256(2) 在64位高档微机中,一个字长所占的二进制位数为A) 8B) 16C) 32D) 64(3) 在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住A) Alt键B)Esc键C)S
2、hift键D)Ctrl键(4) 在Windows菜单中,暗淡(灰色)的命令项表达该命令A) 暂时不能用B) 正在执行C) 包含下一层菜单D) 包含对话框(5) 在DOS环境下,为了得到TYPE命令的帮助信息,对的的DOS命令为A) TYPEB) TYPE/HC) TYPE/*D) TYPE/?(6) 下列选项中,能作为合法DOS文献名的是A) ANP/A.DATB) ABCCOMC) ECD.BASICD) XY+Z.TXT(7) 下列叙述中对的的是A) 在Windows环境下,最大化的窗口是不能移动的B) 在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C) 在Windows
3、环境下,只有最小化的窗口才干关闭D) 在Windows环境下,不能关闭最大化的窗口(8) 在Windows环境下,工具栏中的复制按钮是A) B) C)D) (9) 在Windows98环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按A) Ctrl+PrintScreen键B) Alt+PrintScree键C) Shift+PrintScreen键D) PrintScreen键(10) 目前,计算机病毒扩散最快的途径是A) 通过软件复制B) 通过网络传播C) 通过磁盘考贝D) 运营游戏软件(11) 以下叙述中对的的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机辨认执行C)
4、 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) 下列叙述中对的的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中
5、有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型(15) 下列关于C语言用户标记符的叙述中对的的是用户标记符中可以出现在下划线和中划线(减号)用户标记符中不可以出现中划线,但可以出现下划线用户标记符中可以出现下划线,但不可以放在用户标记符的开头用户标记符中可以出现在下划线和数字,它们都可以放在用户标记符的开头(16) 若有以下程序段(n所赋的是八进制数)int m=32767,n=032767printf(%d,%o/n,m,n);执行后输出结果是A) 32767,32767B) 32767,032767C) 32767,77777D) 32767,077777(17) 下列
6、关于单目运算符+、-的叙述中对的的是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) 0X0B) 0x0C) 0D) 0XABC(19) 有以下程序段 int m=0,n=0;char c=a;scanf(%d%c%d,&m,&c,&n);print
7、f(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是:A) 10,A,10B) 10,a,10C) 10,a,0D) 10,A,0(20) 有以下程序main() inti;for(i=0;ibc)printf(%dn,d);else if(c-1=d)=1)printf(%dn,d+1);elseprintf(%dn,d+2)执行后输出结果是A) 2B) 3C) 4D) 编译时有错,无结果(23) 有以下程序main()intp7=11,13,14,15,16,17,18,i=0,k=0;while(i7&pi%2)k=k+pi;i+;printf(%dn,k);执
8、行后输出结果是A) 58B) 56C) 45D) 24(24) 有以下程序main()inti=0,s=0;doif(i%2)i+;continue;i+;s +=i;while(iy?x:y;intf2(intx,int y)returnxy?y:x;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);执行后输出结果是A) 3,4,5B) 5,3,4C) 5,4,3D) 3,5,4(28) 有如下程序void f(int x,inty)i
9、ntt;if(xy)t=x;x=y;y=t;main()inta=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf(%d,%d,%dn,a,b,c);执行后输出结果是A) 3,4,5B) 5,3,4C) 5,4,3D) 4,3,5(29) 若有以下定义和语句#include inta=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是A) *q=0;B) w=p;C) *p=a;D) *p=*w;(30) 有以下程序int*f(int*x,int*y)if(*x*y)returnx;elsereturny;mai
10、n()inta=7,b=8,*p,*q,*r;执行后输出结果是A) 7,8,8B) 7,8,7C) 8,7,7D) 8,7,8(31) 有以下程序main()char *s=one,two,three,*p;p=s1;printf(%c,%sn,*(p+1),s0);执行后输出结果是A) n,twoB) t,oneC)w,oneD) o,two(32) 有以下程序main()intx8=8,7,6,5,0,0,*s;s=x+3printf(%dn,s2);执行后输出结果是A) 随机值B) 0C) 5D) 6(33) 以下能对的定义数组并对的赋初值的语句是A) intN=5,bNN;B) int
11、 a12=1,3;C) intc2=1,2,3,4;D) intd32=1,2,34;(34) 有以下程序main()intm3=1,4,7,2,5,8,3,6,9;inti,j,k=2;for(i=0;i3;i+) printf(%d,mki);执行后输出结果是A) 4 5 6B) 2 5 8C) 3 6 9D) 7 8 9(35) 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N10void arrin(intxN)inti=0;while(i=0;ps-)puts(ps);执行后的输出结果是A) yzB) zC) zD) xxyz yz yz xyxyz x
12、yz(42) 有以下程序main() int a3=1,2,3,4,5,0,*pa3,i;pa=a;for(i=0;i3;i+)if(i2) pa1i=pa1i-1;elsepa1i=1;printf(%dn,a01+a11+a12);执行后输出结果是A) 7B) 6C) 8D) 无拟定值(43) 有以下程序voidfun(int*a,inti,intj)intt; if(ij)t=ai;ai=aj;aj=t;fun(a,+i,-j);main()inta=1,2,3,4,5,6,i;fun(a,0,5)for(i=0;i6;i+)printf(%d,ai);执行后的输出结果是A) 6 5 4
13、 3 2 1B) 4 3 2 1 5 6C) 4 5 6 1 2 3D) 1 2 3 4 5 6(44) 有以下程序main(intarge,char *argv)intn,i=0;while(arv1i!=0n=fun();i+; printf(%dn,n*argc); int fun() static ints=0;s+=1;returns;假设程序经编译、连接后生成可执行文献exam.exe,若键入以下命令行exam123则运营结果为A) 6 B)8C)3D)4(45) 以下程序段中,可以通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是A) main()B) m
14、ainint*p;int*p;fun(p);fun(&p); int fun(int *p) int fun(int *p) int s; p=&s; int s;*p=&s;C) #includeD) #includemain()main() int *p; int *p; fun(&p); fun(p); int fun(int *p)int fun(int *p) *p=(int *)malloc(2);p=(int *)malloc(sizeo(int);(46) 若要说明一个类型名STP,使得定义语句STP s等价于char*s,以下选项中对的的是A) typedef STP cha
15、r *s;B) typedef *char STP;C) typedef stp *char;D) typedef char* STP;(47) 设有如下定义struct sscharname10; intage; charsex;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) 10101001B) 10101000C) 1111
16、1101D) 01010101(49) 以下叙述中不对的的是A)语言中的文本文献以ASC码形式存储数据B)语言中对二进制文献的访问速度比文本文献快C)语言中,随机读写方式不合用于文本文献D)语言中,顺序读写方式不合用于二进制文献(50) 以下程序企图把从终端输入的字符输出到名为abc.txt的文献中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#includemain()FILE*fout;charch; fout=fopen(abc.txt,w); ch=fgetc(stdin); while(ch!=#) fputc(ch,fout); ch=fgetc(stdin); fcl
17、ose(fout);犯错的因素是A) 函数fopen调用形式错误B) 输入文献没有关闭C) 函数fgetc调用形式错误D) 文献指针stdin没有定义二、填空题(每空2分,共20分)请将每空的对的答案写在答题卡上【1】【20】序号的横线上,答在试卷上不得分。(1) 用十六进制绘存储器中的字节地址进行编号,若地址编号从000到FFFF,则该存诸器的容量为【1】KB。(2) 假设在当前盘的当前目录下有两个文献A.TXT和B.TXT,现要将文献B.TXT合并连接到文献A.TXT的后面。若使用COPY命令,则完整的命令为【2】。(3) E-mail地址由用户和域名两部分组成,这两部分的分隔符为【3】。
18、(4) 假设在当前盘当前目录下有一个可执行程序USER.EXE。现要执行该程序,并规定在执行过程中将显示输出的结果信息存入当前盘当前目录的文献OUT.DAT中,则完整的DOS命令为【4】。(5) 在DOS环境下,表达打印机的设备文献名为【5】 。(6) 若有语句inti=-19,j=i%4;printf(%dn,j);则输出结果是【6】。(7) 若有程序main()inti,j;scanf(i=%d,j=%d;&i,&j);printf(i=%d,j=%dn,i,j);规定给i赋10,给j赋20,则应当从键盘输入【】。(8) 若有以下程序main()intp,a=5; if(p=a!=0) p
19、rintf(%dn,p); else printf(%dn,p+2);执行后输出结果是【8】。(9) 若有以下程序main()inta=4,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】 。(51) 若有以下程序main()inta44=1,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33,0; inti,j,s=0; for(i=0;i4;i+) for(j=0;j4;j+) if(aij0)continue; if(aij=
20、0)break; s+=aij; printf(%dn,s);执行后输出的结果是【10】。(52) 若有以下程序main()chara; a=H-A+0; print(%cn,a);执行后的输出结果是 【11】 。(53) 若有以下程序int f(intx,inty)return(y-x)*x;main()inta=3,b=4,c=5,d; d=f(f(3,4),f(3,5); printf(%dn,d);执行后输出的结果是【12】。(54) 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下111121133114641其构成规律是:第0列元素和主对角线无素均为1其
21、余元素为其左上方和正上方元素之和数据的个数每行递增1请将程序补充完整。#defintN6voidYangHui(int*NN)inti,j; x00=1 for(i=1;iN;i+) xi0= 【13】 =1; for(j=1;ji;j+) xij= 【14】 ; (55) 以下函数的功能是删除字符串s中的所有数字字符。请填空。voiddele(char*s)intn=0,i; for(i=0,si;i+) if(【15】) sn+=si; sn=【16】;(56) 设函数findbig已定义为求3个数中的最大值。以下程序将运用函数指针调用findbig函数。请填空。main()intfind
22、big(int,int,int); int(*f)(),x,yz,z,big; f=【17】; scanf(%d%d%d,&x,&y,&z); big=(*f)(x,y,z); printf(bing=%dn,big);(57) 以下程序的输出结果是【18】 。#defintMCRA(m)2*m#defineMCRB(n,m)2*MCRA(n)+mmain()inti=2,j=3; printf(%dn,MCRB(j,MCRA(i);(58) 设有以下定义struct ssintinfo;struct ss *link;x,y,z;且已建立如下图所示链表结构:X Y Z 请写出删除点y的赋值语
23、句【19】 。(59) 已有文本文献test.txt,其中的内容为:Hello,everyone!。以下程序中,文献test.txt已对的为“读”而打开,由文献指针fr指向该文献,则程序的输出结果是 【20】 。#includemain()FILE*fr;charstr40; fgets(str,5,fr); printf(%sn,str); fclose(fr);二级笔试试卷基础知识和C程序设计评分标准和参考答案一、 选择题((1)(40)每小题1分,(41)(50)每小题2分,共60分)(1) C(2) D(3) D(4) A(5) D(6) B(7) A(8) C(9) D(10) B(
24、11) C(12) A(13) B(14) D(15) B(16) A(17) D(18) C(19) A(20) A(21) C(22) B(23) D(24) A(25) B(26) D(27) C(28) D(29) A(30) B(31) C(32) B(33) D(34) C(35) C(36) C(37) C(38) B(39) A(40) C(41) C(42) A(43) A(44) A(45) C(46) D(47) B(48) D(49) D(50) A二、填空题(每空2分,共20分)(1)【1】64(26)(2)【2】COPY A.TXT+B.TXT A.TXT 或COP
25、Y A.TXT+B.TXT(3)【3】(4)【4】USEROUT.DAT(USEROUT.DAT)或 USER.EXEOUT.DAT 或 USER.EXEOUT.DAT(5)【5】PRN 或 LPT1 或 LPT1: 或 LPT2 或 LPT2:(6)【6】-3(7)【7】i=10,j=20(8)【8】1(9)【9】5 0 3【10】58【11】7(10)【12】9(11)【13】xii(12)【14】xi-1j-1+xi-1j 或 i-1j+xi-1j-1【15】si9 或 !(si=0&si9 或 !(si=0&si9|si0 或 !(si=0)或 *(s+i)9 或 !(*(s+i)=0&*(s+i)9|*(s+i)0或 !(*(s+i)=0) 或 isdigit(*(s+i) = = 0(13)【16】0或 0 或 NULL【17】findbig【18】16(14)【19】x,link=&z或x.link=y.ink【20】Hell【完】
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100