2021-2022年宁夏回族自治区银川市全国计算机等级考试C语言程序设计_第1页
2021-2022年宁夏回族自治区银川市全国计算机等级考试C语言程序设计_第2页
2021-2022年宁夏回族自治区银川市全国计算机等级考试C语言程序设计_第3页
2021-2022年宁夏回族自治区银川市全国计算机等级考试C语言程序设计_第4页
2021-2022年宁夏回族自治区银川市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年宁夏回族自治区银川市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下涉及字符串数组、字符指针的程序段中,没有编译错误的是()。A.char*str,name[1];str=“Hello”;

B.char*str,name[1];name=“Hello”;

C.charstrl[10]=“ex1.c”,str2[6];str2=str1;

D.charhead_line[];head_line=“\\0”;

2.设二维数组A[1...m,1...n]按行存储在数组B中,则二维数组元素A[i,j]在一维数组B中的下标为()。A.A.n*(i-1)+jB.n*(i-1)+j-1C.i*(j-1)D.j*m+i-1

3.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

4.C程序是由()构成的。

A.主程序与子程序B.主函数与子函数C.一个主函数与若干个其他函数D.主函数与子程序

5.设散列表长m=14,散列函数H(K)=K%11,已知表中已有4个结点:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是_____。

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

6.设”inta=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是()。

A.15B.26,15C.15,26D.26

7.每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序。

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

8.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

9.下列选项中,不属于数据管理员(DBA.职责的是()。

A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换

10.计算机系统的组成是______。

A.主机、外设B.运算器、控制器C.硬件系统和软件系统D.CPU、内存储器

11.有如下程序: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

12.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的运行结果是()。

A.acc,bbxxyy

B.accbbxxyy,bbxxyy

C.accxxyy,bbxxyy

D.accxyy,bbxxyy

13.在一个双向链表中,q的前一个节点为p,q的后一个节点为n,删除q所指向节点,则执行()

A.deleteq;

B.q->prev->next=q->prev;q->next->prev=q->next;deleteq;

C.q->prev=p->next;p->next=p->prev;deleteq;

D.q->next=q->prev->next;q->prev=q->next->prev;deleteq;

E.q->prev->next=q->next;q->next->prev=q->prev;deleteq;

F.p->prev->next=p->next;p->next->prev=p->prev;deleteq->next;

14.下列结构体的定义语句中错误的是()。

A.structord{intx;inty;intz;}structorda;

B.structord{intx;inty;intz;};structorda;

C.structord{intx;inty;intz;}a;

D.struct{intx;inty;intz;}a;

15.以下说法正确的是()。

A.数据项是数据的基本单位

B.数据元素是数据的最小单位

C.数据结构是带结构的数据项的集合

D.一些表面上很不相同的数据可以有相同的逻辑结构

16.

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

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

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

A.C语言语句必须在一行内写完

B.C语言程序中的每一行只能写一条语句

C.C语言程序中的注释必须与语句写在同一行

D.简单C语言语句必须以分号结束

19.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。A.switch(x)

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

20.若有定义语句:intX=10;,则表达式x-=x+X的值为A.-20B.-10C.0D.10

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

22.若定义#definePI3.14159,则执行完下列程序后输出结果是______。

#definePI3.14159;printf("PI=%P",PI);

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

charstr口="ABCD",*p=str;

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

24.关键字ASC和DESC分别表示【】的含义。

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

26.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第。列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中的其他数据不变。

#defineN4

voidrotate(inta[][N],intb[][N])

{int,i,j;

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

{b[i][N-1]=【】;

【】=a[N-1][i];

}

}

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

28.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

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

#include<stdio.h>

#include<string.h>

char*ss(char*s)

char*p,t;

p=s+1:t=*s:

whilet*p){*(,p-1)=*p;p++;}

*(p-1)=t;

returns:}

main()

{char*p,str[10]="abedefgh";

p=ss(str);printf("%s\n".p):}

30.下面程序的运行结果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}

