2021年河北省秦皇岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2021年河北省秦皇岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2021年河北省秦皇岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2021年河北省秦皇岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2021年河北省秦皇岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

2021年河北省秦皇岛市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下定义和语句:structworkers{intnum;charname[20];charC;struct{intday;intmonth;intyear;)S;};structworkersw,*pw;pw=&w;能给w中year成员赋1980的语句是()。A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

2.在下列定义语句中,编译时会出现编译错误的是()。

A.chara=‘\x2d’;B.chara=‘\n’;C.chara=‘a’;D.chara=“aa”;

3.设初始输入序列为1,2,3,4,5,利用一个栈产生输出序列,下列()序列是不可能通过栈产生的。

A.1,2,3,4,5B.5,3,4,l,2C.4,3,2,1,5D.3,4,5,2,l

4.执行下列程序后,输出的结果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/S(k+m):printf("%d",a);}A.1B.4C.9D.0

5.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是________。

A.23B.26C.33D.36

6.若有定义语句:“inta=3,b=2,c=1;”,以下选项中错误的赋值表达式是()。

A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);

7.设栈S的初始状态为空,栈的容量为5,若入栈元素的顺序是e1、e2、e3、e4、e5,则出栈元素的顺序不可能是______。

A.e1、e2、e3、e4、e5

B.e5、e4、e3、e2、e1

C.e2、e4、e3、e5、e1

D.e3、e4、e1、e2、e5

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

A.由3种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环3种基本结构组成

C.C语言是一种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

9.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序运行后的输出结果是()。

A.CBB.BCAC.CCBBD.CDBCA

10.

11.有以下程序:#include<stdio.h>intfun(intX,inty){if(X!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d/n",fun(2*a,fun(b,c)));}程序运行后的输入结果是()。A.3B.6C.8D.12

12.设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为()。

A.aedfcbB.acfebdC.aebcfdD.aedfbc

13.执行下述程序后,输出的结果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0

14.C语言中不合法的字符串常量是

A.\121B.'Y'C.\n\nD.ABCD\x6d

15.广义表((a),a)的表头是()。

A.aB.(a)C.((a))D.()

16.程序运行后的输出结果是()。#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}A.1.1.3B.2.2.3C.1.2.3D.3.3.3

17.设有如下类型说明语句:typedefstruct{intnum;struct{inty,m,d;}date;}PER;则以下定义结构体数组并赋初值的语句中错误的是()。

A.PERst[2]={{1001},2008,8,1,{1002},2006,5,20};

B.PERst[2]={1001,{2008,8,1},1002,{2006,5,20}};

C.PERst[2]={{1001,2008,8,1},{1002,2006,5,20}};

D.PERst[2]={1001,2008,8,1,1002,2006,5,20};

18.设S为一个长度为n的字符串,其中的字符各不相同,则S中的互异的非平凡子串(非空且不同于S本身)的个数为()。

A.2n-1B.n2C.(n2/2)+(n/2)D.(n2/2)+(n/2)-1

19.运行下列程序,若从键盘输入字符“a”,则输出结果是()。

charc;

c=getchar;

if(c>=a&&c<=g)c=c+4:

elseif(c>=9&&c<=2)c=c-21:

elseprintf("inputerror!\n");

putchar(c);

A.fB.tC.eD.d

20.有以下程序:

#include<stdio.h>

main()

{ints=0.n;

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

{switch(s)

{case0;

case1:s+=1;

case2:s+=2;break;

case3:S+=3;

default:s+=4;

}

printf("%d,"s);

}

}

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

A.1,2,4,

B.1,3,6,

C.3,10,14,

D.3,6,10,

二、2.填空题(20题)21.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。

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

main()

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

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

23.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法,这称为对象的______。

24.若有如下程序:

main()

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

t=x<y<z;

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

}

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

25.若有如下程序:

main()

{intx=20;

if(x>10)printf("%d",x-=5);

if(x>15)printf("%d",x);

}

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

26.以下程序的运行结果是【】。

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

27.与结构化需求分析方法相对应的是【】方法。

28.下述函数用于统计一行字符中的单词个数,单词之问用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fot(i=0;str[i]!=【】;i++)

if【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

29.以下程序中函数huiwen的功能是检查一个宁符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空______。

#include<string.h>

