2022年浙江省舟山市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2022年浙江省舟山市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2022年浙江省舟山市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2022年浙江省舟山市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2022年浙江省舟山市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

2022年浙江省舟山市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列对于线性链表的描述中正确的是()

A.存储空间不一定是连续,且各元素的存储顺序是任意的

B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

2.若变量已正确定义,在语句“if(W)printf("%d\n",k);”中,以下不可替代w的是()。

A.ab+cB.ch=getcharC.a==b+CD.a++

3.有以下程序:

若运行时输入:246<;回车>;,则输出结果为()。

A.204B.200C.240D.246

4.若果要求一个线性表既能较快查找,又能适应动态变化的要求,可以采用()查找方法。

A.分块B.顺序C.二分D.散列

5.设”inta=12;”,则执行完语句”a+=a*a;”后,a的值是()。

A.12B.144C.156D.288

6.以下数据结构中,()是线性结构。

A.有向图B.栈C.线索二叉树D.B树

7.

8.有以下程序(strcat函数用于连接两个字符串):#include<stdio.h>#include<string.h>main(){chara[20]=“ABCD\0EFG\0”,b[]=“UK”;strcat(a,b);printf(“%s\n”,a);}程序的运行结果是()。

A.UKB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK

9.在执行()操作时,需要使用队列做辅助存储空间。

A.查找哈希(Hash)表B.深度优先搜索网C.前序(根)遍历二叉树D.广度优先搜索网

10.下列关于宏的叙述中正确的是()。

A.宏替换没有数据类型限制

B.宏定义必须位于源程序中所有语句之前

C.宏名必须用大写字母表示

D.宏调用比函数调用耗费时间

11.有以下程序:#include<stdio.h>main(){inti,j=0;chara[]=“ab123c4d56ef7gh89”;for(i=0;a[i];i++)if(a[i]>=‘0’&&a[i]<=‘9’)a[j++]=a[i];a[j]=‘\0’;printf(“%s”,a);}程序运行后的输出结果是()。

A.123456789abcdefgh

B.abcdefgh

C.123456789

D.1234567896ef7gh89

12.静态链表中指针表示的是()。

A.内存地址B.数组下标C.下一元素地址D.左、右孩子地址

13.以下叙述中正确的是()

A.C程序由函数和过程组成B.C程序由主函数组成C.C程序由函数组成D.C程序中,主函数必须放在其他函数之前

14.

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(一1);

printf("%d,%d\n",a,b);}

A.6,1B.2,1C.6,0D.2,0

15.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为

A.intB.floatC.doubleD.不确定

16.设有以下定义uniondata{intd1;floatd2;}demo;则下面叙述中错误的是A.变量demo与成员d2所占的内存字节数相同

B.变量demo中各成员的地址相同

C.变量demo和各成员的地址相同

D.若给demo.d1赋99后,demo.d2中的值是99.0

17.该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是()#includeMain(){intn,*p=NULL;*p=&n;printf("Inputn:");scanf("%d",&p);print("outputn:");print("%d\n",p);A.intn,*p=NULL;

B.*p=&n;

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

D.printf("%d\n",p);

18.有以下程序:#include<stdio.h>#defineS(x)x*x/xmain(){intk=6,j=3;printf(“%d,%d\n”,S(k+j+2),S(j+k+2);}程序运行后的输出结果是()。

A.11,11B.29,29C.26,29D.121,121

19.函数调用strcat(strcpy(str1,str2),str3)的功能是()。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后

D.将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中

20.有如下程序:main{inta=2,b=-1.c=2;if(a<0)if(b<0)c=0;elsec++;printf("%d\n",c);}该程序的输出结果是()。A.0B.1C.2D.3

二、2.填空题(20题)21.下列程序输出的结果是______。

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

printf("%d\n",fun(a,B)/m);

}

22.以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

23.若有定义doublea[5];,则a数组元素下标的上限为______。

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

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

25.设有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

执行上面的程序段后,*(ptr+5)的值为______。

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

