2021-2022年四川省泸州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2021-2022年四川省泸州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2021-2022年四川省泸州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2021-2022年四川省泸州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2021-2022年四川省泸州市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021-2022年四川省泸州市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是()。

A.直接插入排序B.直接选择排序C.快速排序D.二路归并排序

2.下面不正确的字符赋值或赋初值的方式为()。

A.chars[10]=”hello!”

B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}

C.chars[10];s=”hello”

D.char[]=”hello!”

3.在具有n个结点的单链表中,实现()的操作,其算法的时间复杂度是O。

A.求链表的第i个结点B.在地址为P的结点之后插入一个结点C.删除表头结点D.删除地址为P的结点的后继结点

4.使用数组名作为函数的实参时,传递给形参的是()。

A.数组中第1个元素的值B.数组的首地址C.数组中全部元素的值D.数组元素的个数

5.有以下程序(注:字符a的ASCIl码值为97)#include<stdio.h>main(){char*s={"abc")do{printf("%d",*S%10");++S;}while(*s);}陧序运行后的输出结果是()。A.abcB.789C.7890D.979899

6.下面程序的输出结果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}

A.SOB.SPC.SPOPKD.SHOB

7.

8.设有以下程序段:要求输入字符串给结构体变量rec的title成员,错误的输入语句是()A.seanf(”%s”Ptrtitle);

B.scanf(”%s”,rec.title);

C.scanf(’’%s”,(*pu).title);

D.scanf(”%s”,ptr->title);

9.有以下程序

#include<stdio.h>

main()

{intx=1,y=2,z=3;

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

printf("%d\n",x++);

}

程序的运行结果是

A.A.331

B.41

C.2

D.1

10.以下叙述中错误的是______。A.C程序中的#include和#define行均不是C语句

B.除逗号运算符外,赋值运算符的优先级最低

C.C程序中,j++;是赋值语句

D.C程序中,+、-、*、/、%号是算术运算符,司用于整型和实型数的运算

11.有以下程序: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

12.有以下程序(说明:字母A的ASCIl码值是65):#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";Fun(a);printf("\n");}程序运行后的输出结果是()。A.BYB.BTC.YTD.YE

13.下列关于数据结构的叙述中,正确的是()。

A.数组是同类型值的集合

B.递归算法的程序结构比迭代算法的程序结构更为精炼

C.树是一种线性结构

D.用一维数组存储二叉树,总是以先序遍历的顺序存储各结点

14.设有100个元素,用折半查找法进行查找时,最大比较次数是_____。

A.25B.50C.10D.7

15.下列叙述中正确的是()。

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

D.链式存储结构比顺序存储结构节省存储空间

16.下列变量声明合法的是()。

A.shorta=1.4e-1;

B.doubleb=1+3e2.8;

C.longdo=OxfdaL;

D.float2

17.在定义inta[3][2]以后,对a的引用正确的是()

A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]

18.数据在计算机存储器内表示时,如果元素在存储器中的相对位置能反映数据元素之间的逻辑关系,则称这种存储结构为()。

A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构

19.算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性

20.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序运行后的输出结果是()。A.11B.21C.6D.120

二、2.填空题(20题)21.以下程序的输出结果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

22.下列语句的输出结果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

23.栈的基本运算有三种:入栈、退栈和【】。

24.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE*myf;longf1;

myf=【】("test.t","rb");

fscek(myf,(),SEEK_END);f1+ftell(myf);

fclose(myf);

printf("%1d\n",f1);

25.若有如下程序:

main()

{intx=4,y=3,x=2,t;

t=x<y<z;

printf("%d\n",t);}

则程序运行后的输出结果是【】。

26.函数fun的功能是使一个字符串按逆序存放。请填空。

voidfun(charstr[])

{charm;inti,j;

for(i=0,j=strlen(str);i<【】;i++,j--)

{m=str[i];

str[i]=【】;

str[j-1]=m;

}

printf("%s\n",str);

}

27.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为【】。

28.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用删函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END);fl+ftell(myf);

fclose(myf);

printf("%d\n",fl);

29.以下程序运行后的输出结果是______。

main()

{inta=1,b=2,c=3;

if(c=A)printf("%d\n",C);

elseprintf("%d\n",B);

}

30.软件工程研究的内容主要包括:【】技术和软件工程管理。

31.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。

32.下面程序的运行结果是【】。

voidswap(int*a,int*b)

{

int*tp;

t=a;a=b;b=t;

}

main()

{

intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

printf("%d%d\n",*p,*q);

}

