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

下载本文档

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

文档简介

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

一、单选题(20题)1.下面关于线性表的叙述中,错误的是哪一个()。

A.线性表采用顺序存储,必须占用一片连续的存储单元

B.线性表采用顺序存储,便于进行插入和删除操作

C.线性表采用链式存储,不必占用一片连续的存储单元

D.线性表采用链式存储,便于进行插入和删除操作

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

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

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

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

3.若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入3个整数分别赋给变量a、b、c的语句是______。

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

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

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

4.设计一个判别表达式中左、右括号是否配对出现的算法,采用()数据结构最佳。A.线性表的顺序存储结构B.队列C.线性表的链式存储结构D.栈

5.以下程序的输出结果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

6.设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为()。

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩

7.对一个算法的评价,不包括()方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度

8.

9.用单链表表示的链式队列,队头在链表的()位置。

A.链头B.链尾C.链中D.可以由自己确定

10.有下列程序:

fun(intx)

{intp;

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

p=x-fun(x-2);

returnp;

}

main()

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

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

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

11.下面不属于需求分析阶段任务的是()。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.制定软件集成测试计划D.需求规格说明书评审

12.下列程序的输出结果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}

A.4,5,12B.20C.5,4,20D.12

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

A.hAppychristmAs

B.happychristmas

C.HAppyCHrIstmAs

D.HAPPYCHRISTMAS

14.

15.具有n个顶点的完全有向图的弧数为()。

A.n(n-1)/2B.n(n-1)C.n2D.n2-1

16.若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

17.有以下程序:

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

A.45B.20C.25D.36

18.设有定义“inta;floatb;”,执行“scanf(“%2d%f”,&a,&b);”语句时,若从键盘输入876543.0并按<Enter>键,则a和b的值分别是()。

A.87和6.0B.876和543.0C.87和543.0D.76和543.0

19.设有定义语句:charc1=92,c2=92;则以下表达式中值为零的是()。

A.c1∧c2B.c1&c2C.~c2D.c1|c2

20.用向量和单链表示的有序表均可使用折半查找方法来提高查找速度()A.是B.否

二、2.填空题(20题)21.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行4个元素输出数组b,请填空。main(){inta[10],b[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=1;i<10;i++)();for(i=0;i<9;i++){printf("%d",b[i]);if(i%4==0)printf("\n");}}

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

#include<stdio.h>

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf("%d%d\n",i1,i2);

}

23.下列程序的输出结果是______。

main()

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

int*p1=&a,*p2=&b,*p;

*(p=&c)=*p1*(*p2);

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

}

24.执行下列语句段后,x的值是______。

int*p,x;

x=100;

p=&x;

x=*p+50;

25.下面的程序实现字符串的复制。

voidcopy_string(from,to)

【】;

{for(;*from;from++,to++)

*to=*from;

【】;

}

main()

{char*a="Iamwang",*b="youareLi";

printf("%s\n%s\n",a,b);

【】;

printf("%s\n%s\n\n",a,b);

}

26.栈满时,再作入栈操作会产生【】,栈空时,删除操作会产生【】。

27.实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【】。

28.将以下程序段写成三目运算表达式:【】。

if(a>b)max=a;

elsemax=b;

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

30.若从键盘输入58,则以下程序的输出结果是【】。

main()

{inta;

scanf(“%d”,&A);

if(a>50)printf(“%d”,A);

if(a>40)printf(“%d”,A);

if(a>30)printf(“%d”,A);

}

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

main()

{charc=′z′;

printf("%c",c-25);}

32.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

f1=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

33.以下程序的功能是从名为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);

}

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

#include<stdio.h>

main()

{charc;intn=100;

floatf=10:doublex:

x=f*=n/=(c=50);

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

}

35.\13'在内存中占1个字节,"\12"在内存中占______个字节。

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

main()

{

intx=15;

while(x>10&&x<50)

{

x++;

if(x/3){x++;break;}

elsecontinue;

}

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

}

37.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

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

39.对下列二叉树进行中序遍历的结果为【】。

