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

下载本文档

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

文档简介

2022年江苏省南京市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.假设以行序为主序存储二维数组array[100][100],设每个数据元素占2个存储单元,基地址为10,下标从0开始,则元素array[5][5]的地址为()。

A.808B.818C.1010D.1020

2.下面程序中算法的时间复杂度是()A.O(n)B.O(n^2)C.O(logn)D.O(n*logn)

3.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

4.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

5.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

6.以下一维数组a正确的定义是()

A.inta(5)B.intn=5,a[n]C.inta[SZ]其中SZ为符号常量D.inta{5}

7.已知字符A的ASCII值是65,字符变量c1的值是‘A’,c2的值是‘D’,则执行语句“printf(“%d,%d”,c1,c2-2);”的输出结果是()。

A.65,68B.A,68C.A,BD.65,66

8.有以下程序:

运行时,若输入123450<;回车>;,则输出结果是()。

A.66656B.6566456C.66666D.6666656

9.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。A.log2+1

B.log2(n-1)

C.log2n

D.log2(n+1)

10.以下关于结构化程序设计的叙述中正确的是()。

A.结构化程序使用goto语句会很便捷

B.在c语言中,程序的模块化是利用函数实现的

C.一个结构化程序必须同时由顺序、分支、循环三种结构组成

D.由三种基本结构构成的程序只能解决小规模的问题

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

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

12.一个序列中有10000个元素,若只想得到其中前10个最小元素,最好采用_______方法

A.快速排序B.堆排序C.插入排序D.二路归并排序

13.设x、y、z、t均为int型变量,则执行以下语句后,t的值是()x=y=z=l;t=++x||++y&&++z;

A.不定值B.2C.1D.0

14.下列代码的复杂度是多少?如果多于1个答案正确,选择最小的那个。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)

15.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。

A.详细设计B.需求分析C.总体设计D.编程调试

16.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。

A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)

17.

18.计算机算法指的是()。

A.计算方法B.排序方法C.解决问题的有限运算序列D.调度方法

19.以下程序的输出结果是()。main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.21

20.

二、2.填空题(20题)21.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入n个字符放到buf字符数组中,函数返回值为______。

22.最简单的交换排序方法是______。

23.若有定义:intk;,以下程序段的输出结果是______。for(k=2;k<6;k++,k++)printf("##%d",k);

24.按"先进后出"原则组织数据的数据结构是【】。

25.已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。

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

main()

{char*k="aeiou";

for(;*k;k++)printf("%c",*k);

}

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

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");

}

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

#include<stdio.h>

main()

{inta,b,c;

a=25;b=025;e=0x25;

prinff("%d%d%d\n",a,h,c);

}

29.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于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);

}

30.软件定义时期主要包括______和需求分析两个阶段。

31.以下程序运行后的输出结果是()。

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<C)t=a;a=c;c=t;

if(a<c&&b<C)t=b;b=a;a=t;

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

}

32.关系模型的数据操作即是建立在关系上的数据操作,一般有【】、增加、删除和修改四种操作。

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

#include<stdio.h>

main()

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

if(x<y)

if(y<0)z=0;

elsez+=1;

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

}

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

main()

{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

{for(j=0;j<3;j++)printf("%d",a[i][j]);

printf("\n");

}

}

35.下面程序的输出是【】。

main()

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

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

arr[i]=i;

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

k+=arr[i]+i;

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

36.函数fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

37.已知字符'A'的ASCII码为65,以下程序运行后的输出结果是【】。

#include<stdio.h>

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

38.在先左后右的原贝吓,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、【】遍历和后序遍历。

39.以下程序的输出结果是()。#include<stdio.h>voidmain(){intf,f1,f2,i;f1=0;f2=1;printf("%d%d",f1,f2);for(i=3;i<=5;i++){f=-f1+f2,printf("%d",f);f2=f1;f1=f;}printf("\n");}

40.设有下列宏定义:#defineA2

#defineBA+3

则执行赋值语句;t=B*2;t为int型变量后的值是______。