chat*huiwen(chat*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=【】;

for(i=0;i<=strlen(str)/2;i++)

if(*p1++!=*p2--){t=1;break;}

if(!t或t!=0)return("yes!");

elsereturn("no!");

}

main()

{charstr[50];

printf("Input:");scanf("%s",str);

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

}

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

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=0;i<4;i++)k+=arr[i]=i;

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

}

31.以下程序的功能是输出如下形式的方阵:

13141516

9101112

5678

1234

请填空。

#include<stdio.h>

main()

{inti,j,x;

for(j=4;j【】;j--)

{for(i=1;i<=4;i++)

[x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

32.树中度为零的结点称为______。

33.问题处理方案的正确而完整的描述称为______。

34.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

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

#include<stdlib.h>

main()

{char*s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;*s2=20;m=*s1+*s2;

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

}

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

main()

{inti,a[10];

a[0]=a[1]=1;

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

a[i]=a[i-2]+a[i-1];

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

{if(i%2==0)printf("\n");

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

}

}

37.数据库管理系统常见的数据模型有层次模型、网状模型和【】3种。

38.以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。

#include<stdio.h>

#include<stdlib.h>

main()

{FILE*fp;

chara[5]="1234",b[7]="abcedf";

if((fp=fopen("【】","wb"))==NULL)exit(0);

fwrite(a,sizeof(char),4,fp);

fwrite(b,【】,1,fp);

fclose(fp);

}

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",-i);

}

40.已知存储结构如下所示,请填空。

datanext

structlink{chardata;

【】;

}node;

三、1.选择题(20题)41.以下各选项企图说明一种新的类型名,其中正确的是______。

A.typedefv1int;

B.typedefv2=int;

C.typedefintv3;

D.typedefv4:int

42.若有定义:char*st="howareyou";下列程序段中正确的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

43.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为

A.goodabcB.abcdC.abcD.abcgood

44.设有以下语句:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;p=&a[0];则表达式的值是6的为______。

A.p++->nB.p->n++C.(*p).n++D.++p->n

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

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

46.定义int*swap()指的是______。

A.—个返回整型值的函数swap()

B.—个返回指向整型值指针的函数swap()

C.—个指向函数swap()的指针,函数返回一个整型值

D.以上说法均错

47.有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是______。

A.6B.3C.死循环D.0

48.以下4个选项中,不能看作一条语句的是

A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;

49.简单的交换排序方法是()。

A.快速排序B.选择排序C.堆排序D.冒泡排序

50.已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是

A.x%(-3)B.Wd+=-2C.k=(a=2,b=3,a+D.a+=9-=(b=4)*(a=3)

51.设有关键码序列(66,13,51,76,81,26,57,69,23),要按关键码值递增的次序排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为()。

A.23,13,51,57,66,26,81,69,76

B.13,23,26,51,57,66,81,76,69

C.23,13,51,57,26,66,81,69,76

D.23,13,51,57,81,26,66,69,76

52.在微机中,bit的中文含义是()。

A.二进制位B.字节C.字D.双字

53.以下能正确定义一维数组的选项是A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;intnum[N];

54.电子数字计算机最主要的工作特点是()

A.高速度B.高精度C.存储程序与自动控制D.记忆力强

55.以下叙述中错误的是A.计算机不能直接执行用C语言编写的源程序

B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件

C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D.后缀为.obj和.exe的二进制文件都可以直接运行

56.有以下程序:voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d\n",r);}程序运行后的输出结果是______。

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

57.一个源文件中的外部变量的作用域为()。

A.本文件的全部范围B.本程序的全部范围C.本函数的全部范围D.从定义该变量的位置开始到本文件结束

58.有以下定义

#include<stdio.h>

chara[10],*b=a;

不能给a数组输入字符串的语句是

A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);

59.在C语言中,函数调用时()。

A.实参和形参各占独立的存储单元

B.实参和形参共用存储单元

C.由系统自动确定实参和形参是否共用存储单元

D.由用户指定实参和形参是否共用存储单元

60.若有“doublea;”,则正确的输入语句是()。

A.scanf("%1f",A);

B.scanf("%f",&A);

C.scanf("%1f",&A);

D.scanf("%1e",A);

四、选择题(20题)61.下列程序的输出的结果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

62.以下叙述中正确的是()。A.A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D.c语言中的文件是流式文件,因此只能顺序存取数据

63.

64.

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

voidfunc(int*a,intb[])

{b[0]=*a+b;}main

{inta,b[5];

a=0.b[0]=3;

func(&a,b);printf("%d\n",b[0]);

}

A.6B.7C.8D.9

65.软件测试的目的是()。

A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误

66.

67.有三个关系R、S和T如下:由关系R和s通过运算得到关系T,则所使用的运算为()。

A.并B.自然连接C.笛卡儿积D.交

68.

69.已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是()。A.A.isupper(c)B.'A'<=c<='Z'

C.'A'<=c&&c<='Z'

D.c<=('z'-32)&&('a'-32)<=c

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

A.C语言中的文件是流式文件,因此只能顺序存取数据

B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C.在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

71.

72.以下选项中可用做c程序合法实数的是()。、、

A.3.0e0.2B..1e0C.E9D.9.12E

73.

74.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是()。

A.选择B.连接C.投影D.并

75.

76.

77.下面程序段的运行结果是()。

A.8B.12C.4D.7

78.下列关于数据库设计的叙述中,正确的是()。

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

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

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

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

79.作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()。

A.存储媒体B.表现媒体C.传输媒体D.感觉媒体

80.下列数据结构中,能用二分法进行查找的是()。

A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,若给a输入字符串:ABCDEFGKHHK,调用函数后,字符数组b中的内容为:ABCDEFGHIJK。请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将s所指字符串中ASCII值为奇数的字符删除,将剩余字符形成的新字符串放在t所指数组中。例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII值为奇数,字符1的ASCII值也为奇数,都应当删除,其他依此类推。最后t所指的数组中的内容应是“BDF24”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100],Msg[]=“Pleaseenterstrings:”; printf(Msg); scanf(“%s”,s); fun(s,t); printf(“\nTheresuitis:%s\n”,t);}

