还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
计算二级语言易错知识点C
1.指针是用来寄存地址的变量,用类型名*指针变量名的形式定义赋值时应将某个变量地址即X赋给指针变量
2.设fp为指向某二进制文献的指针,且已读到此文献末尾,则函数feoffp的返回值为A0B\0C非值D NULL【解析】本题考察文献的定位,feof函数的使用方法是从输入流读取数据,假如抵达文献末尾遇文献结束符,eof函数值为非零值,否则为3因此选项C对的
3.有如下程序ttinclude stdio.h main int a=5,b=l,t;t=a2|b;printf〃%d\n〃,t;程序运行后的输出成果是A1B11C6D21【解析】本题考察位运算,以及按位或操作,将a左移一位相称于是将a乘以了4,因此a〈2等于20,二进制表达为00010100,与b按位或得到00010101,即21,因此选项D对的
4.有如下程序ttinclude stdio.h#define N5^define MN+l#define fxx*M【解析】根据二叉树的基本性质3在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一种,因此本题中度为2的结点为1—1=0个,因此可以懂得本题目中的二叉树的每一种结点均有一种分支,因此共7个结点共7层,即度为
722.下列论述中对的的是()oA)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化0在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)以上说法均不对的解析】栈是先进后出的数据构造,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,因此选择
023.下列有关栈论述对的的是()oA)栈顶元素最先能被删除B)栈顶元素最终才能被删除C)栈底元素永远不能被删除D)栈底元素最先被删除解析】栈是先进后出的数据构造,因此栈顶元素最终入栈却最先被删除栈底元素最先入栈却最终被删除因此选择A)
24.有如下程序ttinclude stdio.hmain(){unsigned chara=2,b=4,c=5,d;d=a|b;d=c;printf(〃%d\n〃,d);}程序运行后的输出成果是()oA)3B)4C)5D)6【解析】按位与,假如两个对应的二进制位都为1,则该位的成果值为1,否则为0I按位或,两个对应的二进制位中只要有一种为1,该位的成果值为I-2的二进制为00000010,4的二进制为00000100,因此做或运算成果为00000110,该数与5即00000101做与操作成果为00000100,即4o
25.如下论述中错误的是()oA)使用三种基本构造构成的程序只能处理简朴问题B)构造化程序由次序、分支、循环三种基本构造构成0C语言是一种构造化程序设计语言D)构造化程序设计倡导模块化的设计措施对的答案A答疑【解析】使用次序,选择(分支),循环三种基本构造构成的程序可以处理所有问题,而不只是处理简朴问题,因此A)错误
26.数据库应用系统中的关键问题是数据库的设计
27.耦合性和内聚性是对模块独立性度量的两个原则下列论述中对的的是()oA)提高耦合性减少内聚性有助于提高模块的独立性B)减少耦合性提高内聚性有助于提高模块的独立性0耦合性是指一种模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度对的答案B答疑【解析】模块独立性是指每个模块只完毕系统规定的独立的子功能,并且与其他模块的联络至少且接口简朴一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有助于提高模块的独立性,因此A)错误,B)对的耦合性是模块间互相连接的紧密程度的度量而内聚性是指一种模块内部各个元素间彼此结合的紧密程度,因此C)与D)错误
28.软件测试的目的是为了发现错误而执行程序的过程,并不波及改正错误,因此选项A)错误程序调试的基本环节有错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误程序调试一般称为Debug,即排错软件测试的基本准则有所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充足注意测试中的群集现象、程序员应防止检查自己的程序、穷举测试不也许、妥善保留测试计划等文献
29.编译软件、操作系统、汇编程序都属于系统软件,只有C)教务管理系统才是应用软件
30.冒泡排序与简朴插入排序与简朴选择排序法在最坏状况下均需要比较n(n—1)/2次,而堆排序在最坏状况下需要比较的次数是回
31.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()oA10B)8C)6D)4对的答案c答疑【解析】根据二叉树的基本性质3在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一种,因此本题中是5+1=6个
32.栈支持子程序调用栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保留主程序目前的状态,然后转去执行子程序,最终把子程序的执行成果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)
33.如下论述中对的的是()oA)当对文献的读(写)操作完毕之后,必须将它关闭,否则也许导致数据丢失B)打开一种已存在的文献并进行了写操作后,原有文献中的所有数据必然被覆盖O在一种程序中当对文献进行了写操作后,必须先关闭该文献然后再打开,才能读到第1个数据D)C语言中的文献是流式文献,因此只能次序存取数据对的答案A答疑【解析】B)选项中打开一种已存在的文献并进行了写操作后,原有文献中的所有数据不一定被覆盖,也可以对源文献进行追加操作等C)选项中在一种程序中当对文献进行了写操作后,不用先关闭该文献然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可D)选项中,C语言中的文献可以进行随机读写
34.有如下程序ftinclude stdio.hftinclude stdlib.hmain{int*a,*b,*c;a=b=c=int*malloc sizeofint;*a=l;*b=2;*c=3;a=b;printf/z%d,%d,%d\n〃,*a,*b,*c;程序运行后的输出成果是oA1,1,3B2,2,3C1,2,3D3,3,3对的答案D答疑【解析】malloc函数动态分派一种整型的内存空间,然后把函数返回的地址用(int*)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间因此只有最终一种赋值语句*c=3的值保留在了该空间内,由于a,b,c三个指针变量均指向该空间,因此打印该空间内的数值为
335.有如下程序ftinclude stdio.h main{unsigned chara=2,b=4,c=5,d;d=a|b;d=c;printf z/%d\nz/,d;}程序运行后的输出成果是oA3B4C5D6对的答案B答疑【解析】按位与,假如两个对应的二进制位都为1,则该位的成果值为I,否则为0I按位或,两个对应的二进制位中只要有一种为I,该位的成果值为12的二进制为00000010,4的二进制为00000100,因此做或运算成果为00000110,该数与5即00000101做与操作成果为00000100,即4o
36.有如下程序ftinclude stdio.hftdefine PT
3.5;#define SxPT*x*x;main{int a=l,b=2;printf zz%
4.lf\nzz,Sa+b;}程序运行后的输出成果是oA
7.5B
31.5o程序有错无输出成果D
14.0对的答案C答疑【解析】宏定义不是c语句,末尾不需要有分号因此语句printf,z%
4.If\nz/,S a+b;展开后为printf〃%
4.lf\n〃,
3.5;*a+b*a+b;;因此程序会出现语法错误
37.有如下程序ftinclude stdio.hstruct S{int a,b;}data
[2]={10,100,20,200};main{struct Sp=data[l];printf〃%d\n〃,++p.a;程序运行后的输出成果是oA10B11C20D21对的答案D答疑【解析】申明data是构造S数组初始化data
[0].a=10;data
[0].b=100;data[l].a=20;data[l].b=200主函数中p=data[l];即p.a=data[l].a;p.b=data[l].ob;执行语句printf〃%d\n〃,++p.a;打印输出时p.a先增1再打印p.a=data[l].a=20,先增1等于21o
38.如下论述中错误的是oA可以通过typedef增长新的类型B可以用typedef将已存在的类型用一种新的名字来代表0用typedef定义新的类型名后,原有类型名仍有效D用typedef可认为多种类型起别名,但不能为变量起别名对的答案A答疑【解析】关键字typedef的作用只是将C语言中的已经有的数据类型作了置换,并不是增长新的类型,因此A错误
39.A由详细定义位置和extern阐明来决定范围B所在程序的所有范C所在函数的所有范D所在文献的所有范在一种C源程序文献中所定义的全局变量,其作用域为对的答案A答疑【解析】全局变量的作用域是从申明处到文献的结束因此选择A
40.有如下程序ftinclude stdio.h intfun{static int x=1;x*=2;return x;}main{int i,s=l;for i=l;i=3;i++s*=fun;printf〃%d\n〃,s;程序运行后的输出成果是oA10B30C0D64对的答案D答疑【解析】本题目中静态局部变量x,在静态存储区内分派存储单元,在程序整个运行期间都不释放因此第一次循环S的值为2,第二次循环中,返回的X的值为4,因此s的值为8,第三次循环,返回的x的值为8,因此s的值为64o
41.有如下函数int funchar*x,char*y{int n=0;while*x==*y*x!=\0{x++;y++;n++;}return n;}函数的功能是oA)将y所指字符串赋给x所指存储空间B)查找x和y所指字符串中与否有\0记录x和y所指字符串中最前面持续相似的字符个数D)记录x和y所指字符串中相似的字符个数对的答案c答疑【解析】本题中由循环条件可知碰到\0或x与y所指的字符的值不等中的一种条件时就结束,因此功能是记录x和y所指字符串中最前面持续相似的字符个数
42.有如下程序ftinclude stdio.h voids*x,char*y){char t;t=*x;*x=*y;*y=t;)main(){char*sl=〃abc〃,*s2=〃123〃;5,s2)jprintf(,z%s,%s\n〃,si,s2);}程序执行后的输出成果是()oA321,cbaB abc,123C123,abcD lbc,a23对的答案D答疑【解析】字符串是一种特殊的数组,因此按照数组的规则,si应当指向的是数组的首地址,即〃abc〃的第一种字符的地址s2指向的是〃123〃的第一种字符的地址调用swap函数之后互换的是两个字符串的第一种字符‘a和’1的内容,因此打印输出为D
43.如下不能将s所指字符串对的复制到t所指存储空间的是A do{*t++=*s++;}while*s;B for i=0;t[i]=s[i];i++;C while*t=*s{t++;s++}D fori=0,j=O;t[i++]=s[j++];;对的答案A答疑【解析】do{*t++=*s++;}while*s;不能由于当*s=\0时,while*s跳出循环,这样字符串结束标志\0没有复制给*t,导致*t不完整注意,*t++=*s++是先执行t=*s,然后才进行t=t+l,s=s+l B,C,D都能将\0复制过去
44.如下语句中存在语法错误的是oA char ss
[6]
[20];ss[l]=right”;B char ss
[20]={right”};C char*ss
[6];ss[l]=right”;D char*ss={right”};对的答案A答疑【解析】数组定义后,不可以对数组整体赋值,s是二维数组,因ss[l]是一维字符数组,即字符串,字符串赋值可以使用strcpyss[l],right;这样的形式,而选项A中对二维数组中的第“1”维相称于一种一维数组赋值,是不可以的选项B和D是定义时对数组初始化,这是可以的选项C中,将字符串在内存中的首地址赋给指针数组的一种元素,这是可以的
45.ttinclude stdio.hmain{int b
[3]
[3]={0,1,2,0,1,2,0,1,2},i,j,t=l;fori=0;i3;i++forj=i;j=i;j++t+=b[i][b[j][i]];printf〃%d\n〃,t;程序运行后的输出成果是oA3B4c1D9对的答案B答疑【解析】每次内循环只循环一次就结束,第一次外循环时1=1+b
[0][b
[0]
[0]]=1+b
[0]
[0]=1+0=1;第二次外循环时t==l+b⑴⑴=1+1=2;第三次外循环时t=t+b⑵[b⑵⑵]=2+b⑵
[2]=2+2=4o
46.下列定义数组的语句中,对的的是oA#define N10int x[N]B intN=10;int x[N]xC int x[
0..10];D intx[];对的答案A答疑【解析】数组阐明的一般形式为类型阐明符数组名[常量体现式]B中N是变量,不能用变量定义数组长度C选项中数组长度是非法的一串数字定义数组时必须为其指明长度,D选项中数组长度为空,因此非法
47.main{int il,i2;il=f⑵;i2=f1+1;printf,z%d%d\nz/,il,i2;}程序的运行成果是A127B1212C1111D117【解析】本题考察宏定义的使用方法,宏定义只是做个简朴的替代,因此本题中执行f2=2*N+l=ll,执行fl+l=l+l*N+l=7o选项D对的s.有如下程序#include stdio.h^include string.hstruct Aint a;char b
[10];double c;;void fstruct At;main structA a={1001,〃ZhangDa〃,
1098.0};f a;printf〃%d,%s,%
6.If\n〃,a.a,a.b,a.c;void fstructA tt.a=1002;strcpy t.b,〃ChangRong〃;t.c=
1202.0;程序运行后的输出成果是有如下程序ttinclude stdio.h main{int n,*p=NULL;*p=n;printfInput n〃;scanf〃%d〃,p;printf outputn〃;printf/z%d\n/z,p;}该程序试图通过指针P为变量n读入数据并输出,但程序有多处错误,如下语句对的的是A int n,*p=NULL;B*p=n;C scanf pD printf%d\n,p;对的答案A答疑【解析】选项B的对的写法应为p=n;选项C的对的写法应为scanfp;选项D的对的写法应为printf〃%d\n〃,*p
48.有如下程序ftinclude stdio.hint addint a,int b{return a+b;}main{int k,*f,a=5,b=10;f=add;•••则如下函数调用语句错误的是oA k=f a,b;B k=adda,b;C k=*f a,b;D k=*f a,b;对的答案D答疑【解析】D选项中*fa,b表达调用后返回一种指向整型数据的地址指针,即该函数的返回值为指针类型,因此不能将其赋值给整形变量k
49.若有定义float x=l.5;int a=l,b=3,c=2;则对的的switch语句是oA switcha+b{case1printf*\n;case2+1printf**\n;}B switchintx;{case1printf*\n;case2printf**\n;}C switchx{case
1.0printf*\n;case
2.0printf**\n;}.D switcha+b{case1printf*\n;case cprintf**\n;}对的答案A答疑【解析】B选项中switchintx;语句中不应当有最终的分号switchexprl中的exprl不能用浮点类型或long类型,也不能为一种字符串,因此C错误case背面常量体现式的类型必须与switch背面体现式的类型一致,因此D错误
50.有如卜程序ftinclude stdio.h mainintx=l,y=0;if!xy++;else ifx==0ifx y+=2;else y+=3;printf〃%d\n〃,y;程序运行后的输出成果是oA3B201D0对的答案D答疑【解析】在if else语句中else总是与离它近来的if配对本题目中x为1因此!x为0,因此执行else if语句中的内容,判断x==0与否成立,由于x为1因此条件不成立,因此else if内部的if…else语句不再执行,因此y的值还是初始值
051.若有定义intx,y;,并已对的给变量赋值,则如下选项中与体现式x—yx++y++中的条件体现式x—y等价的是A X—y0||x—y0B x—y0C x—y0D x—y==0对的答案A答疑【解析】条件体现式x=体现式1体现式2:体现式3的含义是先求解“体现式”1,若为非0真,则求解“体现式2”,将“体现式2”的值赋给X若“体现式1”的值为0假,则求解“体现式3”,将“体现式3”的值赋给X在本题中与“体现式1”x—y等价的是x—与0||x—y
052.z=x++,y++,++y;由于赋值运算符的优先级高于逗号运算符的优先级,因此可以将上式表到达z=x++,y++,++y然后从左向右先计算体现式2=*++,由于x++先使用后自增,因此z的值为1,x的值为2再计算逗号体现式第二个体现式y++,此时y的值为2,最终计算第三个体现O式++y,y的值为
353.设变量已对的定义并赋值,如下对的的体现式是()0A)x=y+z+5,++yB)int(
15.8%5)C)x=y*5=x+zD)x=25%
5.0对的答案A答疑【解析】B)与D)选项中取模运算符%的左右两个操作数均应为整数,因此B)、D)错误C)选项中不能将x+y的值赋给体现式y*5,因此C)错误
54.c语言中标识符由字母、下划线、数字构成,且开头必须是字母或下划线
55.如下选项中,能用作数据常量的是()A)115L B)0118C)
1.5el.5D)oll5对的答案A答疑【解析】A)选项中115L表达115是长整型数据,合法B)选项是八进制常量的表达措施,不过在八进制中不能具有数字8,因此B)错误C)选项中e背面应当是整数不能是小数
1.5,因此C)错误D)选项中八进制常量应当是数字〃0〃开始,而不是字母〃〃开始
56.A)C程序可以由多种程序文献构成0C程序可以由一种或多种函数构成D)一种C函数可以单独作为一种C程序文献存在
57.有三个关系R、S和T如下由关系R和S通过运算得到关系T,则所使用的运算为()oT□A B Cm13LZJ□JA)笛卡尔积B)交C)并D)自然连接对的答案D答疑【解析】自然连接是一种特殊的等值连接,它规定两个关系中进行比较的分量必须是相似的属性组,并且在成果中把反复的属性列去掉,因此根据T关系中的有序组可知R与S进行的是自然连接操作
58.数据管剪发展至今已经历了三个阶段人工管理阶段、文献系统阶段和数据库系统阶段其中最终一种阶段构造简朴,使用以便,逻辑性强物理性少,在各方面的体现都最佳,一直占据数据库领域的主导地位,因此数据共享最佳的是数据库系统阶段
59.由于一间宿舍可以住多种学生即多种学生住在一种宿舍中,但一种学生只能住一间宿舍,因此实体宿舍和学生之间是一对多的关系
60.对象有如下某些基本特点标识唯一性、分类性、多态性、封装性、模块独立性好
61.数据流图中带有箭头的线段表达的是(数据流)o
62.在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,鉴定树与鉴定表
63.下列论述中对的的是()A)次序存储构造的存储一定是持续的,链式存储构造的存储空间不一定是持续的B)次序存储构造只针对线性构造,链式存储构造只针对非线性构造O次序存储构造能存储有序表,链式存储构造不能存储有序表D)链式存储构造比次序存储构造节省存储空间对的答案A答疑【解析】链式存储构造既可以针对线性构造也可以针对非线性构造,因此B与C错误链式存储构造中每个结点都由数据域与指针域两部分构成,增长了存储空间,因此D错误
64.有如下程序ftinclude stdio.hmain(){chars[]=〃012xy\08s34f4w2〃;int i,n=0;fori=O;s[i]!=0;i++if s[i]〉=O s[i]=9n++;printf〃%d\n〃,n;程序运行后的输出成果是oA0B3C7D8对的答案B答疑【解析】本题中碰到〃〃字符循环结束,因此只记录〃〃之前的数字字符,所认为
365.设有定义char p[]={l,2,3},*q=p;,如下不能计算出一种char型数据所占字节数的体现式是A sizeofpBsizeofcharC sizeof*qD sizeofp
[0]对的答案A答疑【解析】根据题目中的定义可以懂得sizeof p计算的是数组p中所有元素所占用的字节数,而不是char型数据所占字节数
66.字符串的输入不能使用scanf%s,s;而应当使用getss【设有定义chars
[81];int i=0;,如下不能将一行不超过80个字符带有空格的字符串对的读入的语句或语句组是0A getss;B whiles[i++]=getchar!=\n;s[i]=\0,;C scanfs;D do{scanf%c”,s[i];}whiles[i++]!=\n;s[i]=\0’;A1002,ZhangDa,
1202.0B1002,ChangRong,
1202.0C1001,ChangRong,
1098.0D1001,ZhangDa,
1098.0【解析】本题考察构造体的有关操作以及传值、传址的区别,该题中调用f函数后,会生成参数a的一种副本,而不会变化a的值,因此a值维持原值,选项D对的
6.假定已建立如下链表构造,且指针P和q已指向如图所示的结点Lhead+T aATqTPdata next则如下选项中可将q所指结点从链表中删除并释放该结点的语句组是A p-next=q-next;freeq;B p=q-next;freeq;C p=q;freeq;D*p.next=*q.next;freep;【解析】本题考察删除链表中的节点操作,其措施是将要删除节点的上个节点的下个节点指向要删除节点的下个节点,然后释放该要删除节点,因此选项A对的
7.如下构造体类型阐明和变量定义中对的的是A struct REC;{int n;char c;};REC tl,t2;B typedef struct{int n;char c;}REC;REC tl,t2;C typedefstruct REC;{int n=0;char c=A;}tl,t2;D struct{int n;char c;}REC;REC tl,t2;【解析】本题考察构造体的有关知识,选项A中structREC背面不能有分号,C选项中typedefstructREC的背面也不能有分号,选项D中REC已经是构造体变量,不能当做构造体类型来使用
8.下列函数的功能是void fun char char*bwhile*b=*a!=\0{a++;b++;}A将a所指字符串赋给b所指空间B使指针b指向a所指字符串0将a所指字符串和b所指字符串进行比较D检查a和b所指字符串中与否有\0【解析】While循环条件为*b=*a!=\0,执行时先把指针a所指向的字符赋给指针b所在内存单元,假如该字符不是结束标识〃\0〃,执行循环体a++;b++;,指针a、b分别指向下一种字符单元再判断循环条件,假如成立,继续把指针a所指向的字符赋给指针b所在内存单元,直到碰到结束标识为止因此A选项对的
9.有如下程序ftinclude stdio.hvoid funchar*a,char*b{while*a=,*,a++;while*b=*a{b++;a++;}}main{char*s=〃*****a*b****〃,t
[80];funs,t;puts t;程序的运行成果是A abBa*bC*****a*bD a*b****【解析】在函数funchar*a,char*b中,while*a==*a++的功能是假如*a的内容为则a指针向后移动,直到碰到非字符为止,退出循环进入下一种while循环,在wh入下*b=*a{b++;a++;}中,把字符数组a中的字符逐一赋给字符数组b因此在主函数中,执行funs,t语句后,字符数组t中的内容为〃a*b****〃因此D选项对的
10.如下有关字符串的论述中对的的是A空串比空格打头的字符串小B两个字符串中的字符个数相似时才能进行字符串大小的比较0可以用关系运算符对字符串的大小进行比较D C语言中有字符串类型的常量和变量【解析】字符串比较大小是以第1个不相似字符的大小为原则的,跟长度没有关系,B选项不对的;字符串比较大小除了使用库函数strcn3以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小由于字符串在体现式中相称于const char*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的C选项不对的C语言中只有字符串常量而没有字符串变量,D选项描述不对的;空串的长度为0,而以空格打头的字符串的长度至少为L因此A选项是对的
11.如下程序中函数f的功能是当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序ttinclude stdio.hvoid fint b[],intn,int flagint i,j,t;fori=0;in-l;i++forj=i+l;jn;j++if flagb[i]b[j]:b[i]b[j]{t=b[i];b[i]=b[j];b[j]=t;}mainint a
[10]={5,4,3,2,1,6,7,8,9,10,i;fa
[2],5,0;fa,5,1;fori=0;i10;i++printf〃%d,〃,a[i];程序运行后的输出成果是A1,2,3,4,5,6,7,8,9,10,B3,4,5,6,7,2,1,8,9,10,C5,4,3,2,1,6,7,8,9,10,D10,9,8,7,6,5,4,3,2,1,【解析】本题重点考察函数的参数传递,函数的参数传递分为传值和传地址两种状况本题就是结合数组考察参数传递的情形函数f完毕的功能是对数据进行排序,语句fa
[2],5,0的作用是对从a
[2]开始的5个元素进行从大到小排序注意这里传递的是地址a
[2],因此排序操作可看作是直接对数组a操作,执行后的成果为5,4,7,6,3,2,1,8,9,10语句f a,5,1对数组a的前5个元素从小到大排序,排序后数组为3,4,5,6,7,2,1,8,9,10因此B选项对的
12.若有定义语句int a
[2]
[3],*p
[3];则如下语句中对的的是A p=a;B p
[0]=a;C p
[0]=a[lH21;D p
[1]=a;【解析】A选项错误,由于p是指向一种指针数组,作为数组名,不能指向别的地方B选项错误,由于p
[0]是一种int指针,也就是int*;而a是一种指向指针的指针int**C选项对的,由于p[的是一种int*,是int,是int*,类型吻合D选项错误,由于a作为数组名,不能取地址,虽然能取,p[l]是int*,a是int***,类型不对因此C选项对的
13.如下论述中错误的是A C程序必须由一种或一种以上的函数构成B函数调用可以作为一种独立的语句存在C若函数有返回值,必须通过return语句返回D函数形参的值也可以传回给对应的实参【解析】形参是函数定义时由顾客定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始数据在c语言中,实参向形参传送数据的方式是“值传递”因此D选项对的
14.有如下程序ttinclude stdio.hmain{inta=l,b=2;for;a8;a++{b+=a;a+=2;}printf〃%d,%d\n〃,a,b;程序运行后的输出成果是A9,18B8,11c7,11D10,14【解析】第一次循环a的值为1,满足条件,执行b+=a与a+=2,则b的值变为3,a的值变为3执行a++,a的值为4,满足条件进入第二次循环,执行完循环体后b的值为7,a的值为6执行a++,a的值为7,满足条件进入第三次循环,执行完循环体后b的值为14,a的值为9执行a++,a的值变为10因此选择D选项
15.在如下给出的体现式中,与while E中的E不等价的体现式是A E0||E0B E=0C!E==0D E!=0【解析】while语句中条件体现式E的值不为0即为真,认为满足条件,因此与B选项中体现式的含义恰好相反,选择B选项
16.若有定义inta,b;通过语句scanf〃%d;%d〃,a,b;能把整数3赋给变量a,5赋给变量b的输入数据是A35B3,5C3;5D35【解析】输入数据的格式必须与scanf的格式控制串完全匹配,因此输入时必须在3和5之间输入〃;〃
17.如下有关C语言的论述中对的的是A C语言的数值常量中夹带空格不影响常量值的对的表达BC语言中的变量可以在使用之前的任何位置进行定义0在c语言算术体现式的书写中,运算符两侧的运算数类型必须一致D C语言中的注释不可以夹在变量名或关键字的中间【解析】C语言的数值常量中不能夹带空格,因此A错误C语言中的变量都必须先定义再使用,对变量的定义一般放在函数体内的前部,但也可以放在函数外部或复合语句的开头,不能随便放置,因此B错误在C语言中运算符两侧的运算数据类型可以不一致,且成果与精度较高的保持一致,因此C错误
18.一种教师可讲授多门课程,一门课程可由多种教师讲授则实体教师和课程间的联络是oA)11联络C)m1联络D)mn联络【解析】由于一种教师可讲授多门课程,而一门课程又能由多种老师讲授因此他们之间是多对多的关系,可以表达为mn
19.负责数据库中查询操作的数据库语言是()oA)数据定义语言B)数据管理语言0数据操纵语言D)数据控制语言【解析】数据定义语言负责数据的模式定义与数据的物理存取构建;数据操纵语言负责数据的操纵,包括查询及增、册h改等操作;数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能
20.下面描述中错误的是()oA)系统总体构造图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表达的过程0数据构造与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表达工具[【解析】详细设计的任务是为软件构造图中而非总体构造图中的每一种模块确定实现算法和局部数据构造,用某种选定的体现工具表达算法和数据构造的细节,因此A)错误
21.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)()oA)3B)4C6。
个人认证
优秀文档
获得点赞 0