33.在结构化分析使用的数据流图(DFD)中,利用【】对其中的图形元素进行确切解释。

34.以下程序运行后的输出结果是【】。

#include<stdio,h>

#include<string,h>

main()

{charch[]="abc".,x[3][4]:inti:

for(i=0;i<3:i++)strcpy(x[i],ch):

for(i=0;i<3:i++)printf("%s",&x[i][i]);

printf("\n")

}

35.解题方案的准确而完整的描述称为______。

36.设有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

for(i=0;i<2;i++)

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

printf("%s\n",t);

}

程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程

序的输出结果是______。

37.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

38.若a的值为1,则表达式!a‖++a的值是______。

39.以下函数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];}

}

40.以下程序的输出结果是【】。

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\N,*p,*q))

}

三、1.选择题(20题)41.在数据库的两级映射中,从概念模式到内模式的映射一般由______实现。

A.数据库系统B.数据库管理系统C.数据库管理员D.数据库操作系统

42.C语言提供的合法关键字是()

A.switchB.cherC.caseD.default

43.请读程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的输出结果是______。

A.正数B.负数C.零D.不确定的值

44.下列程序的运行结果是()。#include<stdio.h>voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);

A.63B.36C.编译出错D.00

45.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。

A.log2nB.n/2C.nD.n+1

46.现有格式化输入语句,scanf("x=%d,sumy=%d,linez=%dL",&x,&y,&z),现在已知在输入数据后,x,y,z的值分别是12,34,45则下列的数据是正确的输入格式的是

A.12,34,45<Enter>

B.x=12,y=34,z=45<Enter>

C.x=12C,sumy=34,z=45<Enter>

D.x=12,sumy=34,linez=45<Enter>

47.下列程序的输出结果是______。main(){intx=0,a=0,b=2;if(x=a+b)printf("****\n");elseprintf("####\n");}

A.有语法错,不能通过编译B.通过编译,但不能连接C.****D.####

48.当说明一个结构体变量时系统分配给它的内存是()。

A.各成员所需要内存量的总和

B.结构中第一个成员所需的内存量

C.成员中占内存最大者所需的容量

D.结构中最后一个成员所需要的内存量

49.

下列程序的运行结果是()。

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

printf("x=%d,y=%d",x,y);

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

50.以下程序的输出结果是()#include<stdio.h>#include<string.h>main(){charstr[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}

A.6B.7C.11D.12

51.下列选项中,值为1的表达式是()。

A.1-'0'B.1-'\0'C.'1'-0D.'\0'-'0'

52.下列关于标识符的说法中错误的是

A.合法的标识符是由字母、数字和下划线组成

B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符

C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符

D.用户标识符与关键字不同时,程序在执行时将给出出错信息

53.设有以下定义和语句,输出的结果是(用small模式编译,指针变量2个字节)______。structdate{long*cat;structdate*next;doubledog;}too;printf("%d",sizeof(too));

A.20B.16C.14D.12

54.数据库技术的根本目标是()

A.数据存储B.数据共享C.数据查询D.数据管理

55.将E-R图转换到关系模式时,实体与实体间的联系可以表示成()。

A.属性B.关系C.键D.域

56.两个或两个以上的模块之间关联的紧密程度称为______。A.耦合度B.内聚度C.复杂度D.数据传输特性

57.程序流程图(PFD)中的箭头代表的是()。

A.组成关系B.控制流C.调用关系D.数据流

58.下列属于不合法的main函数命令行参数表示形式的是()。

A.main(intargv,char*argc[])

B.main(intargv,char*argc)

C.main(intargv,char**arc)

D.main(intargc,char*argv[])

59.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。

A.控制流B.加工C.数据存储D.源和潭

60.办公自动化(OA)是计算机的一项应用,按计算机应用的分类,它属于()

A.数据处理B.科学计算C.实时控制D.辅助设计

四、选择题(20题)61.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用(双引号)括起时,寻找被包含文件的方式是()。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索

C.仅仅搜索源程序所在目录

D.仅仅搜索当前目录

62.有如下程序段

#include"stdio.h"

typedefstructaa

{inta;

structaa*next;

}M;

voidset(M*k,inti,int*b)

{intj,d=0;

for(j=1;j<i;j++)

{k[j-1].next=&k[j];

k[j-1].a=b[d++];

}

k[j].a=b[d];

}

main()

{Mk[5],*p;

intd[5]={23,34,45,56,67};

set(k,5,d);

p=k+1;

printf("%d\n",________);

}