三、1.选择题(20题)41.线性结构中的一个结点代表一个数据元素,通常要求同一线性结构的所有结点所代表的数据元素具有相同的特点,这意味着______。

A.每个结点所代表的数据元素都一样

B.每个结点所代表的数据元素包含的数据项的个数要相等

C.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致

D.结点所代表的数据元素有同一特点

42.以下程序执行后,sum的值是______。main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

A.15B.14C.不确定D.0

43.设有下列定义:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正确的赋值语句是()。

A.q=&data.m;

B.*q=data.m;

C.q=(structsk*)&data.m;

D.q=(structsk*)data.m;

44.在执行以下程序时,如果从键盘上输入ABCdef<回车>,则输出为______。#include<stdio.h>main(){charch;while((ch=getchar())!="\n"){if(ch>='A'&&ch<='B')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}

A.ABCdefB.abcDEFC.abcD.DEF

45.树是结点的集合,它的根结点数目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

46.下列关于单目运算符++,--的叙述中正确的是

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和血型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

47.在C语言中,int,char和short三种类型数据在内存中所占用的字节数

A.由用户自己定义B.均为2个字节C.是任意的D.由所用机器的机器字长决定

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

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

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

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

49.下面说明不正确的是()。

A.chara[10]="china";

B.chara[10],*p=a;p="chiua";

C.char*a;a="china";

D.chara[10],*p;p=a="china";

50.请读程序:#include<stdio.h>main(){inta=5,b=7,c=9;pintf("%d,%d,"a,b,C);printf("%d,%d",a,D);}上面程序的输出结果是_______。

A.5,7,9,5,7B.5,7,5,7C.5,7,不定7,9D.5,7,5,7,不定

51.假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是______。

A.free(q);p->next=q->next;

B.(*p).next=(*q).next;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

52.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()。

A.数据库系统B.文件系统C.人工管理D.数据项管理

53.设有以下语句:inta=1,b=2,c;c=a∧(b<<2);执行后,c的值为()。

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

54.按照“先进先出”组织数据的数据结构是()。

A.队列B.栈C.双向链表D.二叉树

55.在面向对象中,一个对象请求另一个对象为其服务的方式是通过发送

A.调用语句B.命令C.口令D.消息

56.有下列程序: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

57.若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是()。

A.1B.2C.2D.2.5

58.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i-){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序运行的结果是()。

A.234B.432C.23D.4534554334344523

59.指出下面不正确的赋值语句

A.a++;B.a==b;C.a+=b;D.a=1,b=1;

60.结构化程序设计的核心和基础是()。

A.结构化分析方法B.结构化设计方法C.结构化设计理论D.结构化编程方法

四、选择题(20题)61.有以下程序:

#include<stdio.h>

#include!(string.h>

voidfun(char*w,intm)

{charS,*pl,*p2;

p1=w;p2=w+m-;

while(pl<p2){s=*pl;*p1=*p2;*p2=s;pl++;p2-;}

}

main()

{chara[]="l23456";

fun(a,strlen(a));puts(a);

}

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

A.654321

B.116611

C.161616

D.l23456

62.有以下程序:

程序的运行结果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

63.程序流程图中带有箭头的线段表示的是()。

A.图元关系B.数据流C.控制流D.调用关系

64.

65.有以下程序:

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

A.12B.14C.1234D.123456

66.

67.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图

68.设有以下程序段:

structMP3

{charname[20];

charcolor;

floatprice;

}std,*ptr;

ptr=&std:

若要引用结构体变量std中的color成员,写法错误的是()。

A.std.color

B.ptr->color

C.std->color

D.(*ptr)color

69.有以下说明和定义语句

structstudent

{

intage;charnum[8];

};

structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};

structstudent*p=stu;

以下选项中引用结构体变量成员的表达式错误的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].age

70.浏览器中用于负责向用户显示数据的是()。

A.WWWB.IP地址C.HTMLD.DNS

71.第

42

下面说明不正确的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*p;p=a="china"

72.有以下程序:

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

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

73.关系数据库管理系统能实现的专门关系运算包括()。

A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表

74.

75.