31.结构化分析方法是面向______进行分析的方法。

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

main()

{enumem{em1=3,em2=l,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s\n",aa[eml],aa[em2],aa[em3]);

}

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

#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(【】);

}

34.已有定义如下:

structnode

{intdata;

structnode*next;

}*p;

以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空。

p=(structnode*)malloc(【】);

35.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

36.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。

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

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

}

38.以下函数用来求出2个整数之和,并通过形参将结果传回。

voidfunc(intx,inty,【】z)

{*z=x+y;}

39.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

40.下列程序用来输出结构体变量ex所占存储单元的字节数。

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));

}

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

A.在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息

B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节

C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则

D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法

42.设有变量说明int(*p)[m],其中的标识符p是()。

A.m个指向整型变量的指针

B.指向m个整型变量的指针

C.一个指向具有m个整型元素的一维数组的指针

D.具有m个指针元素的一维指针数组,每个元素都指向整型变量

43.以下选项中可作为C语言合法常量的是______。

A.-80B.-80C.-8e1.0D.-80.0e

44.当调用函数时,实参是一个数组名,则向函数传送的是______。

A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值

45.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

46.在计算机中,算法是指()。

A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法

47.设有定义intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

48.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为

A.21B.78C.23D.28

49.数据库的物理设计是为一个给定的逻辑结构选取一个适合应用环境的______的过程,包括确定数据库在物理设备上的存储结构和存取方法。

A.逻辑结构B.物理结构C.概念结构D.层次结构

50.下列描述正确的是()。

A.C语句能嵌套定义函数,但不可以嵌套调用函数

B.C语句不能嵌套定义函数,也不可以嵌套调用函数

C.C语句能嵌套定义函数,也可以嵌套调用函数

D.C语句不能嵌套定义函数,但可以嵌套调用函数

51.设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.k++B.k+=1C.#NAME?D.k+1

52.有以下程序prt(int*m,intn){inti;for(i=0;i<n;i++)m[i]++;}main(){inta[]={1,2,3,4,5},i;prt{a,5);for[i=0;i<5;i++)printf("%d",a[i]);}程序运行后输出结果是

A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1

53.SQL语言又称为______。

A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言

54.下列不属于软件工程的3个要素的是______。

A.工具B.过程C.方法D.环境

55.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

56.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.R×SC.R∩SD.R∪S

57.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()

A.不确定的值

B.形参p中存放的值

C.形参p所指存储单元中的值

D.形参p的地址值

58.下列程序的输出结果是()。intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n,e,f,g);}

A.4,3,7B.3,4,7C.5,2,7D.2,5,7

59.以下所列的各函数首部中,正确的是______。

A.voidplay(vara:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

60.下列对于软件测试的描述中正确的是()。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

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

执行后输出结果是()。

A.58B.56C.45D.24

62.已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是()

A.堆排序B.直接插入排序C.快速排序D.直接选择排序

63.

64.(70)需求分析阶段的任务是确定()

A.软件开发方法

B.软件开发工具

C.软件开发费用

D.软件系统功能

65.若有以下程序:

上面程序的输出结果是()。

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

66.有以下程序:

程序运行后的输出结果是()。A.235B.0235C.02356D.2356

67.在数据管理技术发展的三个阶段中,数据共享最好的是()。

A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同

68.

69.

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

A.2011B.99C.209D.1111

71.有以下程序

#include<stdio.h>

main()

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

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

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

}

程序的运行结果是

A.A.331

B.41

C.2

D.1

72.软件(程序)调试的任务是()。

A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质

73.

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

A.-3,-1,1,3,B.-12,一3,0,0C.0,1,2,3,D.一3,-3,一3,一3,

75.

76.下列选项中不合法的十六进制数是()。A."0"xff

B."0"X11

C."0"x1g

D."0"Xabc

77.下列程序的运行结果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2

78.

79.以下程序中函数sCmp的功能是返回形参指针sl和s2所指字符串中较小字符串的首地址。