要输出45,则在下画线处应填入的选项是

A.p->next->aB.++p->a

C.(*p).a++D.p++->a

63.若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是A.p=p->next;s->next=p;p->next=s;

B.p=p->next;s->next=p->next;p->next=s;

C.s->next=NULL;p=p->next;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

64.两个或两个以上模块之间联系的紧密程度称为()。

A.耦合性B.内聚性C.复杂性D.数据传输特性

65.以下关于C语言的叙述中正确的是()。

A.C语言的数值常量中夹带空格不影响常量值的正确表示

B.C语言中的变量可以在使用之前的任何位置进行定义

C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致\

D.C语言中的注释不可以夹在变量名或关键字的中间

66.有以下程序

67.若有定义语句:

68.在以下选项中,能IE确声明数组并进行初始化的语句是()。

A.str=newDimension(1,2,3);

B.str=newdimension(1,2,3);

C.str:newArray(1,2,3);

D.str=newarray(1,2,3);

69.

70.

71.有以下程序:

#include<stdio.h>

main

{inty=10;

while(y--);

printf("y=%d\n",y);

}

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

A.y=0B.y=-1C.y=lD.while构成无限循环

72.已知inta=15,执行语句a=a<<2以后,变量a的值是()。

A)20B)40

C)60D)80

73.结构化程序设计的基本原则不包括A.多态性B.自顶向下C.模块化D.逐步求精

74.

75.

76.

77.

78.有以下程序

main()

{inti=010,j=0X10;

pirntf("%d,%d\n",i,j);

}

该程序的输出结果是

A.10,10B.8,10

C.8,16D.10,16

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:根据整型形参n的值,计算如下公式的值。t=1-1/(2*2)-1/(3*3)-…-l/(n*n)例如,当n=7时,t=0.488203。请修改函数proc()中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,学生的记录由学号和成绩组成,N名学生的记录已在主函数中放入结构体数组s中,请编写函数fun(),其功能是把低于平均分的学生记录放入b所指的数组中,低于平均分的学生人数通过形参n返回,平均分通过函数值返回。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#defineN8typedefstruct{ charnum[10]; doubles;}STREC;doublefun(STREC*a,STREC*b,int*n){}voidmain(){ STRECs[N]={{“GA05”,85},{“GA03”,76},{“GA02”,69},{“GA04”,85},{“GA01”,91},{“GA07”,72},{“GA08”,64},{“GA06”,87}}; STRECh[N]; inti,n; doubleave; ave=fun(s,h,&n); printf(“The%dstudentdatawhichislowerthan%7.3f:\n”,n,ave); for(i=0;i<n;i++)<p=""></n;i++)<> /*输出成绩低于平均分的学生记录*/ printf(“%s%4.1f\n”,h[i].num,h[i].s); printf(“\n”);}

参考答案

1.C

2.C

3.A

4.B用数组名作为函数参数时,数组名退化为指针,传递给形参的是数组的首地址。故本题答案为B选项。

5.B程序中的*s%10是求余运算,分别是a、b、C的ASCIl码值对10进行求余运算然后输出,所以输出的答案为789。r

6.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第—个字符。在for循环中,i的初值为3,那么输出的第—个字符为“S”,接着两次i--,则输出的值为*p[1],即字符“O”,所以本题的输出为SO。

7.D

8.A符号“_>”是指针特用的,符号“.”用于指定元素的成员。ptr是指针,只能用符号“一>”,因此选项A错误。+P是指定元素(Fee)可以使用“.”运算,因此选项D正确。选项B,Fee.title代表数组title,同理选项C正确。答案为A选项。

9.D本题考查if-else语句的使用。if-else语句可以在条件为“真”或为“假”时执行指定的动作,由if引导条件为“真”时执行的操作;由else引导条件为“假”时执行的操作。else语句要与上面最近的if语句进行匹配,如果要嵌套调用if-else语句,需要将嵌套部分用{}括起来,避免程序报错。题目中给出了一个if语句和一个if-else语句,if-else语句为第一个if语句的子语句。首先执行外层if语句,执行条件为x>y,由于x=1,y=2,故该条件为假,不执行if的子语句,直接执行语句printf("%d\\n",x++);,该语句先输出x的值,然后进行x++操作。x的初始值为1,输出结果为1。

10.D解析:“%”是求余运算符,其两侧的数值只能为整型,所以它不能用于实型的运算,故选项D错误。

11.B解析:f函数的功能是返回地址为x,y的两个数中值铰的数的地址,本题输出结果是7,8,7。