数字字符0的ASCII值为48,运行以下程序的输出结果是()。

main

(chara=1,b=2;

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

A.3,2B.50,2C.2,2D.2,50

76.将E—R图转换为关系模式时,实体和联系都可以表示为()。

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

77.

78.下列字符串是标识符的是()。

A.aaB.a-classC.intD.LINE1

79.

80.

五、程序改错题(1题)81.写出下列程序的运行结果。

main

{intn;

For(n=3;n<=10;n++)

{if(n%6==0)break;Printf(“%d”,n);}}

六、程序设计题(1题)82.请编写函数proc(),其功能是:将str所指字符串中除了下标为奇数、同时ASCⅡ值为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为edB2A4Dsdg,其中字符A的ASCⅡ码值为奇数,因此应当删除;其中字符B的ASCⅡ码值为偶数,但在数组中的下标为偶数,因此也应当删除;而字符2的ASCⅡ码值为偶数,所在数组中的下标为奇数,因此不应当删除。依此类推,最后t所指的数组中的内容应是d24。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.C

2.C

3.D解析:本题考查的知识点是do-while循环结构循环执行条件的判断.使用do-while语句必须注意以下几点:

先执行语句,后判断表达式。所以,无论一开始表达式的值为“真”还是“假”,循环体中的语句至少执行一次,这一点与while不同,

如果do-while语句循环体部分是由多个语句组成,则必须用花括号括起来,使其形成复合语句。

C语言中的do—while语句是在表达式“真”时重复执行循环体。

在本题中,循环执行判断条件为while后面括号里的表达式即p!=12345&&n<3(意思为p不等于12345且n小于3)是否为“真”,由此可得循环结束的条件为:p大于12345或者p小于12345又或者n大于等于3。选项A的意思是:p的值不等于12345并且n的小于3和while后面括号里的表达式等价是循环执行的条件而不是循环结束的条件,所以选项A不正确;选项B的意思是:p的值等于12345并且n的值大于3,不是循环结束的条件一个子集,所以选项B不正确;选项C的意思是:p的值不等于12345或者n的值小于3前一半是结束条件的子集,后一部分不是结束条件,所以选项C不正确;选项D描述的意思是:p的值等于12345或者你的大于等于3是结束条件的子集,所以选项D满足题意。所以4个选项中D正确。

4.C解析:#define宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef命令终止宏定义的作用域。本题由于#undef的作用,使a的作用范围在#definea100到#undefa之间,故答案为C。

5.D解析:本题考核的知识点是指针变量定义和赋值语句的基本应用。在使用一个指针变量之前,先要用声明语句对其进行定义,在定义了一个指针变量之后,系统就为这个指针变量分配了一个存储单元,用它来存放地址。在C语言中有两个有关指针的运算符:&运算符,为取地址运算符,*运算符是指针运算符,*p代表p所指向的变量。本题中首先定义了整型变量n,其初值为0,接着定义一个指针变量p并让它指向n,然后定义了一个指向指针的指针变量q并让它指向p,选项A中将常量1赋给指针p不正确;选项B也是将常量2赋给*p,故选项B不正确;选项C中P不是指向指针的指针变量,而将他赋值给一个指向指针的指针变量小显然不正确,所以,4个选项中选项D符合题意。

6.C

7.D输出时以%d整型格式输出,所以输出字符变量c1的值为65,c2-2的值为68-2,即66。故本题答案为D选项。

8.Bswitch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个e·*后面的常量表达式的值相等,就执行此ca*后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有ca$e后面的常量表达式都不等,则执行default后面前语句。然后退出。所以输入l时打印65,输入2时打印6,输入3时打印64,输入4时打印5,输入5时打印6。

9.A

10.B滥用90t0语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。—个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。

11.C

12.B

13.C

14.D

15.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。

16.B解析:条件表达式的形式为:“表达式1?表达式2:表达式3”。其含义为:当“表达式1”的值为非零时,求出“表达式2”的值,此时“表达式2”的值就是整个条件表达式的值;当“表达式1”的值为零时,求出“表达式3”的值,此时“表达式3”的值就是整个条件表达式的值。对于本题来说,当表达式EXP为非0值时条件成立,即执行语句i++;当EXP等于0时,执行语句j--;这等同于条件表达式“(EXP!=0)?i++:i++;”。

17.D

18.C

19.A循环的作用是求行下标从l到2列下标从0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

20.C

21.buf的首地址buf的首地址解析:考查fsets()函数的功能,f8ets()函数用来从文件中读入字符串。调用格式为:f8ets(buf,n,fp)。此处,fp是文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函数fsets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标志,并以buf作为函数值返回。

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

23.本题主要考查for循环语句。for循环的增量表达式为逗号表达式,相当于k+=2;,即每次循环后k增加2。第一次循环时,k=2,因此输出##2;第二次循环时k=4,输出##4。此后k=6,不满足循环条件。\r\n\r\n

24.栈栈解析:考查考生对栈和队列概念的掌握。按'先进后出'原则组织数据的数据结构是栈;按'先进先出'原则组织数据的数据结构是队列。

25.11解析:字符空格的ASCII码不为0,所以本题中表达式\ue008!c\ue009的值为0,b=0&&1的结果显然为0。

26.aeiou

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

28.252137252137解析:程序中变量a、b、c分别为十进制、八进制、十六进制的数25,按%d格式输出,a的输出值为25;b=025转换为十进制数(b=2*8+5=16+5=21)输出;c=0x25转换为十进制数(c=2*16+5=32+5=37)输出。输出结果为252137。

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

30.可行性研究可行性研究解析:软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等,还可以将软件生命周期分为三个阶段:①软件定义阶段:可行性研究和需求分析;②软件开发阶段:设计、实现和测试;③软件运行维护阶段:交付使用和维护。

31.45994599解析:a、b、c的初值为3、4、5,t的初值为99,if语句的条件“b<a&&b<c”为假,不执行“t=a;”,但紧随其后的“a=c;c=t;”与此if语句无关,仍被执行。此时a的值为5,b的值仍是4,c的值为99。再执行第二个if语句,由于此时“a<c&&b<c”为真,执行“t=b;”,紧随其后的“b=a;a=t;”与此if语句无关,也被执行。此时a的值为4,b的值是5,c的值为99。因此输出结果是:4599。

32.查询查询解析:关系模型的数据操作即是建立在关系上的数据操作,一般有查询、增加、删除和修改四种操作。数据查询是指用户可以查询关系数据库中的数据,它包括一个关系内的查询以及多个关系间的查询。数据删除的基本单位是一个关系内的元组,它的功能是将指定关系内的指定元组删除。数据增加仅对一个关系而言,在指定关系中插入一个或多个元组。数据修改是在一个关系中修改指定的元组和属性。

33.11解析:ifelse语句的功能是:若表达式的值为真,执行语句1,并跳过其他语句,执行ifelse语句的下一条语句,若表达式的值为假,跳过语句1,执行语句2,依次往下判断。题中,x=3,y=2,第一个if语句的控制条件x<y就不满足,又没有与之配对的else语句,所以直接执行printf语句,在整个过程中变量z的值都没发生变化。

34.123056009123\r\n056\r\n009解析:数组a中元素的初值为:a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[12][0]=7、a[2][1]=8、a[2][2]=9。执行第1个for循环后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2个for循环的功能是将数组元素按照3行3列的格式输出。

35.1212解析:本题通过第一个for循坪将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

36.字符串a和b的长度之和字符串a和b的长度之和解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。

37.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式输出\'C\'的ASCII码为67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式输出为\'G\'。

38.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前疗遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。

39.0111201112解析:在主函数中定义了整型变量f1和f2,并把其值赋为0和1,在屏幕上输出。然后在第一次运行for循环语句时,变量f的值等于1,把其值输出,把变量f1的值0赋给变量f2,变量f的值1赋给n,在执行第二次for循环语句时,变量f的值等于1,把此值输出。然后再把变量f1的值1赋给变量f2,变量f的值1赋给f1,在执行第三次for循环语句时,变量f的值等于2,把此值输出。所以程序运行后的结果为01112。

40.88解析:本题考查带参数的宏定义及相关运算.运算过程为:t=B*2=A+3*2=2+3*2=8。

41.C

42.C解析:变量sum在使用时未赋初值,所以无法确定sum最终的值。

43.C解析:利用强制类型转换(structsk*),把整数型地址&data.m转换成结构体变量指针赋给结构体指针变量q。

44.B

45.A树形结构是一类重要的非线性数据结构。树是n(n≥0)个结点的集合,对应任意一棵非空树,它具有以下几点重要的性质。

①有且仅有一个特定的称为根的结点。

②当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,TM,其中每一个集合本身又是一棵树,称为子树。

因此,本题的正确答案有且只有一个。

46.D解析:利用Release命令可以将表单从内存中释放,Refresh是刷新表单,Hide是隐藏表单,此两个命令都不可以释放表单,Delete的用法是错误的。

47.D解析:C语言中,常用的数据类型有int,char,float,double等,但C标准没有具体规定以上各类数据所占内存字节数,只要求long型数据长度不短于int型,short型不长于int型,具体如何实现,由各计算机系统自行决定。

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

49.D解析:C语言中操作一个字符串常量的方法有:

①把字符串常量存放在一个字符数组之中。

②用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。

当字符串常量在表达式中出现时,根据数组的类型转换规则,它被转换成字符指针。

本题选项D)错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