若运行时依次输入:abCd、abba和abC三个字符串,则输出结果是()。

A.abCdB.abbaC.abCD.abCa

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:求整数X的Y次方的低3位值。例如,整数6的5次方为7776,此值的低3位值为776。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数intproc(int*s,intt,int*k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:27393445362489342111831527246则输出结果为4,89。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.AC语言中,字符指针变量可以直接使用字符串赋值,而字符数组不能直接使用字符串或字符数组赋值,选项B、C、D错误,选项A正确。故本题答案为A选项。

2.A

3.A由题意可知,文件abc.txt中存放了6个整数。其中第1个表示后续数据的个数。要将最后5个数据读入数组data中,需要读取数据的个数为5,所以首先调用fscanf函数,将5读入整型变量n中;接着通过for循环,i分别取值0~n-1,调用fscanf函数将n个整数读入data[0]~data[n-1]中。故本题答案为A选项。

4.B

5.D

6.C

7.A

8.D在最坏情况下,冒泡排序和快速排序的比较次数都是n(n一1)/2。【知识拓展】所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。

9.DD)【解析】数据库管理员(DataBaseAdministrator,DBA)是指对数据库的规划、设计、维护、监视等的人员,其主要工作如下:数据库设计。DBA的主要任务之一是数据库设计,具体地说是进行数据模式的设计;数据库维护。DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;改善系统性能,提高系统效率。DBA必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。

10.C

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

12.B在函数fun中,前一个while循环的作用是,如果形参指针t所指内容不为0,则让t增1,直到它指向0;后一个while循环的作用是,将s所指内容赋给t所指地址,然后两者同时增1,直到赋给t的内容为0。由此可见,函数fun的作用就是将形参s所指字符串连接到形参t所指字符串末尾,相当于库函数strcat。主函数中使用fun将数组aa中的字符串连接到数组ss中原有字符串之后,所以执行完后,ss中的字符串为“accbbxxyy”。程序最后输出的结果是accbbxxyy,bbxxyy。故本题答案为B选项。

13.E

14.AA选项错误,在定义结构体语句后少了分号。故本题答案为A选项。

15.D

16.B

17.C

18.DC语句可以跨行来写,但是必须以分号结束,所以A选项错误。C语言程序中的一行可以有多条语句,所以B选项错误。C语言中的注释语句可以与原语句放在一行,也可以不放在一行,所以C选项错误。故本题答案为D选项。

19.C

20.B解析:x-=x+x可化为:x=x-(x+x),由于x初始值为10,所以计算后,x=10-20=-10,因此选B)。

21.3131解析:在函数调用时,形参值和改变,不会改变实参的值。

22.PI=3.14159PI=3.14159解析:本题先定义了一个宏名PI,以后在程序中出现PI都用3.14159替代,但是C语言规定:双引号中的宏名是不进行替换的。

23.6868解析:本题考查如何用指针引用数组元素。本题先定义了一个指向字符型数组str的指针p,指针p指向数组str的首地址,p+3将指针指向str[3],*(p+3)指的是字符“D”,输出时是以“%d,格式输出的,即输出其相应ASCII码值68。

24.升序排列和降序排列升序排列和降序排列解析:ASC表示升序排列,DESC表示降序排列,多用在索引定义和SELECT语句中的ORDER子句中。

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

26.a[0][i]b[i][0]a[0][i]b[i][0]解析:根据题意,第一处所在语句行的作用是把a数组中的第0行放到b数组的最后一列中,a数组的第0行用a[0][]来表示,所以第一处填a[0][i];第二所在语句行的作用是将a数组的最后一行放到b数组的第0列中,b数组的第0列用b[][0]来表示,所以,第二处应填b[i][0]。

27.2424解析:本题考查函数的循环调用。p=x*func(x-1),当x=4时,不满足if语句的条件,p=4*func(3),x=3也不满足条件,则func(3)=3*func(2),func(2)=2*func(1),x=1满足条件return(1),则输出结果为4*3*2*1-24。

