2021年陕西省咸阳市全国计算机等级考试C语言程序设计测试卷(含答案)_第1页
2021年陕西省咸阳市全国计算机等级考试C语言程序设计测试卷(含答案)_第2页
2021年陕西省咸阳市全国计算机等级考试C语言程序设计测试卷(含答案)_第3页
2021年陕西省咸阳市全国计算机等级考试C语言程序设计测试卷(含答案)_第4页
2021年陕西省咸阳市全国计算机等级考试C语言程序设计测试卷(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

2021年陕西省咸阳市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1)r=1;if(b==2)r=2;elseif(c!=3)r=3;elseif(d==4)r=4;printf(“%d\n”,r);}程序运行后的输出结果是()。

A.0B.4C.1D.2

2.下列哪一种图的邻接矩阵是对称矩阵()。

A.有向图B.无向图C.AOV网D.AOE网

3.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序运行后的输出结果是______。

A.4B.3C.2D.1

4.若在线性表中采用折半查找法查找元素,该线性表应该()A.元素按值有序B.构采用顺序存储结C.元素按值有序且采用顺序存储结构D.元素按值有序且采用链式存储结构

5.数据表A中有10000个元素,如果仅要求求出其中最大的10个元素,则采用()最节省时间。

A.堆排序B.希尔排序C.快速排序D.希尔排序

6.在n个结点的线性表的数组实现中,算法的时间复杂度是O(1)的操作是()。

A.访问第i(1<=i<=n)个结点和求第i个结点的直接前驱(1<i<=n)

B.在第i(1<=i<=n)个结点后插入一个新结点

C.删除第i(1<=i<=n)个结点

D.以上都不对

7.采用表结构来表示数据和数据间联系的模型是()。

A.层次模型B.概念模型C.网状模型D.关系模型

8.有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",'m',85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",'f',95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的运行结果是()。A.A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

9.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);当执行上述程序段时,从键盘上输入555667777abc后,y的值为()。

A.566.0B.55566.0C.7777.0D.566777.0

10.下列链表中,其逻辑结构属于非线性结构的是()

A.双向链表B.带链的栈C.二叉链表D.循环链表

11.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

12.某二叉树的先序序列和后序序列正好相同,则该二叉树可能是______的二叉树。

A.高度大于1的左单支B.高度大于1的右单支C.最多只有一个结点D.既有左孩子又有右孩子

13.有以下程序:

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

A.0B.1C.2D.3

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

A.一个逻辑数据结构只能有一种存储结构

B.逻辑结构属于线性结构,存储结构属于非线性结构

C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率

D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率

15.第

22

阅读下面程序,则程序执行后的结果为

#include"stdio.h"

main()

{inta=4,b=6,c=7;

doubled,fun(int,int,int);

d=fun(a,b,c);

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

doublefun(inta,intb,intc)

{doubles;

s=a%b*c;

returns;}

A.27B.27.000000C.28D.28.000000

16.某堆栈的输入序列为a,b,c,d,下面的四个序列中,不可能是它的输出序列的是()。

A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b

17.定义下列结构体(联合)数组:structst{charname[15];intage;}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);执行语句printf("%d,%C",a[2].age,*(a[3].name+2))的输出结果为()。A.15,AB.16,HC.16,AD.17,H

18.以下叙述中错误的是()。

A.向量属于线性结构B.二叉链表是二叉树的存储结构C.栈和队列是线性表D.循环链表是循环队列的链式存储结构

19.对线性表进行二分法检索,其前提条件是()。

A.线性表以顺序方式存储,并按关键码值排好序

B.线性表以顺序方式存储,并按关键码的检索频率排好序

C.线性表以链式方式存储,并按关键码值排好序

D.线性表以链式方式存储,并按关键码的检索频率排好序

20.下列哪个算法是对一个list排序的最快方法()

A.快速排序B.冒泡排序C.二分插入排序D.线性排序

二、2.填空题(20题)21.以下程序的功能是:处理由学号和成绩组成的学生记录,N名学生的数据已在主函数中放入结构体数组s中,它的功能是:把分数最高的学生数据放在h所指的数组中,注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。

#include<stdio.h>

#defineN16

typedefstruct

{charnum[10];

ints;

}STREC;

intfun(STREC*a,STREC*b)

{inti,j=0,max=a[0].s;

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

if(max<a[i].s)max=a[i].s;

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

if(【】)b[j++]=a[i];

returnj;

}

main()

{STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},

{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},

{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},

{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}

};

STRECh[N];

inti,n;FILE*out;

n=fun(s,h);

printf("The%dhighestscore;\n",n);

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

printf("%s%4d\n",h[i].num,h[i].s);

printf("\n");

out=fopen("out15.dat","w");

fprintf(out,"%d\n",n);

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

fprintf(out,"%4d\n",h[i].s);

fclose(out);

}

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

main()

{

chara[]="Language",b[]"Programe";

char*p1,*p2;

intk;

p1=a,p2=b;

for(k=0;k<=7;k++)

if(*(p1+k==*(p2+k))printf("%c",*(p1+k));

}

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

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d\n",s);

break;}

s+=i;}}

24.下述程序的输出结果是【】。

#include<stdio.h>

intfun(intx)

{intp;

if(x==0||x==1)

return3;

else

p=x-fun(x-2);

returnp;}

voidmain()

{printf("\n%d",fun(9));}

25.为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域)。请填空。

structlink{chardata;【】;}node;

26.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。

27.存储300个16×16点阵的汉字信息需要【】字节。

28.下列程序的运行结果是______。

#definePOWER(x)((x)*(x))

main()

{inti=1;

primtf("%d,%d",POWER(i++),i);

}

29.数据库系统中实现各种数据管理功能的核心软件是______。

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

31.下列循环的循环次数是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

32.在面向对象方法中,类之间共享属性和操作的机制称为______。

33.下列程序将二维数组a的行和列元素互换后存放到另一个二维数组b中。请填空。

main()

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

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

{for(j=0;j<3;j++)

}

}

34.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。

35.以下函数的功能是删除字符串s中的所有数字字符。请填空。

vioddele(char*s)

{intn=0,i;

for(i=0;s[i];i++)

if(______)

s[n++];s[i];

s[n]=______;

}

36.已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是【】。

#include<stdio.h>

main()

{

FILE*fr;charstr[40];

fgets(str,5,fr);

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

fclose(fr);

}

37.下面的程序实现的是从指针p所指向的地址的n个数中,找出最大的和最小的数据,请填空。

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;______;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

38.软件是程序、数据和【】的集合。

39.阅读下面程序,则程序的执行结果为【】。

#include"stdio.h"

main()