50.D解析:printf函数按格式控制符的个数输出表列中对应的数据,若输出表列的个数大于格式控制符个数,则输出与格式控制符对应的输出表列的数据,输出表列中多的则省略;若格式控制符个数大于输出表列的个数,则输出与格式控制符对应的输出表列的数据,格式控制符多的部分输出的数据是随机的。

51.B解析:选项A的错误在于,先已经把q结点给释放,无法再进行余下语句了:选项C和D的错误在于因为有了q=(*q).next做了赋值,则free(q)释放了原来q后面的一个结点。

52.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。

53.D解析:先算括号内的表达式,即先对b进行左移运算:b的二进制为00000010,左移后变为00001000,然后再与a进行异或运算(参与运算的两个对应位相同,则为0,相异则为1),结果为00001001,换算成十进制数结果为9。对于左移运算也可直接用此规则:左移1位相当于该数乘以2,左移2位相当于该数乘以22=4,依此类推。

54.A队列是一种特殊的线性表,只允许在表的一端插八元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”。先插入的元素先被删除,是按“先进先出”的原则组织数据的。

【知识拓展】“队列”和“栈”都是一种特殊的线性表。之所以称之为“队列”,其形式如“排队”。要讲究“先来后到”,先进先出,后进后出。

55.D解析:面向对象的世界是通过对象与对象间彼此的相互合作来推动的,一个对象与另一个对象通过发送消息彼此交换信息,请求对方执行某一处理或回答某一要求的信息。

56.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。

57.C解析:在表达式中3/2是一个整型表达式,它的运算结果应该为整型,值为1。当变量x与其相加时转换为双精度实型即y=1.000000+1.000000=2.000000。所以,4个选项中选项C符合题意。

58.D解析:本题主要考查for循环语句的嵌套。外层主循环执行了3次,嵌套的循环语句每轮执行2次,每次输出i+j的值,推出嵌套循环语句后换行。

59.B解析:本题考核的知识点是赋值语句的正确使用。C语言中赋值语句是由赋值表达式加“;”构成的.赋值表达式的形式为:变量:表达式;。选项A中a++相当于a+1,是赋值语句;选项C和选项D也是赋值语句.只有选项B不是,因为选项B中“==”符号是等于的意思,并不是赋值运算符,所以,4个选项中B符合题意。

60.CC。【解析】结构化程序设计的核心和基础是结构化设计理论,其中包括:结构化分析方法、结构化设计方法和结构化编程方法。

61.A\n此题是需要将a[]中的数值倒过来进行输出,所以答案为A。

\n

62.C函数fun(int*s,intn1,in

温馨提示

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

最新文档

评论

0/150

提交评论