28.str[i]或str+iistr[i]或str+i\r\ni

29.bedefghabedefgha解析:函数9,的作用是将指针变量。指向的字符串的首字符移到最后一个位置,其他字符依次前移。其方法是:首先将指针变量p指向字符串s的第2个字符b,然后将首字符保存在字符变量t中;从字符串的第2个字符开始,通过语句*(P-1)=*p;依次前移,直到字符串结束符;最后通过语句*(P-1)=t;将保存在t中的字符放到移动后的字符串末尾,返回main函数并输出,输出结果为bedefsh。

30.5555解析:分析程序执行过程,第一次循环时,j=3,i=5,因为switch(3),所以执行case3,调用P(a[--i])=P(a[4])=P(5),输出5;第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(a[i++])=P(a[4])=P(5),输出5,之后i自加1等于5。

31.数据流数据流解析:结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

32.DDBBCCDDBBCC解析:C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3],aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。

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

34.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是开辟一个长度为sizeof(struetnode)的内存区。(structnode*)的作用是使malloc返回的指针转换为指向structnode类型数据的指针。

35.类类解析:在面向对象方法中,类描述的是具有相似属性与操作的一组对象。

36.存储结构数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。

37.gaegae解析:主函数中定义了字符数组a和b,其初值分别为Language和Programe,然后定义了两个指针变量p1和p2,并让它们指向a和b。通过分析可知下面的for循环中,每循环一次就将pl+k和p2+k所指向的字符进行比较,如果相等,输出该字符,循环共执行8次,显然Language和Programe中只有字符gae相等,所以最后输出为gae。

38.int*

39.33解析:这里:b-5=4,a-=4之后a的值为6,并把它赋给c。此时b的值并未被改变。在第2个表达式中,也只有赋值表达式b=3改变了b的值。所以两行语句执行完毕,b的值应该为3。

40.ex或structstex或structst

41.C解析:在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都能易于理解,各模块的功能尽量单一,各模块之间的联系尽量的少。因此,选项A中的说法是错误的。自顶向下、逐步细化的设计过程,主要包括两个方面:一是将一个复杂问题的解法分解和细化成由若干模块组成的层次结构;二是将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。即在自顶向下、逐步细化的设计过程中,是按照先全局后局部,先整体后细节、先抽象后具体的方法设计程序。因此.选项B中的说法也是错误的。\u3000在模块化程序设计中.每一个模块完成一个功能,相对独立,要求一个模块内部的控制结构也要符合结构化原则。因此,选项C中的说法是正确的。由于在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,因此,在程序设计过程中,结构化程序设计方法与模块化程序设计方法是要同时采用的。因此,选项D中的说法是错误的。

42.C解析:本题考查指向数组的指针变量的声明。这里的p表示一个指向数组的指针;*p表示指针p指向地址的内容。

43.A解析:选项B中,以0开头表示是一个八进制数,而八进制数的取值范围是0~7,所以-080是不合法的;选项C和D中,e后面的指数必须是整数,所以也不合法。

44.B解析:当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,函数中的形参可定义成以下三种形式:

①形参定义成数组;

②形参定义成可变长数组:

③形参定义为指针变量。

45.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。

46.CC。【解析】计算机算法是指解题方案的准确而完整的描述,它的基本特征分别是:可行性、确定性、有穷性和拥有足够的情报。

47.A解析:题面中各变量定义后,指针变量p指向了变量n2所在的存储单元,指针变量q指向了变量n1所在的存储单元,要使得n1的值赋n2,可用指针变量q所指向的存储单元的值赋给指针变量p所指向的存储单元,即*p=*q。

48.A解析:通过地址来引用二维数组,若有以下定义:inta[3][4],i,j;且当0≤i≤3,0≤j<4则可以有以下几种方式来引用数组中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表达式&a[0][0]+2*i+j-2相当于是地址&a[0][0]加上多少偏移量。

