




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年江苏省连云港市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。
A.控制流B.加工C.数据存储D.源和潭
2.有以下程序:#include<stdio.h>main(){inta[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i;p=a;for(i=0;i<3;i++){printf(“%d”,(*p)[i]);p++;}}程序的运行结果是()。
A.036B.012C.048D.147
3.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
4.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序运行后的输出结果是A.A.2,3B.2,4C.3,4D.4,6
5.下列叙述中正确的是()。
A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对
6.以下正确的字符串常量是()。
A.\\\B.'abc'C.OlympicGames
7.快速排序在已经有序的情况下效率最差,复杂度为()
A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)
8.有下列程序:程序执行后的输出结果是()。A.abcdefghijklmnopq
B.afgebcdhnopqmijklhnopqmijkl
C.efgabcdmnopqhijkl
D.mijklhnopqebcdafg
9.以下语句定义正确的是()A.A.inta[1][4]-{1,2,3,4,5};
B.floata[3][]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};
D.doublea[][3]={O);
10.某二叉树的先序序列和后序序列正好相同,则该二叉树可能是______的二叉树。
A.高度大于1的左单支B.高度大于1的右单支C.最多只有一个结点D.既有左孩子又有右孩子
11.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的运行结果是()。
A.500B.401C.503D.1404
12.在inta=3,int*p=&a;中,*p的值是()。
A.变量a的地址值B.无意义C.变量p的地址值D.3
13.
14.
15.设二叉排序树中有n个结点,则二叉排序树的平均查找长度为()。A.O(1)
B.O(log2n)
C.O(n)
D.(n2)
16.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
A.wbB.wb+C.rb+D.rb
17.在软件设计中,不属于过程设计工具的是()。
A.PDLB.DFD图C.PAD图D.N—S图
18.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
19.以下能正确定义字符串的语句是()。
A.charstr=“\x43”;
B.charstr[]=“\0”;
C.charstr=”;
D.charstr[]={‘\064’};
20.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
二、2.填空题(20题)21.数据模型按不同应用层次分成三种类型,它们是概念数据模型、【】和物理数据模型。
22.Jackson方法是一种面向【】的结构化方法。
23.以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如;str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!='\O')n++;
if(p[n]='\0')returnNULL;
return(【】);
}
24.已知字符'A'的ASCII码为65,以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,b);
}
25.以下程序的输出结果是【】。
main()
{inta=0;
a+=(a=8);
printf("%d\n",A);
}
26.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。
27.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。
28.下面程序的功能是:计算1~10之间奇数和及偶数之和。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=O;
for(i=O;i<=10;i+=2)
{a+=i;
【】;
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
29.若输入字符串:abcde,则以下while循环体将执行【】次。
while((ch=getchar())=='e')printf("*");
30.实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【】。
31.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统—管理与控制。
32.在运算过程中,能够使空表与非空表的运算统一的结构是【】。
33.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。
#defineN4
voidrotate(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=______;______=a[N-1][i];}
}
34.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。
35.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。
36.在E-R图中,矩形表示【】。
37.设有说明;
structDATE{intyear;intmonth;intday;};
请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、month、day依次赋初值2006、10、1:【】。
38.有以下程序
voidf(inty,int*x)
{y=y+*x;*X=*X+y;}
main()
{intx=2,y=4;
f(y,&x);
printf("%d%d\n",x,y);
}
执行后输出结果是______。
39.以下程序运行时若从键盘输入:102030<回车>。输出结果是()。
#include<stdio.h>
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);
}
40.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作______。
三、1.选择题(20题)41.下面程序输出的结果是main(){intx;x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3+4%6/5;printf("%d",x);x=(7+6)%5/2;printf("%d",x);}
A.111-31B.11-321C.12-321D.11121
42.设有关系R和S,关系代数表达式为R-(R-S)表示的是
A.R∩SB.R-SC.R∪SD.R÷S
43.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4);,则数组x在内存中所占字节数是______。
A.3B.6C.10D.20
44.下述程序的输出结果是()。#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.22B.11C.34D.12
45.设a、b和、c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式为()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
46.有以下程序main(){intm=0256,n=256;printf("%o%o\n",m,n);}程序运行后的输出结果是
A.02560400B.0256256C.256400D.400400
47.字符串"\\\"ABCDEF\"\\"的长度是()。
A.15B.10C.7D.8
48.设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是
A.printf(“x=%d\n”,x);
B.printf(“x=%1d\n”,x);
C.printf(“x=%8dL\n”,x);
D.pfintf(“x=%LD\n”,x);
49.对于下列定义,不正确的叙述是()。uniondata{inta;charb;doublec;}x=y;
A.变量x所占内存的长度等于成员c的长度
B.变量x的地址和它的各成员地址都是相同的
C.可以在定义时对x初始化
D.不能对变量x赋值,故x=y非法
50.软件详细设计的主要仟务是确定每个模块的
A.算法和使用的数据结构B.外部接口C.功能D.编程
51.下列程序的输出结果是()。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
52.以下合法的字符型常量是
A.'\x13'B.'\081'C.'65'D.\n
53.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高位取反,低4位不变,所要执行的运算是
A.a^bB.a|bC.a&bD.a<<4
54.有以下程序point(char*p){p+=3;}main(){charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);}程序运行后的输出结果是______。
A.aB.bC.cD.d
55.下列选项中不属于C语言的数据类型是()。
A.复数型B.逻辑型C.双精度型D.集合型
56.主程序调用findmax函数求出数组中最大元素在数组中的下标,()中需填写的内容是。#include<stdio.h>findmax(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])();}main(){inta[10],i,k;for(i=0;i<10;i++)scanf("%d",&a[i]);findmax(a,10,&k);printf("%d%d\n",k,a[k]);}
A.k=pB.*k=pC.k=p-sD.*k=p-s
57.按照“先进先出”组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
58.若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为()
A.floatB.intC.charD.double
59.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","beijing"},*p=str;ptintf("%\n",strlen(p+20));}程序运行后的输出结果是()。
A.0B.5C.7D.20
60.下列不正确的转义字符是()。
A.'\\'B.'t'C.'\n'D.'088'
四、选择题(20题)61.
62.以下选项中,能用作用户标识符的是()。
A.-0-B.8-;8C.voidD.unsigned
63.
64.
65.有以下程序程序执行后的输出结果是()
A.60B.50C.45D.55
66.设x为int型变量,则执行以下语句后,x的值为()。x=10;x=x-=x-x;
A.10B.20C.40D.30
67.
68.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}
69.若变量x、Y已正确定义并赋值,以下符合C语言语法的表达式是()。
A.++x,y=x-B.x+1=yC.x=x+10=x+yD.double(x/10)
70.下面程序的运行结果是()。
A.gaeB.gaC.LanguageD.有语法错
71.
72.
有以下程序:
main
{union
{charch[2];
intd;
}s;
d=0x4321;
printf("%x,%x\n",S.ch[0],S.ch[l]);
}
在16位编译系统上,程序执行后的输出结果是()
A.21,43B.43,21C.43,00D.21,00
73.
74.下列描述中正确的是
A.软件指的就是程序B.软件开发不受任何计算机系统的限制
C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合
75.(17)软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及()
A.阶段性报告
B.需求评审
C.总结
D.都不正确
76.两个或两个以上模块之间联系的紧密程度称为()。
A.耦合性B.内聚性C.复杂性D.数据传输特性
77.
78.有以下程序段:
当执行上述程序段,并从键盘输入:nalne=LilinLim=1001<;回车>;后,name的值为()。
A.name:=Lilinum=1001B.nfll"ne=LiliC.Uli.h.um=D.Lili
79.以下程序的输出结果是()。
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010B.99C.910D.109
80.在长度为n的有序线性表中进行顺序查找,最坏情况下需要比较的次数是
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若nmnl和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输也的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或硼行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.请编写fun()函数,其功能是:计算并输出3~m所有素数的平方根之和。例如,若主函数从键盘给m输入50后,则输出为s=63.665791。注意:m的值要大于2但不大于l00。部分源程序给出如下。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
2.Cmain函数定义3行3列的整型二维数组a;定义数组指针P,P指向包含3个元素的数组。程序首先将a赋给p。for循环中,i=0时,P指向a的第1个元素{0,1,2},输出p[0]即0;i=1时,p指向a的第2个元素{3,4,5},输出P[1]即4;i=2时,p指向a的第3个元素{6,7,8},输出P[2]即8。所以程序输出048。故本题答案为C选项。
3.C由于后序遍历的最后一个儿素为E,所以E为根结点,所以它的前序遍历的首个元素为E,敞排除A)和D)选项。由于中序遍历中,元素B在元素根结点E自:J后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个儿素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉埘的前序遍历序列是EACDB。
4.B解析:p指向x的第一个元素,所以p->n的值为2,p->next指向x+1,即指向x的第二个元素,所以p->next->n为4。
5.D【答案】:D
【知识点】:栈和队列
【解析】:栈和队列都是线性结构,所以选项C错误;栈是一种先进后出的线性表,故选项A错误;队列是一种先进先出的线性表,故选项B错误,所以选D。
6.D解析:在C语言中,字符串常量是以双引号括起来的字符序列。故选项B和C不正确。字符序列中可包含一些转义字符,转义字符都是以“\\”开头的。选项A中包含了三个“\\”,前两个(\\\\)代表了一个“\\”字符,后面一个和“'”一起(\\”)被看作一个……,所以该字符串缺少一个结束的“'”,故不正确。选项D的两个……之间没有任何字符,代表的是一个空串,是合法的字符串常量,故应该选择D。
7.D
8.B程序首先定义二维字符数组v,使用4个字符串初始化,另外定义字符指针数组P。通过第1个for循环,将v的4个字符串的首地址赋给p。第2for循环通过两层内嵌循环将p中元素指向的字符串首字母进行排序交换。规则是将指向的字符串的首字母字符按照字母表中的顺序排序后交换。注意,这里交换的是首字母,而不是整个字符串,所以程序输出:afgebcdhnopqmijkl。本题答案为B选项。
9.D本题考查的是如何对二维数组进行赋值。选项A)中数组第二维的大小是4,但却给赋了5个元素;选项B)中C语言规定,对于二维数组,只可以省略第一个方括号中的常量表达式而不可以省略第二个方括号中的常量表达式:选项c)中数组第一维的大小是2,但是赋值却超过了2;选项D)中在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。
10.C
11.Cfor循环中,函数f的返回值累加到变量a中。第1次循环,a=0,i=0,返回值a=0*0+1=1;第2次循环,a=1,i=10,返回值a=10*10+1+1=102;第3次循环,a=102,i=20,返回值a=20*20+1+102=503;第4次循环a=503,i=30,不符合1<30,跳出循环,最后结果输出a=503。故本题答案为C选项。
12.D
13.A
14.B
15.B
16.B解析:本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件:方式“rb”为输入打开一个二进制文件。
17.B常见的过程设计工具有图形土具(程序流程图、N—S图、PAD图、HIP0图)、表格工具(判定表)和语言工具(PDL)。DFD是数据流图,是描述数据处理过程的工具。
18.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
19.BC语言中,字符串是用一对双引号标识的字符序列,并用字符型数组来存放。C选项和D选项不属于字符串,A选项定义的是一个字符变量str,但赋值字符串,显然也不正确。故本题答案为B选项。
20.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
21.逻辑数据模型逻辑数据模型解析:数据模型按不同的应用层次分成三种类型,它们是概念数据模型、逻辑数据模型、物理数据模型。
22.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
23.&P(n)或p+n&P(n)或p+n解析:因为n被初始化为0、p被初始化指向str所指字符串的首地址,所以while循环的功能是从str所指字符串的第1个字符开始比较,若等于c或等于字符串结束符'\\0'就跳出循环。故循环结束后,若p[n]为'\\0',则证明str所指字符串不包含c中的字符,应该返回NULL,否则应该返回p[n]的地址值。返回NULL在第2条if语句中已经实现,所以我们应该填入的表达式为p[n]的地址值,即&p[n]或p+n。
24.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式输出\'C\'的ASCII码为67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式输出为\'G\'。
25.1616解析:在程序中首先将8赋值给变量a,然后在进行复合赋值运算。即a=a+a=8+8=16,所以该空格处应该填16。
26.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。
27.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。
28.b=i+1
29.00解析:函数getchar()是从键盘得用户输入的一个字符。用户输入的第1个字符a,不管后面输入的是什么ch的值都是'a',因此条件(ch=getchar())=='e'为假,这个循环不会被执行。
30.空间复杂度和时间复杂度算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。
31.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统—管理与控制。
32.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。
33.a[0][i]b[i][0]a[0][i]\r\nb[i][0]解析:因为数组a[N][N]的第0行表示为a[0][n](n=0~3),而数组b[N][N]的最后一列表示为b[n][N-1)(n=0~3),所以前一空应该填a[0][i]。又因为数组a[N][N]的最后一行表示为a[N-1)][n](n=0~3),而数组b[N][N]的第0列表示为b[n][0](n=0~3),所以后一空应该填b[i][0]。
34.存储结构数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。
35.操作系统或OS操作系统或OS解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务。位于用户和操作系统之间。
36.实体实体解析:E-R模型中,有3个基本的抽象概念:实体、联系和属性。在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。
37.structDATEd={2006101};structDATEd={2006,10,1};解析:在C语言中,结构体变量定义语句的一般形式如下:
struct<结构体名><结构体对象名>[=<初始化列表>];
在本题中,<结构体名>是DATE,<结构体对象名>题目要求为d,而可有可无的<初始化列表>本题要求为{2006,10,1}。故应该填structDATEd={2006,10,1};。
38.8484解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。
39.1030010300解析:本题的考点是C语言的scanf的“%*d”。“%*d”是在输入流中跳过一个整数,而读入下一个整数。因此语句“scanf('%d%*d%d',&i,&j,&k);”在读入10、20、30时,将10读入到i中,将20跳过,将30读入到j中,而k没有读入数,仍是初值的0。
40.队尾队尾解析:在队列中,允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。
41.A解析:本题考查的是算术运算符的各种运算,x=-3+4*5-6=-3+20-6=11;x=3+4%5-6=3+4-6=1;x=-3+4%6/5=-3+4/5=-3+0=-3;x=(7+6)%5/2=13%5/2=3/2=1。故正确答案为选项A)。
42.A解析:R-S表示属于R但不属于S,R-(R-S)\ue009表示属于R但不属于(R-S),即相当于R∩S。
43.D解析:当数组定义后,系统就为其分配内存空间,而不论其中有没有内容。因此,本题中数组x[10]不论是否为其元素初始化,它所分配的存储空间仍为2*10=20个字节。
44.D解析:程序首先定义了一个指向一维数组a的指针p,一个指向指针变量p的指针变量q,输出*(p++)是先输出*p即a[0]的值,再将指针p指向数组的下一个元素a[1],输出**q是输出指针p所指向单元的内容,即a[1]的值。
45.D
46.C解析:程序中定义了两个整型变量,一个用八进制表示,一个用十进制表示,输出语向中要求m,n都为八进制输出,显然m原样输出为256,n的值转换为八进制输出(256的八进制为400),故输出400.所以,4个选项中选项C符合题意。
47.B解析:本题涉及字符串最基本的两个概念:①字符串的长度是指字符串中字符的个数,但不包括字符串结束符;②以反斜杠“\\”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。
48.B解析:x为一个长整型的变量,而且是一个十进制的数,它的输出控制符是“%1d”;由于C语言中是区分大小写的,“1d”中的“d”不能为大写。
49.C解析:本题主要考查的知识点是联合体的内存使用。联合体所占用的内存空间为最长的成员所占用的空间,各个成员分量全部是从低地址方向开始使用内存单元。不能在定义共用体变量时对它初始化。
50.A解析:从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是要决定各个模块的实现算法,并精确表达出这些算法。
51.C解析:函数slzeof(a)的功能是求出字符串a中的字符占用存储空间的大小,由于字符数组a有长度为7,所以i=7;函数strlen(a)的功能是:求出字符串a的长度。而每个字符串都以'\\0'为字符串的结束标记,所以j的值等于2。
52.A解析:C语言的字符常量是用单引号(即撇号)括起来的一个字符。除此之外,在C语言中还允许用一个“\\”开头的字符序列来表示字符常量。其中,形式“\\ddd'表示1到3位8进制数所代表的字符;形式“\\xhh'表示1到2位16进制数所代表的字符。在本题中,\'\\x13\'表示回车符,是一个字符常量;\'\\081\'用8进制数所代表的字符,但形式不正确,因为8进制数所代表的字符中不会出现数字“8”;\'5\'不是一个字符,而是一个十进制数字;\'\\n\'是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。
53.A解析:本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会产生任何变化。
54.A解析:本题是一个陷阱,看似考查函数的传址调用,其实考的是传值调用。在C语言中,不管你给函数传递的参数是什么,指针也好数组名也罢,系统都是严格的将实参的值复制了一份作为函数的形参,即传值调用。在函数中,对形参中的值怎么改变都不会影响到实参。那传址调用又是怎么实现的呢?那是因为在函数中改变的不是形参指针变量中的值,而是形参指针变量所指内存中的值。其实骨子里还是将实参指针的值复制?一份给形参指针变量,它们是两个独立的互不相干的变量,只不过指向的内存地址值一模一样罢了。本题的函数只是改变了形参指针变量p的值,这对程序没有任何影响,主函数中p一开始就是指向b[0],最后输出时还是b[0]的值'a'。所以应该选择A。
55.A解析:在C语言中,数据类型可分为基本数据类型、构造数据类型、指针类型、空类型4大类,其中基本类型;字符型、整型、实型(单精度型和双精度型)、枚举类型。构造类型:数组、结构体、公用体。选项B中的逻辑型和C中双精度类型都属于基本数据类型,选项D集合类型属于构造类型;而选项A复数型不是C语言的数据类型。
56.B解析:数组元素可以通过数组首地址和下标的方式来引用,数组元素的下标是从0开始的,也可以将数组首地址赋给一个指针变量,通过指针和下标的方式来引用数组元素。注意:通过数组的首地址引用数组元素。
57.A队列是一种特殊的线性表,只允许在表的一端插八元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”。先插入的元素先被删除,是按“先进先出”的原则组织数据的。
【知识拓展】“队列”和“栈”都是一种特殊的线性表。之所以称之为“队列”,其形式如“排队”。要讲究“先来后到”,先进先出,后进后出。
58.D基本类型的数据可以混合运算,但运算时,对要求运算分量类型相同的运算来说,如运算分量的类型不是全相同,则会有自动类型转换发生。类型自动转换规则规定类型低(简单)的向类型高(复杂)的转换。各类型由高到低的排列顺序是:longdouble、float、unsignedlong、long、unsignedint、int这样,若有定义:chara;intb;floatc;doubled;则表达式a*b+d-c的值的类型是double的。首先计算a*b,得到int类型的值,接着计算a*b+d,得到double类型的值,最后计算a*b+d-c,得到double类型的值。所以解答是D。
59.C解析:主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]='Hello'、str[1]='Beijing',然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(p+20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7,所以,4个选项中选项C符合题意。
60.D解析:'\\\\'是反斜线转义字符:'\\t'是水平跳格转义字符;'\\n'饭是换行转义字符;C语言中没有规定'088'为转义字符。
61.B
62.AC语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。8中以数字8开头,所以错误。c与D中用的是关键字void与unsigned,所以错误。
63.B
64.C
65.A函数fun的功能是求数组的n个元素之和。fun(a,5)=15。由于s岫是静态局部变量,所以保持l5不变,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。
66.A执行x=x-=x-x语句可写成x=x-(x-x),可看出结果为10,故八选项正确。
67.C
68.BB【解析】只有B选项369可以用无符号整数来表示和存储。A选项一369有负号,选项C0.369是小数都不能用无符号整数类存储。选项D是一个整数集合得用数组来存储。
69.A赋值表达式左边必须是一个变量,而选项B)、c)中赋值号左边都是表达式,选项D)进行强制类型转换时,应写为(double)x/10。
70.A考查用指针来引用字符数组元素的方法。指针pl+k相当于指针pl向后移动了k个字符的位置,指针p2同理。
71.A\r\n
72.A
\ns是一个公用体,d的值分别与ch中的两个元素的值相同,d的高位放在chFl]中、低位放在chl-0]中,因此输出的结果为21,43。
73.A
74.D软件并不只是包括可以在计算机上运行的程序,与这些程序相关的文档一般也被认为是软件的一部分,即软件是包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。
软件具有如下特点:软件是一种逻辑实体,而不是具体的物理实体;软件的生产与硬件不同,它没有明显的制造过程;在软件的运行和使用期间,没有硬件那样的机械磨损和老化问题;软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性;软件的开发至今尚未完全摆脱手工艺的开发方式;软件本身是复杂的;软件成本相当昂贵;相当多的软件工作涉及社会因素。
75.B
76.A解析:耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
[知识拓展]模块的独立程序是评价设计好坏的一个重要标准,衡量软件的模块独立性有两个定性的度量标准。其中内聚性是指一个模块内部各个元素间彼此结合的紧密程度的度最,内聚性是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量,耦合性从整体的角度来度量模块间的联系。
77.A
78.D在输入格式控制“name=%snum=%d”中,普通字符“ns.111e=num=”在输入时要原样输入,而格式控制符%s和%d对应各自的输入项,将输入的数据赋给相应的输入项。本题中输入“name=Lifthum=1001<回车>”后,将字符串Ijli赋给字符数组llalne,整数1001赋给变量num。因此D选项正确。
79.D
80.A在有序的线性表中进行查找,最差的情况为从表头查找到表尾都没有所需要的值。长度为n的线性表从表头开始每次取出一个值比较,若不符合,再取下一个值,依次比较,一直到最后一个,需要比较n次。
81.
82.
【解析】首先判断循环中n是否为素数,如果不是素数,求其平方根的累加和,并返回计算结果,否则跳出判断循环。其中,对于平方根的求解可以使用C语句中的sqrt()函数。
2022年江苏省连云港市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________
一、单选题(20题)1.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。
A.控制流B.加工C.数据存储D.源和潭
2.有以下程序:#include<stdio.h>main(){inta[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i;p=a;for(i=0;i<3;i++){printf(“%d”,(*p)[i]);p++;}}程序的运行结果是()。
A.036B.012C.048D.147
3.已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()
A.ABCDEB.ECABDC.EACDBD.CDEAB
4.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序运行后的输出结果是A.A.2,3B.2,4C.3,4D.4,6
5.下列叙述中正确的是()。
A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对
6.以下正确的字符串常量是()。
A.\\\B.'abc'C.OlympicGames
7.快速排序在已经有序的情况下效率最差,复杂度为()
A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)
8.有下列程序:程序执行后的输出结果是()。A.abcdefghijklmnopq
B.afgebcdhnopqmijklhnopqmijkl
C.efgabcdmnopqhijkl
D.mijklhnopqebcdafg
9.以下语句定义正确的是()A.A.inta[1][4]-{1,2,3,4,5};
B.floata[3][]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};
D.doublea[][3]={O);
10.某二叉树的先序序列和后序序列正好相同,则该二叉树可能是______的二叉树。
A.高度大于1的左单支B.高度大于1的右单支C.最多只有一个结点D.既有左孩子又有右孩子
11.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的运行结果是()。
A.500B.401C.503D.1404
12.在inta=3,int*p=&a;中,*p的值是()。
A.变量a的地址值B.无意义C.变量p的地址值D.3
13.
14.
15.设二叉排序树中有n个结点,则二叉排序树的平均查找长度为()。A.O(1)
B.O(log2n)
C.O(n)
D.(n2)
16.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
A.wbB.wb+C.rb+D.rb
17.在软件设计中,不属于过程设计工具的是()。
A.PDLB.DFD图C.PAD图D.N—S图
18.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
19.以下能正确定义字符串的语句是()。
A.charstr=“\x43”;
B.charstr[]=“\0”;
C.charstr=”;
D.charstr[]={‘\064’};
20.设x=011050,则x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
二、2.填空题(20题)21.数据模型按不同应用层次分成三种类型,它们是概念数据模型、【】和物理数据模型。
22.Jackson方法是一种面向【】的结构化方法。
23.以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如;str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char*fun(char*str,charc)
{intn=0;char*p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!='\O')n++;
if(p[n]='\0')returnNULL;
return(【】);
}
24.已知字符'A'的ASCII码为65,以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,b);
}
25.以下程序的输出结果是【】。
main()
{inta=0;
a+=(a=8);
printf("%d\n",A);
}
26.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。
27.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。
28.下面程序的功能是:计算1~10之间奇数和及偶数之和。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=O;
for(i=O;i<=10;i+=2)
{a+=i;
【】;
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
29.若输入字符串:abcde,则以下while循环体将执行【】次。
while((ch=getchar())=='e')printf("*");
30.实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【】。
31.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统—管理与控制。
32.在运算过程中,能够使空表与非空表的运算统一的结构是【】。
33.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。
#defineN4
voidrotate(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=______;______=a[N-1][i];}
}
34.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。
35.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。
36.在E-R图中,矩形表示【】。
37.设有说明;
structDATE{intyear;intmonth;intday;};
请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、month、day依次赋初值2006、10、1:【】。
38.有以下程序
voidf(inty,int*x)
{y=y+*x;*X=*X+y;}
main()
{intx=2,y=4;
f(y,&x);
printf("%d%d\n",x,y);
}
执行后输出结果是______。
39.以下程序运行时若从键盘输入:102030<回车>。输出结果是()。
#include<stdio.h>
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);
}
40.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作______。
三、1.选择题(20题)41.下面程序输出的结果是main(){intx;x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3+4%6/5;printf("%d",x);x=(7+6)%5/2;printf("%d",x);}
A.111-31B.11-321C.12-321D.11121
42.设有关系R和S,关系代数表达式为R-(R-S)表示的是
A.R∩SB.R-SC.R∪SD.R÷S
43.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4);,则数组x在内存中所占字节数是______。
A.3B.6C.10D.20
44.下述程序的输出结果是()。#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf("%d",*(p++));printf("%d",**q);}
A.22B.11C.34D.12
45.设a、b和、c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式为()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
46.有以下程序main(){intm=0256,n=256;printf("%o%o\n",m,n);}程序运行后的输出结果是
A.02560400B.0256256C.256400D.400400
47.字符串"\\\"ABCDEF\"\\"的长度是()。
A.15B.10C.7D.8
48.设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是
A.printf(“x=%d\n”,x);
B.printf(“x=%1d\n”,x);
C.printf(“x=%8dL\n”,x);
D.pfintf(“x=%LD\n”,x);
49.对于下列定义,不正确的叙述是()。uniondata{inta;charb;doublec;}x=y;
A.变量x所占内存的长度等于成员c的长度
B.变量x的地址和它的各成员地址都是相同的
C.可以在定义时对x初始化
D.不能对变量x赋值,故x=y非法
50.软件详细设计的主要仟务是确定每个模块的
A.算法和使用的数据结构B.外部接口C.功能D.编程
51.下列程序的输出结果是()。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
52.以下合法的字符型常量是
A.'\x13'B.'\081'C.'65'D.\n
53.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高位取反,低4位不变,所要执行的运算是
A.a^bB.a|bC.a&bD.a<<4
54.有以下程序point(char*p){p+=3;}main(){charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);}程序运行后的输出结果是______。
A.aB.bC.cD.d
55.下列选项中不属于C语言的数据类型是()。
A.复数型B.逻辑型C.双精度型D.集合型
56.主程序调用findmax函数求出数组中最大元素在数组中的下标,()中需填写的内容是。#include<stdio.h>findmax(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])();}main(){inta[10],i,k;for(i=0;i<10;i++)scanf("%d",&a[i]);findmax(a,10,&k);printf("%d%d\n",k,a[k]);}
A.k=pB.*k=pC.k=p-sD.*k=p-s
57.按照“先进先出”组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
58.若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为()
A.floatB.intC.charD.double
59.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","beijing"},*p=str;ptintf("%\n",strlen(p+20));}程序运行后的输出结果是()。
A.0B.5C.7D.20
60.下列不正确的转义字符是()。
A.'\\'B.'t'C.'\n'D.'088'
四、选择题(20题)61.
62.以下选项中,能用作用户标识符的是()。
A.-0-B.8-;8C.voidD.unsigned
63.
64.
65.有以下程序程序执行后的输出结果是()
A.60B.50C.45D.55
66.设x为int型变量,则执行以下语句后,x的值为()。x=10;x=x-=x-x;
A.10B.20C.40D.30
67.
68.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}
69.若变量x、Y已正确定义并赋值,以下符合C语言语法的表达式是()。
A.++x,y=x-B.x+1=yC.x=x+10=x+yD.double(x/10)
70.下面程序的运行结果是()。
A.gaeB.gaC.LanguageD.有语法错
71.
72.
有以下程序:
main
{union
{charch[2];
intd;
}s;
d=0x4321;
printf("%x,%x\n",S.ch[0],S.ch[l]);
}
在16位编译系统上,程序执行后的输出结果是()
A.21,43B.43,21C.43,00D.21,00
73.
74.下列描述中正确的是
A.软件指的就是程序B.软件开发不受任何计算机系统的限制
C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合
75.(17)软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及()
A.阶段性报告
B.需求评审
C.总结
D.都不正确
76.两个或两个以上模块之间联系的紧密程度称为()。
A.耦合性B.内聚性C.复杂性D.数据传输特性
77.
78.有以下程序段:
当执行上述程序段,并从键盘输入:nalne=LilinLim=1001<;回车>;后,name的值为()。
A.name:=Lilinum=1001B.nfll"ne=LiliC.Uli.h.um=D.Lili
79.以下程序的输出结果是()。
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010B.99C.910D.109
80.在长度为n的有序线性表中进行顺序查找,最坏情况下需要比较的次数是
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若nmnl和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输也的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或硼行,也不得更改程序的结构!试题程序:
六、程序设计题(1题)82.请编写fun()函数,其功能是:计算并输出3~m所有素数的平方根之和。例如,若主函数从键盘给m输入50后,则输出为s=63.665791。注意:m的值要大于2但不大于l00。部分源程序给出如下。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。
2.Cmain函数定义3行3列的整型二维数组a;定义数组指针P,P指向包含3个元素的数组。程序首先将a赋给p。for循环中,i=0时,P指向a的第1个元素{0,1,2},输出p[0]即0;i=1时,p指向a的第2个元素{3,4,5},输出P[1]即4;i=2时,p指向a的第3个元素{6,7,8},输出P[2]即8。所以程序输出048。故本题答案为C选项。
3.C由于后序遍历的最后一个儿素为E,所以E为根结点,所以它的前序遍历的首个元素为E,敞排除A)和D)选项。由于中序遍历中,元素B在元素根结点E自:J后面,所以B为二叉树的右子树,并且该二叉树右子树只有一个儿素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉埘的前序遍历序列是EACDB。
4.B解析:p指向x的第一个元素,所以p->n的值为2,p->next指向x+1,即指向x的第二个元素,所以p->next->n为4。
5.D【答案】:D
【知识点】:栈和队列
【解析】:栈和队列都是线性结构,所以选项C错误;栈是一种先进后出的线性表,故选项A错误;队列是一种先进先出的线性表,故选项B错误,所以选D。
6.D解析:在C语言中,字符串常量是以双引号括起来的字符序列。故选项B和C不正确。字符序列中可包含一些转义字符,转义字符都是以“\\”开头的。选项A中包含了三个“\\”,前两个(\\\\)代表了一个“\\”字符,后面一个和“'”一起(\\”)被看作一个……,所以该字符串缺少一个结束的“'”,故不正确。选项D的两个……之间没有任何字符,代表的是一个空串,是合法的字符串常量,故应该选择D。
7.D
8.B程序首先定义二维字符数组v,使用4个字符串初始化,另外定义字符指针数组P。通过第1个for循环,将v的4个字符串的首地址赋给p。第2for循环通过两层内嵌循环将p中元素指向的字符串首字母进行排序交换。规则是将指向的字符串的首字母字符按照字母表中的顺序排序后交换。注意,这里交换的是首字母,而不是整个字符串,所以程序输出:afgebcdhnopqmijkl。本题答案为B选项。
9.D本题考查的是如何对二维数组进行赋值。选项A)中数组第二维的大小是4,但却给赋了5个元素;选项B)中C语言规定,对于二维数组,只可以省略第一个方括号中的常量表达式而不可以省略第二个方括号中的常量表达式:选项c)中数组第一维的大小是2,但是赋值却超过了2;选项D)中在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。
10.C
11.Cfor循环中,函数f的返回值累加到变量a中。第1次循环,a=0,i=0,返回值a=0*0+1=1;第2次循环,a=1,i=10,返回值a=10*10+1+1=102;第3次循环,a=102,i=20,返回值a=20*20+1+102=503;第4次循环a=503,i=30,不符合1<30,跳出循环,最后结果输出a=503。故本题答案为C选项。
12.D
13.A
14.B
15.B
16.B解析:本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件:方式“rb”为输入打开一个二进制文件。
17.B常见的过程设计工具有图形土具(程序流程图、N—S图、PAD图、HIP0图)、表格工具(判定表)和语言工具(PDL)。DFD是数据流图,是描述数据处理过程的工具。
18.C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义:→或↓表示控制流;□表示加工步骤;
表示逻辑条件。
19.BC语言中,字符串是用一对双引号标识的字符序列,并用字符型数组来存放。C选项和D选项不属于字符串,A选项定义的是一个字符变量str,但赋值字符串,显然也不正确。故本题答案为B选项。
20.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。
21.逻辑数据模型逻辑数据模型解析:数据模型按不同的应用层次分成三种类型,它们是概念数据模型、逻辑数据模型、物理数据模型。
22.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。
23.&P(n)或p+n&P(n)或p+n解析:因为n被初始化为0、p被初始化指向str所指字符串的首地址,所以while循环的功能是从str所指字符串的第1个字符开始比较,若等于c或等于字符串结束符'\\0'就跳出循环。故循环结束后,若p[n]为'\\0',则证明str所指字符串不包含c中的字符,应该返回NULL,否则应该返回p[n]的地址值。返回NULL在第2条if语句中已经实现,所以我们应该填入的表达式为p[n]的地址值,即&p[n]或p+n。
24.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式输出\'C\'的ASCII码为67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式输出为\'G\'。
25.1616解析:在程序中首先将8赋值给变量a,然后在进行复合赋值运算。即a=a+a=8+8=16,所以该空格处应该填16。
26.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。
27.上溢上溢解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。
28.b=i+1
29.00解析:函数getchar()是从键盘得用户输入的一个字符。用户输入的第1个字符a,不管后面输入的是什么ch的值都是'a',因此条件(ch=getchar())=='e'为假,这个循环不会被执行。
30.空间复杂度和时间复杂度算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。
31.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统—管理与控制。
32.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。
33.a[0][i]b[i][0]a[0][i]\r\nb[i][0]解析:因为数组a[N][N]的第0行表示为a[0][n](n=0~3),而数组b[N][N]的最后一列表示为b[n][N-1)(n=0~3),所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中学食堂外包合同样本
- 切边合同样本
- 供货合同样本详细版
- 临时财会劳务合同样本
- 出租野餐工具合同标准文本
- 养猪租赁合同样本
- 分包分红合同样本
- 专业承包劳务合同标准文本
- 出售毛坯套房合同标准文本
- 兼职合同样本保密义务
- 工程造价咨询服务投标方案(专家团队版-)
- 2025年华润电力招聘笔试参考题库含答案解析
- 半导体车间安全培训课件
- 【MOOC】国际学术交流英语-哈尔滨工业大学 中国大学慕课MOOC答案
- 2024年云南省(面试)公务员考试试题与参考答案
- 《自身抗体的检测》课件
- 电动汽车三电系统培训
- 成本核算管理制度(4篇)
- 精神障碍的分类与诊断标准课件
- 人美版小学四年级美术下册全册教案
- 汽车常见故障诊断排查及诊断树
评论
0/150
提交评论