未来教育题库第6套试题及答案详解文档格式.docx

上传人:b****5 文档编号:16317879 上传时间:2022-11-22 格式:DOCX 页数:18 大小:37.56KB
下载 相关 举报
未来教育题库第6套试题及答案详解文档格式.docx_第1页
第1页 / 共18页
未来教育题库第6套试题及答案详解文档格式.docx_第2页
第2页 / 共18页
未来教育题库第6套试题及答案详解文档格式.docx_第3页
第3页 / 共18页
未来教育题库第6套试题及答案详解文档格式.docx_第4页
第4页 / 共18页
未来教育题库第6套试题及答案详解文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

未来教育题库第6套试题及答案详解文档格式.docx

《未来教育题库第6套试题及答案详解文档格式.docx》由会员分享,可在线阅读,更多相关《未来教育题库第6套试题及答案详解文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

未来教育题库第6套试题及答案详解文档格式.docx

A)在需求分析阶段建立数据字典

B)在概念设计阶段建立数据字典

C)在逻辑设计阶段建立数据字典

D)在物理设计阶段建立数据字典

【解析】数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。

数据库系统的三级模式不包括(  )。

A)概念模式

B)内模式

C)外模式

D)数据模式

【解析】数据库系统的三级模式是概念模式、外模式和内模式,所以选择D)。

有三个关系R、S和T如下:

则由关系R和S得到关系T的操作是(  )。

A)自然连接

B)并

C)交

D)差

【解析】自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和S做的是自然连接操作。

下列选项中属于面向对象设计方法主要特征的是(  )。

A)继承

B)自顶向下

C)模块化

D)逐步求精

【解析】面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A)。

以下叙述中正确的是(  )。

A)C语言程序将从源程序中第一个函数开始执行

B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C)C语言规定必须用main作为主函数名,程序从此开始执行,在此结束

D)main作为用户标识符,用以命名任意一个函数作为主函数

【解析】一个C语言源程序至少包含一个main函数。

无论main函数在程序中的位置如何,它都是C语言程序的主函数,是程序执行的入口和出口。

下列是用户自定义标识符的是(  )。

A) w1

B)3 xy

C)int

D)LINE-3

【解析】C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;

此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int是C语言的关键字。

执行以下程序时输入1234567<

CR>

,则输出结果是(  )。

#include<

stdio.h>

main(){inta=1,b;

scanf("

%3d%2d"

,&

a,&

b);

printf("

%d%d\n"

,a,b);

}

A)12367

B)12346

C)12312

D)12345

【解析】scanf函数中的格式控制说明为"

,分别选中输入中的三位和两位,因此a=123,b=45。

因此正确答案为D)选项。

以下选项中,不能作为合法常量的是(  )。

A)1.234e05

B)1.234e+5

C)1.234e0.5

D)1.234e0

【解析】C语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项C)中,e(E)后面的指数是小数,所以不合法。

有以下程序,其中%u表示按无符号整数输出

main(){unsignedintx=0xFFFF;

/*x的初值为十六进制数*/

%u\n"

,x);

}

程序运行后的输出结果是(  )。

A)-1

B)65535

C)32767

D)0xFFFF

【解析】本题考查的是整型无符号数的输出。

%u的作用是按无符号的十进制形式输出整型数,整型无符号数的取值范围在0~65535之间,无符号数不能表示成小于0的负数,十六进制数0xFFFF转换为二进制位其值为16个1,代表的整数就是65535。

当用户要求输入的字符串中含有空格时,应使用的输入函数是(  )。

A)scanf()

B)getchar()

C)gets()

D)getc()

【解析】本题综合考查了输入函数的使用。

scanf函数会将空格视为分隔符,getchar函数只能输入单个字符,getc函数是文件操作函数,显然都不符合题意。

通过gets函数输入字符串时,输入的空格被认为是字符串的一个字符。

若执行下面的程序时,从键盘输入6和2,则输出结果是(  )。

main()

{inta,b,k;

%d,%d"

k=a;

if(a<

b)k=a%b;

elsek=b%a;

%d\n"

,k);

A)5

B)3

C)2

D)0

【解析】本题考查简单的if…else语句。

先执行条件if(a<

b),显然不成立,然后执行else语句。

有以下程序:

fun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

{ printf("

,fun(7));

执行后的输出结果是(  )。

【解析】因为fun(intx)是一个递归函数,所以主函数中fun(7)经过三次递归调用,其过程可以描述为"

fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun

(1)))=7-(5-(3-3))=7-5=2"

,所以最后的输出结果为2。

已有定义:

charc;

,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是(  )。

A)isupper(c)

B)'

A'

<

=c<

='

Z'

C)'

=c&

&

c<

D)c<

=('

z'

'

-32)&

('

a'

-32)<

=c

【解析】在本题中,选项B)实际是先计算关系表达式"

'

=c"