参考答案

1.D结构workers中的成员s是一个嵌套的结构类型定义,因此在给year赋值时,要用“.”运算在深入一层访问到最基本的成员year,只有D项反映出了这一点。

2.DD选项中将字符串常量“aa”赋给字符变量a是错误的。故本题答案为D选项。

3.B

4.D本题主要考查带参数的宏定义,过程如下:由于定义为define(x)x*x没有括号优先级,所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

5.A解析:观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中,i=0时,aa[0][1]=3,*p=2;*p输出的是指针所指向的数组值,此时p所指向的是aa[O][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。

6.A由等式的规则可知,A选项错误。先对括号的b进行等式运算,得出b=4,然后计算得出a=4=3,所以会导致错误。答案选择A。

7.D解析:栈是仅在表头和表尾进行插入和删除元素操作的线性表,其特点是“先进后出”。本题中,进栈的过程中可以出栈。选项D中,如果第一个出栈的元素为e3,由于入栈顺序是e1、e2、e3,那么e3出栈后,栈中元素必定有e1和e2,因为e1先入栈,故e1应在e2后出栈,所以选项D是不可能的出栈顺序。

8.A由顺序、选择(分支)、循环3种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A选项错误。故本题答案为A选项。

9.Dputchar函数的功能是输出一个字符,由whlie判断条件和ch初始值可知,只要“ch≠‘A’”,执行两次putchar函数,否则跳出循环。第1次输出“CD”,第2次输出“BC”,第3次输出“A”后跳出循环。故本题答案为D选项。

10.B

11.B此题考查的是函数fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。

12.B

13.D本题j=要是考查带参数的宏的定义,过程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。

14.B解析:字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。由此可知,选项A)、C)、D)都是含法的字符串常量,而选B)是一个字符常量。

15.B

16.D

17.A结构体PER类型定义了两个成员:num为整型,date为嵌套的结构体类型。初始化时,成员值的顺序必须与成员定义的顺序相同,num必须是整数,date必须是用花括号标注的嵌套的3个整数。选项A中,{1001}和{1002}都不是整数,所以选项A错误。故本题答案为A选项。

18.D

19.C

\ngetchar函数是读取键盘的输入函数,本题中输入字母“a”,则c=a,判断if条件,发现a>=a&&a<=g成立,则执行下列语句:C=C+4,C得到的字符的ASCII码值,退出if语句,通过putchar函数输出字符。

