




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年辽宁省营口市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.对线性表进行二分法检索,其前提条件是()。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
2.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
3.设有以下说明,则不正确的叙述是()。
A.A.arr所占的内存长度等于成员c的长度
B.arr的地址和它的各成员的地址都是同一地址
C.arr可以作为函数参数
D.不能在定义arr时对它初始化
4.在位运算中,操作数每左移两位,其结果相当于()。
A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4
5.程序运行后的输出结果是()。A.10B.30C.0D.64
6.广义表((a))的表尾是()。
A.aB.(a)C.((a))D.()
7.有以下程序:
A.CDEFB.ABEFC.ABCDD.CDAB
8.
9.有以下程序:#include<stdio.h>intf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(“%d\n”,d);}程序的运行结果是()。
A.7B.10C.8D.9
10.C程序的基本模块为()。
A.表达式B.标识符C.语句D.函数
11.有以下程序段:charc1,c2;for(c=‘0’,c2=‘9’;c1<c2;c1++,c2--)printf(“%c%c”,c1,c2);程序段的执行结果是()。
A.0123456789B.0918273645C.0123498765D.9876543210
12.栈通常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
13.
14.若有定义:typedefint*(*T[10])[10];Tb;则以下选项中所定义的a与上述定义中的b,其类型完全相同的是()。
A.int*(*a[10][10]);
B.int**a[10][10];
C.int*(a[10])[10];
D.int*(*a[10])[10];
15.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
16.
有如下程序:
main()
{intn[5]={0,0,0},i,k=2;
for(i=0;i&printf("%d\n",n[k]););
}
该程序的输出结果是()。
A.不确定的值B.2C.1D.0
17.
18.为了使模块尽可能独立,要求_____。A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
19.如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量().
A.为全局变量,在本程序文件范围内有效
B.为局部变量,只在该函数内有效
C.为局部变量,只在该复合语句中有效
D.定义无效,为非法变量
20.下列选项中不合法的十六进制数是()。
A."0"xffB."0"X11C."0"x1gD.”0”Xabc
二、2.填空题(20题)21.下面程序的运行结果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
22.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
23.以下程序用来输出结构体变量student所占存储单元的字节数,请填空。
structst
{charname[20];doublescore;
};
main()
{structststudent;
printf("studentsize:%d\n",sizeof(【】));
}
24.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为______。
25.下面程序的功能是:对字符串从小到大进行排序并输出,请填空。
#include"string.h"
#include"stdio.h"
sort(char*a[],intn)
{inti,j;
char*p;
for(j=1;j<=n-1;j++)
for(i=0;i<n-j;i++)
if(())>0)
{p=a[i];
a[i]=a[i+1];
a[i+1]=p;}
}
main()
{inti;
char*book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};
sort(());
for(i=0;i<6;i++)
printf("%s\n",book[i]);
}
26.类是一个支持集成的抽象数据类型,而对象是类的【】。
27.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控。
28.下列程序的运行结果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
29.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
30.下面程序执行后输出的结果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
31.fseek函数的正确调用形式是【】。
32.下列程序的输出结果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
33.下面程序的运行结果是【】。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx==3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
34.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
#include<string.h>
main()
{infi,j,[13];charstr[]={"1234567"};
for(i=0,j=strlen(str)[14];i<j;i++,j--)
{k=str[i];str[i]=str[i];str[j]=k;}
printf("%s\n",str);}
35.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
36.下列程序的运行结果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
37.已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在横线处填入正确内容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
38.下列程序的输出结果是16.00,请填空:
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
39.写出下列程序的输出结果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
40.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。
请填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstrl[100],str2[]="abcdefgh";
sstrcpy(strl,str2);
printf("%s\n",strl);
}
三、1.选择题(20题)41.设有下列二叉树:
对此二叉树先序遍历的结果为
A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA
42.设有如下程序:fun(float*p1,intn,float*p2,intm,float*s){inti;*s=0.0;for(i=0;i<n;i++)*s+=*p1++;for(i=0;i<m;i++)*s+=*p2++;}main(){floata[]={1.1,2.2},b[]={1.0,2.0,3.0),*s=a;fun(a,2,b,3,s);printf("%f\n",*s);}上面程序的输出结果是______。
A.8.2B.9.3C.3.3D.1.1
43.下列队列的描述中,正确的是()
A.队列属于非线性表B.队列在队尾删除数据C.队列按“先进后出”进行数据操作D.队列按“先进先出”进行数据操作
44.在软件开发中,下面任务不属于设计阶段的是______。
A.数据结构设计B.给出系统模块结构C.定义模块算法D.定义需求并建立系统模型
45.若有以下定义和语句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);则输出结果()
A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定
46.以下程序的输出结果是______。main(){chsrst[20]="bello\0\t\\";print("%d%f\n",strlen(st),sizeof(st));}
A.99B.520C.1320D.2020
47.若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf("i=%%d,j=%%d\n”,i,j);输出的结果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
48.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
49.表达式'8'-'2'的值是()。
A.整数6B.字符6C.表达式不合法D.字符8
50.函数的值通过rerurn语句返回,下面关于return语句的形式描述错误的是
A.return表达式;
B.return(表达式);
C.一个return语句可以返回多个函数值
D.一个return语句只能返回一个函数值
51.下列叙述中正确的是A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构
52.下面程序段的运行结果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));
A.67B.0C.字符'C'的地址D.字符'C'
53.办公自动化(OA)是计算机的一项应用,按计算机应用的分类,它属于()
A.数据处理B.科学计算C.实时控制D.辅助设计
54.以下关于C语言数据类型的叙述中正确的是()。
A.C基本数据类型包括:分为整型、实型、浮点型、字符型四种
B.实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式
C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
55.下面程序的输出结果是()main(){charx=040;print{("%d\n",x=x<<1);}
A.100B.160C.120D.64
56.设有如下的变量定义;inti=8,k,a,b;unsingedlongw=5;doublex=1.42,y=5.2则以下符合C语言语法的表达式是()
A.a+=a-=(b=4)*(a=3)B.x%(-3);C.a=a*3=2D.y=float(i)
57.已知inta=1,b=3则a^b的值为
A.3B.1C.2D.4
58.一个存储结点存放一个______。
A.数据项B.数据元素C.数据结构D.数据类型
59.下列程序的输出结果是_____。intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%\d\n",r);}
A.12B.13C.14D.15
60.下列程序的输出结果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p--b,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.*p=&a;scanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
四、选择题(20题)61.有以下程序:执行时输入:0<;回车>;后,则输出结果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.
62.(53)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是()
A.cedba
B.acbed
C.decab
D.deabc
63.
64.有以下程序:
#include<stdio.h>
main()
{inta;
scanf("%d",&a);
if(a++<9)printf("%d\n",a);
clscprintf("%d\n",a--);
}
程序运行时从键盘输入9<回车>,则输出结果是()。
A.10B.11C.9D.8
65.在黑盒测试方法中,设计测试用例的主要根据是()。
A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图
66.以下程序运行后的输出结果是()。
A.1B.2C.4D.8
67.
68.
69.
70.
71.若a是数直类型,则逻辑表达式的值是()。A.1B.0C.2D.不知道a的值,不能确定
72.
73.有以下程序:
程序执行后的输出结果是()。
A.2B.3C.7D.0
74.
75.
76.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
77.有下列程序:
main
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是()。A.A.45B.20C.25D.36
78.
有以下程序:
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main
{char*s1="abe",*s2="123":
swap(s1,s2);
printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是()。
A.123,abeB.abc.123C.1bc,a23D.321,cba
79.以下选项中,不能作为合法常量的是()。
A.1.234e05B.1.234e+5C.1.234e0.5D.1.234e0
80.下列程序的运行结果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写—个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67,则输出为asdafaaz67。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:
参考答案
1.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。
2.A解析:顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项A是正确的。两者都可以存储线性的、有序的逻辑结构,所以选项B、C不正确。顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项D不正确。
3.C本题主要考查联合体的内存使用:联合体所占用的内存空间为最长的成员所占用的空间,int占2个字节,char占1个字节,float占4个字节,所以arr所占的内存长度等于成员c的长度:arr的地址和它的各成员的地址都是同一地址;不能直接对arr赋值,即不能在定义arr时对它初始化:arr也不可以作为函数参数。
4.D解析:本题主要考查左移、右移对数据值的影响,左移n位相当于乘以2的n次幂,右移n位相当于除以2的n次幂。
5.D[解析]本题目中静态局部变量x,在静态存储区内分配存储单元。在程序整个运行期间都不释放。所以第一次循环s的值为2.第二次循环中,返回的x的值为4.所以s的值为8.第三次循环,返回的x的值为8.所以s的值为64.
6.D
7.A在函数funl()之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处开始到整个程序末结束。在函数funl()之内定义了两个变量a和b,并且分别初始化为字符ˊCˊ和ˊDˊ。
8.D
9.D在main函数中,调用f(a,b)函数返回3,调用f(a,c)函数返回6,所以外层调用f(f(a,b),f(a,c)),即调用f(3,6)函数返回9。故本题答案为D选项。
10.D
11.B程序定义两个字符变量c1和c2。for循环中,首先为c1赋值‘0’,为c2赋值‘9’,接着判断c1和C2的大小。由于字符变量可以作为整型数处理,数字字符的ASCII值按字面数值的大小顺序连续递增,因此c1小于c2成立,执行循环体输出“09”,再将c1自增1,c2自减1后,执行下一轮循环,直到c1=‘5’,c2=‘4’时,c1<c2不成立,循环终止。最终程序段输出:0918273645。故本题答案为B选项。
12.A解析:和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。注意:这3种运算方法在各种存储结构中的应用。
13.D
14.D“typedefint*(*T[10])[10];”使用typedef定义一种新类型名T,T的类型是二维数组指针,指向10个元素的数组。其中数组元素类型为int*[10],即数组的每个元素又是包含10个元素的数组,数组的元素是整型指针类型。故本题答案为D选项。
15.C本题输出两个结果,第一个是求字符串的长度。第二个是输出的字符串,数组的下标是从0开始的,所以当str取1的时候,应为“One*Dream!”。
16.D
\n本题for循环中,当i=0时,判断条件i&printf('%d\n',n[k]),此时i的值是0,输出n[k]的值也为0,0&0结果还是0,条件不成立,退出循环。所以最后输出结果为0。
\n
17.D
18.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
19.C
20.C十六进制是以“0x、0X”开头的字符串,字符串中只能含有0~9这l0个数字和a、b、C、d、e、f这6个字母。
21.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针变量a和b,a和b分别指向7实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依旧是原来的值。
22.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。
23.structst或studentstructst或student
24.物理独立性物理独立性解析:数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物理结构(包括存储结构、存取方式)改变时,不需要修改应用程序。而逻辑独立性是指当逻辑结构改变时,不需要修改应用程序。
25.strcmp(a[i]a[i+1])book6strcmp(a[i],a[i+1])book,6解析:此程序段的功能是使字符串从大到小进行排列。显然,第一空白处,是利用strcmp函数比较字符串a[i]和a[i+1]的大小,若不符合题意,就进行调换;main函数中,sort函数是对数组book中的字符串按从小到大进行排序,所以第二空白处填入“book,6”(6是指book所指向的字符串的个数)。
26.实例将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。
27.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。
28.282,8解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。这里程序初始时a=1,b=10,经过操作b-=a;a++后b=9,a=2,判断条件b--<O不成立,退出循环,但b的值被减1,因此结果为:a=2,b=8。
29.doublemax或externdoublemaxdoublemax或externdoublemax解析:本题中main()函数需要调用max()函数,在main()之前就需要声明函数max(),并且可以用extern说明符使变量的作用域扩充到需要用到它的函数,所以,填写doublemax(或externdoublemax)。
30.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。
31.fseek(文件指针位移量起始点)fseek(文件指针,位移量,起始点)解析:本题考查函数fseek的用法。fseek函数的调用形式为:
fseek(文件指针,位移量,起始点)
“起始点”用0,1或2代替,其中,0代表“文件开始”;1为“当前位置”;2为“文件末尾”。“位移量”指以“起始点”为基点,向前移动的字节数。ANSIC和大多数C版本要求位移量是long型数据,这样当文件的长度大于64k时不致出现问题。ANSIC标准规定在数字的末尾加一个字母L,就表示long型。
32.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。
33.3535解析:主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用swap(p,q),把p和q中的地址值传给了形参指针变量a和b,此时a和b分别指向了主函数中的变量x和y。在函数swap()中交换了指针变量a和b的值,但并没有改变a和b所指向的内容,所以函数调用返回后x和y依旧是原来的值。故运行结果为35。
34.颠倒一个字符串中的字符,就是首尾对应的元素两两交换。简单地可用两个游标变量i和j,i是前端元素的下标,j是后端元素的下标,交换以这两个变量值为下标的元素str[i]和str[j]。开始时,i的值为0,j的值为字符串末元素的下标(字符串长度减1)。每次交换后,i增1,j减1。继续交换的条件是str[i]位于str[j]的前面,即i<j字符串末元素的下标是它的长度减1,所以在第二个空框处应填入-1。程序为了交换str[i]和str[j],使用了变量k,该变量应在程序的变量定义部分中—起定义,所以在第—个空\r\n\r\n
35.t*10或10*tt*10或10*t解析:本题要求累加一系列有规律的数,从输出结果来看,s保存的是最终结果,而s在循环体中,每次累加一个t,则说明t在5次循环中分别等于1.12、123、1234、12345;而t每次循环等于“填空内容”加上循环变量i,又因为i在5次循环中分别等于1、2、3、4,5,所以t每次循环要加的“填空内容”应分别为0、10、120,1230,12340,这一系列值正好是前一次t的值的10倍.所以“填空内容”应是t*10。
36.22132,2,1,3解析:本题考查++,--运算符和条件运算符的使用。
“表达式1?表达式2:表达式3”的功能是:表达式1的值若非0,则计算表达式2的值,且表达式2的值为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。
本题中,x=1,y=2时,x<y成立,输出y的值2;y=2,z=3时,z<y不成立,执行y++,输出2后y值增1,所以最后一个输出x的值不变为1,y的值为增加后的3。
37.structlink*headstructlink*head解析:考查用指针引用结构体变量成员数据的方法。因为本题中是用结构体变量构成了链表,所以要从链表头节点,逐个节点的引用结构体的数据域,需要有指向结构体变量的指针,依次指向各个节点,即p=p->next,而用指针引用结构体成员数据的方法为:p->data。
解析:本题,已知结果z=16.00,即16.0=a/2+b*x/y+1/2,分别把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因为a=9,a是整型,所以9/2的值在没有进行类型转换时,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
39.333,3解析:本题在while(n++<=1)语句后,直接加了分号,说明如果while()的条件为真时,该循环什么都不做:n++是先取n的当前值和1做比较,然后再将n加1。第一次循环,n=0时,循环条件n++=<1成立,执行循环,然后得到n=1。第二次循环,n=1时,循环条件n++=1<=1成立,执行循环,然后得到n=2。第三次循环,n=2时,循环条件n++=2<=1不成立,不执行循环,但在判断循环条件时仍将n加1,得到n=3.退出循环后执行printf语句,第二个printf语句输出n++,是先输出n的当前值3,然后再将n加l,即程序结束后得到n=4,但输出的是3。
40.*t++或*(t++)*t++或*(t++)解析:主函数中定义了两个字符型数组strl和str2,并且给str2赋初值“abc&fgh”,接着调用函数sstrcpy(str1,str2),将字符串str2的值赋给str1。在函数sstrcpy(*s,*t)中,用了一个while循环,每循环一次将形参指针t所指的字符赋给形参指针s所指向的存储空间,然后指针s和指针t都下移到下一个元素。所以空格处应该填*t++或*(t++)。
41.C解析:二叉树的遍历分为先序,中序、后序三种不同方式.本题要求先序遍历,其遍历顺序应该为:访问根结点->,先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDECF,故答案为C。
42.A解析:实参指针变量s指向数组a的第一个元素,在函数fun中首先将s所指数组a的第一个元素赋值为0.0,然后将数组a和b中的元素值依次累加到数组a的第一个元素中。
43.DD)【解析】队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。队列的操作数是依据先进先出的原则进行的。因此队列亦称作先进先出的线性表,或后进后出的线性表。
44.D【解析】数据结构设计、给出系统模块结构以及定义模块算法都属于设计阶段,而定义需求并建立系统模型属于分析阶段。
45.B
46.B解析:C语言中字符串是以'\\0'字符结束的,且strlen()函数计算的是\\0字符前的所有字符的个数。本题中strlen(st)应为5。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof()函数是计算变量或数组的所分配到的内存空间的大小。所以本题的sizeof(st)为20。
47.B解析:本题考查printf函数的格式。在printf函数中,如果格式说明符中有两个%说明,则将第1个%后面的字符原样输出,并不输出其对应的变量值。
48.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。
49.A解析:在C语言中,虽然字符都是变为其对应的ASCII码值来参与算术运算的,但字符间的相对位置关系还是不变的,字符8和字符2的ASCII码值相差仍是6。
50.C解析:return语句中的表达式的值就是所求的函数值,此表达式值的类型必须与函数首部所说明的类型一致。如果类型不一致,则以函数值的类型为准,由系统自动进行转换。一个return语句只能返回一个值。
51.A根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:1,有且只有一根节结点,2,每一个结点最多有一个前件,也最多有一个后件,则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。
52.B解析:考查指向字符串的指针变量。在该题中,指针变量p指向的应该是该字符串中的首地址,p+3指向的是字符串结束标志'\\0'的地址,因而。(p+3)的值为0。
53.A
54.C解析:C基本数据类型包括:分为整型、实型、枚举型、字符型四种,实型就是浮点型,实型数据只有十进制,没有2,8,16进制表达,在C语言中没有定义逻辑类型,而是一般用0代表假,用非零代表真。
55.D
56.A
57.C解析:^是按位异或运算,如果对应位不同则结果为1,相同则为0。
58.B
59.D
60.D解析:double*p,a;语句表示定义了一个指向双精度型的指针变量p和双精度型变量a,而语句p=&a表示将变量a的地址赋给指针变量p;scanf('%1f',p)表示用键盘输入的数赋给指针变量p所指向的地址单元中。scanf()函数要求在输入double型数据,格式控制符必须用%1f(或%1e)。否则,数据不能正确输入。所以选项D)为正确答案。
61.C”anf(”%c”,&c),输入的字符,题目中输入了0,字符0,对应于ASCIl码为48,因此for循环中,i的范围从0~5,均小于48,if条件不成立,直接执行下一条语句,执行语句prinff,因此得到的结果是0,1,2,3,4。故答案为C选项。
62.A注:前提要掌握三种遍历的方法
63.A
64.A\n本题考查简单的运算符操作.当输入9时,(a++<9)为假,所以执行else语句中的printf('%d\n',a--),在执行时此时a经过a++操作a=10,所以答案为A。
\n
65.A【答案】:A
【知识点】:黑盒测试
【解析】:黑盒测试也称功能测试或数据驱动测试,它完全不考虑程序内部的逻辑结构和内部特征,只着眼于程序的外部结构,主要用来检查程序功能是否按照需求规格说明书的规定正常使用。故选A。
66.D第一次调用的是最内层的f(n),即f(1)返回值是2。第二次调用中间的f(f(n)),即f(2)返回值是4。最后调用最外层的f(f(f(n))),即r(4)返回值是8。最后打印输出。
67.D
68.B
69.D
70.B
71.A无论a的值为多少,(a==1)和(a!=1)总会有一个成立,两者或运算,则值为真。为1。
72.C
73.A因为fun(intx)是一个递归函数,所以主函数中fun(7)经过3次递归调用,其过程可以描述为“fun(7)=7一fun(5)=7一(5一fun(3))=7一(5一(3一fun(1)))=7一(5一(3—3))=7—5=2”,所以最后输出结果为2。因此.A选项正确。
74.C
75.B
76.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。
77.C在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。
78.C
\n本题考查swap函数,它的作用是把x、Y所指的内容互换,其他的不变,因此当执行完调用函数后,仅仅a与1互换,其他的没有变。
\n
79.CC语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项c)中,e(E)后面的指数是小数,所以不合法。
80.D本题考查"drhile循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,X++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,x=2,y-1=1,循环条件成立,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<X成立,执行break语句,退出循环。结果为D。
81.(1)错误:p=j
正确:p=j;
(2)错误:p=j;
正确:p=i;
【解析】根据C语言的语法规则.每一条语句都要以分号结束。因此,“p=j”后要加上分号“;”。每次比较后要把小的下标赋值给p,因此,“p=j;”应改为“p=i;”。
82.[答案][解析]题目要求删除空格,也就是重新保存空格以外的其他字符。通过循环删除字符串中的每一个空格,将非空格字符进行重新保存。2021-2022年辽宁省营口市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.对线性表进行二分法检索,其前提条件是()。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式方式存储,并按关键码值排好序
D.线性表以链式方式存储,并按关键码的检索频率排好序
2.下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C.顺序存储结构能存储有序表,链式存储结构不能存储有序表
D.链式存储结构比顺序存储结构节省存储空间
3.设有以下说明,则不正确的叙述是()。
A.A.arr所占的内存长度等于成员c的长度
B.arr的地址和它的各成员的地址都是同一地址
C.arr可以作为函数参数
D.不能在定义arr时对它初始化
4.在位运算中,操作数每左移两位,其结果相当于()。
A.操作数乘以2B.操作数除以2C.操作数除以4D.操作数乘以4
5.程序运行后的输出结果是()。A.10B.30C.0D.64
6.广义表((a))的表尾是()。
A.aB.(a)C.((a))D.()
7.有以下程序:
A.CDEFB.ABEFC.ABCDD.CDAB
8.
9.有以下程序:#include<stdio.h>intf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(“%d\n”,d);}程序的运行结果是()。
A.7B.10C.8D.9
10.C程序的基本模块为()。
A.表达式B.标识符C.语句D.函数
11.有以下程序段:charc1,c2;for(c=‘0’,c2=‘9’;c1<c2;c1++,c2--)printf(“%c%c”,c1,c2);程序段的执行结果是()。
A.0123456789B.0918273645C.0123498765D.9876543210
12.栈通常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
13.
14.若有定义:typedefint*(*T[10])[10];Tb;则以下选项中所定义的a与上述定义中的b,其类型完全相同的是()。
A.int*(*a[10][10]);
B.int**a[10][10];
C.int*(a[10])[10];
D.int*(*a[10])[10];
15.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20][{"One*World","One*Dream!"},*p=str[1];prinft("%d,",strlen(p));printf("%s\n",p);}程序运行后的输出结果是()。A.9,0ne*WorldB.9,0ne*Dream!C.10,One*Dream!D.10,Ome*World
16.
有如下程序:
main()
{intn[5]={0,0,0},i,k=2;
for(i=0;i&printf("%d\n",n[k]););
}
该程序的输出结果是()。
A.不确定的值B.2C.1D.0
17.
18.为了使模块尽可能独立,要求_____。A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
19.如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量().
A.为全局变量,在本程序文件范围内有效
B.为局部变量,只在该函数内有效
C.为局部变量,只在该复合语句中有效
D.定义无效,为非法变量
20.下列选项中不合法的十六进制数是()。
A."0"xffB."0"X11C."0"x1gD.”0”Xabc
二、2.填空题(20题)21.下面程序的运行结果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
22.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
23.以下程序用来输出结构体变量student所占存储单元的字节数,请填空。
structst
{charname[20];doublescore;
};
main()
{structststudent;
printf("studentsize:%d\n",sizeof(【】));
}
24.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为______。
25.下面程序的功能是:对字符串从小到大进行排序并输出,请填空。
#include"string.h"
#include"stdio.h"
sort(char*a[],intn)
{inti,j;
char*p;
for(j=1;j<=n-1;j++)
for(i=0;i<n-j;i++)
if(())>0)
{p=a[i];
a[i]=a[i+1];
a[i+1]=p;}
}
main()
{inti;
char*book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};
sort(());
for(i=0;i<6;i++)
printf("%s\n",book[i]);
}
26.类是一个支持集成的抽象数据类型,而对象是类的【】。
27.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控。
28.下列程序的运行结果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
29.请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
30.下面程序执行后输出的结果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
31.fseek函数的正确调用形式是【】。
32.下列程序的输出结果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
33.下面程序的运行结果是【】。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx==3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
34.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
#include<string.h>
main()
{infi,j,[13];charstr[]={"1234567"};
for(i=0,j=strlen(str)[14];i<j;i++,j--)
{k=str[i];str[i]=str[i];str[j]=k;}
printf("%s\n",str);}
35.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
36.下列程序的运行结果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
37.已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请在横线处填入正确内容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
38.下列程序的输出结果是16.00,请填空:
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
39.写出下列程序的输出结果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
40.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。
请填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstrl[100],str2[]="abcdefgh";
sstrcpy(strl,str2);
printf("%s\n",strl);
}
三、1.选择题(20题)41.设有下列二叉树:
对此二叉树先序遍历的结果为
A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA
42.设有如下程序:fun(float*p1,intn,float*p2,intm,float*s){inti;*s=0.0;for(i=0;i<n;i++)*s+=*p1++;for(i=0;i<m;i++)*s+=*p2++;}main(){floata[]={1.1,2.2},b[]={1.0,2.0,3.0),*s=a;fun(a,2,b,3,s);printf("%f\n",*s);}上面程序的输出结果是______。
A.8.2B.9.3C.3.3D.1.1
43.下列队列的描述中,正确的是()
A.队列属于非线性表B.队列在队尾删除数据C.队列按“先进后出”进行数据操作D.队列按“先进先出”进行数据操作
44.在软件开发中,下面任务不属于设计阶段的是______。
A.数据结构设计B.给出系统模块结构C.定义模块算法D.定义需求并建立系统模型
45.若有以下定义和语句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);则输出结果()
A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定
46.以下程序的输出结果是______。main(){chsrst[20]="bello\0\t\\";print("%d%f\n",strlen(st),sizeof(st));}
A.99B.520C.1320D.2020
47.若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf("i=%%d,j=%%d\n”,i,j);输出的结果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
48.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表
49.表达式'8'-'2'的值是()。
A.整数6B.字符6C.表达式不合法D.字符8
50.函数的值通过rerurn语句返回,下面关于return语句的形式描述错误的是
A.return表达式;
B.return(表达式);
C.一个return语句可以返回多个函数值
D.一个return语句只能返回一个函数值
51.下列叙述中正确的是A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构
52.下面程序段的运行结果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));
A.67B.0C.字符'C'的地址D.字符'C'
53.办公自动化(OA)是计算机的一项应用,按计算机应用的分类,它属于()
A.数据处理B.科学计算C.实时控制D.辅助设计
54.以下关于C语言数据类型的叙述中正确的是()。
A.C基本数据类型包括:分为整型、实型、浮点型、字符型四种
B.实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式
C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
55.下面程序的输出结果是()main(){charx=040;print{("%d\n",x=x<<1);}
A.100B.160C.120D.64
56.设有如下的变量定义;inti=8,k,a,b;unsingedlongw=5;doublex=1.42,y=5.2则以下符合C语言语法的表达式是()
A.a+=a-=(b=4)*(a=3)B.x%(-3);C.a=a*3=2D.y=float(i)
57.已知inta=1,b=3则a^b的值为
A.3B.1C.2D.4
58.一个存储结点存放一个______。
A.数据项B.数据元素C.数据结构D.数据类型
59.下列程序的输出结果是_____。intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%\d\n",r);}
A.12B.13C.14D.15
60.下列程序的输出结果是()。#include<stdio.h>voidmain(){intb[6]={2,4,6,8,10,12};int*p--b,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.*p=&a;scanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
四、选择题(20题)61.有以下程序:执行时输入:0<;回车>;后,则输出结果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.
62.(53)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是()
A.cedba
B.acbed
C.decab
D.deabc
63.
64.有以下程序:
#include<stdio.h>
main()
{inta;
scanf("%d",&a);
if(a++<9)printf("%d\n",a);
clscprintf("%d\n",a--);
}
程序运行时从键盘输入9<回车>,则输出结果是()。
A.10B.11C.9D.8
65.在黑盒测试方法中,设计测试用例的主要根据是()。
A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图
66.以下程序运行后的输出结果是()。
A.1B.2C.4D.8
67.
68.
69.
70.
71.若a是数直类型,则逻辑表达式的值是()。A.1B.0C.2D.不知道a的值,不能确定
72.
73.有以下程序:
程序执行后的输出结果是()。
A.2B.3C.7D.0
74.
75.
76.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。
A.数据库系统B.文件系统C.人工管理D.数据项管理
77.有下列程序:
main
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是()。A.A.45B.20C.25D.36
78.
有以下程序:
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main
{char*s1="abe",*s2="123":
swap(s1,s2);
printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是()。
A.123,abeB.abc.123C.1bc,a23D.321,cba
79.以下选项中,不能作为合法常量的是()。
A.1.234e05B.1.234e+5C.1.234e0.5D.1.234e0
80.下列程序的运行结果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2
五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.请编写—个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67,则输出为asdafaaz67。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:
参考答案
1.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。
2.A解析:顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项A是正确的。两者都可以存储线性的、有序的逻辑结构,所以选项B、C不正确。顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项D不正确。
3.C本题主要考查联合体的内存使用:联合体所占用的内存空间为最长的成员所占用的空间,int占2个字节,char占1个字节,float占4个字节,所以arr所占的内存长度等于成员c的长度:arr的地址和它的各成员的地址都是同一地址;不能直接对arr赋值,即不能在定义arr时对它初始化:arr也不可以作为函数参数。
4.D解析:本题主要考查左移、右移对数据值的影响,左移n位相当于乘以2的n次幂,右移n位相当于除以2的n次幂。
5.D[解析]本题目中静态局部变量x,在静态存储区内分配存储单元。在程序整个运行期间都不释放。所以第一次循环s的值为2.第二次循环中,返回的x的值为4.所以s的值为8.第三次循环,返回的x的值为8.所以s的值为64.
6.D
7.A在函数funl()之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处开始到整个程序末结束。在函数funl()之内定义了两个变量a和b,并且分别初始化为字符ˊCˊ和ˊDˊ。
8.D
9.D在main函数中,调用f(a,b)函数返回3,调用f(a,c)函数返回6,所以外层调用f(f(a,b),f(a,c)),即调用f(3,6)函数返回9。故本题答案为D选项。
10.D
11.B程序定义两个字符变量c1和c2。for循环中,首先为c1赋值‘0’,为c2赋值‘9’,接着判断c1和C2的大小。由于字符变量可以作为整型数处理,数字字符的ASCII值按字面数值的大小顺序连续递增,因此c1小于c2成立,执行循环体输出“09”,再将c1自增1,c2自减1后,执行下一轮循环,直到c1=‘5’,c2=‘4’时,c1<c2不成立,循环终止。最终程序段输出:0918273645。故本题答案为B选项。
12.A解析:和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。注意:这3种运算方法在各种存储结构中的应用。
13.D
14.D“typedefint*(*T[10])[10];”使用typedef定义一种新类型名T,T的类型是二维数组指针,指向10个元素的数组。其中数组元素类型为int*[10],即数组的每个元素又是包含10个元素的数组,数组的元素是整型指针类型。故本题答案为D选项。
15.C本题输出两个结果,第一个是求字符串的长度。第二个是输出的字符串,数组的下标是从0开始的,所以当str取1的时候,应为“One*Dream!”。
16.D
\n本题for循环中,当i=0时,判断条件i&printf('%d\n',n[k]),此时i的值是0,输出n[k]的值也为0,0&0结果还是0,条件不成立,退出循环。所以最后输出结果为0。
\n
17.D
18.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
19.C
20.C十六进制是以“0x、0X”开头的字符串,字符串中只能含有0~9这l0个数字和a、b、C、d、e、f这6个字母。
21.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针变量a和b,a和b分别指向7实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依旧是原来的值。
22.驱动模块驱动模块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拔高冲刺卷-【05卷·模拟卷】2025届中考地理测试卷(广东专用)(解析版)
- 特许金融分析师考试必知技巧总结与试题及答案
- 维稳工作总结11
- 常见误区2024年特许金融分析师考试试题及答案
- 货币政策与经济发展的关系试题及答案
- 【广西卷】广西壮族自治区2025年3月高三毕业班第二次高考适应性测试(广西二模)(3.5-3.7)历史试卷
- 特许金融分析师考试技能提升试题及答案
- 学校餐厅食品安全教育知识
- 2024年CFA考试梳理试题及答案
- 特许金融分析师模拟测试试题及答案
- 2024中宣部下属事业单位考试题
- 初中八年级音乐-《星星索》课件
- 台湾省2021年中考数学真题卷(含答案与解析)
- 煤矿井下设备安装工程专项方案
- 9806H基本操作和配置
- 妇产医院重点专科建设执行情况汇报总结
- 自愿放弃补偿金协议书
- 2022年高考英语全国Ⅱ卷(真题+答案+详细解析)
- 空压机自动控制系统设计
- MMPI14个量表得分题目号码
- 爱泼斯坦小结
评论
0/150
提交评论