27.若按功能划分,软件测试的方法通常分为______测试方法和黑盒测试方法。

28.数据结构分为线性数据结构和非线性数据结构,带链的队列属于()。

29.结构化程序设计的3种基本结构分别是顺序、选择和______。

30.以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}

31.定义长度为12的数组,下面四种方法中正确的有【】。

①intx[12];②intn=12;③constintn=12;④intx[]={1,2};

intx[n];intx[n];

32.#define命令出现在程序中函数的外面,宏名的有效范围为______。

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

#include<stdio.h>

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

34.以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*abc能构成三角形*/

elseprintf("NO\n");/*abc不能构成三角形*/

}

35.若有以下定义和语句:

intw[10]={23,54,10,33,47,98,72,80,61},*p;

p=w;

则通过指针p引用值为98的数组元素的表达式是【】。

36.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenam\n");

gets(fname);

if((fp=【】==NULL)

{printf("Cannotopen\n");exit(0);}

printf("Enterdata\n");

while(ch=getchar()!='#')

fputc(【】,fp);

fclose(fp);

}

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

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

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

39.下面函数要求计算两个整数x,y之和,并通过形参返回该值,请填空。

add(intx,inty,【】z)

{【】=x+y;}

40.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

三、1.选择题(20题)41.下列叙述中错误的是()。

A.在C语言中的保留字必须小写

B.变量的存储类型决定了变量的存储位置及其生存期

C.宏定义以#define开头,行未必须加分号

D.在C语言中的注释行可以出现在程序的任何位置

42.在下述程序中,判断i>j共执行的次数是()。main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}

A.4B.7C.5D.6

43.设有以下说明和定义:typedefunion{longi;intk[5];charc;}DATE;structdate{intcat;DATEcow;doubledog;}too;DATEmax;则下列语句的执行结果是______。printf("%d",sizeof(structdate)+sizeof(max));

A.26B.30C.18D.8

44.在数据库设计的4个阶段;为关系模式选择存取方法应该在

A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段

45.下述关于数据库系统的叙述中,正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型一致

D.数据库系统比文件系统能管理更多的数据

46.已知在ASCII字符集中,数字0的序号为48,下列程序的输出结果为______。main()}chara='0',b='9';printf("%d,%c\n",a,b);}

A.因输出格式不合法B.48,57C.0,9D.48,9

47.下列判断正确的是()。

A.chara="ABCD";等价于char*a;*a="ABCD";

B.charstr[10]={"ABCD");等价于charstr[10];str[]={"ABCD");

C.char*s="ABCD";等价于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD";等价于charc[5]=d[5]="ABCD";

48.以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是()。

A.feof(fp)B.tell(fp)C.fgetc(fp)D.rewind(fp)

49.以下程序的输出结果是()main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;i<3;++)n[i][j]=i+j;for(i=0;i<2;i++)for(j=0,j<2;j++)n[i+1][j+1]+=[i][j];printf("%d\n",n[1][j]);}

A.14B.0C.6D.值不确定

50.有以下程序main(){intm=0256,n=256;printf("%o%o\n",m,n);}程序运行后的输出结果是

A.02560400B.0256256C.256400D.400400

51.表达式“~9&9<<1|4”的值为()。

A.0B.4C.5D.22

