版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年广东省茂名市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.有以下程序:#include<stdio.h>main(){charx,a=‘A’,b=‘B’,c=‘C’,d=‘D’;x=(a<b)?a:b;x=(x>c)?c:x;x=(d>x)?x:d;printf(“%c\n”,x);}程序运行后的输出结果是()。
A.DB.BC.CD.A
2.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
3.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。
A.存储媒体B.表现媒体C.传输媒体D.感觉媒体
4.当接受用户输入的含有空格的字符串时,应使用()函数。
A.gets()B.getchar()C.scanf()D.printf()
5.现在有16枚外形相同的硬币,其中一枚是假币,且已知假币比真币重量轻。先给定一架没有砝码的天平,问至少需要多少次称量才能找到这枚假币?
A.3B.4C.5D.6
6.下述关于数据库系统的叙述中,正确的是()。
A.数据库系统减少了数据冗余
B.数据库系统避免了一切冗余
C.数据库系统中数据的一致性是指数据类型一致
D.数据库系统比文件系统能管理更多的数据
7.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。
A.1B..0C.6D.2
8.设有说明:charw;intx;f1oaty;doublez;则表达式w*x+z-y值的数据类型为()。
A.floatB.charC.intD.double
9.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
10.若变量已正确定义,在“if(W)Printf(“%d\n”,k);”中,以下不可替代W的是()。
A.a<>b+cB.ch=getchar()C.a==b+cD.a++
11.在深度为5的满二叉树叶中,叶子结点的个数为()。
A.32B.31C.16D.15
12.索引属于()。
A.模式B.内模式C.外模式D.概念模式
13.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的运行结果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
14.设有下列二叉树:
对此二叉树先序遍历的结果是
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
15.请读程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若运行时从键盘上输入9876543210,则上面程序的输出结果是______。
A.a=98,b=765,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000
D.a=98,b=765.0,c=4321.0
16.以下有关宏替换的叙述不正确的是()。
A.双引号中出现的宏名不替换B.使用宏定义可以嵌套C.宏定义仪仪是符号替换D.宏名必须用大写字母表示
17.在inta=3,int*p=&a;中,*p的值是()
A.变量a的地址值B.无意义C.变量p的地址值D.3
18.设有如下定义structss{charname[10];intage;charsex;}std[3],*p=std;下列各输入语句中错误的是_______。
A.scanf("%d",&(*p).age);
B.scanf("%s",&);
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
19.链表不具有的特点是A.A.不必事先估计存储空间
B.可随机访问任一元素
C.插入和删除不需要移动元素
D.所需空间与线性表长度成正比
20.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法
A.对象B.数据结构C.数据流D.目标
二、2.填空题(20题)21.以下scanf函数调用语句中对结构体变量成员的引用不正确的是{charname[20];}pup[5],*p;
22.二叉树的遍历可以分为三种:前序遍历、()遍历和后序遍历。
23.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
24.软件工程的出现是由于【】。
25.数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。
26.以下程序的运行结果为【】。
main()
{inti,j,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
b[j][i]=a[i][j];
for(i=0;i<4;i++)
{for(j=0;j<3;j++)
printf("%-3d",b[i][j]);
printf("\n");
}
}
27.在先左后右的原贝吓,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、【】遍历和后序遍历。
28.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【】。
29.若有以下程序:
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)
continue;
if(a[i][j]==0)
break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
执行后的输出结果是【】。
30.数据库系统的主要特点为数据集成性、数据的高______和低冗余性、数据独立性和数据统一管理和控制。
31.下面程序的运行结果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
32.若有如下程序:
main()
{intx=4,y=3,x=2,t;
t=x<y<z;
printf("%d\n",t);}
则程序运行后的输出结果是【】。
33.下列循环的循环次数是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
34.算法复杂度主要包括时间复杂度和【】复杂度。
35.在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
36.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是【】。
structnode
{chardata;
structnode*next;}a,b
37.下面程序的功能是调用sub函数计算数组a中字符串的长度,请填空。
sub(chars[])
{intn;
for(n=0;【】n++);
return【】;
}
main()
{char*a;intk;
gets(a);
【】
printf("%d",k);
38.下列程序的运行结果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
39.数据流图的类型有【】和事务型。
40.下列程序的输出结果是【】。
main()
{inti;
for(i=1;i+1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
三、1.选择题(20题)41.以下程序运行后,输出结果是
#definePT5.5
#defineS(x)PT*x*x
#include<stdio.h>
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));}
A.49.5B.9.5C.22D.45
42.下面程序运行的结果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}
A.x=4B.x=0C.x=2D.x=3
43.以下能正确定义数组并正确赋初值的语句是
A.intN=5,b[N][N];
B.inta[1][2]={{1},{3}};
C.intc[2][1]={{1,2},3,4}};
D.intd[3][2]={{1,2},{34}};
44.有以下程序:main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序执行后的输出结果是()。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
45.以下叙述中不正确的是
A.在不同的函数中可以使用相同的名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
46.定义下列结构体(联合)数组:structst{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};执行语句printf["%d,%c",a[2].age,*(a[3].name+2))的输出结果为()。
A.15,AB.16,HC.16,AD.17,H
47.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");
B.switch((iht)x);{case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}
D.switch(a+b){case1:pfintf("*\n");casec:pfintf("**\n");}
48.以下叙述中错误的是______。A.C语言中对二进制文件的访问速度比文本文件快
B.C语言中,随机文件以二进制代码形式存储数据
C.语句FILEfp:定义了一个名为fp的文件指针
D.C语言中的文本文件以ASCII码形式存储数据
49.设有下列二叉树:[*]对此二叉树前序遍历的结果为A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
50.下列选项中,不能用作标识符的是A._1234_B._1_2C.int_2_D.2_int_
51.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是______。
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
52.有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);)程序运行后的输出结果是
A.12353514B.12353513C.12343514D.12343513
53.下列哪个是面向对象程序设计不同于其他语言的主要特点?
A.继承性B.消息传递C.多态性D.静态联编
54.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
55.设下面程序的可执行文件名为“prg.exe”,在该程序所在子目录下输入以下命令行:prghellogood<回车>则程序的输出结果是______。main()(intargc,char*argv[]){inti;if(argc<=0)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);}
A.hellogoodB.hgC.helD.hellogood
56.以下选项中可作为C语言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
57.有以下程序main(){inta=7,b=8,*p,*q,*r;p-&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);程序运行后的输出结果是
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
58.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
59.执行下列程序时输入456<空格>789<空格>123<回车>,输出结果是()。#include<stdio.h>main(){charm[80];intc,i;scanf("%c",&C);scanf("%d",&i);scanf("%s",&m);printf("%c,%d,%s\n",c,i,m);}
A.4.56789e+008B.4.78912e+006C.4,56,789,123D.4,56.789
60.下列程序的输出结果是()。#include<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}},(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}
A.8B.7C.12D.9
四、选择题(20题)61.
有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。
structnode
{intdata;structnode*next;)*p,*q,*r;
现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是()。
A.p->next=q->next;
B.P-next=P->next->next;
C.p->next=r;
D.p=q->next;
62.
63.有以下程序:
程序运行后的输出结果是()。
A.9,18B.8,11C.7,11D.10,14
64.
有以下程序:
fun(intx)
{intP;
if(x==0||x==l)return(3);
p=x-fun(x-2);
returnp;
}
main
{printf("%d\n",fun(7));}
程序执行后的输出结果是()。
A.7B.3C.2D.0
65.下面描述中错误的是()。
A.系统总体结构图支持软件系统的详细设计
B.软件设计是将软件需求转换为软件表示的过程
C.数据结构与数据库设计是软件设计的任务之一
D.PAD图是软件详细设计的表示工具
66.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0
67.
68.
69.
70.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计B.需求分析C.总体设计D.编程调试
71.下列选项中属于结构化程序设计原则的是()。
A.可封装
B.多态性
C.自下而上
D.逐步求精
72.
73.若k是int类型变量,且有以下for语句:
for(k=-1;k<O;k++)printf("****\n");
下面关于语句执行情况的叙述中正确的是()。、
A.循环体执行一次
B.循环体执行两次
C.循环体一次也不执行
D.构成无限循环‘
74.
75.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。A.A.-3B.9C.-12D.6
76.以下所列的C语言常量中,错误的是()。
A.0xFFB.1.2e0.5C.2LD.‘72’
77.下面的程序段运行后,输出结果是()。
A.9B.0C.不确定值D.18
78.
79.C语言中,合法的字符串常量是()。
A."M"B.\tC.100D.MUST
80.有以下程序
#include"stdio.h"
main()
{structdate
{intnumber;
floatfenzhi;
charname;
}stu;
printf("%d\n",sizeof(stu));
}程序的运行结果是
A.3B.5
C.7D.8
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。
例如,若输入“Ab,cD”,则输出“AB,CD”。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.规定输入的字符串中只包含字母和奉号。编写函数fun,其功能是:删除字符串中所有的。号。编写函数时,不得使用c语言提供的字符串函数。例如,字符串中的内容为,删除后,字符串中的内容应当是“ABCDEFG”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数缸的花括号中填入你编写的若干语句。试题程序:
参考答案
1.D题干中,字符变量a、b、c、d都是大写字母字符。C语言中,大写字母的ASCII值是按照字母顺序连续递增的,所以a小于b,b小于c,c小于d。则表达式“x=(a<b)?a:b”等价于“x=a”;“x=(x>c)?c:x”等价于“x=(a>c)?c:a”,等价于“x=a”;“x=(d>x)?x:d”等价于“x=(d>a)?a:d”,等价于“x=a”;所以程序输出x的值为A。故本题答案为D选项。
2.A
3.D媒体分为感觉媒体、表示媒体、存储媒体、传输媒体和表现媒体五种,“多媒体技术”中的媒体强调的是感觉媒体。
4.A
5.A
6.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。
7.C
8.D
9.D解析:C语言把文件看成是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称文本文件,它的每一个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
10.A选项A是非法的表达式,C语言中没有“<>”运算符。故本题答案为A选项。
11.C根据二叉树的性质及定义,一棵深度为k且有2k-1个结点的二叉树为满二叉树。满二叉树的叶子结点为最后一层的结点数,又根据满二叉树的性质,在满二叉树的第i层上至多有2i-1个结点。因此深度为5的满二叉树的叶子结点数为25-1=16个。
12.B解析:内模式(InternalSchemA)又称物理模式(PhysicalSchemA),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。
13.A本题由fun函数可知,执行for循环,当i=0时,b[0]=a[0][0]-a[0][3]=1-4=-3;当i=1时,b[1]=a[1][1]-a[1][2]=6-7=-1;当i=2时,b[2]=a[2][2]-a[2][1]=11-10=1;当i=3时,b[3]=a[3][3]-a[3][0]=16-13=3。主函数中输出y数组元素的值为:-3,-1,1,3。故本题答案为A选项。
14.C解析:二叉树的遍历分为先序、中序、后序三种不同方式。本题要求先序遍历遍历顺序应该为:访问根结点->先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDECF。
15.C解析:scanf()把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf()遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。
16.D解析:本题考查宏替换的规则。宏替换分为简单的字符替换和带参数的宏替换两类。使用宏时应注意以下几点:①定义仅仅是符号替换,不是赋值语句,因此不做语法检查;②为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。
17.D
18.B解析:在C语言中,结构体变量的引用有三种等价方式:
1、结构体变量成员名;2、(*p).成员名;3、p->成员名。
因为std.name是字符数组名,本身代表地址,其前面不应该使用“&”符号,所以选项B错误。
19.B链表是一种特殊的线性表,链表的存储结构与顺序存储结构不同,它的存储区域可以是任意的存储单元,对存储系统中零碎的存储部分具有更好的应用,在给其分配存储单元时,不必事先估计整个存储单元的空间大小;由于链表的元素是通过指针域的指针相连的,用链表存储数据时,对其进行插入和删除操作时,不需要移动其他元素,只需改变其直接前驱指针域,使其指向该结点,并将该结点的指针域修改为指向其直接后继结点即可。当然,不管是链表还是顺序存储,所需空间与线性表长度都成正比。在链式存储的链表结构中,由于后一结点数据被存储在哪里,只有通过前一结点的指针域才知道,因此,访问时只能是逐个访问,而不能实现随机访问。
20.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
21.D
22.中序中序解析:二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根
23.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素。本题应使用i的自增后置来实现。
24.软件危机的出现软件危机的出现
25.数据存储数据存储
26.159261037114812159\r\n2610\r\n3711\r\n4812解析:程序的功能是将一个二维数组的行和列元素互换,存到另一个二维数组中。
27.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前疗遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。
28.物理独立性物理独立性解析:数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为物理独立性。
29.5858解析:for循环语句中continue语句的作用是当数组元素值小于0时,结束本次j循环,break语句的作用是当数组元素值等于0时,结束j循环,所以for循环语句的功能是计算数组元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。
30.共享性共享性解析:数据库系统中的数据能被不同的应用程序使用,实现了数据的高度共享,从而降低了数据的冗余,这也是数据库的主要目的。
31.3030解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。
32.1
33.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。
34.空间空间解析:程序在计算机上运行时所耗费的时间由程序运行时所需输入的数据总量、对源程序进行编译所需时间、计算机执行每条指令所需时间、程序中的指令重复执行的次数等决定。习惯上常常把语句重复执行的次数作为算法运行时间的相对量度,称作算法的时间复杂度。算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。
35.自顶而下自顶而下
36.a.next=aba.next=ab解析:选项A)中,指针变量q保存的就是变量b的地址,选项B)中的p是指针变量,应该是p->next=&b;在选项D)中,用*运算符取出结构体变量,并且保存的就是b的地址。
37.s[n]!='\0';或s[n];nk=sub(a);s[n]!='\\0';或s[n];\r\nn\r\nk=sub(a);解析:函数sub()通过for循环计算字符串的长度,当字符串没有结束时循环,因此判断循环与否的条件是看字符串是否结束。故第1空应该填写s[n];或其他等价表达式。循环结束返回字符串长度值,循环变量n中累计了循环的次数即字符串的长度,故第2空应该填n。主函数中的空白处应该是一条调用函数sub()的语句,将字符串的首地址作为实参传递给形参,并将返回值赋值给变量k。故第3空应该填k=sub(a);。
38.111,1解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。
39.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
40.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i=3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1;执行第三次for循环时,i=5,if语句条件满足,所以执行printf('%d\\n',i),输出5,然后break语句跳出了for循环。
41.A解析:考查宏替换的使用。宏替换用'#define宏名宏体'的形式来定义。在进行编译预处理时,将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像函数那样要进行参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计算,因而本题中的S(a+b)进行宏替换后为PT*1+2*1+2=5.5*1+2*1+2=9.5。
42.C解析:表达式“x+=-z---y”等价于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。
43.D解析:选项A中,数组的长度使用了变量N,而在C中是不能用变量来定义数组的的长度的。在C语言中,给二维数组赋初值时,行数不能超过定义的行数,每行的初值个数不能超过定义时的列数。选项C数组的第二维下标缺省,而在C语言中,数组的第二维下标不能缺省。
44.B解析:本题中首先定义了3个整型变量x、y和z,并分别赋值为0、5和3,while循环的判定条件为z-->0&&++x<5,由于z的初值为3,所以当z--执行3次后,z-->O将不再成立,又由于x的初值为0,所以++x执行5次,++x<5将不再成立,而它们两个表达式的值为逻辑与的关系,故当z-->O不成立时整个表达式的值为假,因此该循环共执行了3次,即语句y=y-1:共执行了三次,但while循环的判定表达式却执行了四次,故最后输出的x、y、z的值分别为3,2,-1,所以,4个选项中选项B符合题意。
45.D解析:C语言在函数中说明的变量为局部变量,只在函数内起作用但不会影响到其他函数。所以在不同的函数中使用相同的函数名不代表是同一函数,A)项正确。在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,B)正确。在一个函数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用,C)正确。复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以D)项错误。注意:函数的书写风格。
46.C解析:本题主要考查结构体数组。a[2].age为结构体a[2]的age成员,即16。a[3].name为指向结构体a[3]的name成员的第一个元素的指针,即指向“Z”,(a[3].name+2)将指针后移两位指向第三个元素“A”,*(a[3].name+2))是取指针所指向地址的内容。
47.C解析:选项A)中case后面的表达式为浮点型,选项D)中case后面的表达式存在字符变量c,故选项A)、D)错误;在选项B)中,switch后面的表达式加了分号显然有错。
48.C解析:FILE是由系统定义的一个结构体类型,并用该类型来定义若干个FILE类型的变量,以便存放若干个文件。所以用FILE定义的变量必须是数组或指针,所以选项C中的“FILE\u3000\u3000fp;”改为“FILE*fp;”就对了。
49.B解析:所谓二叉树的前序遍历(DLR)是指在访问根结点、遍历左子树与遍历右子树这3者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,即“根-左-右”。故该二叉树的前序遍历结果为“ATBZXCYP”。注意:对于本题,若使用后序遍历和中序遍历的结果分别为"ZBTYCPXA"和"TZBACYXP"。
50.D解析:本题考核的知识点是用户的标识符。在C语言中,合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线,如:acd,d_ad、_adf124,_124等都是合法的标识符号.而2asdf、_sd/=都不是合法的标识符.在C语言中大写字母和小写字母被认为是两个不同的字符,如:ACD和acd是两个不同的标识符号。选项D中用下划线作为第一个字符,这是不合法的,故选项D不正确,所以,4个选项中选项D符合题意。
51.D解析:通常,引用一个数组元素可以用下标法,如a[P-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。
52.A解析:本题考查的是自加运算符的运用。自加运算符有前缀和后缀两种不同的形式,对于变量本身来说,无论是前缀还是后缀其作用的效果都是相同的,使变量值增1。但作为表达式来说却有着不同的值,前缀时自增表达式的值是变量增1,后的值,而后缀时自增表达式的值是变量增1前的值。本题程序开始定义了两个整型变量m和n,并分别初始化为12和34.第一条输出语句是按整型格式输出表达式m++和++n的值,根据前面所述,表达式m++的值为12,++n的值为35,所以第一次输出的字符串是'1235',执行完后m和n的值都自增1,分别是13和35.接下来第二条输出语句也是按整型格式输出表达式n++和++m的值,分别是35和14,故最终的输出应该为“12353514”,所以,4个选项中选项A符合题意。
53.A解析:继承是一个子类直接使用父类的所有属性和方法。它可以减少相似的类的重复说明,从而体现出一般性与特殊性的原则,这使得面向对象程序设计语言有了良好的重用性,也是其不同于其他语言的主要特点。故答案为A。
54.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。
55.B
56.A解析:C语言的常量分为整型常量、实型常量和字符型常量。本题中包含整型常量和实型常量。选项B)以0打头,应该属于八进制整数,而八进制整数只能用数字0~7表示,所以选项B)不合法;选项C)和D)从形式上看属于实型常量,但对于指数形式的实型常量,e(或E)之前必须有数字,且e后面的指数必须为整数,所以选项C)和D)都不合法;选项A)属于实型常量中正确的十进制小数形式。
57.C解析:本题考核的知识点是指针变量的基本应用。程序中定义了两个变量a和b,并分别赋初值为7和8,定义了三个指针变量p、q、r,并让指针p指向变量a,让Q指向变量b,然后通过一个中间指针变量r,使指针变量p和q互换,互换后p指向q所指的内容即b,Q指向开始p所指向的内容即a,因此最后输出的*p,*q的值为8,7,a,b的值没有改变仍为7,8,所以,4个选项中选项C符合题意。
58.D本题主要考查自加与自减运算符。在C语言中,自加与自减运算符具有以下性质:
(1)自加运算符“++”和自减运算符“--”的运算本身是一种赋值运算,其结果是使运算对象的值增1或减1。
(2)++、--运算符是单目运算符,运算对象可以是整型变量或字符型变量,也可以是实型变量,但不能是常量和表达式。
(3)自加、自减运算符无论是作为前缀还是后缀运算符,对于变量而言,其效果相同,但作为表达式来说,其值不同。
(4)++和--运算符的结合方向是“自右向左”。
(5)不要在一个表达式中对同一个变量进行多次自增或自减运算。可以知道本题正确的答案是D。
59.D
60.B解析:第1次执行for循环,p[1][0]=p[1][0]-1=3:第2次执行for循环,p[1][1]=p[1][1]-1=4:第3次执行for循环,p[1][2]=1,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。
61.D
\n本题考查链表结点的删除,q一>next中存放的是r所指结点的首地址,将r所指结点的首地址存于p--next中,则实现删除q所指点的功能,并保持链表连续,P所指点与r所指结点相连。
\n
6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《曲线论基本定理》课件
- 《制作人朱丹姿》课件
- 《沥青面层施工》课件
- 《持久API课堂》课件
- 《抗癫痫药物》课件
- 河南省许昌市魏都区2025年四下数学期末调研模拟试题含解析
- 河南省焦作市马村区2025年四年级数学第二学期期末学业水平测试模拟试题含答案解析
- 《正弦函数的性质》课件
- 数字化赋能提升运营效率实施方案
- 电商平台水产养殖产品营销策略指南
- GB/T 45021.1-2024光伏组件性能测试和能量评定第1部分:辐照度和温度性能测量和功率评定
- GB/T 7991.10-2024搪玻璃层试验方法第10部分:生产和贮存食品的搪玻璃设备搪玻璃层中重金属离子溶出量的测定和限值
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 柏拉图法则分析课件
- 汽轮机DEH简介和SGC顺控启动
- 治疗肝癌的中药药方17则
- 《普通心理学》彭聃龄版解析
- JJF 1449-2014崩解时限测试仪校准规范
- GA/T 1255-2016警用数字集群(PDT)通信系统射频设备技术要求和测试方法
- MR有载调压开关课件
- 王思斌社会学教程考研笔记
评论
0/150
提交评论