2025年C语言二级笔试真题汇编与高频考点解析.docx
全国计算机二级C语言3月笔试真题一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一种选项是对的的,请将对的的选项涂写在答题卡对应位置上,答在试卷上不得分(1)为了防止流程图在描述程序逻辑时的灵活性,提出了用方框图来替代老式的程序流程图,一般也把这种图称为A)PAD图B)N-S图C)构造图D)数据流图(2)构造化程序设计重要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽量独立,规定A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发措施B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的顾客使用(6)对长度为n的线性表排序,在最坏状况下,比较次数不是n(n-1)/2的排序措施是A)迅速排序B)冒泡排序C)直接插入排序D)堆排序(7)假如进栈序列为el,e2,e3,e4,则也许的出栈序列是A)e3,el,e4,e2B)e2,e4,e3,elC)e3,e4,el,e2D)任意次序(8)将E-R图转换到关系模式时,实体与联络都可以表到达A)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RBCDa0klb1nlSBCDf3h2a0kln2xl由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,对的的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑构造变化时,数据的存储构造不变C)关系中的每一列称为元组,一种元组就是一种字段D)假如一种关系中的属性或属性组并非该关系的关键字,但它是另一种关系的关键字,则称其为本关系的外关键字(11)如下论述中对的的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言顾客标识符的一组是A)void,define,WORDB)a3_3,_123,CarC)For,-abc,IFCaseD)2a,DO,sizeof(13)如下选项中可作为C语言合法常量的是A)-80B)-080C)-8el.0D)-80.Oe(14)若有语句:Char*line5如下论述中对的的是A)定义line是一种数组,每个数组元素是一种基类型为char为指针变量B)定义line是一种指针变量,该变量可以指向一种长度为5的字符型数组C)定义line是一种指针数组,语句中的*号称为间址运算符D)定义line是一种指向字符型函数的指针(15)如下定义语句中对的的是0;b=l.1;A)inta=b=0;B)charA=65+l,b='b'C)floata=l,*b=fea,*c=&b;D)doubIea=O(16)有如下程序段charch;intk;Ch='a,;k=12;printf(zz%c,%d,ch,ch,k);printf("k=%dn”,k);已知字符a的ASCII码值为97,则执行上述程序段后输出成果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有如下程序main()inti,s=l;for(i=l;i<50;i+)if(!(i%5)&&!(i%3)s+=i;printf(zz%dnz,s);程序的输出成果是A)409B)277C)ID)91(18)当变量C的值不为2、4、6时,值也为真的体现式是A)(c=2)II(c=4)II(c=6)B)(c>=2&&c<=6)II(c!=3)II(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=l)(19)若变量已对的定义,有如下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf(zz%d,%d,%dnzz,a,b,c);其输出成果是A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7(20)有如下程序ttinclude<stdio.h>main()intx=l,y=0,a=0,b=0;switch(x)easel:switch(y)case:a+;break;casel:b+;break;)case2:a+;b+;break;case3:a+;b+;)printf(yza=%d,b=%dnxz,a,b);)程序的运行成果是A)a=l,b=OB)a=2,b=2C)a=l,b=lD)a=2,b=l(21)下列程序的输出成果是#include“stdio.h"main()inti,a=0,b=0;for(i=l;i<10;i+)a+;continue;b+;printf(zza=%d,b=%dzz,a,b);A)a=4,b=4B)a=4,b=5C)a=5,b=4D)a=5,b=5(22)已知#intt=0;while(t=l).)则如下论述对的的是A)循环控制体现式的值为0B)循环控制体现式的值为1C)循环控制体现式不合法D)以上说法都不对(23)下面程序的输出成果是main()inta10=l,2,3,4,5,6,7,8,9,10,*p=a;printf(zz%dnzz,*(p+2);A)3B)4C)ID)2(24)如下错误的定义语句是A)intx3=0,1,1,2,3;B)intx43=1,2,3,1,2,3,1,2,3,1,2,3;Ointx4=1,2,3,1,2,3,1,2,3,1,2,3;D)intx3=1,2,3,4);(25)有如下程序voidss(char*s,chart)while(*s)if(*s=t)*s=t,a,+,A,;s+;main()charstrl100=,abcddfefdbdz,c=rd,;ss(strl,c);printf("%sn",strl);程序运行后的输出成果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd(26)有如下程序main()charch25=zz6937zz,zz8254zz,*p2;inti,j,s=0;for(i=0;i<2;i+)pi=chi;for(i=0;i<2;i+)for(j=0;pij>,0,;j+=2)s=10*s+pij,0,;Printf("%dn",s);该程序的输出成果是A)69825B)63825C)6385D)693825(27)有定义语句:CharS10若要从终端给S输入5个字符,错误的输入语句是A)gets(fes0);B)SCanf('%s”,s+l);C)gets(三);D)SCanf("%s,sl);(28)如下论述中错误的是A)在程序中但凡以#开始的语句行都是预处理命令行B)预处理命令行的最终不能以分号表达结束C)WdefineMAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有如下阐明语句typedefstructintn;charch8;PER;则下面论述中对的的是A)PER是构造体变量名B)PER是构造体类型名C)typedefstruct是构造体类型D)struct是构造体类型名(30)如下论述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文献读入字符Ofputs函数用于把字符串输出到文献D)fwrite函数用于以二进制形式输出数据到文献(31)如下能对的定义一维数组的选项是A)inta5=0,1,2,3,4,5;B)chara=,(TJl'J2,J3,J4,J5,J0'C)chara=,A,B,C,;D)inta5=zz0123,z;(32)有如下程序ftinclude<string.h>main()charp=,a,b,c,q10=,a,b,c,;Printf*(%d%dn,strlen(p),strlen(q);如下论述中对的的是A)在给P和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B)由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C)由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D)由于P和q数组中都没有字符串结束符,故长度都不能确定(33)有如下程序ftinclude<stdio.h>ftinclude<string.h>voidfun(char*s,intn)char*t;inti,j;for(i=0;i<11-l;i+)for(j=i+l;j<n;j+)if(strlen(si)>strlen(sj)t=si;si:sj;sj=t;)main()(char*ssLJ=ibcc,bbcc,xy,aaaacc,aabcc);fun(ss,5);printf(z,%s,%snzz,ss0,ss4);)程序的运行成果是A)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(34)有如下程序ftinclude<stdio.h>intf(intx)inty;if(x=Ox=l)return(3);y=x*-f(-2);returny;)main()intz;z=f(3);Printf("%dn”,z);)程序的运行成果是A)0B)9C)6D)8(35)下面程序段的运行成果是charstr="ABC",*p=str;printf("%dn”,*(p+3);A)67B)0C)字符,C,的地址D)字符,C,(36)若有如下定义:Structlinkintdata;structlink*next;a,b,c,*p,*q;且变量a和b之间已经有如下图所示的链表构造:指针P指向变量a,q指向变量c则可以把c插入到a和b之间并形成新的链表的语句组是:A)a.next=c;c.next=b;B)p.next=q;q.next=p.ne