52.下列程序执行后的输出结果是voidfuncl(inti);voidfunc2(inti);charst[]="hello,friend!";voidfuncl(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){inti=

A.helloB.helC.hloD.hlm

53.不是面向对象程序设计的可维护性的优点的是()

A.用面向对象的方法开发的软件稳定性比较好B.易于移植C.易于和调试D.用面向对象的方法开发的软件比较容易理解

54.设计准则要求,模块的作用域和控制域的关系是()

A.作用域和控制域无关B.作用域在控制域之外C.控制域在作用域之内D.作用域在控制域之内

55.微型计算机的运算器、控制器及内存储器组合在一起,称之为()

A.ALUB.CPUC.MPUD.主机

56.以下程序的输出结果是

#include<stdio.h>

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

main()

{p=(int*)malloc(sizeof(int));

f(p,a);

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

free(p);}

f(int*s,intp[][3])

{*s=p[1][1];}

A.1B.4C.7D.5

57.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面

58.以下不属于对象的基本特点的是()

A.分类性B.多态性C.继承性D.封装性

59.阅读下列程序,则执行后的结果为#include"stdio.h"main(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}

A.3e,6B.62,5C.56,5D.3E,6

60.栈和队列的共同特点是()。

A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点

四、选择题(20题)61.以下叙述不正确的是()。

A.在C程序中,逗号运算符的优先级最低

B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在计算赋值表达式a=b后,b的值将放入a中,而b的值不变

D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

62.软件按功能可以分为应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是().

A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统

63.

64.算法分析最重要的目的是

A.找出数据结构的合理性B.找出算法中输入和输出之间的关系

C.分析算法的易懂性和可靠性D.分析算法的效率以求改进

65.

66.有以下函数该函数的功能是()。

A.计算s所指字符串占用内存字节的个数

B.比较两个字符串的大小

C.计算s所指字符串的长度

D.将s所指字符串复制到字符串t中

67.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

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

69.

70.函数ftell(fp)的作用是()。

A.得到fp所指向文件的当前读写位置B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确

71.有以下程序:

当运行时输入:a<回车>后,以下叙述正确的是()。

A.变量c1被赋予字符a,c2被赋予回车符

B.程序将等待用户输入第2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2

D.变量c1被赋予字符a,c2中将无确定值

72.

73.若有定义语句:intX=10;,则表达式x-=x+x的值为()。

A.0B.-20C.-10D.10

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

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

75.

76.下列选项中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

77.

78.

79.有以下程序:

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

A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

80.

五、程序改错题(1题)81.下列给定的程序中,函数proc的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。

例如,排序前的数据为:1132-5214

则排序后的数据为:-52111432

请修改程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include<stdio.h>

#defineM20

voidproc(inta[],intn)

{

inti,j,t,P;

//****found****

for(j=0;j<n-1;j++);

{

p=j;

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

if(a[[i]<a[p])

p=i;

t=a[p];

a[p]=aEj3;

//****found****

a[p]=t;

}

}

voidmain

{

intarr[M]={11,32,-5,2,14},i,m=5;

printf("排序前的数据:");

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

printf("%d",arr[i]);

printf("\n");

proc(arr,m);

printf("排序后的顺序:");

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

printf("%d",arr[i]);

printf("\n");

}

六、程序设计题(1题)82.请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。例如,当str所指字符串中的内容为ABCDEFGHIJK(输入完成以空格、Tab或者Enter键加任意非空格、Tab或者Enter键的一个字符作为输入结束标志),则在t所指数组中的内容应是BDFHJ。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.A本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。\n在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。故本题答案为A。

2.A符号<>不是C语言中的运算符,所以不能替代。

3.A本题中输入的3个数据2,4,6分别赋值给了x[0[0],x[1][0],x[2][0]。x[o][1]仍为初始时的0,所以打印输出时的结果为A选项。

4.A

5.C

6.B

7.B

8.C字符数组a中包含两个‘\\0’。遇到第1个‘\\0’时就表示字符串a结束。字符串处理函数strcat(字符数组a,字符数组b),功能是连接两个字符串,把字符串b连接到字符串a的后面,结果放在字符数组a中。连接时将字符串a后的‘\\0’取消,只在新串最后保留一个‘\\0’。本题相当于将“ABCD”和“IJK”连接。故本题答案为C选项。

9.D

10.A宏定义写在函数的花括号外,作用域为其后的程序,通常在文件的最开头,所以B选项错|误。宏名一般用大写字母,但不是必须用大写字母,所以C选项错误。宏展开不占运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、值传递、返回值),所以D选项错误。故本题答案为A选项。

11.C题干中定义了字符数组a,它包含数字字符和字母字符。通过for循环,将a中所有的数字字符前移,舍去其他字符,并在数字字符后添加字符串结束符‘\\0’,for循环结束后,字符串a的值为:123456789。故本题答案为C选项。

12.C

13.C

14.B

\n当逻辑运算符“&&”两边的值是非零时,逻辑表达式的值为真(即为1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。

\n

15.C解析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。

16.D解析:联合体的所有成员共占同一段内存,所以联合体变量的长度与它的最长成员所占长度…致,本题中float所占内存字节数为4,而\u3000int类型在TurboC\u30002.0中是占2字节、在VisualC++6.0中占4字节,所以int类型所占内存字节数不会超过float,那demo就与成员d2所占字节数是相同的,选项A的说法正确。联合体的所有成员的首地址都是相同的,和联合体变量的地址一致。故选项B和C都是正确的。由于int类型数据和float类型数据在内存中的存放格式是不一样的,所以给d1赋99后,d2中不会得到99.0这个值。故选项D不正确,答案应该选择D。

17.A选项B)的正确写法应为p=&n;选项C)的正确写法应为scanf("%d",p);选项D)的正确写法应为print("%d\\n",*p)。