20.C\n本题考查switch…ease语句,在本题的程序中,只有在case2:s=s+2;break;,才有break语句,所以当s=0时会执行s=s+1;s=s+2;,所以s=3,当s=3时,会执行s=s十3;s=s+4;,所以s=10,依此类推,答案选择C。

\n

21.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。

22.22132,2,1,3解析:本题考查++,--运算符和条件运算符的使用。

“表达式1?表达式2:表达式3”的功能是:表达式1的值若非0,则计算表达式2的值,且表达式2的值为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。

本题中,x=1,y=2时,x<y成立,输出y的值2;y=2,z=3时,z<y不成立,执行y++,输出2后y值增1,所以最后一个输出x的值不变为1,y的值为增加后的3。

23.对象具有5个基本特点:①标识唯一性;②分类性;③多态性;④封装性;⑤模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内部状态,对外是不可见的,对象的内部状态只能由其自身改变。\r\n\r\n

24.11解析:因为x=4,y=3,所以表达式x<y的值为假(0),又因为z=2,所以0<z的值为真(1),故最终输出的结果为1。

25.1515解析:本题首先定义了一个变量x并初始化为20。然后第一个if语句判断x是否>10,结果为真,则执行后面的输出语句,输出结果是赋值表达式X-=5的值,所以输出15,同时x的值也变成15。第二个if语句再判断x是否>15时条件为假,结束程序。所以程序运行后的输出结果是15。

26.a=2b=1a=2,b=1解析:本题考查了switch结构的内容。C语言中,程序执行完一个case标号的内容后,如果没有break语句,控制结构会转移到下一个case继续执行,因为case常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部switch结构后,继续执行了外部switch结构的case2分支,最后a和b的值分别为2和1。

27.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。

28.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:观察题目要求,可以知道以下几点:①for循环的结束条件应当是:str[i]已是字符串的最后一个字符;②str[i]代表字符串str中的第i+1个字符;③整型变量num的值是要记录的单词的个数。C语言中规定字符串的最后一个字符是一个隐含的字符串结束符“\\0”,所以在题中第一个空中应填写“\\0”;题中第二个空应填写“str[i]”,以判断当前位置的字符是否为空格;题中第三个空中应当填写“num++”,通过变量num的加1累加得到字符串中的单词个数。

29.str+strlen(str)-1str+strlen(str)-1解析:先从main函数开始看,它先读入字符串,接下来肯定是要判断这个字符串是否是回文,冉看huiwen函数,它的主要思想是用p1指向字符串的首地址,p2指向字符串的尾地址(不包括结束符‘/0‘),将p1左移,p2右移,直到这两个指针相遇,如果在移动过程中发现p1!=p2,则该字符串不是回文,否则其是同文。因此。在空中填str+strlen(str)-1。

30.66解析:本题第1个for循环是为数组arr元素赋初值。第2个for循环是分别用i=0,1,2,3给数组元素arr[0]、arr[1]、arr[2]、arr[3]赋值,再累加到变量k中,k=0+1+2+3=6。

31.>=1或>0i>=1或>0\r\ni解析:程序的外层for循环控制输出数据的行数,故第一处填“>=1”或“>0”;内层循环控制每行输出的个数。在内层for循环中,语句x=(j-1)*4+______;用于控制输出方阵中的具体数据,由于这些数据与其所在的行、列(j,i)具有x=(j-1)*4+i的关系,故第二处填i。

32.叶子结点叶子结点解析:树中度为零的结点,也就是没有后件的结点,称为叶子结点。

33.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。

34.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。

35.4040解析:本题中指针s1和s2都指向同一个内存中的地址。因此语句“*s2=20;”执行后,*\u3000s1=*s2=20。所以m最后的值为40。

36.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。

37.关系模型关系模型解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。

38.lett.dat6*sizeof(char)lett.dat6*sizeof(char)解析:本题主要考查函数fwrite(char*pt,unsignedsize,unsignedn,FILE*fp),把pt所指向的n*size个字节输出到fp所指定的文件中。

39.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,轴出结果为3。

40.strucklink*nextstrucklink*next解析:结构体变量构成链表要求结构体中必须有一个指向该结构体变量自身的指针用来指明链表的下一个结点。注意:结构体变量的定义及其成员变量的引用。

