还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
9月全国计算机等级考试二级笔试试卷C语言程序设计
一、选择题(
(1)-
(1)每题2分,
(11)-
(5)每题1分洪60分))
(1)软件是指A)程序B)程序和文档C)算法加数据结构D)程序、数据和相关文档的集合
(2)软件调试的目的是A)发觉错误B)改正错误D)验证软件的正确性实C)改善软件的性能
(3)在面对对象方法中,现信息隐藏是依靠A)对象的继承B)对象的多态C)对象的封装D)对象的分类
(4)下列叙述中,不符合良好程序设计风格的是A)程序的效率第一,清晰其次B)程序的可读性好C)程序中有必要的注释D)输入数据前要有提示信息
(5)下列叙述中正确的是A)程序执行的效率与数据的存储结构密切相关B)程序执行的效率只取决于程序的限制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对
(6)下列叙述中正确的是A)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构确定是线性结构C)程序设计语言中的数组一般是依次存储结构,因此,利用数组只能处理线线结构D)以上三种说法都不对
(7)冒泡排序在最坏状况下的比较次数是A)n(n+l)/2B)nlog2n C)n(n-1)/2D)n/2
(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219B)221C)229D)231
(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不须要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对
(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个重量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表
(11)C语言源程序名的后缀是A),exe B).C C).obj D).cp
(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2023y-m-d Dr.Tom Biglstruct node intdata;struct node*next;;int minstructnode*f irst/*指针f irst为链表头指针*/{strct node*p;int m;p=first-next;m=p-data;p=p-next;for;p!二NULL;p=
[20]ifp-datam m=p-data;return m;13以下选项中,合法的一组C语言数值常量是C.177D0x8AA028B
12.4c
1.510,
000.5e-3OXa23Oabc
3.e5-Oxf
4.5e014以下叙述中正确的是AC语言程序将从源程序中第一个函数起先执行B可以在程序中由用户指定随意一个函数作为主函数,程序将从今起先执行C C语言规定必需用main作为主函数名,程序将从今起先执行,在此结束D main可作为用户标识符,用以命名随意一个函数作为主函数15若在定义语句inta,b,c,*p=c;之后,接着执行以下选项中的语句,则能正确执行的语句是A scanfn%dn,a,b,c;Bscanfn%d%d%dn,a,b,c;Cscanfu%d\p;DscanfH%dn,p;16以下关于long、int和short类型数据占用内存大小的叙述中正确的是A均占4个字节B依据数据的大小来确定所占内存的字节数C由用户自己定义D由C语言编译系统确定17若变量均已正确定义并赋值,以下合法的C语言赋值语句是A x=y==5;Bx=n%
2.5;Cx+n=I;Dx=5=4+1;18有以下程序段int j;float y;char name
[50];scanfn%2d%f%sH,j,y,name;当执行上述程序段,从键盘上输入555667777abe后,y的值为A
55566.0B
566.0C
7777.0D
566777.019若变量已正确定义,有以下程序段i=0;do printf,%d,n,i;whilei++;printfn%d\nH,i其输出结果是A0,0B0,1C1,1D程序进入无限循环20有以下计算公式y=x20x0若程序前面已在叮嘱中包含math.h文件,不能够正确计算上述公式的程序段是A ifx=0y=sqrtx;By=sqrtxelse y=sqrt-x;ifx0y=sqrt-x;Cifx=0y=sqrtx;Dy=sqrtx=0x:-x;Ifx0y=sqrt-x;21设有条件表达式EXPi++;j--,则以下表达式中EXP完全等价的是A EXP==0B EXP!=0C EXP==1D EXP!=122有以下程序#includestdio.hmain{int y=9;for;yO;y-ify%3==0printfn%dn,-y;程序的运行结果是A741B963C852D87542123已有定义chare;,程序前面已在叮嘱行中包含ctype.h文件,不能用于推断c中的字符是否为大写字母的表达式是Aisupperc BA=c=ZCAv=ccv=Z,Dcv=2-32a-32=c24有以下程序#includestdio.hmain{int i,j,m=55;fori=l;i=3;i++forj=3;j=i;j++m=m%j;printfn%d\n,,,m;程序的运行结果是A0B1C2D325若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A函数的实参和其对应的形参共占同一存储单元B形参只是形式上的存在,不占用具体存储单元C同名的实参和形参占同一存储单元D函数的形参和实参分别占用不同的存储单元26已知字符,A,的ASCII代码值是65,字符变量cl的值是,A\c2的值是RL执行语句printfn%d,%dn,c1,c2-2;后,输出结果是A A,B BA,68C65,66D65,6827以下叙述中错误的是A变更函数形参的值,不会变更对应实参的值B函数可以返回地址值C可以给指针变量赋一个整数作为地址值D当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL28以下正确的字符串常量是A\\\B,abc,OOlympicGames Dnn29设有定义char p[]={I:213},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是A sizeofpBsizeofchar Csizeof*q Dsizeofp
[0]30有以下函数int aaachar*s{char*t=s;while*t++;returnt-s;以下关于aaa函数的功能叙述正确的是A求字符串s的长度B比较两个串的大小C将串s复制到串t D求字符串s所占字节数31若有定义语句inta
[3]
[6];,按在内存中的存放依次,a数组的第10个元素是A a
[0]
[4]Ba[l]
[3]Ca
[0]
[3]Da[l]
[4]32有以下程序#includestdio.hvoid funchar**p{++p;printf%s\n,*p;}main{char*a[]={MorningJAfternoon”JEvening”JNight};funa;程序的运行结果是A AfternoonB ftemoonC MorningD orning33若有定义语句inta⑵
[3],*p
[3];,则以下语句中正确的是A p=a;Bp
[0]=a;C p
[0]=a[l]
[2];Dp[l]=a;34有以下程序#includestdio.hvoid funint*a,int n/*fun函数的功能是将a所指数组元素从大到小排序*/{int t,ij;fori=0;in-1;i++forj=i+l;jn;j++ifa[i]a[j]{t=a[i];a[i]=a[j];a[j]=t;}main{int c
[10]={123,4,5,6,7,8,9,0}上;func+4,6;for i=0;i10;i++printfn%d;;c[i];printfCAn1;程序运行的结果是A12345,678,9,0,B0,9,8,7,6,5,1,2,3,4,C0,9,8,7,6,5,4,32,1,D12349,8,7,6,5,0,35有以下程序#includestdio.hint funchars[]{int n=0;while*sv=9*s=0{n=10*n+*s-0;s++;}returnn;mainprintfH%d\nn,funs;程序运行的结果是A9B61490C61D536当用户要求输入的字符串中含有空格时,应运用的输入函数是Ascanf BgetcharCgets Dgetc37以下关于字符串的叙述中正确的是A C语言中有字符串类型的常量和变量B两个字符串中的字符个数相同时才能进行字符串大小的比较C可以用关系运算符对字符串的大小进行比较D空串确定比空格打头的字符串小42有以下程序ttinclude stdio.hvoid funint n,int*p{int fl,f2;ifn==l||n==2*p=l;else{funn-l,fl;*p=fl+f2;funn-2,f2;main{int s;fun3,s;printf〃%d\n〃,s;程序的运行结果是A2D5B3C443若程序中有宏定义行:ttdefineN100则以下叙述中正确的是A宏定义行中定义了标识符N的值为整数100B在编译程序对C源程序进行预处理时用100替换标识符N0对C源程序进行编译时用100替换标识符ND在运行时用100替换标识符N44以下关于typedef的叙述错误的是A用typedef可以增加新类型B typedef只是将已存在的类型用一个新的名字来代表C用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名D用typedef为类型说明一个新名,通常可以增加程序的可读性45有以下程序#includestdio.hstruct tt{int x;struct tt*y;}*p;struct tta
[4]={20,a+1,15,a+2,30,a+3,17,a};main{int i;P二a;for i=l;i=2;i++{printf〃%d,〃,p-x;p=p-y;}}程序的运行结果是A20,30,B30,17C15,30,D20,1546有以下程序ttinclude stdio.hftinclude string.htypedef struct{char name
[9];char sex;float score
[2];}STU;STU fSTUa{STU b={〃Zhao〃,m,
85.0,
90.0};int i;strcpy a.name,b.name;a.sex=b.sex;fori=0;i2;i++a.score[i]=b.score[i];return a;main{STU c={Qian,,
95.0,
92.0},d;d=f c;printf〃%s,%c,%
2.Of,%
2.0f\n〃,d.name,d.sex,d.score
[0],d.score[l];程序的运行结果是A Qian,f,95,92B Qian,m,85,90C Zhao,m,85,90D Zhao,f,95,9247设有以下定义union data{int dl;float d2;}demo;则下面叙述中错误的是A变量demo与成员d2所占的内存字节数相同B变量demo中各成员的地址相同C变量demo和各成员的地址相同D若给demo,dl赋99后,demo.d2中的值是
99.048有以下程序ttinclude stdio.h main{int a=l,b=2,c=3,x;x=a^bc;printf〃%d\n〃,x;程序的运行结果是A0B1C2D349读取二进制文件的函数调用形式为fread buffer,size,count,fp;,其中buffer代表的是A一个文件指针,指向待读取的文件B一个整型变量,代表待读取的数据的字节数0一个内存块的首地址,代表读入数据存放的地址D一个内存块的字节数50有以下程序^include stido.hmain{FILE*fp;int a[10]={l,2,3,0,0},i;fp=fopen〃d
2.dat,〃wb〃;fwritea,sizeofint,5,fp;fwritea,sizeofint,5,fp;fclosefp;fp=fopen z,d
2.dat〃,〃rb〃;freada,sizeofint,10,fp;fclosefp;fori=0;i10;i++printf%d〃,a[i];程序的运行结果是A1,2,3,0,0,0,0,0,0,0,Bl,2,3,1,2,3,0,0,0,0,C123,0,0,0,0,123,0,0,0,0,D1,2,3,0,0,1,2,3,0,0,
二、填空题每空2分,共40分请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分.1软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的[1].2在两种基本测试方法中,[方测试的原则之一是保证所测模块中每一个独立路径至少要执行一次.3线性表的存储结构主要分为依次存储结构和链式存储结构.队列是一种特殊的线性表,循环队列是队列的[3]存储结构.4对下列二叉树进行中序遍历的结果为[的5在E-R图中距形表示
[5]6执行以下程序时输入1234567CR,则输出结果是
[6]ttinclude stdio.hmain{int a=l,b;scanf〃%2d%2d”,ab;printf〃%d%d\n〃,a,b;以下程序的功能是:输出a、b、c三个变量中的最小值.请填空#includestido.h main{int a,b,c,tl,t2;scanf〃%d%d%d〃,a,b,c;tl=ab
[7];t2=ctl
[8];printf〃%d\n〃,t2;8以下程序的输出结果是」9].ttinclude stdio.h main{intn=12345,d;whilen!=0{d=n%10;printf〃%d〃,d;n/=10;}}9有以下程序段,且变量已正确定义和赋值fors=l.0,k=l;k=n;k++s=s+l.O/k*k+l;printf z,s=%f\n\n,z,s;请填空,使下面程序段的功能为完全相同s=
1.0;k=l;while
[10]{s=s+l.0/k*k+l;
[11];}printf,zs=%f\n\n,,s;,10以下程序的输出结果是」12].ttinclude stido.hmain{int i;for i=,a,;i,;i++,i++printf〃祝〃,a,+,A,;printf〃\n〃;11以下程序的输出结果是」13].ttinclude stdio.h ttincludestring.h char*fun char*t{char*p=t;returnp+strlen t/2;main{char*str=〃abcdefgh”;str=fun str;puts str;12以下程序中函数f的功能是在数组x的n个数假定n个数互不相同中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最终一个数对换.请填空.ttinclude stdio.hviod fint x[],int nintpO,pl,i,j,t,m;i=j=x[O];p0=pl=0;form=0;mn;m++if x[m]i{i=x[m];pO=m;}{j=x[m];pl=m;}else ifx[m]jt=x[pO];x[pO]=x[n-l];x[n-l]=t;t=x[pl];x[pl]=
[14];
[15]=t;main{int a
[10],u;foru=0;u10;u++scanf〃%d〃,a[u];fa,10;for u=0;u10;u++printf〃%d〃,a[u];printf〃\n〃;}13以下程序统计从终端输入的字符中大写字母的个数,num
[0]中统计字母A的个数,num[l]中统计字母B的个数,其它依次类推.用#号结束输入,请填空.ttinclude stdio.httinclude ctype.hmain{int num
[26]={0},i;char c;while
[16]!=’#ifisupperc num[c-,A]+-
[17]fori=0;i26;i++Printf〃%c:%d\n〃,i+A,num[i];}14执行以下程序的输出结果是」18].ttinclude stido.h main{int i,n
[4]={l};fori=l;i=3;i++n[i]=n[iT]*2+l;printf〃%d〃,n[i];15以下程序的输出结果是
[19]ttinclude stdio.h#define M5#define NM+MmainO{int k;k=N*N*5;16函数main的功能是:在带头结点的单链表中查找数据域中值最小的结点.请填空#include stdio.h。
个人认证
优秀文档
获得点赞 0