![2022-2023年四川省德阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页](http://file4.renrendoc.com/view/12ec2b32e8da3f6b83912ba286ba3e3b/12ec2b32e8da3f6b83912ba286ba3e3b1.gif)
![2022-2023年四川省德阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页](http://file4.renrendoc.com/view/12ec2b32e8da3f6b83912ba286ba3e3b/12ec2b32e8da3f6b83912ba286ba3e3b2.gif)
![2022-2023年四川省德阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页](http://file4.renrendoc.com/view/12ec2b32e8da3f6b83912ba286ba3e3b/12ec2b32e8da3f6b83912ba286ba3e3b3.gif)
![2022-2023年四川省德阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页](http://file4.renrendoc.com/view/12ec2b32e8da3f6b83912ba286ba3e3b/12ec2b32e8da3f6b83912ba286ba3e3b4.gif)
![2022-2023年四川省德阳市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页](http://file4.renrendoc.com/view/12ec2b32e8da3f6b83912ba286ba3e3b/12ec2b32e8da3f6b83912ba286ba3e3b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年四川省德阳市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.需求分析阶段的任务是确定()
A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能
2.若有定义“doublea;floatb;shortc;”,若想把1.2赋给变量a,3.4赋给变量b,5678赋给变量c,程序运行时键盘输入:1.23.45678<回车>则以下正确的读入语句是()。A.scanf("%If%If%d",&a,&b,&c);
B.scanf("%If%If%hd",&a,&b,&c);
C.scanf("%If%f%hd",&a,&b,&c);
D.scanf("%f%f%d",&a,&b,&c);
3.
4.设有定义:charpE]={’1’,‘2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
5.索引属于()。
A.模式B.内模式C.外模式D.概念模式
6.设x是一个int型的,y的值为10,则表达式x&&y的值为()。
A.1B.0C.与x值相同D.与x值相反
7.任何一棵二叉树的叶子结点在前序、中序和后序遍历序列中的相对次序()。
A.不发生改变B.发生改变C.不能确定D.以上都不对
8.以下选项中,能表示逻辑值“假”的是()
A.1B.0.000001C.0D.100.0
9.对长度为n的无序线性表进行顺序查找,则查找成功、不成功时的平均数据比较次数分别为()。
A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1
10.在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是________
A.O(1)B.O(n)C.O(nlogn)D.O(n2)
11.软件调试的目的是A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性
12.
13.sizeof(float)是()。
A.一种函数调用B.一种函数定义C.一个浮点表达式D.一个整型表达式
14.以下不合法的字符常量是()。
A.‘\\’B.‘\”’C.‘\018’D.‘\xcc’
15.以下函数的时间复杂度和空间复杂度为()A.T(n)=O(2^n),S(n)=O(n)
B.T(n)=O(1),S(n)=O(1)
C.T(n)=O(2^n),S(n)=O(1)
D.T(n)=O(n),S(n)=O(n)
16.对包含N个元素的散列表进行检索,平均检索长度________
A.为o(log2N)B.为o(N)C.不直接依赖于ND.上述三者都不是
17.若有以下语句:typedefstructS{intg;charh;}T;以下叙述中正确的是()。A.可用S定义结构体变量B.可用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量
18.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'3'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}从第一列开始输入数据(<CR>代表…个回车符):3845<CR>,则狴序输出结果为()。
A.77889B.77868C.776810D.7.78866e+007
19.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。
A.EOFB.-lC.非零值D.0
20.已知一个大小为n的整型数组,现求该数组的全部连续子数组的元素之和的最大值,最优算法的时间复杂度是()如:a[4]={2,-1,3,-4},它的全部连续子数组为{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-4]},它们的元素之和为{2,-1,3,-4,1,2,-1,4,-2,0},其中的最大值为4。
A.O(logN)B.O(N)C.O(N*logN)D.O(N^2)
二、2.填空题(20题)21.已有定义:intx;,执行以下语句后的辅出结果是【】。
x=11/3;y=5;
printf("%%d,%%%d\n",x,y);
22.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。
23.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
24.与表达式a+=b等价的另一书写形式是______。
25.若有语句
inti=-19,j=i%4;
printf("%d\n",j),
则输出的结果是______。
26.若变量n中的值为24,则print函数共输出【】行,最后一行有【】个数。
voidprint(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if(!(i%5))
printf("\n");
}
printf("\n");
}
27.以下程序的运行结果是【】。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
printf("\n");}
28.常用的黑箱测试有等价类划分法、【】和错误推测法3种。
29.在面向对象方法中,类之间共享属性和操作的机制称为______。
30.诊断和改正程序中错误的工作通常称为【】。
31.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}
32.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
33.以下程序的输出结果是_______。
main()
{char*p[]={"BOOL","OPK","H","SP:,};
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
34.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i{i=x[m];p0=m;}
elseif(x[m]<j{j=x[m];p1:m;}
}
t=x[p0];x[p0]=x
35.fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。
#include<stdio.h>
#defineN100
intfun(int(*a)[N])
{
introw,col,max,min;
for(row=0;row<N;row++
{
for(max=a[row][0],col=1;col<N;col++)
if(【】)max=a[row][col];
if(row==0)min=max;
elseif(【】)min=max;
}
returnmin;
}
36.下列程序可以判断输入的年份是不是闰年。
#include
main()
{int【】,leap;
scanf("%d",&year);
if(year%4)
leap=0;
elseif(year%lO0)
【】;
elseif(year%400)
leap=0;
else
leap=1;
if(【】)
printf("%d年是闰年",year);
else
printf("%d年不是闰年\n",year);
}
37.设有以下结构体类型:
structst
{charname[8];
intnum;
floats[4];
}student[50];
并且结构体数组student中的元素都已有值。若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:
fwrite(student,【】,1,fp);
38.性结构中,队列的操作顺序是先进先出,而栈的操作顺序是______。
39.执行以下“for(i=1;i++<=4;i++);”语句后,变量i的值是()。
40.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
三、1.选择题(20题)41.下面的程序在编泽时产生错误,其出错原因是()。#include<stdio.h>main(){int1_case;floatprintF;printf("请输入2个数:");scanf("%d%f",&1_case,&printF);printf("%d%f\n",1_case,printF);}
A.定义语句出错,1_case不能作为变量名
B.定义语句出错,printF不能用作用户自定义标识符
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出1_case的值
42.有以下程序
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序执行后的输出结果是
A.x=4B.x=8C.x=6D.x=12
43.下列叙述中正确的是A.break语句只能用于switch语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.在switch语句中,不一定使用break语句
44.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。
A.n-1B.nC.n+lD.2n
45.以下程序的输出结果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
46.下列叙述中,不符合良好程序设计风格要求的是()
A.程序的效率第一,清晰第二B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息
47.有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);}
该程序的输出结果是
A.0.000000B.0.250000C.0.500000D.1.000000
48.下列程序的输出结果是______。#includemain(){charb[30],*chp;strcpy(&b[0],"CH");strcpy(6b[1],"DEF");strcpy(6b[2],"ABC");printf("%s\n",b);}
A.CHDEFB.DEFABCC.CDABCD.CHABC
49.栈和队列的共同点是()。
A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点
50.函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后
C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后
D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中
51.下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
52.设有语句:charstr1[]="string",str2[8],*ste3,*str4="string";,则下列不是对库函数strcpy的正确调用的是______。
A.strcpy(str1,"HELLOI");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLOY");
D.strcpy(str4,"HELLO4");
53.现有格式化输入语句,scanf("x=%d,sumy=%d,linez=%dL",&x,&y,&z),现在已知在输入数据后,x,y,z的值分别是12,34,45则下列的数据是正确的输入格式的是
A.12,34,45<Enter>
B.x=12,y=34,z=45<Enter>
C.x=12C,sumy=34,z=45<Enter>
D.x=12,sumy=34,linez=45<Enter>
54.若定义函数int*func(),则函数func的返回值为()。
A.一个实数B.一个指向整型变量的指针C.一个指向整型函数的指针D.一个整型函数的入口地址
55.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}执行后的输出结果是
A.8,6B.8,3C.6,4D.7,4
56.若有以下说明和语句intc[4][5],(*p)[5];p=c;能够正确引用c数组元素的是
A.p+1B.*(p+3)C.*(p+1)+3D.*(P[0]+2)
57.以下函数值的类型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不确定C.voidD.float
58.在C语言中,while和do…while循环的主要区别是()。
A.do…while的循环体不能是复合语句
B.do…while允许从循环体外转到循环体内
C.while的循环体至少被执行一次
D.do…while的循环体至少被执行一次
59.在深度为5的满二叉树中,结点的个数为
A.32B.31C.16D.15
60.用链表表示线性表的优点是()。
A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序和逻辑顺序相同
四、选择题(20题)61.有以下程序:
程序运行后的输出结果是()。
A.2,3,1,6,8,7,5,4,10,9,
B.3,4,2,7,9,8,6,5,11,10,
C.2,4,3,9,12,12,11,11,18,9,
D.1,2,3,6,8,7,5,4,10,9,
62.以下关于逻辑运算符两侧运算对象的叙述中正确的是()。
A.可以是任意合法的表达式B.只能是整数0或非0整数C.可以是结构体类型的数据D.只能是整数O或l
63.已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。
A.A.A,BB.A,68C.65,66D.65,68
64.
65.
66.
67.若有以下语句
68.
69.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}输出结果是()。A.28B.27C.42D.4l
70.当执行以下程序段时,()。x=-l:do{x=x*X;)while(!x);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误
71.设a=l,b=2,c=3,d=4,则表达式:“a<b?a:b<b?a:c<d?a:d”的结果为()。A.A.4B.3C.2D.1
72.
73.在一个C程序中
A.main函数必须出现在所有的函数之前B.main函数可以在任何地方出现
C.main函数必须出现在所有的函数之后D.main函数必须出现在固定位置
74.若程序中有以下说明和定义。
structabc
{
intx;chary;
}
structabcs1,s2;
则会发生的情况是
A.编译时出错B.程序将顺序编译、连接、执行
C.能顺序通过编译、连接,但不能执行D.能顺序通过编译,但连接出错
75.
下列程序的输出结果是()。
#include<stdio.h>
intfun(inta)
{intb=0;
staticintc=4:
a=c++:b++;
return(a):
main
{inta=2,i,c;
for(i=0:i<2;i++)
c=f(a+1):
printf("%d\n",c);
}
A.4B.7C.6D.5
76.
77.
78.(69)单个用户使用的数据视图的描述称为()
A.外模式
B.概念模式
C.内模式
D.存储模式
79.
下列程序的输出结果是()。
intfl(intx,inty){returnx>y?x:y;)
intf2(intx,inty){returnx>y?y:x;}
main
{inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);}
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
80.在HTML页面中哪些部分能够插入JavaScript?
A.<body>部分
B.<head>部分
C.<body>部分和<head>部分均可
D.<title>部分
五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:根据输人的三条边长(整形),判断能否构成三角形;构成的是等边三角形还是等腰三角形。若能构成等边三角形函数,返回3;若能构成等腰三角形函数,返回2;若构成=三角形函数,返回l;若不能构成三角形函数返回0。请修改函数fun()中的错误,得出正确的结果。注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。试题程序:
六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#defineM4#include<stdio.h>intfun(inta[][m]){}voidmain(){intarr[2][M]={5,8,3,45,76,-4,12,82};printf(“max=%d\n”,fun(arr));}
参考答案
1.D解析:结构化分析方法,数据流图,数据字典,软件需求规格说明书
评析,需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织,部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能.选项A)软件开发方法是在总体设计阶段完成的任务;选项B)软件开发工具是在实现阶段需完成的任务:选项C)软件开发费用是在可行性研究阶段需完成的任务。
2.Cscanf函数用于输入数据。第1个参数表示输入格式控制。本题变量a是double类型,使用格式控制符%If;变量b是float类型,使用%If;变量c是short类型,使用%hd,选项C正确。本题答案为C选项。
3.B
4.A根据题目中的定义可以知道sizeof(p),计算的是数组P中所有元素所占用的字节数,而不是ch”型数据所占字节数。
5.B解析:内模式(InternalSchemA)又称物理模式(PhysicalSchemA),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。
6.C
7.A
8.C\n本题考查逻辑值假,在程序中非0字符表示逻辑真,0表示逻辑假,所以答案选择C。
\n
9.C
10.B
11.B本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软什中的错误。本题的正确答案是选项\u3000B。
12.B
13.D解析:sizeof(float)是c语言内部规定的用于计算单精度型变量(float)在计算机的内存中所占用的字节数量的函数,返回一个整数值。
14.C转义字符中,八进制的表示形式为\\ddd,但是八进制中不能包含数字8,所以C选项不合法。故本题答案为C选项。
15.A
16.C
17.B解析:语句typedefstructS{intg;charh;}T的作用是用T作为struetS{intg;charh;)的简写,所以选B。
18.A
19.D本题考查leon(tp)函数,其功能是:测试所指的文件的位置指针是否已达到文件尾,如果已达到文件尾,则函数返回非0值;否则返回0,表示文件未结束。
20.B
21.%d%3
22.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函数的一般格式为:“printf(格式控制,输出表列)”。
23.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)
24.a=a+ba=a+b解析:a+=b与a=a+b等价,作用是把变量a的值加b后再赋给变量a。
25.-3-3解析:本题考核的知识点是运算符“%’的应用。该运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中“-19%4”的值为“-3”,所以说空格处应该填-3。
26.54
27.0240480,2,4\r\n0,4,8解析:本题主要考查for循环语句的使用以及静态局部变量的特点。
28.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。
29.继承继承
30.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。
31.
32.封装封装
33.
34.函数f()通过for循环逐个比较数组x中的元素,循环结束后,p0和p1分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值x[p0]和数组的最后一个元素x[n-1)交换位置,再将最小值x[p1]和第一个元素(x[0])进行交换,所以空白处应该填入x[0]。\r\n\r\n
35.a[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)max<min或min>max或max<=min或min>=maxa[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)\r\nmax<min或min>max或max<=min或min>=max解析:本题有两层for循环,主函数中定义了整型变量row、col、max和min,其中row用来存放外循环中的循环次数,col用来存放内循环中的次数,max记录每行中的最大值,min记录所有行中最大值中的最小值。在内循环中,首先给max赋初值为每行的第0列元素值,然后从第一列开始依次与max进行比较。如果大于max则将其值赋给max,当每一行循环结束,max记录了每一行的最大值。所以第一个空应该填a[row][col]>max或a[row][col]>=max。退出内循环,在第一次退出内循环时,将min赋初值为第0行的max,然后在每次退出内循环时,将min和每行的max比较,如果大于max,则将max值赋min,所以第二个空应该填max>min或mm>max,当退出外循环时,min为所有行中的最大值的最小值。
36.yearleap=1leap
37.sizeof(structst)*50sizeof(structst)*50解析:fwrite函数的一般调用形式为:fwrite(buffer,size,count,fp);其中:buffer是一个指针变量,是要输出数据的起始地址;size是要写的字节数;count是要写多少个size字节的数据项;fp是文件指针。
38.先进后出先进后出解析:队列和栈都是线性结构,但是不同之处在于队列的操作顺序是先进先出,而栈的操作顺序是先进后出。
39.6
40.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
41.A解析:C语言变量名可由数字,字母,下划线构成,但首字符不能为数字。
42.B解析:此程序考察了for循环和x++。对于大循环,有两个x++,其中循环3次,对于小循环,循环三次,但是运行了两次x++,所以最后结果是6+2=8。
43.D解析:break语句除了能用于switch语句外,还可以用于循环语句中,因此选项A不正确。在switch语句中,可以使用default来执行所有case均失配时的分支,也可以不使用default,此时若所有case均失配则跳出switch,因此选项B不正确。在switch语句中,每个case的作用就是标出一个执行的起点,当符合某个case时,程序就从该case所标出的起点处开始执行,若没有break语句中断执行的话,程序会一直执行到switch的最后一条语句,而不是碰到下一个case就跳出switch。虽然break与case的配对使用会让所有case分支互不重叠条理明确,但不配对使用在C语言中也是允许的。因此选项C不正确,应该选择D。
44.C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。
45.A解析:本题考查用于多分支选择的switch语句,其一般形式为:
switch(表达式)
{
case常量表达式1:语句1;
case常量表达式2:语句2;
case常量表达式n:语句n;
default:语句n+1;
}
其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句;如表达式的值与所有case后的常量表达式均不相等时,则执行default后的语句。
46.A解析:本题考查软件工程的程序设计风格。软件在编码阶段,力求程序语句简单、直接,不能只为了追求效率而使语句复杂化。除非对效率有特殊的要求,程序编写要做到清晰第一、效率第二。
人们在软件生存期要经常阅读程序,特别是在软件测试和维护阶段,编写程序的人和参与测试、维护的人都要阅读程序,因此要求程序的可读性要好。
正确的注释能够帮助读者理解程序,可为后续阶段进行测试和维护提供明确的指导。
所以注释不是可有可无的,而是必须的,它对于理解程序具有重要的作用。
I/O信息是与用户的使用直接相关的,因此它的格式应当尽可能方便用户的使用。在以交互式进行输入/输出时,要在屏幕上使用提示符明确提示输入的请求,指明可使用选项的种类和取值范围。经过上述分析可知,选项A是不符合良好程序设计风格要求的。
47.C解析:该题目测验考生对if...elseif结构的理解,比较简单。x的值满足x<10.0的关系,所以程序将执行y=1.0/x;语句,y的值应该等于0.5。最后,用printf函数输出时,%f的输出格式为小数点后保留6位。
48.C
49.C栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表:本题答案为C)。
50.C解析:strcat(s1,s2)是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制给s1字符串,要保证s1能容纳下连接或复制后的字符串。
51.C解析:本程序中的函数sort(inta[],intn)实现的功能是将数组a中的前n个数进行从大到小排序。sort(&a[1],7)是将数组中从a[1]到a[7]这7个数进行从大到小排序,其他数不变。
52.C
53.D解析:若在scarf的格式化控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。
54.B解析:本题考考查的是指针函数。指针函数定义的基本格式为:类型说明符*函数名()。其中,“类型说明符”表示返回的指针。值所指向的数据类型。
55.C解析:本题考查的知识点是运算符的优先级.在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由i*=k得i=2*2为4,k=k+i,即k值为6,m=k故m=6.所以4个选项中C正确。
56.D解析:本题中定义了一个二维数组c和一个指针数组p并初始化让它指向c,显然此时p中的各元素为地址,选项A中p+1,此时其中的1代表的长度是整个;维数组c的长度,故p+1将让p指向c数组后面的元素,故不能引用c数组中的成员,故选项A错误;同理选项B和选项C都不正确,选项D中p[0]指的是指针数组中的第一个元素的地址即c的首地址,此时的1的长度代表的是数组c中一行的长度,故p[0]+2代表的是第三行的首地址,而*(p[0]+2)将代表第三行的第一个元素的地址,所以,4个选项中选项D符合题意。
57.A解析:函数定义时如果数据类型默认,则默认为int。函数中如果有“retum(表达式):”语句,表达式的类型可能与函数的类型不一致,但它并不能改变函数的类型,实际情况是把表达式转换为函数值的类型作为返回值,因此本题的函数值类型是int。
58.D解析:本题考查while和do…while循环的区别。while循环的控制出现在循环体之前,只有当while后面的表达式的值为非零时,才可能执行循环体:在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。
59.B解析:二叉树有如下性质:深度为m的二叉树最多有2的m次方再减1个结点,也就是2m-1=25-1=32-1=31。由此可知答案为B。
60.C【解析】在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间要比顺序表还要多,在插入和删除数据元素时,只需要移动相应的记录指针即可,在链表中,数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定的,所以不能进行随机存取。
61.C题目中定义了一个结构体类型s,然后定义了一个结构体变量s并初始化,执行f函数后,将s中元素a的每个元素都加上i,这里需要注意最后一个元素没有加i,所以最终答案为C选项。
62.Ac语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是仨意合法的表达式,因此选择A)。
63.C在C语言中,用整型格式输出字符时,输出的是其ASCII码值。
64.C
65.A
66.B
67.A本题考核的知识点是结构体类型定义和结构体的基本概念。结构体类型的定义格式为:slxuct结构体名{成员说明列表};结构体变量的定义有3种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产业务年终盘点
- 大雪节气与农业
- 江苏省苏州市四市2024-2025学年九年级上学期期末语文试题(解析版)
- 广西防城港市2024-2025学年七年级上学期期末语文试题(解析版)
- 学术开题之旅
- 小孩姓名变更申请书
- 职工贫困补助申请书
- 导游业务-导游业务章节练习
- 初级银行管理-初级银行从业资格《银行管理》押题密卷3
- 初级公司信贷-银行专业初级《公司信贷》名师预测试卷1
- 医疗器械软件研究报告 适用嵌入式和桌面式 2023版
- 果园轨道运输施工方案
- 2024年江苏省高考政治试卷(含答案逐题解析)
- 联通欠费催缴业务项目实施方案
- 《学位论文选题与写作》教学大纲
- 《三国演义》题库单选题100道及答案解析
- 全国网约车出租车驾驶员公共题模拟考试题及答案
- 2024版年度中华人民共和国传染病防治法
- 2024电动牙刷行业洞察
- 总经理助理招聘面试题与参考回答(某大型央企)2025年
- 无人机实操技术课件:模拟器飞行
评论
0/150
提交评论