49.B解析:根据数据库物理设计的概念可知:为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,就是数据库的物理设计。数据库的物理结构就是指数据库在物理设备上的存储结构与存取方法。

50.D解析:C语句不能嵌套定义函数,但可以嵌套调用函数。

51.A解析:凡是表达式都有一个值,即运算结果。k++的表达式值为0,k再进行增1运算;k+=1是赋值表达式,其作用是取k中的值加1后再放到k变量中,即表达式的值为1;++k是先进行k增1运算,表达式的值为1;k+1=0+1,其运算的结果为1。所以选项A中表达式的值与其他三个表达式不同。

52.B解析:本题考查的是数组名作函数的参数。数组名实际上是一个指向该数组首地址的指针常量,所以数组名作函数的参数和用同类型的指针作参数没有区别.题目首先定义了一个函数,该函数通过一个for循环将指针m到m+n-1所指内存中的数据自增1,所以主函数中执行了prt(a,5);语句后,数组a中的所有元素被自增1。所以,4个选项中选项B符合题意。

53.CC。【解析】SQL语言的全称为StructuredQueryLanguage,它是一种介于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范。它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言4个部分。

54.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。

55.D解析:中序遍历的递归算法定义:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法定义:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法定义:①遍历左子树;②遍历右子树;③访问根结点。根据前序遍历的结果可知,a是根结点。由中序遍历的结果dgbaechf可知,d、g、b是左子树的结点,e、c、h、f是右子树的结点。再由前序遍历的结果bdg可知,b是a左边子树的根,由cefh可知,c是a右边子树的根。再由中序遍历的结果dgb可知,d、g是b左边子树的结点,b右边子树无结点。再由前序遍历结果dg可知,d为b左子树的根,g是以d为根的子树的右结点。至此,a的左子树已完全弄清楚了。同样的道理,可以弄清楚以c为根的子树的结点位置。所以可知后序遍历的结果是D。

56.BB。【解析】关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元的S只能做笛卡儿积运算。

57.C解析:本题考核的知识点是函数的返回值.函数的返回值应该为return后面的表达式的值,在本题中的表达式为*p,*p指的是形参p所指存储单元中的值,所以,4个选项中选项C符合题意。

58.A解析:根据函数intf1(int,inty){returnx>y?x:y}和intf2(intx,inty){returnx,>y?y:x;}的定义可知,如果x>y成立,则函数n返回x的值,函数f2返回y的值。所以f1(a,b)=4,f1(c,d)=5,f2(a,b)=3,f3(c,d)=2故e=f2(4,5)=4,f=f1(3,2)3,g=4+3+5+2-4-3=7。

59.C解析:除选项C项外,其他各项都没有按照C语言中的函数定义规则定义函数。

60.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。

61.Da[2]%2即14%2=0,此时跳出while循环,因此j=11+13=24。

62.B堆排序。先把序列看成一棵大根堆或小根堆,摘取最大或最小元素后再建成新的根堆,再排序。堆排序的过程是:先建一个堆,输出堆顶的最大或最小的元素,再将剩余的n-1个元素重新调整成一个新堆。如此反复进行,直到排序完成。

直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好的有序表中,从而得到一个新的、记录数增1的有序表。首先,将序列中的第1个记录看成是一个有序的子序列,然后从第2个记录起逐个进行插入,直至整个序列变成按关键字非递减有序序列为止。

快速排序是对冒泡排序的一种改进。它的基本思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可以分别对这两部分记录继续进行排序,以达到整个序列有序。

直接选择排序是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的一个记录,并和第i个记录交换。这样重复执行n-1趟选择排序。

在本题中,数据表A中每个元素距其最终位置不远,即说明数据表基本有序,简单移动一些元素即可完成排序,在这种情况下,使用直接插入排序法所需时间最少,最合理。因此本题的正确答案是B。

\r\n\r\n\r\n

63.A

64.D

65.C在c语言中,数组元素下标是从0开始的;指针变量P指向数组的首地址。for循环语句中,指针变量P始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为1。