{inta=30,b=20,z;

z=fun(a+b,a-b);

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

fun(inta,intb)

{intz;

z=a/b;

returnz;}

40.有如下图所示的双链表结构,请根据图示完成结构体的定义:

structaa

{intdata;

【】}node;

三、1.选择题(20题)41.若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是()

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

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

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

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

42.以下不能定义为用户标识符的是()。

A.scanfB.VoidC.3comD.int

43.______是构成C语言程序的基本单位。

A.函数B.过程C.子程序D.子例程

44.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件

B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

45.电子邮件是()

A.网络信息检索服务

B.通过Web网页发布的公告信息

C.通过网络实时交互的信息传递方式

D.一种利用网络交换信息的非交互式服务

46.拥有PC机并以拨号方式接入网络的用户需要配置()

A.CD-ROMB.ModemC.电话机D.鼠标

47.若有定义:“inta[2][3];”,则对a数组的第i行第j列元素的正确引用为()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

48.已定义下列函数:intfun(int*p){return*p;)fun函数返回值是()。

A.不确定的值B.一个整数C.形参p中存放的值D.形参p的地址值

49.设函数中有整型变量a,为保证其在未赋初值的情况下初值为0,应选择的存储类别是()。

A.staticB.registerC.autoD.auto或register

50.以下说法中,不正确的是

A.C程序中必须有一个main()函数,从main()函数的第一条语句开始执行

B.非主函数都是在执行主函数时,通过函数调用或嵌套调用而执行

C.C程序中的main()函数必须放在程序的开始位置

D.C程序中的main()函数位置可以任意指定

51.下列选项中,不是一个算法的基本特征的是()。

A.完整性B.可行性C.有穷性D.拥有足够的情报

52.以下合法的赋值语句是()

A.x=y=100B.d--;C.x+y;D.c=int(a+b);

53.下列选项中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

54.对存有重要数据的5.25英寸软盘,防止计算机病毒感染的方法是()

A.不要与有病毒的软盘放在一起B.在写保护口贴上胶条C.保持软盘清洁D.定期对软格化式

55.以下程序的输出结果是______。longfum(intn){longs;if(n==||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}

A.1B.2C.3D.4

56.有以下程序:main(){chara[]="abcdefg",b[10]="abedefg";printf("%d%d\n",sizeof(A),sizeof(B));}执行后输出结果是()。

A.77B.88C.810D.1010

57.有定义语句:intb;charc[10];则正确的输入语句是()。

A.seanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.seanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

58.将E-R图转换到关系模式时,实体与联系都可以表示成________。

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

59.

有以下程序:

main

{intx=102,y=012;

printf("%2d,%2d\n",x,y);

}

执行后输出结果是()。

A.10,01B.02,12C.102,10D.02,10

60.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。

A.3B.5C.7D.9

四、选择题(20题)61.

现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指定一个链表中连续的3个结点。

structnode

{bardata;

structnode*next;}*p,*q,*r;

现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是()。

A.q->next=r->next;P>next=r;r->next=q;

B.q->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;P->next=r:

D.q->next=q;P->next=r;q->next=r->next;

62.下列SQL语句中,用于修改表结构的命令式是A.A.Alter

B.Create

C.Update

D.Insert

63.在软件设计中,不属于过程设计工具的是()。

A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图

64.

65.若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。

A.scanf("%d",a,b,c);

B.scanf("%d%d%d",a,b,c):

C.scanf("%d",p);

D.scanf("%d",&p);

66.若有定义:“inta[2][3];”,则对a数组的第i行第j列元素的正确引用为()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

67.(23)在深度为5的满二叉树中,叶子结点的个数为______。

A.32

B.31

C.16

D.15

68.

69.有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母:

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

A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!

70.在单链表中,增加头结点的目的是()。A.A.方便运算的实现B.使单链表至少有一个结点

C.标识表结点中首结点的位置

D.说明单链表是线性的链式存储实现

71.

72.

73.下列程序的输出结果是()。

char*p1="abcd",*p2="ABCD",str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A.xyabcABB.abcABzC.ABabczD.xycdBCD

74.以下选项中非法的字符常量是()。

A.\101B.\65C.\xffD.\019

75.

76.

77.若k是int类型变量,且有以下for语句:

for(k=-1;k<O;k++)printf("****\n");

下面关于语句执行情况的叙述中正确的是()。、

A.循环体执行一次

B.循环体执行两次

C.循环体一次也不执行

D.构成无限循环‘

78.

79.关系模型允许定义三类数据约束,下列不属于数据约束的是()。A.A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束

80.

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1,1,2,3,5,8,13,21,…例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c在此程序中,编写函数intfun(),其功能是求出小于或等于lim的所有素数,将其存放在aa数组中,并返回所求出的素数的个数。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include<conio.h>2#include<stdio.h>3#include<stdlib.h>4#defineMAX1005intfun(intlim,intaa[MAX])6{78}9voidmain()10{11FILE*wf;12intlimit,i,sum;13intaa[MAX];14system("CLS");15printf("输入一个整数:");16scanf("%d",&limit);17sum=fun(limit,aa);18for(i=0;i<sum;i++)19{20if(i%10==0&&i!=0)/*每行输出10个数*/21printf("\n");22printf("%5d",aa[i]);23}24/******************/25wf=fopen("out.dat","w");26sum=fun(15,aa);27for(i=0;i<sum;i++)28{29if(i%10==0&&i!=0)/*每行输出10个数*/30fprintf(wf,"\n");31fprintf(wf,"%5d",aa[i]);32}33fclose(wf);34/******************/35}

参考答案

1.D第1个if语句是单独的一条语句,所以执行完第1个if语句后,r的值仍为初值0。第2个if语句与后续的两个elseif都是嵌套的,所以只会执行其中的一个语句,即“if(b==2)r=2;”这条语句。故本题答案为D选项。

2.B

3.D解析:C语言觌定,实参变量对形参变量的数据传递是“值传递”,只由实参传给形参,而不能由形参传回来给实参。函数调用结束后,形参单元被释放,实参单元仍保留并维持原值。本题要求输出aa[0]的值,结果应为1。

4.C

5.B

6.A

7.D关系模型采用二维表来表示,简称表。本题答案为D选项。

8.Cf函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,然后返回变量a。

9.Ascanf是格式输入函数,即按用户指定的格式从键盘上把数据输入指定的变量中。其中,在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。所以j的值为55,y的值为566.0,字符数组name的值为7777abc。故本题答案为A选项。

10.C数据的逻辑结构是描述数据之间的关系,分两大类:线性结构和非线性结构。线性结构是n个数据元素的有序(次序)集合,指的是数据元素之间存在着“一对一”的线性关系的数据结构。常用的线性结构有:线性表,栈,队列,双队列,数组,串。非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后驱。常见的非线性结构有:树(二叉树等),图(网等),广义表。

11.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。

12.C

13.B第一次执行外循环i的值为1,满足条件,判断第一次内循环,j的值为3,不满足条件,跳出内循环。第二次执行外循环i的值为2,同理也不满足内循环条件,跳出内循环。第三次执行外循环i的值为3,此时进入内循环判断条件时,条件成立,执行m=m%j,m的值为1,跳出内循环,跳出外循环打印m的值。

14.D数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。

15.D

16.D

17.C本题考查结构体数组。a[2].age为结构体aEZ]的age成员,即a[3].name为指向结构体a[3]的name成员的第一个元素的指针,即指向“2”,(a[3].name+2)将指针后移两位指向第三个元素“A”,*(a[3].name+2)是取指针所指向地址的内容。

18.D循环链表是线性表的一种链式存储结构,循环队列是队列的一种顺序存储结构。因此D选项叙述错误。本题答案为D选项。

19.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。

20.A

21.max==a[i].smax==a[i].s解析:该程序使用循环嵌套,第1个for语句的作用是找出最大值。第2个循环的作用是找出与max相等的成绩,也即最高成绩的学生,并存入b中。

22.gaegae解析:本题定义了两个字符串数组a[],b[],字符型指针变量p1和p2,且分别指向字符串数组a和b,执行for循环,当if(*p1+k)=*(p2+k))条件为真,执打输出*(p1+k)对应的字符。即当k=0时,*(p1+k)对应的字符串数组a中的字符L,*(p2+k)对应的字符串数组b中的字符P,因此if(*(p1+k)=*(p2+k))条件为假,不执行printf语句,依此类推,将字符串数组a和b中对应位置上的字符一一比较,如果对应位置上的字符相同,则输出该字符。

