2022年C语言试题 2.pdf
(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:file1C:F1B)RENAME A:A:file1C:F1C)REN A:file1F1D)REN A:file1SUBF1(11)已知 A盘为 DOS 系统启动盘,只有A:DOS 下有自动批处理文件,其中内容为:CDDOSMDUSERCD USER由 A盘启动 DOS 系统后,A盘的当前目录是A)DOSB)DOSUSERC)D)USER(12)MS-DOS 是A)分时操作系统B)分布式操作系统名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 10 页 -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)0 xFFB)1.2e0.5C)2LD)72(18)下列选项中,合法的C语言关键字是A)VARB)cherC)integerD)default(19)以下变量x.、y、z均为 double 类型且已正确赋值,不能正确表示数学式子zy x的 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)-3B)9C)-12D)6(21)设 x、y、t均为 int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为A)不定值B)4C)3D)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)102222.033.033(23)若执行以下程序时从键盘上输入9,则输出结果是名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -A)11B)10C)9D)8Main0intn;scanf(“%d”,&n);if(n+10)printf(“%dn”,n);elseprintf(“%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;case3:case 0:y=a-b;break;case 1:y=a+b;break;case 3:y=b-a,break;C)switchaD)switch(a-b)case c1:y=a-b;breakdefault:y=a*b;breakcase c2:x=a*d;breakcase 3:case4:x=a+b;breakdefault:x=a+b;case 10:case11:y=a-b;break;(25)有以下程序段intk=0while(k=1)k+;while循环执行的次数是A)无限次B)有语法错,不能执行C)一次也不执行D)执行 1次(26)以下程序执行后sum的值是A)15B)14C)不确定D)0min()inti,sum;for(i=1;i6;i+)sum+=i;printf(“%dn”,sum);(27)有以下程序段intx=3doprintf(“%d”,x-=2);while(!(-x);其输出结果是A)1B)30C)1-2D)死循环(28)若变量 c 为 char 类型,能正确判断出c 为小写字母的表达式是A)a=c=a)|(c=z)C)(a=c)D)(c=a)&(c=z)(29)以下所列的各函数首部中,正确的是A)voidplay(var:Integer,varb:Integer)B)voidplay(inta,b)C)voidplay(inta,intb)名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 10 页 -D)Sub play(aas integer,bas integer)(30)以下程序的输出结果是A)0B)29C)31D)无定值fun(intx,inty,intz)z=x*x+y*y;main()inta=31;fun(5,2,a);printf(“%d”,a);(31)下列程序段的输出结果是A)2 1 4 3B)1 2 1 2C)1 2 3 4D)2 1 1 2voidfun(int*x,int*y)printf(“%d%d”,*x,*y);*x=3;*y=4;main()intx=1,y=2;fun(&y,&x);printf(“%d%d”,x,y);(32)下列程序的输出结果是A)非法B)a4 的地址C)5D)3main()chara10=9,8,7,6,5,4,3,2,1,0,*p=a+5;printf(“%d”,*-p);(33)下列程序的运行结果是A)63B)36C)编译出错D)00voidfun(int*a,int*b)int*k;k=a;a=b;b=k;main()inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf(“%d%d”,a,b);(34)下面程序的输出结果是A)0B)1C)10D)9main()inta=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(“%dn”,*p+9);(35)当调用函数时,实参是一个数组名,则向函数传送的是A)数组的长度B)数组的首地址C)数组每一个元素的地址D)数组每个元素中的值(36)设有以下说明语句名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 10 页 -structexintx;floaty;charz;example;则下面的叙述中不正确的是A)struct结构体类型的关键字B)example 是结构体类型名C)x,y,z都是结构体成员名D)structex 是结构体类型(37)以下只有在使用时才为该类型变量分配内存的存储类说明是A)auto 和 staticB)auto 和 registerC)register和 staticD)extern和 register(38)若 fp 是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是A)EOFB)1C)非零值D)NULL(39)以下程序的输出结果是A)20B)21C)22D)23main()inti,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,9B)1,4,7C)3,5,7D)3,6,9main()inti,x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)printf(“%d,”,xi2-i);(41)以下程序的输出结果是A)18B)19C)20D)21main()inta33=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)EFGHFGHEFGJKIJKLKLIJOMmain()charw10=“ABCD”,”EFGH”,”IJKL”,”MNOP”,k;for(k=1;k3;k+)printf(“%sn”,wk);(43)当执行下面的程序时,如果输入ABC,则输出结果是A)ABC6789B)ABC67C)12345ABC6D)ABC456789#include“stdio.h”名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 10 页 -#include“string.h”main()charss10=“1,2,3,4,5”;gets(ss);strcat(ss,“6789”);printf(“%sn”,ss);(44)假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的 DOS 提示符下键入:PROGABCDEFGH IJKL,则输出结果为A)ABCDEFGB)IJHLC)ABCDEFGHIJKLD)IJKLABCDEFGHmain(intargc,char*argv)while(-argc0)printf(“%s”,argvargc);printf(“n”);(45)以下程序的输出结果是A)1B)2C)3D)4longfun(intn)longs;if(n=1|n=2)s=2;elses=n-fun(n-1);returns;main()printf(“%ldn”,fun(3);(46)以下程序的输出结果是A)16B)2C)9D)1#defineSQR(X)X*Xmain()inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf(“dn”,a);(47)若定义了以下函数:voidf()*p=(double*)malloc(10*sizeof(double);p 是该函数的形参,要求通过p 把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是A)double*pB)float*pC)double*pD)float*p(48)以下程序的输出是A)10B)11C)51D)60structstintx;int*y;*p;intdt4=10,20,30,40;structstaa4=50,&dt0,60,&dt0,60,&dt0,60,&dt0,;main()p=aa;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 10 页 -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);(50)以下程序的输出结果是A)0B)1C)2D)3main()intx=0.5;charz=a;printf(“%dn”,(x&1)&(zz);二)填空题(每空 2 分,共 40 分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。(1)计算机机领域中,通常用英文单词“Byte”表示【】。(2)在 DOS 环境下,自动批处理的文件名为【】。(3)要将当前盘当前目录下所有扩展名为.TXT的文件内容在打印机上打印输出,应使用的单条 DOS内部命令为【】。(4)在 Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【】操作实现窗口的移动。(5)在 Windows环境下,可以将窗口最小化为【】。(6)以下程序的输出结果是【6】main()inta=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%dn”,a,b);(7)下列程序的输出结果是16.00,请填空。main()inta=9,b=2;floatx=【7】,y=1.1,z;z=a/2+b*x/y+1/2;printf(“%5.2fn”,z);(8)用以下语句调用库函数malloc,使字符指针st 指向具有11 个字节的动态存储空间,834headdatanextpq名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 10 页 -请填空。st=(char*)【8】;(9)下列程序段的输出结果是【9】。main()charb=”Hello,you”;b5=0;printf(“%s n”,b);(10)下列程序段的输出结果是【10】。intn=c;switch(n+)default:printf(“error”);break;case a:caseA:caseb:caseB:printf(“good”);break;case c:caseC:printf(“pass”);case d:caseD:printf(“warn”);(11)以下程序通过函数指针p 调用函数fun,请在填空栏内,写出定义变量p 的语句。voidfun(int*x,int*y)main()inta=10,b=20;【11】;/定义变 p*/p=fun;p(&a,&b);(12)下列程序的输出结果是【12】。voidfun(int*n)while(*n)-);printf(“%d”,+(*n);main()inta=100;fun(&a);(13)以下程序的输出结果是【13】。main()intarr=30,25,20,15,10,5,*p=arr;p+;printf(“%dn”,*(p+3);(14)以下程序用来输出结构体变量ex 所占存储单元的字节数,请填空。structstcharname20;doublescore;main()structstex;printf(“exsize:%dn”,sizeof(【14】);(15)下面程序把从终端读入的文本(用 作为文本结束标志)输出到一个名为bi.dat的新名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 10 页 -文件中。请填空。#include“stdio.h”FILE*fp;charch;if(fp=fopen(【15】)=NULL)exit(0);while(ch=getchar()!=)fputc(ch,fp);fclose(fp);(16)若变量 n 中的值为24,则 prnt函数共输出【16】行,最后一行有【17】个数。voidprnt(intn,intaa)inti;for(i=1;i=n;i+)printf(“%6d”,aai);if(!(i%5)printf(“n”);printf(“n”);(17)以下程序中,主函数调用了LineMax 函数,实现在N行 M列的二维数组中,找出每一行上的最大值。请填空。#defineN3#defineM4voidLineMax(intxNM)inti,j,p;for(i=0;iN;i+)p=0;for(j=1;jM;j+)if(xipxij)【18】;printf(“The max valueinline%dis%dn”,i,【19】);main()intxNM=1,5,7,4,2,6,4,3,8,2,3,1;【20】2001 年 4 月全国计算机等级考试二级笔试答案C语言一、选择题(1)-(40)题每题1 分,(41)-(50)题每题2 分,共 60 分。(1)C(2)C(3)C(4)C(5)C(6)B(7)A(8)D(9)D(10)C(11)C(12)C(13)A(14)B(15)C(16)D(17)B(18)D(19)A(20)C(21)C(22)B(23)B(24)D(25)A(26)C(27)C(28)D(29)C(30)C(31)A(32)C(33)B(34)C(35)B(36)B(37)B(38)C(39)B(40)C(41)A(42)D(43)A(44)D(45)A(46)B(47)C(48)C(49)B(50)B二、填空题(每空2 分,共 40 分)(1)字节(2)AUTOEXEC。BAT(3)COPY*。TXT PRN(4)拖动名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 10 页 -(5)图标或按钮(6)2.1(7)6.6(8)Malloc(11)或 malloc(sizeof(char)*11)(9)Hello(10)passwarm(11)void(*p)()或 void(*p)(int*,int*)(12)0(13)10(14)structst或 ex(15)“bi.dat”,“w”或“bi.dat”,“wt”或“bi.dat”,“w+t”(16)5(17)4(18)sp=j(19)cxip(20)LineMax(x)名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 10 页 -