18.B#define命令是C语言中的一个宏定义命令,为了区分其他标识符,标识符一般使用大写。将标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。宏定义不进行其他操作,仅仅只是替换标识符。题目中的S(k+j+2)=k+j+2*k+j+2/k+j+2”,经计算可得29。“S(j+k+2)=j+k+2*k+j+2/j+k+2”,经计算可得29。因此输出为29,29。故本题答案为B选项。

19.Cstrcat(s1,s2)函数的功能是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制到s1字符串,要保证sl的容量。

20.Celse与离它最近的if构成if…else语句,而当a为2时,第一个if语句不成立,因此什么也不做,即c的值仍然为2,故选择C选项。

21.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。

22.“filea.dat”“r”“filea.dat”,“r”解析:fopen函数的调用方式通常为fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入'filea.dat','r'。

23.44解析:一维数组元素的定义形式为:数组名[N],则该数组中元素的下限是0,上限是N-1。

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

25.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在C语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0'所以题中数组str有6个元素。②ptr指向数组str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

26.55解析:分析程序,当a=3;b=4;c=5时,判断语句a>b不成立,所以不执行后面的语句,直接执行“printf('%d\\n',c);”语句,输出c的值,输出结果为5。

27.白盒白盒解析:软件测试的方法分为白盒测试方法和黑盒测试方法.

28.线性数据结构线性数据结构解析:队列的链式存储称为链队列,它属于线性数据结构。

29.重复(循环)重复(循环)解析:结构化程序设计包括3种基本的结构:顺序结构、选择结构和重复结构(循环结构),利用这3种结构就足以表达出各种其他形式结构的程序设计方法。其中利用循环结构,可以简化大量的程序执行。

30.x=2

31.①③

32.从定义到本源文件结束从定义到本源文件结束解析:C语言规定,宏名的有效范围为从定义宏到本源程序结束。

33.136136解析:程序中定义了一个递归调用函数fun。程序运行时,先把实参6传给形参。if语句中6/2>0成立,执行fun(x/2),即fun(3),同时输出x的值6;再判断if条件,3/2>0成立,再执行fun(x/2),即fun(1),同时输出x的值3;此时1/2>0不再成立,输出1。而递归调用的输出顺序是相反的,故输出结果为136。

34.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的条件是两边之和大于第三边。要用'&&'指令连接三个条件,表示三个条件都要满足。

35.*(p+5)

36.fopen(fname"w")chfopen(fname,'w')\r\nch解析:数组fname用来存放终端输入的一个文件的文件名;文件使用方式'w'是为写而打开文本文件。若文件不存在,系统将用在fopen调用中以指定的文件名建立一个新文件;若存在,则覆盖原有内容;fputs(ch,fp)的功能是将字符ch写到文件指针fp所指的文件中去。

