版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022-2023年陕西省渭南市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.深度为5的二叉树至多有C个结点。
A.16B.32C.31D.10
2.下列程序的输出结果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}
A.22B.76C.72D.62
3.有以下程序:#include<stdio.h>intf(intx):main{intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;)程序运行后的输出结果是()。A.1B.2C.4D.8
4.深度为5的二叉树至多有_____个结点。
A.16B.32C.31D.10
5.以下程序输出正确的是______。amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);arnovep(p,a,3);printf("%d%d\n",p[2],p[5];free(p);}
A.56B.25C.34D.程序错误
6.设x为int型变量,则执行以下语句后,x的值为()。x=10;x=x-=x-x;
A.10B.20C.40D.30
7.软件详细设计生产的图如右图:该图是()。
A.N—S图B.PAD图C.程序流程图D.E—R图
8.有以下程序:#includeMain(){charc1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是()。A.E,68.B.D.69C.E,DD.输出无定值
9.以下有4组用户标识符,其中合法的一组是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
10.有3个节点的二叉树可能有()种。
A.12B.13C.5D.15
11.线性结构是数据元素之间存在一种()。
A.一对多关系B.多对多关系C.多对一关系D.一对一关系
12.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序运行后的输出结果是()。A.AB.aC.HD.h
13.要声明一个有10个int型元素的数组,正确的语句是()。
A.inta[10];B.inta[2,5];C.inta[];D.int*a[10];
14.依次插入序列(50,72,43,85,75,20,34,45,65,30)后建立的二叉搜索树中,查找元素30要进行()次元素间的比较。
A.4B.5C.7D.10
15.已知二叉树后序遍历序列是dabeC,中序遍历序列是debaC,它的前序遍历序列是()。
A.aChedB.deCabC.deabeD.Cedba
16.要解决散列引起的冲突问题,最常用的方法是()
A.数字分析法、除留余数法、平方取中法
B.除留余数法、线性探测法、平方取中法
C.线性探测法、二次探测法、链地址法
D.除留余数法、线性探测法、二次探测法
17.有种数据结构叫跳跃列表(SkipList),它是一种基于并联的链表的随机化数据结构,其效率可比拟于二叉查找树(对于大于数操作需要O(logn)平均时间)。它是按层建造的。底层是一个普通的有序链表。每个更高层都充当下面列表的“快速跑道”,这里在层i中的元素按概率l/p出现在层i+1中。平均起来,每个元素都在p/(p-1)个列表中出现,而最高层的元素(通常是在跳跃列表前段的一个特殊的头元素)在O(logpn)个列表中出现。调节p的大小可以在内存消耗和时间消耗上进行折中。试分析在该数据结构中查找一个元素的平均时间复杂度。
A.O(logn)B.O(n)C.O(n*logn)D.以上都不正确
18.设已有定义“floatx;”,则下列对指针变量P进行定义且赋初值的语句中正确的是()。
A.int*p=(float)x;
B.float*p=&x;
C.floatp=&x;
D.float*p=1024;
19.下面程序的运行结果是()。
A.gaeB.gaC.LanguageD.有语法错
20.单链表中,增加一个头结点的目的是为了()。
A.使单链表至少有一个结点B.标识表结点中首结点的位置C.方面运算的实现D.说明单链表是线性表的链式存储
二、2.填空题(20题)21.下面程序的运行结果是【】。
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
22.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{inta,b,c;
a=25;b=025;e=0x25;
prinff("%d%d%d\n",a,h,c);
}
23.下面程序的输出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
fov(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n",k);}
24.以下程序的输出结果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
25.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
26.Jackson方法是一种面向【】的结构化方法。
27.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。
28.若a=10,b=20,则表达式!(a<b)的值是【】。
29.下面程序的功能是建立一个有3个结点的单循环链表,然后求各个结点数值域data中数据的和,请填空。
#include<stdio.h>
#include<stdlib.h>
structNODE{intdata;
structNODE*next;
};
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->data=100;q->data=200;r->data=300;
p->next=q;q->next=r;r->next=p;
sum=p->data+p->next->data+r->next->next【】;
printf("%d\n",sum);
}
30.表示条件:10<x<100或x<0的C语言表达式【】。
31.软件测试方法中,黑盒测试法和白盒测试法是常用的方法,其中黑盒测试法主要是用于测试【】。
32.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
33.下列程序的运行结果为【】。
enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};
main()
{enumweekdayworkday,weekend;
inti,a[8];
workday=tue;
weekend=sun;
printf("\ntueday=%dsunday=%d;",workday,week_end);
workday=sun+tue;
week_end=(enumweekday)3;
printf("tueday=%dsunday=%d;",workday,weekend);
a[sun]=sun;
a[mon]=mon;
a[tue]=rue;
a[wed]=wed;
a[thu]=thu;
a[fri]=fri;
a[sat]=sat;
for(i=l;i<=7;i++)printf("%d",a[i]);
}
34.实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学生,而一个学生只属于一个学校,则实体集学校与实体集学生之间的联系属于【】的联系。
35.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。
36.下列程序的运行结果为【】。
main()
{intx=2,y,z;
x*=3+1;
printf("%d,",x++);
x+=y=z=5;
printf("%d,",x);
K=y==Z;
printf{"%d\n",x);
}
37.下列程序的运行结果为【】。
main()
{inta,b,c,x,y,z;
a=10;b=2;
c=!(a%b);x=!(a/b);
y=(a<b)&&(b>=0);
z=(a<b)||(b>=0);
printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);
}
38.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。
39.下列程序的运行结果为【】。
main()
{
intx,y,z;
X=12;
y=012;
z=0l2;
printf("%d,%d,%d\n",x,y,z);
}
40.以下程序运行后的输出结果是______。
voidfun(intx,inty)
{
x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);
}
main()
{
intx=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
三、1.选择题(20题)41.线性表若采用链式存储结构时,要求内存中可用存储单元的地址()
A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以
42.若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是()。
A.6357B.6135C.1357D.691357
43.以下叙述中正确的是______。
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现的最晚,具有其他语言的一切优点
44.有以下语句,则对a数组元素的引用不正确的是inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
45.下述对C语言字符数组的描述中错误的是
A.字符数组的下标从0开始
B.字符数组中的字符串可以进行整体输入/输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.字符数组可以存放字符串
46.下列特征中不是面向对象方法的主要特征的是()。
A.多态性B.继承C.封装性D.模块化
47.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是()。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(i<=5);
48.有以下程序:main(){charstr[]="xyz",*ps=str;while(*ps)ps++;for(ps--;ps-str>=0;ps--)puts(ps);}执行后输出结果是()。
A.yzxyZB.zyzC.zyzD.xxyxyzxyz
49.在C语言中,函数返回值的类型最终取决于()。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
50.有下列程序:main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}执行后的输出结果是()。
A.5B.24C.32D.40
51.以下叙述正确的是______。
A.可以把define和if定义为用户标识符
B.可以把define定义为用户标识符,但不能把if定义为用户标识符
C.可以把if定义为用户标识符,但不能把define定义为用户标识符
D.define和if都不能定义为用户标识符
52.关掉计算机的电源后,其中存储的数据立即丢失的存储器是()
A.软盘B.硬盘C.ROMD.RAM
53.若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是
#include<stdio.h>
main()
{charc;
intv0=1,v1=0,v2=0;
do{switch(c=getchar())
{case′a′:case′A′:
case′e′:case′E′:
case′i′:case′I′:
case′o′:case′O′:
case′u′:case′U′:v1+=1;
default:v0+=1;v2+=1;}}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=13,v1=4,v2=12
54.表达式~0x11的值是()。
A.OxFFEEB.0x71C.0x0071D.0xFFE1
55.下面程序段的输出结果是()。inti=32770;printf("%d\n",i);
A.32769B.32767C.-32766D.输出不确定数
56.有以下程序:#include<stdio.h>main(){unsignedchara,b;a=413;b=4&3;printf("%d%d\n",a,b);}执行后的输出结果是()。
A.70B.07C.11D.430
57.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比铰次数为______。
A.2B.3C.4D.5
58.关系代数运算是以______为基础的运算。
A.关系运算B.谓词运算C.集合运算D.代数运算
59.计算机辅助教育的英文缩写是()
A.CADB.CAMC.CAID.CAT
60.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(1(--x));}程序的输出结果是()。
A.1B.20C.1-4D.死循环
四、选择题(20题)61.在结构化程序设计方法中,下面内聚性最弱的是()。
A.逻辑内聚B.时间内聚C.偶然内聚D.过程内聚
62.有以下程序:
A.xyyxB.yyyyC.yyxxD.yxyx
63.
64.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构
65.某循环队列的存储空间为Q(4:m),初始状态为front=lea/"=m。现经过一系列的人队操作和退队操作后,front=m,r6ar=m一1,则该循环队列中的元素个数为()。
A.m一1B.mC.1D.0
66.设有以下语句:inta=1,b=2,c;c=a^(b<<2);执行后,c的值为()。A.6B.7C.8D.9
67.
对两个数组a和b进行下列初始化:
charm[]="1234567";
charn[]={1,2,3,4,5,6,7};
则下列叙述正确的是()。
A.数组m与数组n完全相同B.数组m与数组n长度相同C.数组m比数组n长1D.数组m与数组n中都存放字符串
68.下列描述中正确的是()。
A.程序就是软件
B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体
D.软件是程序、数据和相关文档的集合
69.若有定义inta[2][3];,则对a数组的第i行第j列(假设i,j已正确说明并赋值.元素值的正确引用为()。
A.*(*(a+i.+j.B.(a+i.[j]C.*(a+i+j.D.*(a+i.+j
70.
71.
72.
73.
74.
75.
76.在C程序中有如下语句:char*func(intx,inty);它是()。
A.对函数func的定义。B.对函数func的调用。C.对函数func的原型说明。D.不合法的
77.
78.下列叙述中正确的是()。
A.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
B.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
C.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
D.顺序存储结构能存储有序表,链式存储结构不能存储有序表
79.
80.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);为使此程序段不陷入循环,从键盘输入的数据应该是()。A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是逐个比较str1,str2两个字符串对应位置中的字符,把比ASCⅡ值大或相等的字符依次存放到str数组中,形成一个新的字符串。
例如,str1中的字符串为fshADfg,str2中的字符串为sdAEdi,则str中的字符串应为sshEdig。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.
参考答案
1.C
2.C解析:函数slzeof(a)的功能是求出字符串a中的字符占用存储空间的大小,由于字符数组a有长度为7,所以i=7;函数strlen(a)的功能是:求出字符串a的长度。而每个字符串都以'\\0'为字符串的结束标记,所以j的值等于2。
3.D本题考查函数返回值作参数,最初n=1,f(n)=f(1)=2,将f(n)的结果代入第二个f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。
4.C
5.A解析:本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各元素分别为:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过mailoc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用函数amovep,使得实参p与形参p,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。
6.A执行x=x-=x-x语句可写成x=x-(x-x),可看出结果为10,故八选项正确。
7.CN—s图提出了用方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以8不对。E—R图是数据库中的用于表示E—R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。
8.A本题目中字符变量c1是字符'A'的ASCII码加上4,即69所对应的字符E'。字符变量c2是字符'A'的ASCII码加上3,即68所对应的字符D'。但是打印输出时,c1以%c的格式输出,所以是E,c2以%d的格式输出,所以是68。
9.C解析:选项A中for和case为C语言中的保留字,不能作为用户标志符,故A错误。选项B中的4d其开头的第一个为数字,而在C语言中规定,第一个字符必须为字母或者下划线,故B错误;选项D中void为C语言中的保留字,不能作为用户标志符,故D错误。所以,4个选项中选项C符合题意。
10.C
11.D
12.D多元运算符问号前面表达式为真,所以(a-A+a)赋值给a,括号里的运算是把大写字母变成小写字母,所以答案应为选项D。
13.A
14.B
15.D二叉树的遍历有3种:前序、中序和后序。①前序遍历访问根结点,然后按左右顺序遍历子结点;②中序首先遍历左子树,然后访问根结点,最后遍历右子树;③后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。本题根据后序和中序遍历的结果可以得出二叉树的结构,然后再对其进行前序遍历,正确答案选项为D。
16.C
17.A
18.B指针是用来存放地址的变量,定义指针变量的形式为:类型名*指针变量名。赋值时应将某个变量地址,如选项B中变量x的地址&x赋给指针变量。故本题答案为B选项。
19.A考查用指针来引用字符数组元素的方法。指针pl+k相当于指针pl向后移动了k个字符的位置,指针p2同理。
20.C
21.1-21,-2解析:题中外层while循环的循环条件是y--!=-1,即y>=0;内层do…while循环的循环条件是y--即y-->0,y>=1。注意:break和continue语句在循体中的作用。
22.252137252137解析:程序中变量a、b、c分别为十进制、八进制、十六进制的数25,按%d格式输出,a的输出值为25;b=025转换为十进制数(b=2*8+5=16+5=21)输出;c=0x25转换为十进制数(c=2*16+5=32+5=37)输出。输出结果为252137。
23.1212解析:本题通过第一个for循环将数组arr[0]=arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12:
24.1010解析:整型指针最初被赋的值是数组arr的头指针,即指向数组的第一个元素30,p++后,指针指向数组的下一个元素,即*p=arr[1]=25,在执行*(p+3)时,则相当于a[1+3],即10。因此,输出应为100。
25.封装封装
26.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
27.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。
28.00解析:已知a=10,b=20,所以逻辑表达式a<b的值为true,即为1,在这个表达式前面有一个逻辑运算符!,表示反操作,所以整个语句的值应当为false,即为0。
29.->next->data->next->data解析:主函数中前面大部分语句都是用来建立题中所述的链表的,我们只需要补充完整倒数第2条语句,实现题目要求的求3个结点之和就可以了。p->data是p所指结点中的数据;p->next->data是p的下一结点(q所指结点)中的数据。所以下划线位置只要填入->next->data就是剩下的r所指结点的数据了。因为链表是循环的,r->next->next->next的值就等于r,你甚至还可以填入->next->next->next->next->data,只要保证整个式子->next的个数是3的倍数都可以。
30.(X>10&&x<100)||x<0或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)或0>x||(10<x&&x<100)或(括号有无都可以)(X>10&&x<100)||x<0\r\n\u3000\u3000或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)\r\n\u3000\u3000或0>x||(10<x&&x<100)或(括号有无都可以)
31.软件外部功能软件外部功能
32.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)
33.tueday=2sunday=7;tueday=9sunday=3;1234567
34.一对多一对多解析:实体之间的联系可以归结为一对一、一对多与多对多。如果一个学校有许多学生,而一个教师只归属于一个学生,则实体集学校与实体集学生之间的联系属于一对多的联系。
35.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本题考查基本逻辑表达,“整数x的绝对值大于5”时值为“假”,即整数x的绝对值小于等于5,也就是整数x要大于等于-5且要小于等于5。这里“且”用“与(&&)”表示,所以C语言表达式为:(x>-5)&&(x<5)。
36.8141
37.c=1x=Oy=Oz=1
38.1对多(或1:N)1对多(或1:N)
39.12101812,10,18解析:本题定义了3个整型变量x、y、z,并分别用十进制数、八进制数、十六进制数为它们赋值。然后以十进制整型输出这3个变量。八进制数012的十进制表示为10,十六进制数0x12的十进制表示为18。此外输出函数格式控制中的“,”原样输出。
40.32233,2,2,3解析:主函数中首先定义了整型变量x和y,并分别给它们赋初值为2和3,接着调用fun()函数,fun()函数把实参x和y的值传给形式参数x和y,实参和形参不再有联系.在fun()函数中通过运算使x和y的值交换过来,所以fun()函数中的输出结果是“3,2”。fun()函数调用返回输出x和y依旧是原来的x和y,为“2,3”原因是变量作为形参传值的,对形参的修改并不影响对应的实参。所以最后输出为3,2,2,3。
41.D解析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据接点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
42.C解析:本题先将指针p指向二维数组ch[2][5],相当于p[0]='1234',p[1]='5678',通过双重for循环,是要将p中的字符隔一个输出一个,通过s=p[i][j]-\'0\'这条语句是将所要输出的字符转换成相应的十进制数。
43.C解析:计算机语言分为低级语言、汇编语言和高级语言,C语言属于高级语言,但并不是说C语言比其他语言高级,所以选项A错误;除了低级语言外,其他各种语言都必须编译成能被计算机识别的二进制数才能执行,选项B错误;C语言出现在1972年到1973年间,并不是出现最晚的语言,所以选项D也是错误的。
44.D解析:本题考查数组指针的应用。选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。
45.C解析:在C语言中,通过使用库函数允许对字符数组进行整体输入/输出。C语言不允许通过赋值运算符对字符数组整体进行赋值,对字符串使用符号:只能在说明字符数组并进行初始化的时候进行。字符串结束标志为'\\0',计算字符串的实际长度时。不计入串长。
46.DD。【解析】面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块化是结构化程序设计的特点。
47.B解析:选项B中for循环了5次,而每次循环的时候,都将p的值重新赋值为1后,再乘以当前数字i,所以最后的结果为5,显然不是5!的值,同样的分析可知选项A、选项C和选项D计算的都是5!。所以,4个选项中选项B符合题意。
48.C解析:执行while循环,使指针变量ps指向字符串“xyz”的字符串结束标志,然后执行for循环,先执行“ps--”,使ps指向字符“z”,故puts(ps)输出结果为“z”:再次执行“ps--”,使ps指向字符“y”,故puts(ps)输出结果为“yz”:再次执行“ps--”,使ps指向字符'x',故puts(ps)输出结果为“xyz”,退出循环。所以,C选项正确。
49.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。
50.C解析:在for循环体中,首先判断自变量i能否被5整除,然后再自加两次,最后判断i能否被8整除。当for循环执行到第30次时,i的值为30能被5整除,然后i经过两次自加1运算,值变为32,能被8整除,故执行“printf('%d',i);”语句,即输出32。本题的答案为选项C)。
51.B解析:if是C语言中的保留字,所以不能作为用户标识符;define是C语言中的预编译命令,由于C语言中的预编译命令都是以#开头,所以define可以作为用户标识符。
52.D
53.D解析:本题考查switch语句的掌握。必须撑握以下内容:首先应该明白switch语句的语法格式:
switch语句的语法格式为:
switch(表达式)
{
case常量表达式1:语句组1;
case常量表达式2:语句组2;
case常量表达式n:语句组n;
default:语句组n+1;
}
另外,以下几点关于switch语句的重点:
①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。
一般而言,在多分支结构中总会出现'意外'的情况,这时均可归入default程序段,作统一的处理。default标号是可选性的,不必每次都有,视需要而定。switch语句中还可以包含switch语句,形成switch的嵌套。
54.A解析:本题主要考查按位求反运算和整型常量的表示:①十六进制整型常量的形式是以数字0x或OX开头的十六进制字符串;②按位求反运算的规则是:将二进制表示的运算对象按位取反,即将1变0,将0变I。“Oxll”即0000000000010001,进行按位求反运算“~Ox11”后为1111111111101110,即0xFFEE。
55.C解析:在TurboC20环境中,int数据类型在内存中只占两个字节,其表示形式为二进制补码形式,所以范围是:-32768~32767,即10000000000000002~01111111111111112(首位为符号位)。而32770转换为二进制为10000000000000102其符号位为1故输出时为一个负数,而它的绝对值是求负后的结果,补码求负的方法是:先按位求反,再加一。所以求得的绝对值为01111111111111012+1=0111111111111102,即十进制的32766。综上所述,选项C正确。
56.A解析:&是按位“与”运算符,其运算规则是:参加运算的两个运算量,如果两个相应的位都为1,则该位的结果值为1,否则为0。|是按位“或”运算符,其运算规则是:两个相应位中只要有一个为1,该位的结果为1。4转换为二进制数为0100,3转换为二进制数为0011,则4|3=0111,即7,4&3=0000,即0。
57.C解析:二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与11比较的关键码分别为15,8,10,12四个。
58.C解析:关系代数是以集合代数为基础女发展起来的,它是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包括针对数据库环境专门设计的操作,包括对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。
59.C
60.C解析:本题考查do…while循环。①执行printf语句,x=x-4=1,输出1,判断while循环的控制条件,--x=0,则(!(-x))非零,循环条件成立,执行下一次循环;②执行printf语句,x=x-4=-4,输出-4,判断while循环的控制条件,--x=-5,则(!(--x))为零,循环条件不成立,结束循环。
61.C内聚按强度从低到高有以下几种类型:
(1)偶然内聚,如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。(2)逻辑内聚,几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。(3)时间内聚,如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。
(4)过程内聚,如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。
62.B本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高级管理者领导力发展计划
- 学校寝室公共设施清洁策略
- 艺术治疗师的职业发展之路探索报告
- 创新型机械产品市场分析
- 高科技企业研发的远程项目管理经验
- 养老产业:智慧养老服务项目开发计划书
- 企业税务筹划与风险控制方法
- 生物医药行业发展趋势与市场机遇分析
- 新浪微博大数据部门数据处理自动化及控制流程研究
- 代建项目的采购与供应商管理
- 2024年新改版青岛版(六三制)四年级下册科学全册知识点
- 《伤口换药技术》课件
- 鱼类性别控制技术研究进展专题培训课件
- 旧桥拆除专项施工方案
- 小学生古诗词大赛备考题库(300题)
- 化学预氧化简介
- GB/T 9978.2-2019建筑构件耐火试验方法第2部分:耐火试验试件受火作用均匀性的测量指南
- GB/T 17711-1999钇钡铜氧(123相)超导薄膜临界温度Tc的直流电阻试验方法
- 建设项目办理用地预审与选址意见书技术方案
- 研究生学术道德与学术规范课件
- (部编版)五年级语文(下册)语文园地一·口语交际一优质课件
评论
0/150
提交评论