23.3030解析:题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。注意:while循环的执行原理。

24.77解析:本题考查的是函数的递归调用。x=0或x=1是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。

25.structlink*next

26.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。

27.800800解析:一个16x16点阵的字形码需要16x16/8=32字节的存储空间,所以300个汉字信息需要9600个字节。

28.111,1解析:POWER(i++)中先引用i的值1,再将i的值加1,POWER(i++)=1*1=1。

29.数据库管理系统数据库管理系统解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。

30.99解析:本题要输出的结果是字符串'IBM\\n012\\1\\\\'的长度,'IBM'是3个字符,\'\\n\'是1个字符,'012'又是3个字符,最后的\'\\1\'和\'\\\\\'都是1个字符。所以最终字符串的长度应该是3+1+3+1+1=9。故本题应该填9。

31.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。

32.继承继承

33.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本题考查二维数组的基本知识。它是要将一个二维数组,的行和列元素互换后存放到另一个二维数组b中,只要将数组a的行标和列标互换,然后赋给数组b即可。

34.调试调试

35.s[i]<'0'‖s[i]>9或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))isdigit(s[i])==0或s[i]>'9'‖s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'!(*(s+i)<='9'&&*(s+i)>='0'或iss[i]<'0'‖s[i]>9,或\r\n!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))\r\nisdigit(s[i])==0或s[i]>'9'‖s[i>'0'或\r\n!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'‖*(s+i)>'9'或\r\n!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或\r\n*(s+i)>='9'&&*(s+i)<='0'\r\n!(*(s+i)<='9'&&*(s+i)>='0'或is解析:本题考核的知识点是字符指针变量作为函数的参数以及与字符串有关的算法。从一个字符串中删除某字符的方法是从字符串的第一个字符开始一一判断该字符是否是要删除的字符,若不是则把它放到结果字符串中,若是则不放入结果字符串中。本题的第一个空应判断a[i]是否为数字字符,只有在不是数字字符的情况下才存入结果字符串,所以应填入s[i]<'0'‖s[i]>'9'。最后应在结果字符串的末尾填上字符串结束标志“\\0”。

36.HellHell解析:该函数有3个参数,第三个参数是文件指针指向要读取数据的文件,第二个参数是一个整数(假设为n),表示从文件中读取n-1个字符并在其后加一个'\\0',第一个参数为存放读取的字符串的内存区的起始地址,读取的数据保存在其中。可见本题的输出结果为Hell。

37.

38.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。

39.55解析:函数调用的时候,函数名字必须与所调用的函数名完全一致,形参与实参类型要一致,在没有给出函数返回值类型的情况下,默认为整形,当返回值为整型的函数放到主函数后面时,可以不需要事先说明就调用这个函数。return既可以返回一个普通常量,也可以返回一个指针变量。

40.structaa*lhead*rchild;structaa*lhead,*rchild;解析:结构体对链表的定义。

41.C

42.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。

43.A解析:C程序是由函数构成的。—个C源程序至少包含—个main函数,也可以包含—个main函数和若干个其他函数,因此,函数是C程序的基本单位。

44.D解析:C语言把文件看成是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称文本文件,它的每一个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。

45.D解析:电子邮件是利用Internet网传送信件,不是检索服务,由于信件只发给收信人,所以不是公告信息,并不是一发信就必须要收信人立即接收,而是信件存放在邮箱中,收信人在需要的时候再取出。

46.B

47.A解析:本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有下列5种:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

48.B解析:由函数intfun(int*p){return*p;}的定义可知,返回值为整型指针变量p所指向的数据。

49.A

50.C解析:main()函数的作用,以及main()函数在程序中出现的位置。一个完整的C语言程序有且仅有一个主函数(main()函数)。程序总从main()函数的第一条语句开始执行,到main()函数的最后—条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的。

51.A解析:作为一个算法,一般应该具有下列4个特征:(1)可行性,即考虑到实际的条件能够达到一个满意的结果;(2)确定性,算法中的每一个步骤都必须是有明确定义的,(3)有穷性,一个算法必须在有限的时间内做完;(4)拥有足够的情报。

52.B解析:选项A的结尾没用‘;’,所以不是一条语句:选项C中的表达式不会改变任何变量的内容,也不是合法的赋值语句;选项D有语法错误,int应该加上括号。所以,4个选项中只有选项B符合题意,运行后d的内容被减一。

53.B水平制表符中,'\t'表示的是横向跳若干格;选项B中,'\039'错误,'\039'是八进制形式表的字符,最大数为7,但其中出现'9',','是字符逗号;选项D中,'\n'表示的是换行。

54.B

55.A解析:这是一个递归函数。递归的结束条件是,n=1或者n=2。按照程序顺序,即可得出本题结果为1。

56.C解析:本题中定义两个字符型数组,其中a省略了长度,定义了b的长度为10,并赋初值分别为“abcdefg”和“abcdefg”。所以a的长度为赋值给它的字符串的字符个数7加上一个结束转义字符,即a的长度为7+1为8。定义时b的长度定义为10,故b的长度为lo,因此最后通过函数sizeom求得的数组a和数组b的长度分别为8和10,所以,4个选项中选项c符合题意。

57.B解析:scanf函数中格式控制后面是地址表列,不能用变量名。数组名c代表数组在内存的首地址,&b代表变量b的首地址,选项B)正确。