40.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。

三、1.选择题(20题)41.以下程序运行后,输出结果为______。main(){inta[2][3]={1,3,5,7,9,11),*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

A.1B.7C.9D.11

42.假定所有变量已正确说明,下列程序段运行后,x的值是()a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;

A.34B.4C.35D.3

43.算法的时间复杂度是指______。

A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数

44.有以下程序:main(){intx[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1)>x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1)=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n");}程序运行后的输出结果是______。

A.75310246B.1234567C.76310462D.13570246

45.以下程序的输出结果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

46.在位运算中,操作数右移一位,其结果相当于

A.操作数乘以2B.操作数除以2C.操作数乘以4D.操作数除以4

47.有以下程序中若有如下说明和定义语句;charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;…}以下选项中对函数fun的正确调用语句是______。

A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);

48.下列程序的输出结果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<B)if(b<0)c=0;elsec++;printf("%d\n",C);}

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

49.以下程序试图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#时结束输入和输出操作,但程序有错。#include<stdio.h>main(){FILE*fout;charch;fout=fopen('abc.txt','W');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出错的原因是()。

A.函数fopen调用形式错误B.输入文件没有关闭C.函数fgetc调用形式错误D.文件指针stdin没有定义

50.下面函数调用语句含有实参的个数为()。func((exp1,exp2),(exp3,exp4,exp5));

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

51.若有下列定义和语句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);则输出结果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

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

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

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

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

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

53.若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任意元素a[i][j]在数组中位置的公式为______。

A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+1

54.下面程序的输出结果是()main(){inti,j;i=16;j=(i++)+i;printf("%d",j);i=15;printf("%d%d",++i,i);}

A.321615B.3315,15C.3415,16D.341615

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

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

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

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

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

56.以下程序的输出结果是_______。#include<string.h>main(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}

A.ihgfedcbaB.abcdefghiC.abcdedcbaD.ihgfefghi

57.以下不是面向对象思想中的主要特征的是

A.多态B.继承C.封装D.垃圾回收

58.有以下程序voidswap(char*x,char*y){chart;t=*x;*X=*y;*y=t;}main(){char*s1:"abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序执行后的输出结果是

A.123,abcB.abc,123C.1bc,a23D.321,cba

59.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

60.下列数据结构中,属于非线性的是()。

A.线性表B.队列C.树D.栈

四、选择题(20题)61.

62.设有定义

63.

64.若有定义语句:"inta[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

65.(33)有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

}

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

}

以下关于程序段执行情况的叙述,正确的是

A)for循环语句固定执行8次

B)当产生的随机数n为4时结束循环操作

C)当产生的随机数n为1和2时不做任何操作

D)当产生的随机数n为0时结束程序运行

66.支持子程序调用的数据结构是()。

A.栈B.树C.队列D.二叉树

67.当变量c的值不为2、4、6时,值也为“真”的表达式是()。

68.

69.已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是

A.scanf("%2d,%2d,%2d",i,j,k);B.scanf("%d%d%d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

70.以下选项中正确的语句组是()。

A.char*s;8={1.BOOK!”}i

B.char*s;8=”BOOK!”;

C.charS[10];S=”BOOK!”;

D.charS[];S=”BOOK!”;

71.

72.

73.

74.有以下程序(a123.txt在当前盘符下已经存在)

#include"stdio.h"

voidmain()

{FILE*fp;

inta[10],*p=a;

fp=fopen("a123.txt","w");

while(strlen(gets(p))>0)

{fputs(a,fp);

fputs("\n",fp);

}

fclose(fp);

}

程序实现的功能是

A.从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中

B.从键盘输入若干行字符,取前两行写入文本文件a123.txt中

C.从键盘输入若干行字符,第一行写入文本文件a123.txt中

D.从键盘输入若干行字符,依次写入文本文件a123.txt中

75.

76.有以下程序段:

当执行上述程序段,从键盘上输入555667777abc后,y的值为()。

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

77.下列关于C语言数据文件的叙述中正确的是______。

A.文件由ASCII码字符序列组成,C语言只能读写文本文件

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

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

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

78.下列函数的类型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不确定C.voidD.float

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

A.数据的逻辑结构与存储结构是一一对应的

B.算法的时间复杂度与空间复杂度一定相关

C.算法的效率只与问题的规模有关,而与数据的存储结构无关

D.算法的时间复杂度是指执行算法所需要的计算工作量

80.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。

A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,当n为l0时,函数值应为22.550361。f(x)函数定义如下:请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),它的功能是:把分数最低的学生数据放在h所指的数组中。注意:分数低的学生可能不止一个。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B