66.B本题考查分支语句用法。因为变量的初始值分别为k=5、n=0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0、k=4,程序进行第2次循环,执行case4:这个分支,结果是n=2、k=3,打印出2;这时n=2、k=3,break跳出,程序进行第3次循环,执行case3:这个分支,结果是n=3、k=2,打印出3;这时n=3、k=2,break跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。

67.C数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择C)。

68.A

69.B

70.Astden返回的是不包括\\0在内的数组

71.D本题考查if-else语句的使用。if-else语句可以在条件为“真”或为“假”时执行指定的动作,由if引导条件为“真”时执行的操作;由else引导条件为“假”时执行的操作。else语句要与上面最近的if语句进行匹配,如果要嵌套调用if-else语句,需要将嵌套部分用{}括起来,避免程序报错。题目中给出了一个if语句和一个if-else语句,if-else语句为第一个if语句的子语句。首先执行外层if语句,执行条件为x>y,由于x=1,y=2,故该条件为假,不执行if的子语句,直接执行语句printf("%d\\n",x++);,该语句先输出x的值,然后进行x++操作。x的初始值为1,输出结果为1。

72.A解析:软件调试的任务是诊断和改正程序中的错误,本题正确答案为A)。其他二项描述不正确,选项B)描述不全面,选项C)描述太绝对,选项D)描述不符合定义。

73.C

74.A本题中由fllIl函数可知,b[o]-a[o][0卜a[0][3]_l-4=一3,b[1]=a[1][l]a[1][2]-6—7=-1,b[2]=a[2][2]a[2][l]-1\r\n1-113=-1,b[3]=a[3][3]a[3l]=16—13=3。因此主函数中打印Y数组元素的值为A)选项。

75.A

76.C十六进制是以“0x、0X”开头的字符串,字符串中只能含有0~9这l0个数字和a、b、C、d、e、f这6个字母。

77.D本题考查"drhile循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,X++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环。第二次循环,x=2,y-1=1,循环条件成立,进入循环,a=a+1=2,判断if语句的控制条件是否成立,y<X成立,执行break语句,退出循环。结果为D。

78.A

79.Bmain函数将输入的三个字符串存在二维数组str中,并通过两次streW函数调用,将最小的一个字符串复制到string中。abcd、abba、abc中最小的字符串为abba。

80.B

81.

82.

【解析】要求出数组中最小的数,需要比较数组中的每一个元素。将最小的元素的下标存放在变量k中,通过形参返回到主函数中。

2021-2022年宁夏回族自治区银川市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下涉及字符串数组、字符指针的程序段中,没有编译错误的是()。A.char*str,name[1];str=“Hello”;

B.char*str,name[1];name=“Hello”;

C.charstrl[10]=“ex1.c”,str2[6];str2=str1;

D.charhead_line[];head_line=“\\0”;

2.设二维数组A[1...m,1...n]按行存储在数组B中,则二维数组元素A[i,j]在一维数组B中的下标为()。A.A.n*(i-1)+jB.n*(i-1)+j-1C.i*(j-1)D.j*m+i-1

3.设有如下定义和语句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的数据为58192765190,其中第1个数据代表的是它后面数据的个数。若文件已正确打开,则以下程序段中能将文件的最后5个数据依次正确读入数组data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

4.C程序是由()构成的。

A.主程序与子程序B.主函数与子函数C.一个主函数与若干个其他函数D.主函数与子程序

5.设散列表长m=14,散列函数H(K)=K%11,已知表中已有4个结点:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是_____。

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

6.设”inta=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是()。

A.15B.26,15C.15,26D.26

7.每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序。

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

8.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

