1、2023年9月全国计算机(1)下列链表种,其逻辑结构属于非线性结构的是A)循环链表B)双向链表C)带链的栈D)二叉链表(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现通过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为A)16B)20C)0或35D)15(3)下列关于栈的叙述中,对的的是A)栈顶元素一定是最先入栈的元素B)栈操作遵循先进后出的原则C)栈底元素一定是最后入栈的元素D)以上三种说法都不对(4)在关系数据库中,用来表达实体间联系的是A)二维表B)树状结构C)属性D)网状结构(5)公司中有多个部门和多名职工,每个职工
2、只能属于一个部门,一个部门可以有多名职工,则实体部门和职工间的联系是A)m:1联系B)1:m联系C)1:1联系D)m:n联系(6)有两个关系R和S如下:RSABCABCa12c31b21c31则由关系R得到关系S的操作是A)自然连接B)选择C)并D)投影(7)数据字典(DD)所定义的对象都包含于A)程序流程图B)数据流图(DFD图)C)方框图D)软件结构图(8)软件需求规格说明书的作用不涉及A)软件可行性研究的依据B)用户与开发人员对软件要做什么的共同理解C)软件验收的依据D)软件设计的依据(9)下面属于黑盒测试方法的是A逻辑覆盖B)语句覆盖C)途径覆盖D)边界值分析(10)下面不属于软件设计
3、阶段任务的是A)数据库设计B)算法设计C)软件总体设计D)制定软件确认测试计划(11)以下叙述中对的的是A在C语言程序中,main函数必须放在其他函数的最前面B)每个后缀为.C的C语言源程序都可以单独进行编译C在C语言程序中,只有main函数才可单独进行编译D每个后缀为.C地点C语言源程序都应当包含一个main函数(12)C语言中的标记符分为关键字、预定义标记符和用户标记符,以下叙述对的的是A)预定义标记符(如库函数中的函数名)可用作用标记符,但失去原有含义B)用户标记符可以由字母和数字任意顺序组成在标记符中大写字母和小写字母被认为是相同的字符D)关键字可用作用户标记符,但失去原有含义(13)
4、以下选项中表达一个合法的常量是(说明:符号0表达空格)A)90909B)0XabC)123E0.2D)2.7e14C语言重要是借助以下哪个功能来实现程序模块化A)定义函数B)定义常量和外部变量C)三种基本结构语句D)丰富的数据类型(15)以下叙述中错误的是A)非零的数值类型常量有正直和负值的区分B)常量是在程序运营过程中值不能被改变的量C)定义符号常量必须用类型名来设定常量的类型D)用符号名表达的常量叫符号常量(16)若有定义和语句:int a,b; scanf(“%d,%d”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是A)3,5B)3,5,4C)3 ,5D)3
5、,5(17)C语言中char类型数据占字节数为A)3B)4C)1D)2(18)下列关系表达式中,结果为“假”的是A)(3+4)6B)(3!=4)2C)3=4|3D)(34)=1(20)有以下程序#includemain()int a=-2,b=0;while(a+&+b);printf(%d,%dn,a,b);程序运营后的输出结果是A)1,3B)0,2C)0,3D)1,2(21)设有定义:int x=0,*p;,立刻执行以下语句,对的的语句是A)p=x;B)*p=x;C)p=NULL;D)*p=NULL;(22)下列叙述中对的的是A)可以用关系运算符比较字符串的大小B)空字符串不占用内存,其内
6、存空间大小是0C)两个连续的单引号是合法的字符常量D)两个连续的双引号是合法的字符串常量(23)有以下程序#include main() char a=H;a=(a=A&a=Z)?(a-A+a):a;printf(%cn,a);程序运营后的输出结果是A)AB)aC)HD)h(24)有以下程序#include int f(int x);main() int a,b=0;for(a=0;a3;a+)b=b+f(a); putchar(A+b);int f(int x)return x*x+1;程序运营后的输出结果是A)ABEB)BDIC)BCFD)BCD(25)设有定义:int x23;,则以下关
7、于二维数组x的叙述错误的是A)x0可看作是由3个整型元素组成的一维数组B)x0和x1是数组名,分别代表不同的地址常量C)数组x包含6个元素D)可以用语句x0=0;为数组所有元素赋初值0(26)设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于A)p=;B)p=0;C)p=0;D)p=;(27)有以下程序#include main()int a=10,20,30,40,*p=a,i;for(i=0;i=3;i+)ai=*p;p+;printf(%dn,a2);程序运营后的输出结果是A)30B)40C)10D)20(28)有以下程序#include #define N 3vo
8、id fun(int aN,int b) int i,j;for(i=0;iN;i+) bi=ai0;for(j=i;jN;j+)if(biaij)bi=aij;main()int xNN=1,2,3,4,5,6,7,8,9,yN,i;fun(x,y);for(i=0;iN;i+)printf(%d,yi);printf(n);程序运营后的输出结果是A)2,4,8,B)3,6,9,C)3,5,7,D)1,3,5,(29)有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数)#include #include main()char a10=abc,b10=012,c10=xyz
9、;strcpy(a+1,b+2);puts(strcat(a,c+1);程序运营后的输出结果是A)a12cyzB)12yzC)a2yzD)bc2yz(30)以下选项中,合法的是A)char str3=d, e, b, u, g, 0, ;B)char str4;str4=hello world;C)char name10;name=china;D)char str5= pass,str26;str2=str1;(31)有以下程序#include main() char *s=12134;int k=0,a=0;while(sk+1!=0) k+;if(k%2=0)a=a+(sk-0+1);co
10、ntinue;a=a+(sk-0);printf(k=%d a=%dn,k,a);程序运营后的输出结果是A)k=6a=11B)k=3a=14C)k=3a=12D)k=5 a=15(32)有以下程序#include main() char a510=one,two,three,four,five;int i,j;char t;for(i=0;i4;i+)for(j=i+1;jaj0)t=ai0; ai0=aj0; aj0=t;puts(a1);程序运营后的输出结果是A)fwoB)fixC)twoD)owo(33)有以下程序#include int a=1,b=2;void fun1(int a,
11、int b)printf(%d %d,a,b);void fun2()a=3;b=4;mian() fun1(5,6);fun2();printf(%d %dn,a,b);程序运营后的输出结果是A)1 2 5 6B)5 6 34C)5 6 1 2D)3 4 5 6(34)有以下程序#include void func(int n) static int num=1;num=num+n; printf(%d,num)main()func(3); func(4); printf(n);程序运营后的输出结果是A)4 8B)34C)3 5D)4 5(35)有以下程序#include #include
12、void fun(int *p1,int *p2,int *s) s=(int*)malloc(sizeof(int);*s=*p1+*p2;free(s);main() int a=1,b=40,*q=&a;fun(&a,&b,q);printf(%dn,*q);程序运营后的输出结果A)42B)0C)1D)41(36)有以下程序void f(struct STU a) struct STU b=Zhao,m,85,90;a1=b;main() struct STU c2=Qian,f,95,92,Sun,m,98,99;f(c);printf(%s,%c,%d,%d,c0.name,c0.s
13、ex,c0.score0,c0.score1);printf(%s,%c,%d,%dn,c1.name,c1.sex,c1.score0,c1.score1);程序运营后的输出结果是A)Zhao,m,85,90,Sun,m,98,99B)Zhao,m,85,90,Qian,f,95,92C)Qian,f,95,92,Sun,m,98,99D)Qian,f,95,92,Zhao,m,85,90(37)以下叙述中错误的是A)可以用typedef说明的新类型名来定义变量B)typedef说明的新类型名必须使用大写字母,否则会出编译错误C)用typedef可认为基本数据类型说明一个新名称D)用type
14、def说明新类型的作用是用一个新的标记符来代表已存在的类型名(38)以下叙述中错误的是A)函数的返回值类型不能是结构体类型,只能是简朴类型B)函数可以返回指向结构体变量的指针C)可以通过指向结构体变量的指针访问所指结构体变量的任何成员D)只要类型相同,结构体变量之间可以整体赋值(39)若有定义语句int b=2;则表达式(b2)/(3|b)的值是A)4B)8C)0D)2(40)有以下程序#include main()FILE *fp;int i,a6=1,2,3,4,5,6;fp=fopen(d2.dat,w+);for(i=0;i6;i+)fprintf(fp,%dn,ai);rewind(
15、fp);for(i=0;i6;i+)fscanf(fp,%d,&a5-i);fclose(fp);for(i=0;i6;i+)printf(%d,ai);程序运营后的输出结果是A)4,5,6,1,2,3,B)1,2,3,3,2,1,C)1,2,3,4,5,6,D)6,5,4,3,2,1,二、填空题(每空2分,共30分)(1)一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】。(2)设栈的存储空间为S(1:40),初始状态为bottom=0,top=0,现通过一系列入栈与出栈运算后,top=20,则当前栈中有【2】个元素。(3)数据独立性分为逻辑独立
16、性和物理独立性。当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序不必修改,称为【3】。(4)关系数据库中能实现的专门关系运算涉及【4】、连接和投影。(5软件按功能通常可以分为应用软件、系统软件和支撑软件(或工具软件),Unix操作系统属于【5】软件。(6)请写出与!(a=b)等价的C语言表达式【6】。(7)以下程序运营时从键盘输入:1.02.0,输出结果是:1.000000 2.000000,请填空。#include main() double a;float b;scanf(【7】,&a,&b);printf(%f%fn,a,b);(8)有以下程序#inclu
17、de main()int n1=0,n2=0,n3=0;while(ch=getchar()!=!)switch(ch)case 1:case3;n1+;break;case 2:case4;n2+;break;default :n3+;break;若程序运营时输入01234567!,则输出结果是【8】。(9)有以下程序#include main()int i,sum=0;for(j=1;j9;i+=2)sum+=i;printf(%dn,sum);程序运营后的输出结果是【9】。(10)有以下程序#include main() int d,n=1234;while(n!=0)d=n%10;n=
18、n/10;printf(%d,d);程序运营后的输出结果是【10】。(11)有以下程序#include int k=7;int *st(int *a)int *c=&k;if(*a*c)c=a;return c;main()int i=3,*p=&i,*r;r=st(p);printf(%dn,*r);程序运营后的输出结果是【11】。(12)以下程序的输出结果是【12】。#include #define N 3#define M(n)(N+1)*nmain() int x;x=2*(N+M(2);printf(%dn,x);(13)若有定义语句:char str=0;,则字符串str在内存中实
19、际占【13】字节。(14)有以下程序#include int fun(int n) if(n=0)return(1);return(fun(n-1)*n);main() int t;t=fun(3); printf(%dn,t);程序运营后的输出结果是【14】。参考答案:(答案已对照修改为对的顺序)一、选择题1-5 C C B B A 6-10 B B A D D11-15 B A B A C 16-20 C C B D D21-25 B D D B D 26-30 C A B C A31-35 C A B A D 36-40 D B A B D二、填空题1、62、203、逻辑独立4、选择5、
20、系统 6、ab7、%lf%f8、2249、1610、432111、712、2213、214、615、p=pnext2023 年 3 月计算机等级考试二级 (3)某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为(假设根结点在第 1 层)A)3 B)4 C)6 D)7 (4)在软件开发中,需求分析阶段产生的重要文档是A)软件集成测试计划 B)软件具体设计说明书C)用户手册 D)软件需求规格说明书(5)结构化程序所规定的基本结构不涉及A)顺序结构 B)GOTO 跳转C)选择(分支)结构 D)反复(循环)结构(1)下列关于栈叙述对的的是A)栈顶元素最先能被删除B)栈顶元素最后才干
21、被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中对的的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的具体设计B)软件设计是将软件需求转换为软件表达的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD 图是软件具体设计的表达工具(7)负责数据库中查询操作的数据库语言是 A)数据定义语言 B)数据管理语言C)数据操纵语言 D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是
22、A)1:1 联系 B)1:m 联系C)m:1 联系 D)m:n 联系(10)定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是A)-369 B)369 C)0.369 D)整数集合1,2,3,4,5(11)计算机高级语言程序的运营方法有编译执行和解释执行两种,以下叙述中对的的是A)C 语言程序仅可以编译执行B)C 语言程序仅可以解释执行C)C 语言程序既可以编译执行又可以解释执行D)以上说法都不对 (12)以下叙述中错误的是A)C 语言的可执行程序是由一系列机器指令构成的B)用 C 语言编写的源程序不能直接在计算机上运营通过编译得到的二进制目的程序需要连接才可以运营D)在没有
23、安装 C 语言集成开发环境的机器上不能运营 C 源程序生成的.exe文献(13)以下选项中不能用作 C 程序合法常量的是A)1,234 B)123 C)123 D) x7G(14)以下选项中可用作 C 程序合法实数的是A).1e0 B)3.0e0.2 C)E9 D)9.12E(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程序段char name20;int num;scanf(name=%s num=%d,name;&num);当执行上述程序段
24、,并从键盘输入: name=Lili num=1001后,name的值为A)Lili B)name=LiliC)Lili num= D)name=Lili num=1001(17)if 语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中对的的是A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值(18)有以下程序#includemain() int x=011;printf(%dn,+x);程序运营后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序#includemain() int s;scanf(%d,&s);while(s0) sw
25、itch(s) case1:printf(%d,s+5);case2:printf(%d,s+4); break;case3:printf(%d,s+3); default:printf(%d,s+1);break;scanf(%d,&s);运营时,若输入 1 2 3 4 5 0,则输出结果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程序段int i,n;for(i=0;i=0&si=9) n+;printf(%dn,n);程序运营后的输出结果是A)0 B)3 C)7 D)8(22)若 i 和 k 都是 int 类型变量,有以下 for 语句for(i
26、=0,k=-1;k=1;k+) printf(* n);下面关于语句执行情况的叙述中对的的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#includemain() char b,c; int i;b=a; c=A;for(i=0;i=a&*c=z) *c=*c-(a-A);c+;main() char s81;gets(s); fun(s); puts(s):当执行程序时从键盘上输入 Hello Beijing,则程序的输出结果是A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Be
27、ijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#include #define N 10void fun(int xN) int i=0;while(i在程序中下划线处应填入的是A)x+i B)&xi+1C)x+(i+) D)&x+i(31)有以下程序#includemain() char a30,b30;scanf(%s,a);gets(b);printf(%sn %s n,a,b);程序运营时若输入:how are you? I am fine则输出结果是A)how are you? B)howI am fine are you? I am fineC)ho
28、w are you? I am fine D)row are you?(32)设有如下函数定义 int fun(int k) if (k1) return 0;else if(k=1) return 1;else return fun(k-1)+1;若执行调用语句:n=fun(3);,则函数 fun 总共被调用的次数是A)2 B)3 C)4 D)5(33)有以下程序#includeint fun (int x,int y) if (x!=y) return (x+y);2);else return (x);main() int a=4,b=5,c=6;printf(%dn,fun(2*a,fu
29、n(b,c);程序运营后的输出结果是A)3 B)6 C)8 D)12(34)有以下程序#includeint fun() static int x=1; x*=2;return x;main() int i,s=1;for(i=1;ix); printf(%dn,+(p-y);程序运营后的输出结果是A)1,2 B)4,1 C)3,4 D)2,3(38)有以下程序#includestruct S int a,b;data2=10,100,20,200;main() struct S p=data1;printf(%dn,+(p.a);程序运营后的输出结果是A)10 B)11 C)20 D)21(
30、39)有以下程序#include main() unsigned char a=8,c;c=a3;printf(%dn,c);程序运营后的输出结果是A)32 B)16 C)1 D)0(40)设 fp 已定义,执行语句 fp=fopen(file,w);后,以下针对文本文献 file操作叙述的选项中对的的是A)写操作结束后可以从头开始读 B)只能写不能读C)可以在原有内容后追加写 D)可以随意读和写二、填空题(1)有序线性表能进行二分查找的前提是该线性表必须是 【1】 存储的。(2)一棵二叉树的中序遍历结果为 DBEAFC,前序遍历结果为 ABDECF,则后序遍历结果为 【2】 。(3)对软件设
31、计的最小单位(模块或程序单元)进行的测试通常称为 【3】 测试。(4)实体完整性约束规定关系数据库中元组的 【4】 属性值不能为空。(5)在关系 A(S,SN,D)和关系 B(D,CN,NM)中,A 的主关键字是 S,B 的主关键字是 D,则称 【5】 是关系 A 的外码。(6)以下程序运营后的输出结果是 【6】 。#includemain() int a;a=(int)(double)(3/2)+0.5+(int)1.99*2); printf(%dn,a);(7)有以下程序#includemain() int x;scanf(%d,&x);if(x15) printf(%d,x -5);i
32、f (x10) printf(%d,x);if(x5) printf(%dn,x+5);若程序运营时从键盘输入 12,则输出结果为 【7】 。(8)有以下程序(说明:字符 0 的 ASCII 码值为 48)#includemain() char c1,c2;scanf(%d,&c1);c2=c1+9;printf(%c%c n,c1,c2);若程序运营时从键盘输入 48,则输出结果为 【8】 。(9)有以下函数void prt(char ch,int n) int i;for(i=1;i0)开始的后续元素所有向前移动一个位置。请填空。void fun(int aN,int k) int i;for(i=k;I(12)有以下程序,请在 【12】 处填写对的语句,使程序可正常编译运营。#include【12】 ;main() double x,y,(*p)();scanf(%lf%lf,&x,&y); p=avg;printf(%fn,(*p)(x ,y);double avg(double a,double b) return(a+b)/2);(13)以下程序运营后的输出结果是 【13】 。#includemain() int i,n5=0;for(i=1;i=4;i+) ni=ni -1*2+1;