2.AB)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。

3.A解析:选项B中d已经为地址,不应在加上求地址符号“&”,故选项B不正确;选项C中,a和b都为变量不是地址,应该在a和b之前加上求地址符号“&”,故选项C不正确:选项D中指针d所指向的存储空间的位置为变量c的值,不为地址,故选项D不正确,所以,4个选项中A为所选。

4.D

5.C解析:本题考查按位与“&”。因为1&1=1,0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。

6.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。

7.B

8.C

9.A

10.C解析:因为在函数fun(intx)中,如果参数x等于0或1时,返回值3。否则p=x-fun(x-2)这是一个递归函数,所以在主函数调用fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1))=7-(5-(3-3))=7-5=2”,所以最后的输出结果为2。

11.C【答案】:C

【知识点】:需求分析阶段的任务

【解析】:需求分析阶段的任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。可分为需求提出、需求描述及需求评审三个阶段。从此可以看出需求分析的任务不包括制定软件集成测试计划,故选C。

12.C解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a<b成立,执行下列的复合语句,得c=a*b=20,b、a的值不变。

13.C程序定义一个字符数组b和一个字符变量k。for循环通过循环变量k,遍历数组b中的各个字符,通过if语句判断当前下标为k的字符的ASCII值与字符'm'的ASCII值的大小,ASCII值小于‘m’的ASCII值的字符改成大写字母(b[k]=b[k]-'a'+'A'),然后输出b[k]。在字符串“happychristmas”中,ASCII值小于'm'的字符有h,a,c,h,i,a,所以程序输出:HAppyCHrIstmAs。本题答案为C选项。

14.C

15.B

16.B解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式,即(*p).i和p->i。

17.C统计1~9九个数中的奇数和,此题重点考察指向数组的指针。c语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第i+1个元素。程序运行的结果是l+3+5+7+9=25。1

18.Ascanf函数中,在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给变量a,把6.0赋给float型变量b。故本题答案为A选项。

19.A解析:按位异或“^”运算,是当对应位上的二进制数值相同时结果为0,否则为1。因为c1,c2的值相同,所以异或的结果为0,选项A)正确。按位与“&”运算符只有当所有对应位上的数都不相同时结果才为0,所以c1&c2的值不可能为0,选项B)错误。“~”是按位取反,由于十进制数92转化成二进制数并不是全为1,所以即使取反也不能得到全为。的答案,所以错误。“|”是按位或运算,由于十进制数92转化为二进制数也不是全为0,所以按位或运算后也不会全为0。

20.N

21.b[i-1]=a[i]-a[i-1]

22.100010100010解析:对于define宏定义语句,系统在编译前进行如下替换:

i1=1000/s(N)i1=1000/s(10)i1=1000/10*10

i2=1000/f(N))i2=1000/f(10)i2=1000/(10*10)

23.88解析:本程序定义了3个指针变量p1、p2、p,并且将,、b的地址分别赋给P1、p2,则*p1=a=2,*p2=b=4,所以表达式*p1*(*p2)的值是8。在赋值语句的左边是*(p=&c),即使指针p指向了变量c,因而*(p)代表了c的存储单元,赋值语句“*(p=&c)=*p1*(*p2);”是把整数8赋给了变量c。

24.150150解析:本题先给变量x赋初始值100,然后将指针p指向变量x,*p是取指针p所指地址的内容,即100,所以x=100+50=150。