9.下列选项中,不属于数据管理员(DBA.职责的是()。

A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换

10.计算机系统的组成是______。

A.主机、外设B.运算器、控制器C.硬件系统和软件系统D.CPU、内存储器

11.有如下程序: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

12.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的运行结果是()。

A.acc,bbxxyy

B.accbbxxyy,bbxxyy

C.accxxyy,bbxxyy

D.accxyy,bbxxyy

13.在一个双向链表中,q的前一个节点为p,q的后一个节点为n,删除q所指向节点,则执行()

A.deleteq;

B.q->prev->next=q->prev;q->next->prev=q->next;deleteq;

C.q->prev=p->next;p->next=p->prev;deleteq;

D.q->next=q->prev->next;q->prev=q->next->prev;deleteq;

E.q->prev->next=q->next;q->next->prev=q->prev;deleteq;

F.p->prev->next=p->next;p->next->prev=p->prev;deleteq->next;

14.下列结构体的定义语句中错误的是()。

A.structord{intx;inty;intz;}structorda;

B.structord{intx;inty;intz;};structorda;

C.structord{intx;inty;intz;}a;

D.struct{intx;inty;intz;}a;

15.以下说法正确的是()。

A.数据项是数据的基本单位

B.数据元素是数据的最小单位

C.数据结构是带结构的数据项的集合

D.一些表面上很不相同的数据可以有相同的逻辑结构

16.

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

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

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

A.C语言语句必须在一行内写完

B.C语言程序中的每一行只能写一条语句

C.C语言程序中的注释必须与语句写在同一行

D.简单C语言语句必须以分号结束

19.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。A.switch(x)

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

20.若有定义语句:intX=10;,则表达式x-=x+X的值为A.-20B.-10C.0D.10

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

22.若定义#definePI3.14159,则执行完下列程序后输出结果是______。

#definePI3.14159;printf("PI=%P",PI);

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

charstr口="ABCD",*p=str;

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

24.关键字ASC和DESC分别表示【】的含义。

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

26.以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第。列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中的其他数据不变。

#defineN4

voidrotate(inta[][N],intb[][N])

{int,i,j;

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

{b[i][N-1]=【】;

【】=a[N-1][i];

}

}

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

28.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

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

#include<stdio.h>

#include<string.h>

char*ss(char*s)

char*p,t;

p=s+1:t=*s:

whilet*p){*(,p-1)=*p;p++;}

*(p-1)=t;

returns:}

main()

{char*p,str[10]="abedefgh";

p=ss(str);printf("%s\n".p):}

30.下面程序的运行结果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}

31.结构化分析方法是面向______进行分析的方法。

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

main()

{enumem{em1=3,em2=l,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s\n",aa[eml],aa[em2],aa[em3]);

}

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

#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(【】);

}

34.已有定义如下:

structnode

{intdata;

structnode*next;

}*p;

以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。请填空。

p=(structnode*)malloc(【】);

35.在面向对象方法中,【】描述的是具有相似属性与操作的一组对象。

36.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。

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

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

}

38.以下函数用来求出2个整数之和,并通过形参将结果传回。

voidfunc(intx,inty,【】z)

{*z=x+y;}

39.若有定义inta=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

40.下列程序用来输出结构体变量ex所占存储单元的字节数。

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));

}

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

A.在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息

B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节

C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则

D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法

42.设有变量说明int(*p)[m],其中的标识符p是()。

A.m个指向整型变量的指针

B.指向m个整型变量的指针

C.一个指向具有m个整型元素的一维数组的指针

D.具有m个指针元素的一维指针数组,每个元素都指向整型变量

43.以下选项中可作为C语言合法常量的是______。

A.-80B.-80C.-8e1.0D.-80.0e

44.当调用函数时,实参是一个数组名,则向函数传送的是______。

A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值

45.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

46.在计算机中,算法是指()。

A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法

47.设有定义intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

48.现有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为

A.21B.78C.23D.28

49.数据库的物理设计是为一个给定的逻辑结构选取一个适合应用环境的______的过程,包括确定数据库在物理设备上的存储结构和存取方法。

A.逻辑结构B.物理结构C.概念结构D.层次结构

50.下列描述正确的是()。

A.C语句能嵌套定义函数,但不可以嵌套调用函数