41.C解析:C语言中可以使用typedef来重新定义已有的数据类型,相当于为数据类型取个别名。

42.A解析:本题综合考查字符数组的赋值和strcpy函数的用法。C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:strl=“China”,如果想把“China”这5个字符放到数组strl中,除了逐个地输入外,还能使用strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企图用以下语句来实行赋值(将str2的值传给strl):strl=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

strcpy函数的结构是:strcpy(字符数组1,字符串2)

其中,需要注意的是,字符数组1的长度不应小于字符串2的长度,“字符数组1”必须写成数组名形式,如(strl),“字符串2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。

43.C解析:主函数中定义了一个文件指针fp1,然后通过fopen()函数,以写的方式打开文件“fl.txt”,并让指针fp1指向它,接着调用fpfintf()函数将“abc”写到文件fp1所指的文件里,由于开始fp1指向文件的“fl.txt”的开始位置,因此“abc”将把文件“fl.txt”里原来的内容“good”覆盖掉,故文件“fl.txt”里最后的内容为“abc”。

44.D解析:本题主要考查结构体变量的定义和应用,以及运算符的优先级。

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

46.B解析:—个函数可以带回—个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是—个返回整型指针的函数。

47.C解析:在循环过程中,i的值一直没有被改变,所以这是一个死循环。

48.D解析:选项D)为两条语句。

49.D解析:所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。

50.A解析:“%”是求余运算符或模运算符,“%”两侧均应为整型数据,选项A)中的x是double型数据。

51.AA)【解析】快速排序是起泡排序的改进。在快速排

序中,任取一个记录,以它为基准用交换的方法将所有的记录分成两部分,关键码值比它小的在一部分,关键码值比它火的在另一部分,再分别对两个部分实施上述过程,一直重复到排序完成。

52.A在微机中,信息的最小单位为二进制位,用bit来表示;8位二进制构成一个字节,用Byte来表示;一个或一个以上字节可组成一个二进制表示的字,字长可以是8位、16位、32位或64位;两个字长的字,称为双字。故本题正确答案是A\n【考点】科技\n学科专题(物理、化学、生物医学、计算机)\n计算机数据存储

53.B解析:选项A定义数组时省略了长度,而C语言中规定,只有在定义并同时进行初始化时,数组的长度才可以省略,数组的长度为初始化时候的成员个数,故选项A错误;在C语言中规定,数组的长度必须是一个整数或整型常量表达式,故选项C不正确:定义时数组的长度不能使用变量表示,故选项D不正确,所以,4个选项中选项B符合题意。

54.B解析:通常所说的计算机应是电子数字计算机的简称。电子数字计算机是一种能快速、自动进行数值计算和信息处理的计算工具。其主要特点是:(1)计算机能快速计算;(2)计算机是具有通用性的计算工具;(3)计算机具有高准确度;(4)计算机具有逻辑判断能力。

55.D解析:一个C语言的源程序(后缀名为.c)在经过编译器编译后,先生成一个汇编语言程序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序(后缀名为.obj),目标程序不可以直接运行,它要和库函数或其它目标程序连接成可执行文件(后缀名为.exe)后方可运行。故本题答案为D)。

56.A解析:题目中定义了一个指针变量r作为形参f()的函数。在主函数main()中定义了两个变量m和r,同时给m赋初值7,调用函数f(m,&r)并执行,函数f()通过指针r将最后的值返回。

57.D解析:一个源文件中的外部变量的作用域是从定义该变量的位置开始到本文件结束。

58.B解析:函数gets()的调用形式为gets(str_adr);str_adr是存放字符串的起始地址。可以是字符数组名、字符指针或字符数组元素的地址。gets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。换行符读入后,不作为字符串的内容。本题中定义一个长度为10的字符数组,和一个指针变量b,并且通过赋值让它指向数组a。gets函数的参数a[0]不能表示数组a的首地址。

59.A解析:本题考查函数调用时的参数传递。函数的形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始数据。

在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间不影响。

60.C

61.C根据赋值运算的类型转换规则,先将double型的常量l.2转换为int型,因为x的类型是int,则X的值为1;执行语句y=(K+3.8)/5.0时,即先将整型变量X的值1转换为double型1.0,然后3.8

温馨提示

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

最新文档

评论

0/150

提交评论