25.char*from*to*to='\0'copy_string(ab)char*from,*to\r\n*to='\\0'\r\ncopy_string(a,b)解析:函数copy_string()用到了形参from,to是指针变量,实参a、b是字符串指针,第一个空格应填形参说明语句“char*from,*to”。当from所指的字符串全部复制给to所指的字符串时,有可能to所指原字符串长度大于from所指字符串长度,即可能to所指串的后面字符仍留在复制后的to所指串中。为避免这种情况,必须在from所指串复制完后,马上给to所指串加上串结束符。因此,第二个空格应填*to='\\0'。main()函数应调用copy_string()函数,第三个空格应填copy_string(a,b)。

26.上溢下溢上溢\r\n下溢

27.空间复杂度和时间复杂度算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。

28.max=(a>b)?a:bmax=(a>b)?a:b解析:本题考查三目运算符的用法,条件表达式的一般形式为:

表达式1?表达式2:表达式3

所以,本题可以写成(a>b)?a:b,它是一个条件表达式,执行顺序是:如果条件(a>b)为真,则条件表达式取值a,否则取值b。

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

30.585858585858解析:在程序中,执行scanf()语句后,a被赋值为58。接着执行第一个if语句,因为,a=58>50,执行第一个if语句后面的输出语句,输出58;接着执行第二个if语句,因为,a=58>40,执行第二个if语句后面的输出语句,输出58;接着执行第三个if语句,因为,a=58>30,执行第三个if语句后面的输出语句,输出58,所以最后的输出为585858。

31.aa解析:'z'的ASCII码值为122,经过c-25运算后,得97,以字符形式输出是a。

32.3!feof(f1)3\r\n!feof(f1)解析:要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故argc的值至少为3,因此第一空应填3。while循环中语句fputc(fgetc(f1),f2);的目的是将f1中的字符依次读出并写入到f2对应的文件中去,直至文件f1结束为止,因此第二空为!feof(f1)。

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

34.220220解析:根据赋值运算符“自右至左”的结合顺序,程序中赋值表达式x=f*=n/=(c=50)的求解步骤为:首先计算n/=(c=50),即n=n/c=100/50=2;然后计算f*=n,即f=f*n=10*2=20.000000,由此得到x的值为20.000000。

35.22解析:'\\13':表示八进制数13表示的ASCII字符,是一个字符,占一个字节;而”\\12”是个字符串,除了八进制数12表示的ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志“'\\0'”,所以共有2个字节。

36.1717解析:break语句只能在循环体和switch语句体内使用,当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。当break出现在循环体中,但不在switch语句体内时,则在执行break后,跳出本层循环体。而continue语句的作用时结束本次循环,即跳过本次循环中余下尚未执行的语句,接着再一次进行循环的条件判定。本题中首先定义了一个变量x并赋初值15,然后判断循环条件“x>5&&x<50”,即“x>5&&x<50”,为真,执行循环体.语句“x++;”执行后,x的值变为16,“X/3”的值为5为真,执行其后的语句“x++;”,x的值变为17,执行语句“break”,退出循环,输出。x的值为17。

37.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本题要求将字符串str中的字符用冒泡排序算法从大到小排列,其实现过程是将相邻两个字符进行比较,如果当前字符小于下—个字符,则通过中间变量temp将字符两两交换,所以第一空应填:str[i],第二空应填:str[i+1]。最终打印输出得到的字符串str,所以第三空应填:'%s',str。

38.软件开发

39.ACBDFEHGPACBDFEHGP解析:中序遍历方法的递归定义;当二叉树的根不为空时,依次执行如下3个操作:①按中序遍历左子树。②访问根结点。③技中序遍历右子树。根据遍历规则来遍历本题中的二叉树。首先遍历F的左子树,同样按中序遍历。先遍历C的左子树,即结点A,然后访问C,接着访问C的右子树,同样按中序遍历C的右子树,先访问结点B,然后访问结点D,因为结点D没有右子树,因此遍历完C的右子树,以上就遍历完根结点F的左子树。然后访问根结点F,接下来遍历F的右子树,同样按中序遍历。首先访问E的左子树,E的左子树为空,则访问结点E,然后访问结点E的右子树,同样按中序遍历。首先访问G的左子树,即H,然后访问结点G,最后访问G的右子树P。以上就把整个二叉树遍历一遍,中序遍历的结果为ACBDFEHGP。因此,划线处应填入“ACBDFEHGP”。