58.B解析:关系数据库逻辑设计的主要工作是将\ue008E-R\ue009图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性,实体集也可以转换成关系。

59.C解析:本题中,“printf('%2d,%2d\\n',x,y)”表示以逗号隔开输出两个十进制整数,每个整数域宽是2。而在C语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为102和10(y的初值012表示八进制整数12,等于十进制的10)。所以,4个选项中选项C符合题意。

60.BB.【解析】快速排序的基本思想是:从表中选取一个元素(如本题中的33),将表中小于此元素的移到前面,大于此元素的移到后面,结果把线性表分割成两部分(两个子表),此元素插入到其分界线的位置处。然后分别对两个子表再次分割……本题中33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12后面。

61.D由题目ee线性链表的定义可知,要将q和r所指的结点交换前后位置,只要使q指向r的后一个结点,p指向r结点,r指向q结点即可。而在选项D由,r->next=q,这时r指向的节点为q;p->nextr,这时p指向的节点为r;q->next=r->next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。

62.A本题主要考查SQL中一些基本的命令。SQL常用的语句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。

在SQL语言中使用率最高的是Select,这个命令的作用是从表中查找出满足条件的记录。

Insert命令的作用是对数据表进行插入操作。

Update命令的作用是对数据表进行更新操作。

Delete命令的作用是对数据表中的数据进行删除操作。

Create命令的作用是创建数据表。

Alter命令的作用是修改表的结构。

Drop命令的作用是用来

温馨提示

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

评论

0/150

提交评论