B.C语句不能嵌套定义函数,也不可以嵌套调用函数

C.C语句能嵌套定义函数,也可以嵌套调用函数

D.C语句不能嵌套定义函数,但可以嵌套调用函数

51.设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.k++B.k+=1C.#NAME?D.k+1

52.有以下程序prt(int*m,intn){inti;for(i=0;i<n;i++)m[i]++;}main(){inta[]={1,2,3,4,5},i;prt{a,5);for[i=0;i<5;i++)printf("%d",a[i]);}程序运行后输出结果是

A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1

53.SQL语言又称为______。

A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言

54.下列不属于软件工程的3个要素的是______。

A.工具B.过程C.方法D.环境

55.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

56.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.R×SC.R∩SD.R∪S

57.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()

A.不确定的值

B.形参p中存放的值

C.形参p所指存储单元中的值

D.形参p的地址值

58.下列程序的输出结果是()。intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n,e,f,g);}

A.4,3,7B.3,4,7C.5,2,7D.2,5,7

59.以下所列的各函数首部中,正确的是______。

A.voidplay(vara:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

60.下列对于软件测试的描述中正确的是()。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

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

执行后输出结果是()。

A.58B.56C.45D.24

62.已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是()

A.堆排序B.直接插入排序C.快速排序D.直接选择排序

63.

64.(70)需求分析阶段的任务是确定()

A.软件开发方法

B.软件开发工具

C.软件开发费用

D.软件系统功能

65.若有以下程序:

上面程序的输出结果是()。

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

66.有以下程序:

程序运行后的输出结果是()。A.235B.0235C.02356D.2356

67.在数据管理技术发展的三个阶段中,数据共享最好的是()。

A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同

68.

69.

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

A.2011B.99C.209D.1111

71.有以下程序

#include<stdio.h>

main()

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

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

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

}

程序的运行结果是

A.A.331

B.41

C.2

D.1

72.软件(程序)调试的任务是()。

A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质

73.

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

A.-3,-1,1,3,B.-12,一3,0,0C.0,1,2,3,D.一3,-3,一3,一3,

75.

76.下列选项中不合法的十六进制数是()。A."0"xff

B."0"X11

C."0"x1g

D."0"Xabc

77.下列程序的运行结果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2

78.

79.以下程序中函数sCmp的功能是返回形参指针sl和s2所指字符串中较小字符串的首地址。

若运行时依次输入:abCd、abba和abC三个字符串,则输出结果是()。

A.abCdB.abbaC.abCD.abCa

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:求整数X的Y次方的低3位值。例如,整数6的5次方为7776,此值的低3位值为776。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数intproc(int*s,intt,int*k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:27393445362489342111831527246则输出结果为4,89。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.AC语言中,字符指针变量可以直接使用字符串赋值,而字符数组不能直接使用字符串或字符数组赋值,选项B、C、D错误,选项A正确。故本题答案为A选项。

2.A

3.A由题意可知,文件abc.txt中存放了6个整数。其中第1个表示后续数据的个数。要将最后5个数据读入数组data中,需要读取数据的个数为5,所以首先调用fscanf函数,将5读入整型变量n中;接着通过for循环,i分别取值0~n-1,调用fscanf函数将n个整数读入data[0]~data[n-1]中。故本题答案为A选项。

4.B

5.D

6.C

7.A

8.D在最坏情况下,冒泡排序和快速排序的比较次数都是n(n一1)/2。【知识拓展】所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。

9.DD)【解析】数据库管理员(DataBaseAdministrator,DBA)是指对数据库的规划、设计、维护、监视等的人员,其主要工作如下:数据库设计。DBA的主要任务之一是数据库设计,具体地说是进行数据模式的设计;数据库维护。DBA必须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;改善系统性能,提高系统效率。DBA必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。

10.C

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

12.B在函数fun中,前一个while循环的作用是,如果形参指针t所指内容不为0,则让t增1,直到它指向

温馨提示

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

评论

0/150

提交评论