40.顺序存储(顺序方式存储)顺序存储(顺序方式存储)解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。

41.C解析:s是一个含有两个元素的指针数组,pp是一个指向指针变量的指针,s[0]是指向二维数组a行下标为0的元素的首地址,即a[0][0]的地址,s[1]为a[1][0]的地址。pp的值为s[0]的地址。**pp=s[1][1]后,a[0][0]的值将被赋值为a[1][1]的值,执行p=*pp;后,p中将是s[0]的值,最后的输出语句将输出地址s[0]所指向的数据,即a[0][0]。

42.B

43.C解析:算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算的工具以及程序员的水平无关。选项A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项B错误,因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项D错误,因为根据一个算法所编制出的程序之中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。所以,本题正确答案为C。

44.A解析:本题中第一次执行for循环后,数组x中的前四个元素按由大到小的次序排序,即x[0]=7、x[1]=5、x[2]=3、x[3]=1、x[4]=2、x[5]=4、x[6]=6、x[7]=0;第二次执行for循环后,数组x中的后4个元素按由小到大的次序排序,即此时x[0]=7、x[1]=5、x[2]=3、x[3]=1、x[4]=0、x[5]=2、x[6]=4、x[7]=6。故正确答案为A。

45.D解析:本题中是一个含有两个结点的循环链表。

C语言中结构体的定义为:

struct结构题类型名

{

成员项表;

};

46.B解析:右移运算符“>>”是双目运算符。其功能是把“>>”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。例如:设a=15,a>>2表示把000001111右移为00000011(+进制3)。应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定。TurboC和很多系统规定为补1,右移1位相当于除以2。

47.A解析:(*f1)()=fun可以理解为将fun函数的函数名称用(*f1)()来代替了,因此高调用fun时就可以用(*f1)()来代替,因此只有A是正确的。

48.C解析:本题考查if语句。第一个if语句,先判断条件,发现a<b不成立,不再执行下列的语句,直接执行最后的printf输出语句,然后结束程序,整个过程c的值没有发生变化。

49.A解析:stdin是标准输入设备的文件指针,不须定义直接可以使用,它随系统的启动而打开,随系统的关闭而关闭,fgetc()函数的作用是从某个文件中读取一个数据,其参数为要读取文件的文件指针,所以本题中的调用形式是正确的。fopen()函数有两个参数,第一个参数是打开的文件名,第二个参数是文件打开模式,两个参数都是字符串,本例中“fout=fopen(\'abc.txt\',\'w\');”语句的fopen()函数参数是错误的,应该用双引号'',正确的应改为“fout=fopen('abc.txt','w');”。所以,A选项为所选。

50.B

51.C解析:在C语言中,“%d”表示输出带符号的十进制整型数;“%x”表示以十六进制无符号型输出整型数据(即不带前导0x或0x);“%o”表示以八进制无符号型输出整型数据(即不带前导0)。

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

53.D解析:a[i][j]的位置应该是第i+1行,第j+1列,那么它的位置是(i+1-1)*m+j+1=i*m+j+1。

54.A

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

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

56.A解析:观察子函数fun()可知,它是实现—个数组首末元素位置互相依次交换。联系主函数,可以看出,是对字符串中的元素依次进行首末位置的对调。

57.D解析:面向对象思想中的三个主要特征是:封装性、继承性和多态性。

58.C解析:这是一个转换程序:低字节相互转换,高字节不变。“abe”的ab和“123”的12相互转化。

59.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。

60.C解析:线性结构,是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。

61.B

62.A选项A)定义字符数组str,然后将str赋值给C,c便指向字符串str,符合题意。所以选择A)。

63.C

64.A\n数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不

温馨提示

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

评论

0/150

提交评论