的值是0还是1,再比较该值与字符Z之间的大小关系,显然不能实现题目所要求的功能,而选项A)、C)、D)都可以。

设有定义inta;

floatb;

,执行scanf("

%2d%f"

语句时,若从键盘输入876<

空格>

854.0<

回车>

,a和b的值分别是(  )。

A)876和543.000000

B)87和6.000000

C)87和543.000000

D)76和543.000000

【解析】scanf()函数用空格区分不同字符串的输入,因此876和543.0被看作两段输入。

%2d只选取了第一个输入中的前两位,%f选取随后的数字作为浮点数,因此输出结果为87和6.000000。

有以下定义:

inta;

longb;

doublex,y;

则以下选项中正确的表达式是(  )。

A)a%(int)(x-y)

B)a=x!

=y;

C)(a*y)%b

D)y=x+y=x

【解析】A)选项中如果x与y的值相等那么取余时就会有除数为0的情况。

C)选项中取余的两个数据都应为整数,不能有一方为实型变量,而a*y的结果为double型。

D)选项表达式本身就错误,不能给表达式赋值。

所以,本题答案为B)。

运行下面程序时,从键盘输入字母H,则输出结果是(  )。

{ charch;

ch=getchar();

switch(ch)

{caseH:

Hello!

\n"

);

caseG:

Goodmorning!

default:

Bye Bye!

A)Hello!

B)Hello!

GoodMoring!

C)Hello!

D)Hello!

【解析】本题主要对switch语句进行了考查。

switch语句的执行过程为:

进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。

本题中ch为字符H,所以caseH条件中的语句将被执行,由于没有break语句,所以caseG后的语句也被执行,由于同样的缺少break语句,所以default后的语句也被执行了。

{

chars[]="

012x4y\08s34f4w2"

inti,n=0;

for(i=0;

s[i]!

=0;

i++)

if(s[i]>

0'

&

s[i]<

9'

)n++;

,n);

A)0

C)4

D)7

【解析】本题的程序是要统计字符串s中数字的个数,其中前6个字符中有4个满足选择条件,此时n为4,然后遇到字符\0,这个转义字符表示值为0的空字符NULL,此时循环条件不满足,因此循环结束。

{

inta=0,b=0,c=0,d=0;

if(a=1)b=1;

c=2;

else

d=3;

%d,%d,%d,%d\n"

,a,b,c,d);

程序输出结果是(  )。

A)0,1,2,0

B)0,0,0,3

C)1,1,2,0

D)编译有错

【解析】if中的语句组包含两条语句,但是没有花括号,所以编译有错。

如果这个时候没有else,就理解成语句组只有一条语句,编译将是正确的。

定义如下变量和数组:

inti;

intx[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是(  )。

i<

3;

i++)

%d"

,x[2-i][i]);

A)951

B)741

C)753

D)963

【解析】考查二维数组元素的引用方法。

题中通过二维数组的行、列下标来定位元素的位置,从而实现元素的引用。

在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(  )。

A)auto和register

B)extern和register

C)auto和static

D)static和register

【解析】本题的考查点是变量的存储类型。

extern、register、static、auto分别是定义自动变量、寄存器变量、静态变量、外部变量,其中,自动变量和寄存器变量属于动态存储,调用时临时分配单元;

而静态变量和外部变量属于静态存储,在整个程序运行时间都存在

#include<

intfun(inta,intb){

if(b==0)returna;

elsereturn(fun(--a,--b));

main(){

,fun(4,2));

程序的运行结果是(  )。

A)1

B)2

D)4

【解析】该题目考查函数参数传递以及if条件语句。

当变量b为0时,将a的值返回给主调函数,因此a进行两次自减1后,将其值返回并输出。

point(char*p){p+=3;

main(){chara[4]={'

1'

,'

2'

3'

4'

},*p=a;

point(p);

%c\n"

,*p);

【解析】在函数point函数调用时,系统自动为函数的形参p分配内存空间,并赋值为实参p的值。

当执行语句p+=3;

时,系统操作的是形参p的内存空间,更改形参p的内容,而实参指针变量p的值未受影响,即指针变量作为函数参数时,不能更改实参指针变量的指向。

故在printf("

语句中,p仍然指向字符数组的首元素。

阅读下列程序段,程序的输出结果为(  )。

#include"

stdio.h"

#defineM(X,Y)(X)*(Y)

#defineN(X,Y)(X)/(Y)

{ inta=5,b=6,c=8,k;

k=N(M(a,b),c);

A)3

B)5

C)6

D)8

【解析】带参数的宏定义命令行形式如下:

#define宏名(形参表)替换文本。

首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(c)。

设有以下函数:

voidfun(intn,char*s){……}

则下面对函数指针的定义和赋值均正确的是(  )。

A)void(*pf)();

pf=fun;

B)void*pf();

C)void*pf();

*pf=fun;

D)void(*pf)(int,char);

pf=&

fun;

【解析】函数指针的定义形式是:

数据类型标识符(*指针变量名)()。

void(*pf)()定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。

所以给pf赋值时,只把函数名fun赋给pf即可。

所以正确答案为选项A)。

voidfun(int*s,intn1,intn2){

inti,j,t;

i=n1;

j=n2;

while(i<

j){t=s[i];

s[i]=s[j];

s[j]=t;

i++;

j--;

inta[10]={1,2,3,4,5,6,7,8,9,0},k;

fun(a,0,3);

fun(a,4,9);

fun(a,0,9);

for(k=0;

k<

10;

k++)printf("

%d"

,a[k]);

printf("

A)0987654321

B)4321098765

C)5678901234

D)0987651234

【解析】函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。

所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};

再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};

再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。

所以正确答案为C)。

下面结构体的定义语句中,错误的是(  )。

A)structord{intx;

inty;

intz;

};

structorda;

B)structord{intx;

}structorda;

C)structord{intx;

}a;

D)struct{intx;

【解析】定义结构体变量有三种方式:

①先声明结构体类型,再定义变量名,如选项A)所示;

②在声明类型的同时定义变量,如选项C)所示;

③直接定义结构体类型变量,如选项D)所示。

voidf(int*q){inti=0;

for(;

i<

5;

i++)(*q)++;

main(){inta[5]={1,2,3,4,5},i;

f(a);

i++)printf("

%d,"

,a[i]);

A)2,2,3,4,5,

B)6,2,3,4,5,

C)1,2,3,4,5,

D)2,3,4,5,6,

【解析】本题考查的是指针作为函数的参数和函数的调用。

题目中定义了一个指针变量作为函数f()的形参。

主函数main()中调用f()函数,当i=0时,执行语句(*q)++,此处*q代表的就是数组元素a[0]的值,即将1进行加1操作;

当i=1时,q仍指向数组元素a[0]的地址,因为在函数f()中并未对指针变量q作任何变动,也即*q仍代表了数组元素a[0]的值,所以此次(*q)++即2+1,所以a[0]的值变为3;

……直到i=4时,执行(*q)++(即5+1)后a[0]的值变为6。

所以最后的输出结果为:

6,2,3,4,5,。

voidfun(char*a,char*b){while(*a=='

*'

)a++;

while(*b=*a){b++;

a++;

char*s="

*****a*b****"

,t[80];

fun(s,t);

puts(t);

A)*****a*b

B)a*b

C)a*b****

D)ab

【解析】在函数fun(char*a,char*b)中,while(*a==*)a++的功能是:

如果*a的内容为*,则a指针向后移动,直到遇到非*字符为止,退出循环进入下一个while循环,在while(*b=*a){b++;

}中,把字符数组a中的字符逐个赋给字符数组b。

所以在主函数中,执行fun(s,t)语句后,字符数组t中的内容为"

a*b****"

所以选项C)为正确答案。

structst

{intx,y;

}data[2]={1,10,2,20};

main(){structst*p=data;

,p->

y);

,(++p)->

x);

A)10,1

B)20,1

C)10,2

D)20,2

【解析】数组名的值即为数组首地址,所以p->

y可得第一个元素的y值,(++p)->

x可得第二个元素的x值。

intfun(intx[],intn)

{staticintsum=0,i;

n;

i++)sum+=x[i];

returnsum;

{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;

s=fun(a,5)+fun(b,4);

,s);

程序执行后的输出结果是(  )。

A)45

B)50

C)60

D)55

【解析】内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着。

Fun(a,5)的值是15,再次调用后sum=15,所以Fun(b,4)=45,s=45+15=60。

intadd(inta,intb){return(a+b);

{intk,(*f)(),a=5,b=10;

f=add;

则以下函数调用语句错误的是(  )。

A)k=(*f)(a,b);

B)k=add(a,b);

C)k=*f(a,b);

D)k=f(a,b);

【解析】在语句"

k=*f(a,b)"

中,由于"

()"

的优先级高于"

*"

,所以"

*f(a,b);

"

表示其返回类型为指针的带有两个整型参数的函数。

有以下程序段:

{intx;

int*y;

}*pt;

inta[]={1,2},b[]={3,4};

structstc[2]={10,a,20,b};

pt=c;

以下选项中表达式的值为11的是(  )。

A)*pt->

y

B)pt->

x

C)++pt->

D)(pt++)->

【解析】:

->

的运算优先级比++高,此时,pt->

x=10,执行自加运算后为11。

有以下程序(strcat函数用以连接两个字符串):

string.h>

main(){chara[20]="

ABCD\0EFG\0"

,b[]="

IJK"

strcat(a,b);

%s\n"

,a);

A)ABCDE\0FG\0IJK

B)ABCDIJK

C)JK

D)EFGIJK

【解析】char*strcat(char*dest,char*src)的功能是:

把src所指字符串添加到dest结尾处(覆盖dest结尾处的\0)并

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1