37.abcfgabcfg解析:本题考查的是字符数组用作函数参数。C语言中数组名可以看作该数组首地址的常量指针、因此可以直接传递给指针类型的参数。本题的主函数调用fun(s,3,strlen(s));后,函数中for循环就是for(i=3;i<strlen(s)-1;i++),即i从3递增到字符数组s的长度-2位置,循环中让s[i]=s[i+2],所以函数fun()实现的功能简单来说就是将字符串s下标为p+2~k范围的字符整体复制到字符串s下标为p~k-2的位置上。在本题中strlen(s)返回s的长度7,所以复制的字符为s[5]~s[7],即'f'、'g','\\0'三个字符,复制到s[3]~s[5],故最终输出的字符串为abcfg(因为s[5]为'\\0',所以后面的字符不会输出)。

38.136136解析:本题考核的知识点是函数递归。主函数调用函数fun(6),由于6/2>0为真递归调用fun(3),接着递归调用fun(1),输出1,返回上一层输出3,在返回上一层输出6。故空格处应该填136。

39.int**zint*\r\n*z解析:函数希望通过形参z带回结果,形参z必须是指针类型的。由于返回整型结果,所以第一处填int*;函数返回前必须先把结果通过形参z间接引用传回,第二处应填*z。

40.静态分析静态分析解析:程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

41.C解析:本题涉及C语言最基本的4个知识点:①C语言的保留字必须小写;②变量的存储类型不同,其存储位置和生存期也不一样;③C语言允许其注释部分出现在程序中的任何位置;④宏定义以#define开头,行末不需要加分号。

42.D

43.B

44.D解析:需求分析阶段是分析用户的需求,显然不属于这个阶段,由此可以排除选项A。概念设计是将需求分析得到的用户需求抽象为信息结构及概念模型的过程,涉及不到数据的存取。逻辑设计是在概念设计的基础上将E—R图转换成数据库管理系统的逻辑数据模型表示的逻辑模式,也不涉及存取问题。

45.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。

46.D解析:注意输出控制符%d,%c,分别表示以十进制形式输出字符的ASCII码值和字符。

47.D解析:a='ABCD'书写错误,因为“=”左边不能出现常量;数组名s是代表s数组首地址的地址常量,而不是变量;字符串只有在定义时维数可以省略。

48.D解析:本题的考点是C语言的文件操作。函数fseek(fp,0L,SEEK_SET)的作用是,将文件指针fp移到相对于文件开始处(SEEK_SET)位移为0L的地方,也就是文件的开头。选项A的feof(fp)是判断是否读到了文件尾,作用与函数fseek不符。选项B的ftell(fp)是告知文件指针的当前位置,作用与函数fseek也不符。选项C的fgetc(fp)是从文件指针fp中读入一个字符,作用与函数fseek也不符。选项D的rewind(fp)是将文件指针回绕到文件开始处,作用与函数fseek(fp,0L,SEEK_SET)相同。

49.C

50.C解析:程序中定义了两个整型变量,一个用八进制表示,一个用十进制表示,输出语向中要求m,n都为八进制输出,显然m原样输出为256,n的值转换为八进制输出(256的八进制为400),故输出400.所以,4个选项中选项C符合题意。

51.D解析:优先级由高到低的顺序为~、<<、&、|。9的二进制形式为00001001,4的二进制形式为00000100。~9即11110110。9<<1为00010010,11110110&00010010=00010010,00010010|00000100=10110即22。

52.C

53.B

54.D

55.D

56.D解析:本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f()中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。

57.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。

58.C解析:对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等。继承性不属于对象的基本特点。

59.A解析:数组a[5][5],0<=i<5,0<=j<5,则可以用5种表达式来引用,a[i][j],*a(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+5*i+j)。数组的下限为0,%后面为小写的x,所以输出的结果为小写字母表示的十六进制。

60.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。

61.D在c语言所有的运算符中,逗号运算符的优先级最低。C语言区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值赋予a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输人数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。

62.A软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件,因此B)、C)、D)都是系统

温馨提示

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

评论

0/150

提交评论