12.Dfun函数的意思是当*s%2==0的时候就输出并且s自加l次,然后判断。所以可知只有第2和第4个位置上的才符合要求,所以答案为D。

13.B

14.D

15.A解析:顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项A是正确的。两者都可以存储线性的、有序的逻辑结构,所以选项B、C不正确。顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项D不正确。

16.A解析:解答本题需了解3个知识点:①标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线;②do是C语言中的一个关键字,不能再用做变量名和函数名;③C语言规定,指数形式的实型常量e或E后面的指数必须是整数。

17.D

18.C

19.C

20.B本题考查静态变量,C语言中静态变量的生存期是从程序的开始到结束。本题中静态变量x,随着每次进入循环不断增长5次,返回的值分别为2、3、4、5、6。所以S=1+2+3+4+5+6=21,选B。

21.JD

22.aaaaAAAAAaaaaAAAAA解析:函数strcat(sp,'AAAAA')的作用是将字符中“AAAAA”连接到字符串sp的末尾,并自动覆盖字符数组sp末尾的\'\\0\'。

23.读栈顶元素读栈顶元素解析:栈的基本运算有三种:入栈、退栈和读栈顶元素。

入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作:首先将栈顶指针进一(即top加1),然后将新元素插入到栈顶指针指向的位置。

退栈运算是指取出栈顶元素并赋给一个指定的变量。这个运算有两个基本操作:首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针退一(即top减1)。

读栈顶元素是指将栈顶元素赋给一个指定的变量。这个运算不删除栈顶元素,只是将它的值赋给一个变量。

24.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制j文件。文件在使用前打开,使用后要关闭。打开文件的函数为:fopen(),调用形式为:fp=fopen('文件名','使用文件方式:);

关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。

25.1

26.strlen(str)/2str[j-1]

27.88解析:在一般系统中,一个float型数据在内存中占4个字节(32位),一个double型数据占8个字节。

28.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。

打开文件的函数为:fopen(),调用形式为:fp=fopen(“文件名”,“使用文件方式”);

关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。

29.11解析:本题是一个陷阱题。在if语句的判断表达式中,使用的不是逻辑运算符==而是赋值运算符=,使该表达式返回的结果正好相反。如果是c==a,则结果为假。但是c=a则是将a赋给c,且表达式的结果是赋值之后的c的值,因此结果为1是真.故最后输出c的值1。

30.软件开发

31.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。

32.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针.变量a和b,a和b分别指向了实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依旧是原来的值。

33.数据字典或DD数据字典或DD解析:数据流图用来对系统的功能需求进行建模,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据词典(DataDictionary,DD)用于对数据流图中出现的所有成分给出定义,它使数据流图上的数据流名字、加工名字和数据存储名字具有确切的解释。

34.abcbccabcbcc解析:for循环用strcpy函数将字符数组ch的值'abc',分别复制给二维数组x的每一行,然后通过for循环先后打印出以x[0][0],x[1][1],x[2][2]开头的字符串'abe','bc','c',所以输出结果为:abcbcc。

35.算法算法解析:算法是指对解题方案的准确而完整的描述。

36.QTHRGQTHRG解析:函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。函数strcpy(t,s)的功能是,把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,然后输出字符数组t。

37.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。

38.11解析:逻辑运算中,非1即0,非0即1,!a=0,++a为逻辑1,所以0和1相或结果为1。

39.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]。

