版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021-2022年江苏省淮安市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。
A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);
B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);
D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
2.检查软件产品是否符合需求定义的过程称为______。
A.确认测试B.集成测试C.验证测试D.验收测试
3.有以下程序:#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
4.有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}执行后的结果是()。A.7B.3C.2D.0
5.有以下程序:#include<stdio.h>#defineS(x)x*x/xmain(){intk=6,j=3;printf(“%d,%d\n”,S(k+j+2),S(j+k+2);}程序运行后的输出结果是()。
A.11,11B.29,29C.26,29D.121,121
6.一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为()。
A.16B.10C.6D.4
7.下列关于逻辑运算符两侧运算对象的叙述中正确的是()。
A.只能是整数0或1B.只能是整数0或非0整数C.可以是结构体类型的数据D.可以是任意合法的表达式
8.二维数组A按行顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为_______
A.470B.471C.472D.473
9.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A.219B.221C.229D.231
10.带头结点的双向循环链表L为空的条件是()。
A.L==NULLB.L->next==NULLC.L->prior==NULLD.L->next==L
11.指针可以用来表示数组元素,若已知语句:inta[3][7];则下列表示中正确的是()。
A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)
12.运行下面程序段的输出结果是().A.A.Set
B.Setup
C.Setup
D.'S''e''t'
13.以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
14.若有定义“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。
A.1B.1.9C.2D.2.4
15.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
16.考虑下图中的程序段,①号语句的输出结果是()。A.A.'a'B.'t'C.'c'D.'k'
17.下列有关数据库的描述,正确的是______。
A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件
18.假设下图中每个正方形的边长为1,则从A到Z的最短路径条数为()A.11B.12C.13D.14
19.若有定义语句“inta,b;doubleX;”,则下列选项中没有错误的是()。
A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}
C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}
20.下列排序算法中,()算法可能会出现下面情况:初始数据有序时,花费的时间反而最多。
A.堆排序B.冒泡排序C.快速排序D.希尔排序
二、2.填空题(20题)21.在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应修改应用程序,称为______。
22.在面向对象方法中,类之间共享属性和方法的机制称为______。
23.以下程序的输出结果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
24.执行以下程序后的输出结果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
25.以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;
f=【】;
}
returnm;
}
main()
{printf("m=%d\n",【】)};
26.以下程序运行后的输出结果是【】。
#include<stdio,h>
#include<stating,h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abedefg";
fun(s,3,strlen(s));puts(s);
}
27.以下程序的功能是计算。补足所缺语句。
longf(intn)
{inti;longs;
s=【】;
for(i=1;i<=n;i++)s=【】;
returns;
}
main()
{longs;intk,n;
scanf("%d",&n);
s=【】;
for(k=0;k<=n,k++)s=s+【】;
printf("%1d\n",s);
}
28.数据结构分为逻辑结构与存储结构,带链的栈属于【】。
29.下面的程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。
#include<stdio.h>
#include<stdlib.h>
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
30.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
31.按"先进后出"原则组织数据的数据结构是【】。
32.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
33.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
34.设a、b、c为整数,且a=2、b=3、c=4,则执行完语句a*=18+(b++)-(++c);后,a的值是【】。
35.以下程序的运行结果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
36.性表的顺序存储中,元素之间的逻辑关系是通过【】决定的;性表的链接存储中,元素之间的逻辑关系是通过【】决定的。
37.以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#defineN3
#defineM3
select(inta[N][M],int*n)
{inti,j,row=1,colum=1;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n=【】;
return(【】);
}
main()
{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf(“max=%d,line=%d\n”,max,n);
}
38.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是【】。
39.软件设计模块化的目的是______。
40.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行人队运算。这种情况称为【】。
三、1.选择题(20题)41.下列用于printf函数的控制字符常量中,代表“竖向跳格”的转义字符常量是()。
A.\bB.\tC.\vD.\f
42.栈通常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
43.若有以下定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是()
A.p+=2,*(pd++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p
44.下列程序的输出结果是_____。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
45.下列模式中,能够给出数据库物理存储结构与物理存取方法的是A.内模式B.外模式C.概念模式D.逻辑模式
46.下面不属于软件设计原则的是()。
A.抽象B.模块化C.自底向上D.信息隐蔽
47.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
48.下列程序段的输出结果是______。int**pp,*p;inta=10,b=20;p=&a;pp=&p;p=&b;printf("%d,%d\n",*p,**pp);
A.10,20B.10,10C.20,20D.20,10
49.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是
A.startB.endC.startendD.endrt
50.树是结点的集合,它的根结点数目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
51.下列叙述中正确的是()。
A.线性链表中的各元素在存储空间中的位置必须是连续的
B.线性链表中的表头元素一定存储在其他元素的前面
C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
52.设x=015,则x=x^017的值是()。
A.EOFB.-1C.非零值D.0
53.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}执行后输出结果是()。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
54.C语言结构体类型变量在程序运行期间
A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元
B.所有的成员一直驻留在内存中
C.只有最开始的成员驻留在内存中
D.部分成员驻留在内存中
55.数据结构中,与所使用的计算机无关的是数据的()。A.存储结构B.物理结构C.逻辑结构D.物理和存储结构
56.目前因特网(Internet)尚未提供的服务是()
A.电子邮件B.文件传送C.远程使用计算机D.电视广播
57.以下叙述中正确的是
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号“{”和“}”只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
58.若有“doublea;”,则正确的输入语句是()。
A.scanf("%lf",A);
B.scanf("%f",&A);
C.scanf("%lf",&A)
D.scanf("%le",&A);
59.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。
A.1B.2C.3D.9
60.某二叉树共有60个叶子结点与50个度为1的结点,则该二叉树中的总结点数为()。
A.148B.169C.182D.198
四、选择题(20题)61.设变量均已正确定义,若要通过;语句为变萤a1和a2赋数值l0和20,为变量cl和c2赋字符x和Yd以下所示的输入形式中正确的是(注:口代表空格字符)
62.若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。
intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];A.A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]
63.结构化程序设计的基本原则不包括A.多态性B.自顶向下C.模块化D.逐步求精
64.以下定义数组的语句错误的是()。
A.intnum[]={1,2,3,4,5,6};
B.intnum[][3]={{1,2},3,4,5,6};
C.intnum[2][4]={{1,2},{3,4},{5,6}};
D.intnum[][4]={1,2,3,4,5,6};
65.
66.C语言中,组成数据文件的成分是()。A.A.记录
B.数据行
C.数据块
D.字符(字节)序列
67.有以下程序执行后的输出结果是()。
A.3B.2C.1D.4
68.设有定义
69.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。
A.0B.1C.2D.不知道a的值,不能确定
70.有以下程序:
程序的运行结果是()。
A.0B.1C.2D.3
71.
72.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
73.以下选项中关于C语言常量的叙述错误的是()。
A.经常被使用的变量可以定义成常量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量.
D.所谓常量,是指在程序运行过程中,其值不能被改变的量
74.有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并
75.以下叙述中正确的是
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现得最晚,具有其他语言的一切优点
76.
77.以下叙述中正确的是()。A.A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.c语言中的文件是流式文件,因此只能顺序存取数据
78.在满足实体完整性约束的条件下()。
A.一个关系中廊该有一个或多个候选关键字
B.一个关系中只能有一个候选关键字
C.一个关系中必须有多个候选关键字
D.一个关系中可以没有候选关键字
79.(13)设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为()
A.349
B.350
C.255
D.351
80.若有以下说明和定义,以下叙述中错误的是(
)。uniondt{
int
a;char
b;double
c;}data;A.两个共用体变量之间可以相互赋值B.变量data所占内存字节数与成员c所占字节数相等C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000D.共用体在初始化时只能用第一个成员的类型进行初始化
五、程序改错题(1题)81.写出下列程序的运行结果。
fun(inta,intb)
{if(a>b)return(a);
Elsereturn(b);}
main
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);printf(“%d\n”,r);}
六、程序设计题(1题)82.下列程序定义了M×M的二维数组,并在主函数中赋值。请编写函数proc(),函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a数组中的值为:21098则返回主程序后,s的值为3.750000。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A由题意可知,文件abc.txt中存放了6个整数。其中第1个表示后续数据的个数。要将最后5个数据读入数组data中,需要读取数据的个数为5,所以首先调用fscanf函数,将5读入整型变量n中;接着通过for循环,i分别取值0~n-1,调用fscanf函数将n个整数读入data[0]~data[n-1]中。故本题答案为A选项。
2.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。
(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。
(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。
(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。
(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。
3.A
4.C调用函数fun(7)时,由于x的值为7,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(5);\r\n调用函数fun(5)时,由于x的值为5,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(3);\r\n调用函数fun(3)时,由于x的值为3,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(1);\r\n调用函数fun(1)时,由于X的值为1,执行语句“return(3);”,函数的返回值为3。\r\n因此函数调用fun(7)等价于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函数fun(7)的返回值为2。答案为C。
5.B#define命令是C语言中的一个宏定义命令,为了区分其他标识符,标识符一般使用大写。将标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。宏定义不进行其他操作,仅仅只是替换标识符。题目中的S(k+j+2)=k+j+2*k+j+2/k+j+2”,经计算可得29。“S(j+k+2)=j+k+2*k+j+2/j+k+2”,经计算可得29。因此输出为29,29。故本题答案为B选项。
6.A根据二叉树的性质,n=n0+n1+n2(n表示总结点数,n0表示叶子结点数,nl表示度数为1的结点数,n2表示度数为2的结点数),而叶子结点数总是比度数为2的结点数多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。
7.D解析:逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。
8.C
9.A本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+l。根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即69个。二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉树总结点数为69+80+70,即219。因此,本题的正确答案是选项A。
10.D
11.D
12.A
13.D解析:C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:
#define宏名(形参表)字符串
本题的M(a+b,b+c,c+a)被字符串a+b*b+c+c+a代替。
14.A在表达式“z=0.9+x/y”中,先计算“3.6-2”,结果为1;再计算“0.9+1”,结果为1.9。因为变量z为整型,所以z的值为1。故本题答案为A选项。
15.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
16.D
17.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。
18.C
19.CC语言中,switch语句中的表达式和case表达式都不能是浮点类型。所以选C。
20.C
21.逻辑独立性逻辑独立性解析:数据库总体逻辑结构改变,而不需要相应修改应用程序叫做逻辑独立性。
22.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。
23.3131解析:在函数调用时,形参值和改变,不会改变实参的值。
24.a=14a=14解析:逗号表达式的值是以逗号分隔的最后一个表达式的值。所以题目中的语句a=(3*5,a+4);就等价于a=a+4;。故本题输出结果是a=14。
25.=-ffun(10)=-f\r\nfun(10)解析:本题要求调用fun()函数计算m的值,故在主函数中的空白处应该填调用fun()函数的语句。fun()函数有一个形参n,为每次参加计算的值个数,故在主函数中的空白处应该填fun(10),在fun()函数中用到了一个for循环,共循环n次,当循环第i次的时候,m的值等于m=1-2+…+[(-1)的i-1次方]*i,所以在fun()函数的空白处应该填使f改变符号的语句,故应填-f或其他等价形式。
26.abcfgabcfg解析:fun函数中for循环语句的作用是将s所指的字符串中从第5个字符到第7个字符依次向前移动两个位置。输出结果为abcfg。
27.1s*i0f(k)
28.存储结构存储结构解析:带链的栈属于栈的链式存储结构。
29.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根据fopen函数的调用方式fopen(文件名,使用文件方式)和题意可得结果。
30.q<p+nq<p+n解析:考查对于函数的地址传递的掌握情况。通过地址传递可以在被调函数中对调用函数中的变量进行引用。
31.栈栈解析:考查考生对栈和队列概念的掌握。按'先进后出'原则组织数据的数据结构是栈;按'先进先出'原则组织数据的数据结构是队列。
32.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为“a”,执行一次循环后变为“c”,之后再变成“e”,当其变为“g”时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式“i-'a'+'A'”即表示输出i对应的大写字母,结果为ACE。
33.p->dataqp->data,q解析:本题考查的是链表这一数据结构对结构体变量中数据的引用。链表的特点是结构体变量中有两个域,一个是数据,另一个是指向该结构体变量类型的指针,用以指明链表的下一个结点。
34.3232解析:b++是先使用b的值参加运算,再对b加1。++c是先对c加1,再使用c的值参加运算。a*=18+(b++)-(++c)等价于a=a*(18+(b++)-(++c))则a=2*(18+3-5)=32。
35.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函数main()中定义了一个变量i,并赋初值4,调用fun()函数将i的初值传递给形参m,进行fun()函数后的运算,输出结果为m=4,k=4。将k值输出后自行增加1,k=5,此时全局变量k的值变为5。主函数中调用fun()函数后,i再自行增加1,i=5,所以主函数输出的结果为“i=5k=5”。
36.相邻位置邻接指针相邻位置\r\n邻接指针
37.rowa[row][colum]row\r\na[row][colum]解析:指针变量作为函数参数及二维数组的一个典型算法——求最大值及其下标。通过对题意的分析,在select()函数中,变量row的作用是用来记录最大元素的行下标,colum的作用是用来记录最大元素的列下标。程序中通过一个循环求得数组元素中最大值的行列下标,分别存放在变量row和colum中,根据题意,应该把行下标赋值给形参指针变量n指向的变量,把最大值a[row][colum]作为函数值返回。
38.数据库系统数据库系统解析:数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。(1)人工管理阶段。这一阶段的计算机主要用于科技计算。外存只有磁带、卡片和纸带等,软件只有汇编语言,尚无数据管理方面的软件。数据处理方式是批处理。(2)文件系统阶段。文件系统是数据库系统发展的初级阶段,它提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的管理和数据共享的能力。由于它的功能简单,因此它附属于操作系统而不能成为独立的软件,目前一般将其看成仅是数据库系统的雏形,而不是真正的数据库系统。(3)数据库系统阶段。数据库阶段用数据模型表示复杂的数据模型,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户可使用查询语言或终端命令操作数据库,也可以用程序方式(用COBOL、C一类高级语言和数据库语言编制的程序)操作数据库。数据库管理系统提供了数据控制功能。
39.降低复杂性降低复杂性
40.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时,置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)且队尾指针等于队头指针时,说明循环队列已满,不能进行人队运算,这种情况称为“上溢”。
41.C本题考查C语言转义字符的含义。我们归类了常用的转义字符及其含义,如下,根据这些不难选出正确答案
转义字符的意义:\n回车换行、\t横向跳到下一制表位置、\v竖向跳格、\b退格、\r回车、\f走纸换页、\\反斜线符、“\”\′单引号符、\\ddd1~3位八进制数所代表的字符、\xhh1~2位十六进制数所代表的字符。
42.A解析:和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。注意:这3种运算方法在各种存储结构中的应用。
43.A
44.D
45.A数据库管理系统的三级模式结构由外模式、模式和内模式组成。
外模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一一部分。内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。
46.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。
47.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。
48.C解析:指针变量p先是指向变量a,后指向变量b,但二级指针变量始终指向指针变量p。
49.B解析:本题主要考查的是打开文件函数fopen().题目开始定义了一个函数,该函数有两个字符指针型参数,其作用分别用来传入文件名和文件内容。函数首先定义一个文件指针印,然后使用fopen()函数打开参数fn所指定的文件。本题的关键就在于fopen()函数的第2个参数,这个参数指定了文件打开的方式。'w'表示为写而打开一个文本文件,如果文件不存在,则新建一个文件,否则将清空原有文件。接下来函数使用fputs()函数将参数str中的内容写入文件,最后调用fclose()函数关闭文件。在主函数中两次调用该函数,但写入的是同一个文件,故只有最后一次写入有效。所以应该选择B。
50.A树形结构是一类重要的非线性数据结构。树是n(n≥0)个结点的集合,对应任意一棵非空树,它具有以下几点重要的性质。
①有且仅有一个特定的称为根的结点。
②当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,TM,其中每一个集合本身又是一棵树,称为子树。
因此,本题的正确答案有且只有一个。
51.D解析:性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。所以,选项D正确。
52.D解析:文件状态检测函数feof(fp)的功能:测试所指的文件的位置指针是否已达到文件尾,如果已到达文件尾,则函数返回非0值;否则返回0,表示文件尚未结束。
53.B解析:本题定义了一个返回值为指针的函数f(),此函数有两个指针型的形参x和y,该函数的功能,是返回x和y指向的变量中值较小的那个指针变量。主函数中定义了两个指针变量p和q,并让它们指向变量a和b,调用函数f(),返回指向的变量值较小的指针变量,r的值为指针变量p的值(变量a的地址),因此最后输出的*p、*q和*r的值是7,8和7。所以,B选项为所选。
54.B解析:结构体类型的变量在程序运行期间要作为一个整体占用连续的内存单元。
55.C数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构(物理结构)及数据上的运算集合。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,即数据元素之间的前后件关系,而不管它在计算机中的存储表示形式。
56.D
57.A解析:“/*”与“*/”之间的信息称为注释信息,在C语言中,允许在任何能够插入空格符的位置插入注释,但C语言的注释不能进行嵌套,故选项A正确;在C语言中,函数体是从花括号“{”开始,到花括号“}”结束.但没有规定花括号“{”和“}”只能作为函数体定界符,故选项B错误;选项C中前半句是正确的,在C程序中由有一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数比如库函数,主函数main()就不能由用户来命名,故选C不正确;在C语言中明确规定每条语句以分号“;”结束,分号是语句不可缺少的一部分,故选项D不正确。所以,4个选项中选项A符合题意。
58.D解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。本题中定义变量a为双精度型变量,双精度变量的格式符为“le”;变量的地址用取地址符“&”加变量名表示,如变量a的地址为“&a”。
59.BB。【解析】根据二分法查找法需要两次:(1)首先将90与表中间的元素50进行比较,由于90大于50,所以性表的后半部分查找。(2)第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。
60.B解析:本题考查二叉树的性质。叶子结点即度为0的结点,它总是比度为2的结点多一个,所以,具有60个叶子结点的二叉树有59个度为2的结点。总结点数等于个叶子结点加上59个度为2的结点再加上50个度为1的结点的和,一共为169个结点。
61.A本题考查的知识点是数据输入。scanf函数是C语言提供的标准输入函数,作用是接收在终端设备(或系统隐含指定的输入设备)上输入的数据。scanf()函数的一般形式为:scanf(格式控制,输入项表);本题中的格式控制字符串是“%d%c%d%c”,其中%d表示要输入的是整数;%c则表示输入的是字符,且各控制符之间无任何分隔字符,故要求输入的数据之间也不能分开(若要求连续输入的都是数据类型,则必须以空格等空白字符分隔每个数据,因为系统不知道应该如何去分隔这一系列数据)。而选项B)、C)、D)在l0和x之间均插入空格,所以不正确。
62.C从for循环可知pt是指向行的首地址的指针变量,因此由指针的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。
63.A结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。
64.B二维数组的定义有3种形式,第一种是分行为两位数组赋值,即intnum[]={{12},{3,4},{5,6}},第二种是按照数组排列顺序进行赋值,即intnum[]={1,2,3,4,5,6},第三种为对部分元素赋初值,即intnum[]={{1,2}{},{3,4},{5,6}},所以错误的为B。
65.B
66.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。
67.Ac的值为a乘以b的值,为3。所以答案选择A)。
68.A*(s+3)指针后移3个单位,为a[31的值。答案选择A)。
69.B当a=1时,(a==1)||(a!=1)为真;当a!=1时,(a==1)||(a!=1)也为真,故正确答案为B)。
70.B本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为”j<=i¨,而j的初值为3,故当i的值为1和2时,内层循环体都不会被执行。只有当i和j都等于3时才会执行一次。m的值为55对3取模,计算结果为l。
71.D
72.D关系R与s经交运算后所得到的关系是由那些既在R内又在S内的共有元组组成的,记为RnS。
73.AC语言中,常量是指在程序运行过程中其值不能被改变的量,变量是指运行过程中其值可以改变的量,二者不能混淆,所以A选项错误。
74.D
75.C本题主要考查我们对C语言一些基础知识的掌握情况。下面分别分析本题的四个选项。
对于选项A,C语言是一种高级语言,但还存在很多其他的高级语言,并不能说C语言就比其他高级语言更高级。
对于选项B,C语言并不是机器语言或汇编语言,它需要通过编译程序对其进行编译后才能被计算机识别执行。
对于选项C,C语言以接近英语国家的自然语言和数学语言作为语言的表达形式的说法是正确的。
对于选项D,C语言并不是最晚出现的语言,而且C语言也不具备其他语言的一切优点。C语言是一种面向过程的设计语言,它不具备面向对象的优点。
76.A
77.AB)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。c)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。故本题答案为A)。
78.A实体完整性约束要求关系的主键中属性值不能为空值,因此本题答案为A)。
79.B注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉数的特点可求出
80.C浮点型占8个字节,整型占4个字节,当把整型数据用浮点型格式输出时,结果为0.000000
81.
82.
【解析】要求出数组周边元素的平均值,首先要求出周边元素的和,周边元素的特点为行或列下标为0,或为N一1,根据其特点求出所有周边元素的和,再求出其平均值,并返回给主函数。
2021-2022年江苏省淮安市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。
A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);
B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);
D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}
2.检查软件产品是否符合需求定义的过程称为______。
A.确认测试B.集成测试C.验证测试D.验收测试
3.有以下程序:#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
4.有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}执行后的结果是()。A.7B.3C.2D.0
5.有以下程序:#include<stdio.h>#defineS(x)x*x/xmain(){intk=6,j=3;printf(“%d,%d\n”,S(k+j+2),S(j+k+2);}程序运行后的输出结果是()。
A.11,11B.29,29C.26,29D.121,121
6.一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为()。
A.16B.10C.6D.4
7.下列关于逻辑运算符两侧运算对象的叙述中正确的是()。
A.只能是整数0或1B.只能是整数0或非0整数C.可以是结构体类型的数据D.可以是任意合法的表达式
8.二维数组A按行顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为_______
A.470B.471C.472D.473
9.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A.219B.221C.229D.231
10.带头结点的双向循环链表L为空的条件是()。
A.L==NULLB.L->next==NULLC.L->prior==NULLD.L->next==L
11.指针可以用来表示数组元素,若已知语句:inta[3][7];则下列表示中正确的是()。
A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)
12.运行下面程序段的输出结果是().A.A.Set
B.Setup
C.Setup
D.'S''e''t'
13.以下程序的输出结果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
14.若有定义“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。
A.1B.1.9C.2D.2.4
15.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
16.考虑下图中的程序段,①号语句的输出结果是()。A.A.'a'B.'t'C.'c'D.'k'
17.下列有关数据库的描述,正确的是______。
A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件
18.假设下图中每个正方形的边长为1,则从A到Z的最短路径条数为()A.11B.12C.13D.14
19.若有定义语句“inta,b;doubleX;”,则下列选项中没有错误的是()。
A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}
C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}
20.下列排序算法中,()算法可能会出现下面情况:初始数据有序时,花费的时间反而最多。
A.堆排序B.冒泡排序C.快速排序D.希尔排序
二、2.填空题(20题)21.在数据库理论中,数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应修改应用程序,称为______。
22.在面向对象方法中,类之间共享属性和方法的机制称为______。
23.以下程序的输出结果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
24.执行以下程序后的输出结果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
25.以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;
f=【】;
}
returnm;
}
main()
{printf("m=%d\n",【】)};
26.以下程序运行后的输出结果是【】。
#include<stdio,h>
#include<stating,h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abedefg";
fun(s,3,strlen(s));puts(s);
}
27.以下程序的功能是计算。补足所缺语句。
longf(intn)
{inti;longs;
s=【】;
for(i=1;i<=n;i++)s=【】;
returns;
}
main()
{longs;intk,n;
scanf("%d",&n);
s=【】;
for(k=0;k<=n,k++)s=s+【】;
printf("%1d\n",s);
}
28.数据结构分为逻辑结构与存储结构,带链的栈属于【】。
29.下面的程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。
#include<stdio.h>
#include<stdlib.h>
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
30.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
31.按"先进后出"原则组织数据的数据结构是【】。
32.以下程序的输出结果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
33.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
34.设a、b、c为整数,且a=2、b=3、c=4,则执行完语句a*=18+(b++)-(++c);后,a的值是【】。
35.以下程序的运行结果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
36.性表的顺序存储中,元素之间的逻辑关系是通过【】决定的;性表的链接存储中,元素之间的逻辑关系是通过【】决定的。
37.以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#defineN3
#defineM3
select(inta[N][M],int*n)
{inti,j,row=1,colum=1;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n=【】;
return(【】);
}
main()
{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf(“max=%d,line=%d\n”,max,n);
}
38.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是【】。
39.软件设计模块化的目的是______。
40.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行人队运算。这种情况称为【】。
三、1.选择题(20题)41.下列用于printf函数的控制字符常量中,代表“竖向跳格”的转义字符常量是()。
A.\bB.\tC.\vD.\f
42.栈通常采用的两种存储结构是()。
A.顺序存储结构和链式存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构
43.若有以下定义:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是()
A.p+=2,*(pd++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p
44.下列程序的输出结果是_____。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
45.下列模式中,能够给出数据库物理存储结构与物理存取方法的是A.内模式B.外模式C.概念模式D.逻辑模式
46.下面不属于软件设计原则的是()。
A.抽象B.模块化C.自底向上D.信息隐蔽
47.数据库设计包括两个方面的设计内容,它们是()
A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计
48.下列程序段的输出结果是______。int**pp,*p;inta=10,b=20;p=&a;pp=&p;p=&b;printf("%d,%d\n",*p,**pp);
A.10,20B.10,10C.20,20D.20,10
49.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是
A.startB.endC.startendD.endrt
50.树是结点的集合,它的根结点数目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
51.下列叙述中正确的是()。
A.线性链表中的各元素在存储空间中的位置必须是连续的
B.线性链表中的表头元素一定存储在其他元素的前面
C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
52.设x=015,则x=x^017的值是()。
A.EOFB.-1C.非零值D.0
53.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}执行后输出结果是()。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
54.C语言结构体类型变量在程序运行期间
A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元
B.所有的成员一直驻留在内存中
C.只有最开始的成员驻留在内存中
D.部分成员驻留在内存中
55.数据结构中,与所使用的计算机无关的是数据的()。A.存储结构B.物理结构C.逻辑结构D.物理和存储结构
56.目前因特网(Internet)尚未提供的服务是()
A.电子邮件B.文件传送C.远程使用计算机D.电视广播
57.以下叙述中正确的是
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号“{”和“}”只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
58.若有“doublea;”,则正确的输入语句是()。
A.scanf("%lf",A);
B.scanf("%f",&A);
C.scanf("%lf",&A)
D.scanf("%le",&A);
59.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。
A.1B.2C.3D.9
60.某二叉树共有60个叶子结点与50个度为1的结点,则该二叉树中的总结点数为()。
A.148B.169C.182D.198
四、选择题(20题)61.设变量均已正确定义,若要通过;语句为变萤a1和a2赋数值l0和20,为变量cl和c2赋字符x和Yd以下所示的输入形式中正确的是(注:口代表空格字符)
62.若有以下的说明和语句,则在执行for语句后,’(*(pt+1)+2)表示的数组元素是()。
intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];A.A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]
63.结构化程序设计的基本原则不包括A.多态性B.自顶向下C.模块化D.逐步求精
64.以下定义数组的语句错误的是()。
A.intnum[]={1,2,3,4,5,6};
B.intnum[][3]={{1,2},3,4,5,6};
C.intnum[2][4]={{1,2},{3,4},{5,6}};
D.intnum[][4]={1,2,3,4,5,6};
65.
66.C语言中,组成数据文件的成分是()。A.A.记录
B.数据行
C.数据块
D.字符(字节)序列
67.有以下程序执行后的输出结果是()。
A.3B.2C.1D.4
68.设有定义
69.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。
A.0B.1C.2D.不知道a的值,不能确定
70.有以下程序:
程序的运行结果是()。
A.0B.1C.2D.3
71.
72.有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为()。
A.并B.自然连接C.笛卡尔积D.交
73.以下选项中关于C语言常量的叙述错误的是()。
A.经常被使用的变量可以定义成常量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量.
D.所谓常量,是指在程序运行过程中,其值不能被改变的量
74.有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并
75.以下叙述中正确的是
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现得最晚,具有其他语言的一切优点
76.
77.以下叙述中正确的是()。A.A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.c语言中的文件是流式文件,因此只能顺序存取数据
78.在满足实体完整性约束的条件下()。
A.一个关系中廊该有一个或多个候选关键字
B.一个关系中只能有一个候选关键字
C.一个关系中必须有多个候选关键字
D.一个关系中可以没有候选关键字
79.(13)设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为()
A.349
B.350
C.255
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省合肥市一六八中学2026届高三3月份规范训练物理+答案
- 2026年浸没式液冷储能热管理技术安全白皮书
- 2025年前台服务卷
- 2026年美丽休闲乡村培育计划申报书与产业融合发展方案
- 2026年汽车内外饰件再生塑料规模化应用
- 2026年家居行业AI 3D打印驱动个性化定制新生态构建
- 2026年边缘设备异常检测AI判断数据泄露行为实现方法
- 2026年金融机构TCFD披露实践:投融资碳排放与情景分析
- 老年康复护理学:跌倒预防与干预
- 2026年校园安全案例分析
- 1999年制干部履历表8k
- 集中办公区管理办法
- 道德与法治说课模板课件
- (高职)客房服务与管理电子全套教学课件(完整版)
- 中国普通食物营养成分表一览
- 潜水医学PPT完整全套教学课件
- 水稻病虫害综合防治课件
- 制浆造纸设备与机械
- 2023年黑龙江省高职单招面试题库及答案解析
- TZJXDC 002-2022 电动摩托车和电动轻便摩托车用阀控式铅酸蓄电池
- GB/T 18998.1-2022工业用氯化聚氯乙烯(PVC-C)管道系统第1部分:总则
评论
0/150
提交评论