




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年湖北省黄冈市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.无向图中一个顶点的度是指图中与该顶点相邻接的顶点数。若无向图G中的顶点数为n,边数为e,则所有顶点的度数之和为()
A.n*eB.n+eC.2nD.2e
2.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是()
A.每个元素都有一个直接前件和直接后件
B.线性表中至少要有一个元素
C.表中诸元素的排列顺序必须是由小到大或由大到小
D.除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
3.下列叙述中正确的是()。
A.只能在循环体内和switch语句体内使用break语句
B.eotinue语句的作用是结束整个循环的执行
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用got0语句
4.若需要0(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择排序方法是()。A.快速排序B.堆排序C.归并排序D.直接插入排序
5.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是()。
A.10,01B.02,12C.102,10D.02,10
6.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是
A.data的每个成员起始地址都相同
B.变量data所占内存字节数与成员c所占字节数相等
C.程序段:data.a=5;printf(“%I'm”,data.C);输出结果为5.000000
D.data可以作为函数的实参
7.下列描述中,不是线性表顺序存储结构特征的是
A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系
8.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点
9.每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做()排序。
A.插入B.堆C.快速D.归并排序
10.以下编码方法中,()属于熵编码。
A.哈夫曼编码B.小波变换编码C.线性预测编码D.形成编码
11.
12.为了提高软件的独立性,模块之间最好是()。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合
13.若有定义“intk=7,x=12;”,则以下表达式值为3的是()。
A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5
14.有以下程序:#include<stdio.h>#include<strin9.h>main(){printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}程序运行后的输出结果是()。A.3B.8C.4D.9
15.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序运行的结果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
16.设有定义intn=0,*p=&n,**q=&p;,则下列选项中正确的赋值语句是
A.p=1;B.*q=2;C.q=p;D.*p=5;
17.
18.若已包括头文件<string.h>且已有定义chars1[18],s2={"ABCDE"}和inti,现要将字符串"ABCDE"赋给s1,下列语句错误的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.s1="ABCDE";
D.for(i=0;i<6;i++)s1[i]=s2[i];
19.数据结构在计算机内存中的表示是指()。A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系
20.设q1和q2是指向一个float型一维数组的指针变量,k为float型变量,则不能正确执行的语句是()。
A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);
二、2.填空题(20题)21.下列程序执行后输出的结果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
22.软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类划分法属于【】测试。
23.strcmp函数的功能是【】。
24.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
25.下列程序的运行结果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
26.要求使下列程序输出5个整数,请填空。
for(i=0;i<=______;printf("%d\n",i+=2));
27.以下程序运行后的输出结果是【】。
#include<stdio,h>
main()
{chara[]="Language",b[]:"Programe";
char*pl,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));
}
28.若运行时给变量x输入12,则以下程序的运行结果是【】;
main(){
intx,y;
scanf(""%d"",&x);
y=x>12?x+10:x-12;
printf(""%d\n"",y);
}
29.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
30.下面程序的功能是:输出100以内能被4整除且个位数为8的所有整数,请填空。main(){inti,j;for(i=0=();i++){j=i*10+8;if(j%4!=0)continue;printf("%d",j);}}
31.结构化程序设计的3种基本结构分别是顺序、选择和______。
32.以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们酌和值。和值通过形参传回主函数输出。请填空。
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{
inti,i,k,s;0;
for(i=0;i<N;i++)
{
k=0;
for(j=1j<M;j++)
if(a[k][i]>a[j][i])
k=j;
s+=______;
}
______=s;
}
main()
{
intx[M][N]={3,2,5,1,4,1,8,3),s;
SumColumMin(______);
printf(“%d\n”,s);
}
33.若有语句:
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是【】。
34.以下程序的运行结果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
35.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
36.以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。请填空。
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
37.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。
38.一个模块直接访问另一个模块的内容,称为【】藕合。
39.数据模型是数据库系统中用于提供信息表示和操作手段的结构形式。实际数据库系统中所支持的数据模型主要有层次模型、网状模型和【】3种。
40.软件工程研究的内容主要包括:【】技术和软件工程管理。
三、1.选择题(20题)41.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。
A.12B.11C.10D.编译出错
42.若一个外部变量的定义形式为staticintx;,那么,其中static的作用应该是______。
A.将变量存储在静态存储区B.使变量x可以由系统自动初始化C.使x只能在本文件内引用D.使x的值可以永久保留
43.执行下面的语句后,表达式++x>b?x:b-->++x?++b:x的值为______。intx=5,b=5;
A.6B.7C.8D.9
44.已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是():
A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
45.多媒体计算机系统的两大组成部分是()
A.多媒体功能卡和多媒体主机
B.多媒体通信罗件和多媒体开发工具
C.多媒体输入设备和多媒体输出设备
D.多媒体计算机硬件系统和多媒体计算机软件系统
46.有以下程序:main(){intX=3,y=2,z=1;printf("%d\n",x/y&~z);}
A.3B.2C.1D.0
47.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
48.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}
D.switch(a+b){case1:printf("*\n");casec:printf("**\n");}
49.在以下程序段中,已知血型数据占两个字节,则输出结果是unionun{inti;doubley;}structst{chara[10];unionunb;};printf("%",sizeof(structst));
A.14B.18C.20D.16
50.变量a所占的内存字节数是______。
A.4
B.5
C.6
D.8unionU{charst[4];inti;longl;};StructA{intc;unionUu;}a;
51.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
52.能正确表示C语言的字符常量的是______。
A.'\0x41'B.AC.'\0'D.\0
53.设x、y、t均为int型变量,则执行语句x=y=3;t=++x||++y;后,y的值为______。
A.不定值B.4C.3D.1
54.有以下定义语句
doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;
55.有以下程序:voidfun(char*a,char*b){a=b;(*a)++;}main(){charcl='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c,%c\n",c1,c2);}程序运行后的输出结果是()。
A.AbB.aaC.AaD.Bb
56.下面程序的输出结果为()。structst{intx;int*y;}*p;intdt[4]={10,20,30,40);structstaa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};main(){p=aa;printf("%d\n",++p->x);printf("%d|n",(++p)->x);printf("%d\n",++(*p->y));}
A.102020B.506021C.516021D.607031
57.对下列二叉树
进行中序遍历的结果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
58.若有代数式
(其中P仅代表自然对数的底数,不是变量),则下列能够正确表示该代数式的C语言表达式是()。
A.sqrt(abs(n^x+e^x))
B.sqrt(fabs(pow(n,x)+pow(x,e)))
C.sqrt(fabs(pow(n,x)+exp(x)))
D.sqrt(fabs(pow(x,n)+exp(x)))
59.表达式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8
60.以下选项中合法的C语言字符常量是
A.'\t'B.AC.67D.A
四、选择题(20题)61.
62.
63.
64.以下叙述中正确的是()。A.A.break语句只能用在循环体内和switch’语句体内
B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C.在循环体内使用break语句和continue语句的作用相同
D.break语句只能用于switch语句体中
65.以下能正确定义二维数组的是()。
A.inta[][3];
B.inta[][3]={2*3);
C.inta[][3]={};
D.inta[2][3]一{{1),{2},{3,4}};
66.有以下程序:
程序运行后的输出结果是()。
A.aegiB.dfhkC.abedD.abedefghijk
67.层次型、网状型和关系型数据库的划分原则是()。
A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式
68.下列关于C语言文件的叙述中正确的是()。
A.文件由一系列数据依次排列组成,只能构成二进制文件
B.文件由结构序列组成,可以构成二进制文件或文本文件
C.文件由数据序列组成,可以构成二进制文件或文本文件
D.文件由字符序列组成,其类型只能是文本文件
69.设有如下说明
typedefstruct
{intn;
charc;
doublex;
}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是
A.STDtt[2]={{1,’A’,62},{2,’B’,75}};B.STDtt[2]={1,"A",62,2,"B",75};
C.structtt[2]={{1,’A’},{2,’B’}};D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};
70.关于结构化程序设计原则和方法的描述错误的是()。
A.选用的结构只准许有一个入口和一个出口
B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C.不允许使用GOTO语句
D.语言中若没有控制结构,应该采用前后一致的方法来模拟
71.
72.有以下程序:
#include<stdio.h>
main()
{inta=2,b;
b=a<<2;printf("%d\n",b);
}
程序运行后的输出结果是()。
A.2
B.4
C.6
D.8
73.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。
A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1
74.函数fgetc的功能是从指定文件中读入一个字符,以下与其功能完全相同的函数是()。
A.freadB.fscanfC.fgetsD.getc
75.下面四个选项中,均是不合法的用户标识符的选项是()。
A.
B.
C.
D.
76.非空的循环单链表head的尾结点(由p所指向)应该满足
A.p->next==NULLB.p==NULLC.p->next=headD.p=head
77.有以下程序:
程序执行后的输出结果是()。
A.PrphsbnB.ProhsbnC.ProgsbnD.Program
78.
79.
80.若有定义语句:doublea,*P=&a;以下叙述中错误的是()。
A.定义语句中的*号是-个间址运算符
B.定义语句中的木号是-个说明符
C.定义语句中的P只能存放double类型变量的地址
D.定义语句中,P=&a把变量a的地址作为初值赋给指针变量P
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.输出1—100之间不能被12整除的数。
参考答案
1.D
2.D解析:线性表可以为空表,排除选项B。第一个元素没有直接前件,最后一个元素没有直接后件,故排除选项A。线性表的定义中,元素的排列没有规定大小顺序,故选项C也有误,只有D项是正确的。
3.A本题考查循环跳出的知识点:①break语句可以出现在switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行,执行contiune语句不会使整介循环终止;③循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用90t0语句或者break语句。
4.C
5.C解析:本题中,“printf('%2d,%2d\\n',x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是2。而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为102和10(y的初值012表示八进制整数12,等于十进制的10)。所以,4个选项中选项C符合题意。
6.C解析:本题考查的共用体的概念。共用体变量中的所有成员共享一段公共存储区,所以共用体变量所占内存字节数与其成员中占字节数最多的那个成员相等.本题定义的共用体中成员C所占的内存最多,因此选项B是正确的。由于共用体变量中的所有成员共享存储空间,因此变量中的所有成员的首地址相同,选项A是正确的。同结构体变量一样,共用体类型的变量可以作为实参进行传递,也可以传送共用体变量的地址,选项D也是正确的。在内存中,实数与整数的存放形式完全不一样,共用体的成员共用的是同一块内存,而不是同一个数值,因此选项C是错误的。
7.D解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。
8.C解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”(或“先进后出”)的线性表;而队列只允许在表的一端进行插入操作,在另一端:进行删除操作,是一种“先进先出”(或“后进后出”)的线性表。因此栈和队列的共同点是只允许在端点处插入和删除元素。
9.B
10.A
11.D
12.D在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,以有利于提高模块的独立性。耦合性与内聚性是模块独立的两个定性标准,是互相关联的。
13.A选项A中,表达式“x%=k”结果为5,表达式“k%=5”结果为2,5-2结果为3;选项B中,“k%=5”结果为2,“x%=2”结果为0;选项C中,“k%5”结果为2,“k-k%5”结果为5,“x%5”结果为2;选项D中,“k%5”结果为2,“k-k%5”结果为5,x%5结果为2。故本题答案为A选项。
14.B本题考查strlen函数和转移字符,strlen函数的功能是求字符串的长度,在本题中有“\”,C语言中“\”是转义字符,在计算长度时会将转义符以及后面的第一个字符作为1个长度进行计算,所以答
15.Dfun函数的功能是对数组a[]的元素从大到小进行排序。
16.D解析:选项A),B),C)的指针赋值表达方式都不正确,*p=5表达整数5放到指针p所指向的存储单元中。注意:通过指针引用一个存储单。
17.C
18.C解析:数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量,因此sl='ABCDE'的方法是错误的。
19.A数据结构在计算机内存中的表示指的是数据的存储结构。数据的存储结构是指数据的逻辑结构在计算机中的表示。数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。
20.B解析:选项A)是将指针q1和q2所指向的变量值相加,然后赋给k;选项B)中,float型数据和指针型数据之间不能进行赋值运算:选项C)中,是两个指针变量之间的赋值:选项D)中,是两个指针型变量所指向的两个float型数据相乘。
21.1212解析:本题的第一个for循环用于给数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。
22.黑箱或黑盒黑箱或黑盒解析:黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。
23.字符串的比较strcmp函数的原型是intstrcmp(char*s1,char*s2);功能是对s1和s2所指字符串进行比较,若s1<s2返回负数,若s1==s2返回0,若s1>s2返回正数。
24.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。
25.111,1解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。
26.88解析:本题考查基本的for循环条件,i+=2表示i每次递增2,从0开始,输出5个整数则需要的条件是i<=8。
27.gaegae解析:本题考查字符指针变量与字符数组。for循环语句共循环8次:
①当k=0时,*(Pl+0)='L',*(p2+0)='P',L!=P,没有输出。
②当k=1时,*(p1+1)='a',*(p2+1)='r',a!=r,没有输出。
③当k=2时,*(p1+2)='n',*(p2+2)='o',n!=o,没有输出。
④当k=3时,*(P1+3)='g',*(p2+3)='g',g==g,所以输出g。
⑤当k=4时,*(p1+4)='u',*(P2+4)='r',u!=r,没有输出。
⑥当k=5时,*(p1+5)='a',*(p2+5)='a',a==a,所以输出a。
⑦当k=6时,*(p1+6)='g',*(p2+6)='m',g!=m,没有输出。
⑧当k=7时,*(p1+7)='e',*(p2+7)='e',e==e,输出e。
⑨当k=8时结束循环,输出结果为:gae。
28.00解析:三目运算符的形式为(表达式1)?(表达式2):(表达式3)。当(表达式1)值为真时,返回(表达式2)的值;为假时,返回(表达式3)的值。题中因为x>12为假,所以结果为x-12,即为0。
29.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
30.i<10i<10解析:分析程序:当(i=0,1,2,…)时,“j=i*10+8”语句的运行结果是(8,18,28,…)个位数字为8的所有整数;题中要求是100以内的整数,所以i<10;“if(j%4!=0)continue;”语句的功能是当条件不能被4整除时,继续循环不执行操作,直到能被4整除时输出该数,所以输出的数满足条件100以内能被4整除且个位数为8。
31.重复(循环)重复(循环)解析:结构化程序设计包括3种基本的结构:顺序结构、选择结构和重复结构(循环结构),利用这3种结构就足以表达出各种其他形式结构的程序设计方法。其中利用循环结构,可以简化大量的程序执行。
32.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:本题考核的知识点是C程序的综合应用。本题中定义了一个函数SumColumMin(),该函数有两个参数,第一个参数为数组名,第二个参数为一个指针,用来访问存放数组中每列元素中的最小值的存储空间的变量。所以在主函数中调用SumColumMin()函数,应该将数组x和sum作为实参传给SumColumMin()中的形参,故第20个空格处应该填x,&s。在SumColumMin()函数中用了两重循环,用N记录数组的列,M记录数组的行。内循环共循环了M次,每循环一次将a[k][i]比较a[j][i](当k=0时,a[k][i]第一行第一列的值,然后将该值依次和第一列中的每个值比较,让a[k][i]表示较小的值,那么比较到最后一个元素后a[k][i]就是改列中最小元素的值),让k记录较小值元素的行下标,这样通过M次循环得到每列中的最小元素,然后退出内循环,继续执行该次外循环里的其他语句,即将刚求得第i列的最小值a[k][i]累加到s中,故第18个空格处应该填a[k][i],最后外循环共循环N次,将每列得最小值累加到s中,退出循环,然后让指针sum所指向得存储空间得值为s敲第19个空格处应该填*sum。
33.-3-3解析:%运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中“-19%4”的值为“-3”。
34.a=2b=1a=2,b=1解析:本题考查了switch结构的内容。C语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为case常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的case2:分支,最后a和b的值分别为2和1。
35.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
36.*pmax=*px*pmax=*px解析:首先将变量x的值放到max中,然后依次和变量y、z进行比较。若有比max大的数,将该数存放到max中,这样最后在max中的值就是x、y、z中的最大值。
37.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。
38.内容内容
39.关系模型关系模型
40.软件开发
41.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。
42.C解析:事实上,无论有无static修饰,外部变量都具有A、B和C三种特性。作为一种修饰,static仅是限制此类型外部变量韵引用范围:只能在定义它的文件范围内使用。
43.A
44.A解析:“%”是求余运算符或模运算符,“%”两侧均应为整型数据,选项A)中的x是double型数据。
45.D
46.D解析:本题考核的知识点是位运算符的应用。位与运算符“&”参加运算的两个数据,按二进位进行“与”运算,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0,取反运算符“~”,用来对一个;进制按位取反,即将0变1,1变0.在prinft()函数的表达式中,“&”前面表达式的值为1(3/2=1)表示为二进制为00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。z的二进制表示为00000001,取反后为11111110,最后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0,所以,4个选项中选项D符合题意。
47.C解析:栈是一种后进先出表,选项C中,先出栈的是3,说明此时栈内必然有1,2,由于1先于2进浅,所以1不可能在2之前出栈,故选项C这种出栈序列是不可能的。
48.C解析:switch后的括号中只能是整型或字符型表达式,选项A中使用的是浮点型变量x,故不正确。选项B在switch的括号后面多了一个分号,故也不正确。switch的case标号后只能是常量或常量表达式,而不能是变量,所以选项D也不正确。故应该选择C。
49.B解析:本题考查了结构体和共用体类型的特点。结构体变量的各个数据成员分别占据不同的存储空间,而共用体变量的数据成员共同占据一段存储空间。所以共用体un的变量占8个字节,而结构st中,变量所占据的存储空间为成员a和b的存储空间之和,所以答案为B。
50.C解析:结构体变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量a中成员c为整型占2个字节,共用体变量u最大长度为4个字节,故选C。
51.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
52.C解析:单引号中,大写或小写字母(只限一个)代表不同的字符常量,不能用双引号:单引号中,一个反斜线后跟一个指定的字符,表示一个特定的ASCⅡ字符,且反斜线后的八进制数可不用。开头,其后的十六进制数只能以小写的x开头。
53.C解析:++高于=和||,=的优先级最低。而||为自左向右的结合性,因此先计算表达式++x的值,x的初值为3,3+1=4,4为非零值,不必再计算||右侧表达式的值,即可得到整个逻辑表达式的值1,++y没有做运算,仍为原值3,所以,选项C正确。
54.C解析:选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。
55.A解析:经过分析得知fun()函数的功能:将形参a指向形参b所指的存储空间,然后使形参a指向变量的值加1。在主函数中定义了字符型指针变量p1和p2,并让它们分别指向c1和c2。将p1、p2作为实参传递给形参a、b。在fun()函数中,首先让指针变量p1指向p2,然后p1指向的存储空间的值加1,即让变量c2加1为b,而c1的值没有被改变,仍然是A。所以,4个选项中选项A符合题意。
56.C解析:第1个输出语句中由于->的优先级高于++,因此先取结构体的分量x,再对x的值加1,再输出。p的初值为结构体数组aa的首地址即a[0]的地址,a[0]的x分量值为50,加1后输出51。第2个输出语句中++p被括号括起来,括号的优先级与->相同,自左至右结合,因此先对p加1,再取p所指向的元素的x分量的值。p加1后p指向数组元素a[1],a[1]的x分量的值为60,输出60。第3个输出语句中括号的优先级高于++,因此先求括号中表达式的值,又由于->的优先级高于*,所以先取p所指向的数组元素的y分量的值,p所指向的元素为a[1],y分量的值为&dt[1]。&dt[1]是一个存储单元的地址,是数组dt第2个元素的地址值,再取该存储单元中的值为20,最后对20加1,输出21。选项C为所选。
57.A解析:二叉树的中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
58.C解析:n和e的x幂次方,要分别调用C语言的数学库函数doublepow(n,x)和doubleexp(x),因为这两个函数的返回值都为double型,对两者的和计算绝对值,调用库函数doublefabs(pow(n,x)+exp(x)),求出和的绝对值,再调用开平方函数doublesqrt(fabs(pow(n,x)+exp(x))),这样计算出的结果就是题干中表达式的值。
59.D解析:*、/和%的优先级要高于+和—,同级别的运算符从左至右运算。所以本题首先计算5/2和5%2,虽然我们都知道5/2的结果应该是2.5,但C语言中规定了两个整数相除的结果为整数,而且是截尾取整,所以5/2的结果是2;5%2表示的是5除以2所得的余数,其结果为1。计算完后,表达式变为3.6-2+1.2+1,从左至右计算不难得出结果为3.8,故应该选择D。
60.A解析:在C语言中,一个字符常量代表ASCII字符集中的一个小字符,在程序中用单引号把一个字符括起来作为字符常量,选项A)是一个转义字符常量,表示横向跳若干空格(代表“TAB”键);选项B)表示一个字符串;选项C)表示一个整型常量;选项D)表示一个标识符(代表一个变量),故本题答案为A)。
61.A
62.B
63.B
64.A本题主要考查的知识点是:break和IContinue语句。break语句可以用于swhitCh或循环体内,作用是跳/出switCh或循环体。Continue语句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新人教版必修2高中语文瓦尔登湖 同步练习1
- 前台接待续签合同范例
- 以工代赈劳务用工合同范例
- 公转私借款合同范例
- 劳动合同范例专业版
- 劳务外包合作合同范例
- 不给交易合同范例
- 全开发合同范例
- 中考作文素材:中考作文开头结尾集锦
- 2022年大连工人大学自考英语(二)练习题(附答案解析)
- 人员下班安全检查记录表
- 腹膜透析治疗的护理-课件资料
- 国家开放大学《调剂学(本)》形考任务1-4参考答案
- 幼儿园小班绘本:《一步一步_走啊走》 PPT课件
- 曾奇峰精神分析网络课程学习笔记第1-6讲
- 《基础和声学》试习题库(6套答案)
- 马克思主义政治经济学课程讲义
- 无人机培训教材ppt
- SolidWorks、CAD三维建模练习习题图
- HONEYWELLDCS操作手册
- 方正飞腾使用教程详解
评论
0/150
提交评论