40.3535解析:函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,形参指针变量a和b分别指向i和j,在swap(int*a,int*b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。

41.B解析:从概念模式到内模式的映射一般由数据库管理系统(DBMS)实现。

42.C

43.A解析:本题考查字符串比较函数strcmp()的应用。strcmp(s1,s2)是中比较函数,当s1>s2时返回值为正数,当s1<s2时返回值为负数,当s1=s2时返回值为零。本题中s1,s2分别表示两个串中第一个字符的地址,s1++和s2++是将指针指向串的第二个字符,指针变量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指针变量s2指向的是字符'B'的地址。而在字符串比较中,宁符串大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的,字符'B'的ASCII码值为66,字符“b”的ASCII码值为98,所以s1>s2,返回值为正数。

44.B解析:程序看上去是要实现交换两个指针的值,但是C语言中实参变量和形参变量之间的数据传递是单向的“值传递”,指针变量做函数参数也要遵循这一规则。调用函数不能企图通过改变形参指针的值而使实参指针的值也改变。所以本题的输出结果是36。

45.C本题考查的是顺序查找。在进行顺序查找过程中,如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效率最高;但如果被查找的元素是线性表中的最后一个元素,或者被查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。所以对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。故本题答案为C。

46.D解析:若在scarf的格式化控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。

47.C解析:if语句中的条件表达式是赋值表达式,a+b值为2,赋给x,x值非0,输出****。

48.A解析:本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。

49.C解析:逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就是最后一个表达式N的值。

表达式(x=3*y,x+1)中,第一个表达式x=3*y=3*5=15;第二个表达式x+1=16,但没有给x或y赋值,所以x还是等于15;第3个表达式x-1=15-1=14,所以y的值为14。

50.A解析:本题考查求字符串的长度。程序中定义字符串str时中请了12个字节的内存空间,对它赋初值后,函数strlen在求串长度时,以'\\0'作为串结束符,所以,strlen(str)的值为6。

51.B解析:在C程序中,字符量可参与任何整数运算。字符参与运算时,首先要将字符转换为对应的ASCII码值再参与整数运算。字符'1'对应的ASCII码值是49,字符'0'对应的ASCII码值是48,字符'\\0'是字符串结束标识符NULL,其对应的ASCII码值是0。

52.D解析:用户标识符与关键字相同时,程序在编译过程中将给出出错信息。注意:选项D)应该改为用户标识符与关键字相同,程序在编译时将给出出错信息。注意:合法的标识符第一个字符必须为字母或下划线。

53.D解析:sizeof函数计算已知类型所占的字节数。结构体变量所占内存长度是各成员占的内存长度之和。指针变量占2个字节,所以cat和*next各占2个字节;double型占8个字节,故too共占12个字节。

54.BB)【解析】数据库是长期储存在计算机内、有组织

的、可共享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享,所以数据库技术的根本日标是解决数据共享问题。

55.B解析:将E-R图转换成指定RDBMS中的关系模式是数据库逻辑设计的主要工作。从E-R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。

56.A解析:耦合度是对模块间互相连接的紧密程度的度量;内聚度是对一个模块内部各个元素间彼此结合的紧密程度的度量。

57.B解析:在程序流程图(PFD)中,箭头代表的是控制流,用以指明程序的动态执行顺序。

58.B解析:main函数通常可用两个参数,参数名可由用户自定,但类型是固定的,第一个参数必须是整型,第二个参数是一个指向字符型的指针数组的指针,可以表示为**arc或*argc[]。4个选项中只有选项B不符合。

59.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。

60.A

61.B#include"文件名",预处理程序首先在引用被包含文件的源文件所在的目录下搜索指定的文件,如没找到,再按系统指定的标准目录搜索。

62.A在本题中,程序首先定义了一个结构体,结构体中有两个成员变量,一个是整型,另一个是指向该结构体的指针。然后程序定义了一无返回值的函数set,该函数带有三个参数,第一个是结构体指针变量k,第二个是整型变量i,第三个是整型指针变量b。在函数体中,首先定义了两个整型变量,然后执行for循环,从循环变量的初始值及循环结束条件我们可以知道,循环执行的次数与形参变量i有关,从循环体中我们可以看出,该循环是将结构体数组中的前一个结构体的指针成员指向后一个结构体的首地址,并用数组b中的值给结构体的成员变量a赋值。

在主函数中,定义了一个大小为5的结构体数组k和一个结构体指针p,然后定义了一个数组d,并给数组d进行了初始化操作,然后调用函数set,实参分别为结构体数组k、5和数组d,结合上面我们对set函数的分析可以知道,此时执行set的for循环,可以是结构体数组中各结构体变量的指针成员next指向下一个结构体变量,并将该结构体变量的成员a赋值为数组d的与之位置相对应的值,如结构体数组中第一个结构体变量的a被赋值为数组d中的第一个元素值,即23。那么函数调用后,结构体数组各元素的成员a的值分别为23、34、45、56、67。

函数调用后,运行p=k+1;语句,该语句的作用是使结构体指针变量p执行结构体数组k的第二个元素,然后执行输出语句,本题要填的空就在输出语句中,根据题目要求,要输出一个45的值,当然,用数组d输出这么一个结果很简单,为d[2],但选项中并没有这项,而是需要我们从结构体数组中输出这个值,从上面的分析我们知道,该值对应结构体数组第三个元素的成员,而当前的p执行第二个元素,从四个选项来分析,只有A选项能完成输出45的任务。

B选项中的++p->a由于运算符优先级问题,首先运行p->a,输出的是34,然后加1,即输出35。

C选项中的(*p).a++等于((*p).a)++,这样

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论