2021年宁夏回族自治区固原市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2021年宁夏回族自治区固原市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2021年宁夏回族自治区固原市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2021年宁夏回族自治区固原市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2021年宁夏回族自治区固原市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

2021年宁夏回族自治区固原市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序运行后的输出结果是()。A.1,2B.3,4C.5,6D.123,456

2.

3.标准库函数fgets(str,n,fp)的功能是()。A.从fp所指的文件中读取长度不超过n-1的字符串存入指针str所指的内存

B.从fp所指的文件中读取长度为n的字符串存入指针str所指的内存

C.从fp所指的文件中读取n个字符串存入指针str所指的内存

D.从fp所指的文件中读取长度为n-1的字符串存入指针str所指的内存

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

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

5.若执行以下程序时从键盘上输入9,则输出结果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

6.下列程序的输出结果是()main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);}A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

7.链表不具备的特点是()。

A.可随机访问任一结点B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与其长度成正比

8.设单链表中结点的结构为已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作______。A.s->link=p;p->link=s;

B.s->link=p->link;p->link=s;

C.s->link=p->link;p=s;

D.p->link=s;s->link=p;

9.若有定义语句“doublea,*p=&a;”,下列叙述中错误的是()。

A.定义语句中的“*”是一个间址运算符

B.定义语句中的“*”是一个说明符

C.定义语句中的“p”只能存放double类型变量的地址

D.定义语句中*p=&a”把变量a的地址作为初值赋给指针变量p

10.以下不能定义为用户标识符的是()。

A.scanfB.VoidC.3comD.int

11.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序运行后的输出结果是()。A.11B.21C.6D.120

12.有以下程序#include<stdio.h>main{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是()。A.741B.963C.852D.875421

13.

14.若有定义“intx=10;”,则表达式“x-=x+x”的值为()。

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

15.有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是______。A.输出字符a的ASCⅡ码B.输出字符c的ASCⅡ码C.输出字符cD.程序出错

16.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序运行后的输出结果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

17.

18.下列关系表达式中,结果为“假”的是()。A.(3+4)>6B.(3!=4)>2C.3<=4||D.(3<4)=1

19.软件需求规格说明书的作用不包括()。

A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解

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

A.数据库系统是一个独立的系统,不需要操作系统的支持

B.数据库技术的根本目标是要解决数据的共享问题

C.数据库管理系统就是数据库系统

D.以上三种说法都不对

二、2.填空题(20题)21.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。

#include<stdio.h>

main()

{inta,b,c,i;

a=c=0;

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

{a+=i;

【】;

c+=b;}

printf("偶数之和=%d\n",a);

printf("奇数之和=%d\n",c-11);}

22.在关系模型中,二维表的行称为______。

23.下面程序的功能是建立一个有3个结点的单循环链表,然后求各个结点数值域data中数据的和,请填空。

#include<stdio.h>

#include<stdlib.h>

structNODE{intdata;

structNODE*next;

};

main()

{structNODE*p,*q,*r;

intsum=0;

p=(structNODE*)malloc(sizeof(structNODE));

q=structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeof(structNODE));

p->data=100;q->data=200;r->data=300;

p->next=q;q->next=r;r->next=p;

sum=p->data+p->next->data+r->next->next【】;

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

}

24.若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句()。

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

26.数据结构分为逻辑结构和存储结构,循环队列属于______结构。

27.下面程序的功能是:对字符串从小到大进行排序并输出,请填空。

#include"string.h"

#include"stdio.h"

sort(char*a[],intn)

{inti,j;

char*p;

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

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

if(())>0)

{p=a[i];

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

a[i+1]=p;}

}

main()

{inti;

char*book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};

sort(());

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

printf("%s\n",book[i]);

}

28.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。

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

main()

{

intx=0210;

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

}

30.以下程序的输出结果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}

31.性结构中,队列的操作顺序是先进先出,而栈的操作顺序是______。

32.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。

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

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

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

}

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

main()

{inta=177;

printf(“%o\n”,A);

}

35.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______。

36.fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大数,再求这N个最大值中最小的那个数并作为函数值返回。请填空。

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{introw,col,max,min;

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

{for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

37.若变量n中的值为24,则prnt函数共输出【】行。

voidprnt(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if!(i%5))printf("\n");

}

printf("\n");

}

38.有以下程序:

intf(intn)

{if(n=1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

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

39.计算圆的周长、面积和球体积。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

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

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

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

}

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

A.软件交付使用后还需要进行维护

B.软件一旦交付使用就不需要再进行维护

C.软件交付使用后其生命周期就结束

D.软件维护是指修复程序中被破坏的指令

42.设有以下语句:typedefstructS{intg;charh;}T;则下面叙述中正确的是()。

A.可以用S定义结构体变量B.可以用T定义结构体变量C.S是struct类型的变量D.T是stnictS类型的变量

43.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=0

D.a>=10‖a<=0

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

main()

{inta;

a=-4+4*5-6;printf("d",a);

a=4+4%5-6;printf("%d",a);

a=-3+4%6/5;printf("%d",a);

a=(7+6)%5/2;printf("%d",a);

}

A.102-31B.10-221C.11-221D.10221

45.下列程序的运行结果是______。voidfun(int*a,int*B){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x’&a,*y’&b;fun(x,y);printf("%d%d",a,B);}

A.63B.36C.编译出错D.0

46.以下程序段的输出结果为()。staticchara[]="programme";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);

A.programmeB.pormC.有语法错误D.prog

47.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}该程序输出结果是______。

A.0B.0.25C.0.5D.1

48.以下选项中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

49.有以下程序:#defmeP3voidP(intx){return(p*x*x);}main(){pritnf("%d\n",F(3+5);}程序运行后的输出结果是()。

A.192B.29C.25D.编译出错

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

A.局部变量说明为static存储类,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同

51.有以下程序:#include<stdio,h>main(){inta=666,b=888;printf("%'d\n",a,b);程序运行后的输出结果是()。

A.错误信息,B.666C.888D.666,888

52.若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。

A.10011000B.10001100C.10101000D.10110000

53.下列有关数据库的描述,正确的是()

A.数据库设计是指设计数据库管理系统

B.数据库技术的根本目标是要解决数据共享的问题

C.数据库是一个独立的系统,不需要操作系统的支持

D.数据库系统中,数据的物理结构必须与逻辑结构一致

54.若有以下定义和语句:()ints[4][5](*ps)[5];ps=s;则对s数组元素的正确引用形式是

A.psq+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3

55.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(),

A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定

56.下面程序的功能是输出以下形式的金字塔图案:****************#include<stdio.h>main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=______;j++)printf("*");printf("\n");}}在下划线处应填入的是()。

A.iB.2*i-1C.2*i+1D.i+2

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

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

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

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

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

58.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序;voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1,j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)print("%d,",aa[i]);printf('\n");}程序运行后的输出结果是()。

A.1,2,3,4,5,6,7,8,9,10

B.10,9,8,7,6,5,4,3,2,1,

C.1,2,3,8,7,6,5,4,9,10

D.1,2,10,9,8,7,6,5,4,3,

59.在数据库管理系统提供的数据语言中,负责数据的模式定义与数据的物理存取构建的是

A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言

60.软件的可靠性主要表现在______。

A.能够安装多次B.能够在不同类型的计算机系统上安装和使用C.软件的正确性和健壮性D.前面都正确

四、选择题(20题)61.若有以下说明,则能打印出”An”的语句的是()。

A.

B.

C.

D.

62.有以下程序:执行时输入:0<;回车>;后,则输出结果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.

63.

有以下程序.

#include<stdio.h>

main

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar;c6=getchar;

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第l列开始)

123<回车>

45678<回车>

则输出结果是()。

A.1267B.1256C.1278D.1245

64.有以下程序:

#include<stdio.h>

main()

{inta=7;

while(a--);

print[("%d\n",a);

}

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

A.-l

B.0

C.1

D.7

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

A.21B.11C.6D.120

66.

67.

68.以下选项中,能用做用户标识符的是()。

A.voidB.8_8C._0_D.unsigned

69.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法

A.对象B.数据结构C.数据流D.目标

70.下列工具中为需求分析常用工具的是()。

A.PADB.BFDC.N-SD.DFD

71.以下描述错误的是

A.C程序中,函数可以直接或间接调用自己

B.函数调用时,函数名必须与所调用的函数名字完全一致

C.函数说明语句中的类型必须与函数返回值的类型一致

D.实参个数可以与形参个数不一致

72.假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

73.

74.软件设计中,有利于提高模块独立性的一个准则是______。A.低内聚低耦合B.低内聚高耦合C.高内聚低耦合D.高内聚高耦合

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

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

76.

77.有两个关系R和T如下:

则由关系R得到关系T的操作是()。A.选择B.投影C.交D.并

78.

79.有下列程序:

intfun(intn)

{if(n==1))returnl;

else

return(n+fun(n-1)):

}

main()

{intx;

seanf("%d",&x);x=fun(x);printf("%d\n",x);

}

执行程序时,给变量x输入l0,程序的输出结果是()。

A.55

B.54

C.65

D.45

80.有以下程序

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:先将字符串s中的字符按顺序存放到t中,然后把S中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。

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

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

试题程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidproc(char*s,char*t)

{

inti,s1;

s1=strlen(s);

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

//****found****

t[i]=s[s1];

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

t[s1+i]一s[i];

t[2*s1]=\O0;

}

voidmain

{

chars[100],t[100];

system("CLS");

print{("\nPleaseenterstrings:");

scanf("%s",s);

proc(s,t);

printf("Theresultis:%s\n",t);

}

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是将M行N列的二维数组中的数据,按列的顺序依次存放到一维数组中,将一维数组中数据的个数存放在形参n所指的存储单元中。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){}main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf(“Thematrix:\n”);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%3d”,w[i][j]);printf(“\n”);}fun(w,a,&n,3,4);printf(“TheAarray:\n”);for(i=0;i<n;i++)<p=""></n;i++)<>printf(“%3d”,a[i]);}

参考答案

1.C此题是考查fprintf和fscanf,其中fprintf是向文件输出,文件为da2.dat文件,fscanf是向文件输入,所以根据程序循环写入和写出.可知答案为C。

2.A

3.Afgets函数的功能是从fp所指文件中读入n-1个字符放入以str为起始地址的空间内,读取长度不超过n-1,读入结束后,自动在最后添加’\\0’,选项A正确。本题答案为A选项。

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

5.B当n为9时,此时if语句成立,执行n++后,n为10,因此输出n的值为10,故选择B选项。

6.B解析:本题的执行过程是:

在While循环中,

比较xyz

第—次:3>0&&1<5142

第二次:2>0&&2<5231

第三次:1>0&&3<5320

判断条件“z-->0”不成立,也不执行“i+=2”语句,循环结束,因此,输出结果为3,2,-1。

7.A

8.B

9.A变量定义语句“doublea,*p=&a;”,“*”是一个指针运算符,而非间址运算符。故本题答案为A选项。

10.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。

11.B本题考查静态变量,C语言中静态变量的生存期是从程序的开始到结束。本题中静态变量x,随着每次进入循环不断增长5次,返回的值分别为2、3、4、5、6。所以S=1+2+3+4+5+6=21,选B。

12.C在for循环中,当y的值为9、6或3时,执行输出语句,输出表达式--Y的值。Y先自减l,然后再输出y的值。

13.D

14.C算术运算符“+”的优先级高于,且“-=”的结合方向为自右向左。所以表达式“x-=x+x”可以表示成“x=x-(x+x)=10-(10+10)=-10”。故本题答案为C选项。

15.D解析:此题中s是—个字符数组,而字符数纽是在编绎时为它分配内存单元的,即此字符数组的地址在编译时是确定的,所以对此地址变量并不能赋值,故语句“s+=2;”错误,故程序出错。

16.A本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母a.a赋值为字母A,调用fun(&.b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。

17.C

18.B在一个表达式中,括号的优先级高,先计算3!=4,为真即是l,1>2为假。

19.B《软件可行性分析报告》是软件可行性研究的依据。

20.B解析:本题考查数据库系统的基本概念和知识。

数据库系统除了数据库管理软件之外,还心须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项A的说法是错误的。

数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。

通常将引入数据库技术的计算机系统称为数据库系统。一个数据库系统通常由五个部分组成,包括相关计算机的硬件、数据库集合、数据库管理系统、相关软件和人员。

因此,选项C的说法是错误的。

因此,本题的正确答案是选项B。

21.b=i+1b=i+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2之后和累加至a,所以a的值就是1~10之间的偶数之后;b的值是1~11之间的奇数和,但在输出b值时c去掉多加的11,即为1~10之间的奇数之和。

22.元组元组解析:在关系型数据库中,用二维表来表示关系,二维表的表名即关系名,二维表的行称为关系的元组,二维表的列,称为关系的属性。

23.->next->data->next->data解析:主函数中前面大部分语句都是用来建立题中所述的链表的,我们只需要补充完整倒数第2条语句,实现题目要求的求3个结点之和就可以了。p->data是p所指结点中的数据;p->next->data是p的下一结点(q所指结点)中的数据。所以下划线位置只要填入->next->data就是剩下的r所指结点的数据了。因为链表是循环的,r->next->next->next的值就等于r,你甚至还可以填入->next->next->next->next->data,只要保证整个式子->next的个数是3的倍数都可以。

24.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函数的一般格式为:“printf(格式控制,输出表列)”。

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

26.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。

27.strcmp(a[i]a[i+1])book6strcmp(a[i],a[i+1])book,6解析:此程序段的功能是使字符串从大到小进行排列。显然,第一空白处,是利用strcmp函数比较字符串a[i]和a[i+1]的大小,若不符合题意,就进行调换;main函数中,sort函数是对数组book中的字符串按从小到大进行排序,所以第二空白处填入“book,6”(6是指book所指向的字符串的个数)。

28.调试调试

29.8888解析:C语言规定,以0开头的整型常量为八进制。另外,在primf()函数中,%X表示以十六进制无符号形式输出一个整数,且十六进制中的ABCDEF为大写字母。本题的输出应该是八进制210的十六进制形式。将八进制转换为十六进制,可以先将其转换为二进制。因为1位八进制表示3位二进制,4位二进制表示1位十六进制。(210)8=(10001000)2=(88)16,故本题输出为880

30.JD

31.先进后出先进后出解析:队列和栈都是线性结构,但是不同之处在于队列的操作顺序是先进先出,而栈的操作顺序是先进后出。

32.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

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

34.261261解析:在控制格式符中“o”代表的是将数据按八进制数输出,十进制数的177代表的八进制数是261。

35.数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段解析:在数据库系统管理阶段,数据是结构化的,是面向系统的,数据的冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性,同时提高了数据的可扩充性和数据应用的灵活性;数据具有独立性,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性,二是逻辑独立性;保证了数据的完整性、安全性和并发性-综上所述,数据独立性最高的阶段是数据库系统管理阶段。

36.a[row][c01]>max或max<a[row][co1]max<min或min>maxa[row][c01]>max或max<a[row][co1]\r\nmax<min或min>max解析:本题有两层for循环,函数首先定义了整型变量row、col、max和min,其中row用于外循环的循环变量,col用于内循环的循环变量,max记录每行中的最人值,min记录所有行最大值中的最小值。在内循环中,首先给max赋初值为每行的第0个元素值,然后从第一个开始依次与max进行比较。如果大于max则将其值赋给max,当每一行循环结束,max记录了每一行的最大值。所以第一个空应该填a[row][co1]>max或max<a[row][co1)。退出内循环,在第一次退出内循环时,将min赋初值为第0行的max,然后在每次退出内循环时,将min和每行的max比较,如果大于max,则将max值赋min,所以第二个空应该填max<min或min>max,当退出外循环时,rain为所有行中的最大值的最小值。

37.55解析:本题的关键在于if(!(i%5))printf('\\n),这句,即如果i可被5整除时,则换行。i值为24,可以被5整除4次,并余4,因此,prnt函数共输出5行,最后一行有4个数。

38.33解析:i=1时,f(1)=1,j=j+f(1)=0+1=1;i=2时,f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此时循环结束,程序运行后的输出结果是3。

39.CIRCLE(RLSV)S=PI*R*Rr1sv

40.a=2b=3a=2,b=3解析:分析程序,程序从x=1语句开始执行,之后执行第一个switch语句,switch(x)=switch(1),所以执行case1,case1语句中包含一个复合switch语句:这时执行第二个switch语句,此时y=1,所以switch(y)=switch(1),因此执行case1,将b加1,得到b=2,遇到break语句,退出第二个switch语句,则整个case1的复合语句执行完毕,由于在这个case1的后面没有break语句使其退出第一个switch语句,所以接着执行下列的case2后面的语句,即将a,b各加1,得到a=2,b=3。

41.A解析:维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。软件工程学的目的就在于提高软件的可维护性,同时也要设法降低维护的代价。

软件维护通常有以下四类;

①为纠正使用中出现的错误而进行的改正性维护;

②为适应环境变化而进行的适应性维护;

③为改进原有软件而进行的完善性维护;

④为将来的可维护和可靠而进行的预防性维护。

软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。由此可知,本题中选项B、C、D中的说法都是错误的。

42.B解析:本题使用typedef关键字将整个结构体的定义部分stmctS{intg;charh;}声明为别名T。此时T是一个结构体类型,可以直接使用T声明该结构体变量,而S只是一个结构体名,必须结合struct关键字才能声明变量。故本题的正确答案为B。

43.D

44.A解析:本题考查%和/运算符的使用。如果两个数不能整除,只取结果的整数部分,小数部分全部舍去。运算符“%”要求两个运算对象都为整型,其结果是整数除法的余数。表达式:a=-4+4*5-6=-4+20-6=10;表达式:a=4+4%5-6=4+4-6=2:表达式:a=-3+4%6/5=-3+0=-3:表达式:a=(7+6)%5/2=13%5/2=1。

45.B解析:本题中主函数里的x、y,fun函数里的a\\b\\k,这些都是指针,fun函数中只是将a、b这两个指针交换了位置,而并没有改变主函数中变量a、b的值。

46.B解析:本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址,第一次for循环,p=a,p指向数组的第一个元素,*p是取指针p所指地址的内容,输出p;第二次for循环,p=p+2,则p指向数组的第三个元素,*p是取指针p所指地址的内容,输出o;第三次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出r;第四次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出m;结束循环。

47.C解析:本题考查的是if...else语句的使用。x=2.0,符合第二个IF语句的条件x<10.0,所以执行y=1.0/x语句,即y=1.0/2.0=0.500000。

48.C解析:C语言中字符常量是以单引号括起来的单个字符,或为以“\\”与三位八进制数值或两位十六进制数值代替单个字符。

49.D解析:本题是一道陷阱题,考生如果没注意到F()函数被定义为void类型的话,很容易错选为选项A,其实应该选择选项D,编译出错。

50.A解析:局部变量在执行到它所在的程序块时产生,执行完时被摧毁,而静态局部变量的生存期将一直延长到程序运行结束,故选项A正确;全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束,故选项B不正确:未赋初值的局部变量的初值是随机的,故选项C不正确;形参只能是一般局部变量,不能使用任何存储类说明符,故选项D不正确。所以,4个选项中选项A符合题意。

51.B解析:在printf函数中,当格式转换说明符个数少于输出项个数时,多余的输出项不予输出。

52.A解析:本题主要考查运算表达式的运算。3+(int)(x)的结果是10011010,~3的结果是11111100,二者逻辑与得10011000。

53.BB)【解析】数据库设计的目的实质上是设计出满足

\n实际应用需求的实际关系模型。数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性:提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。

54.C

55.D解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo\u3000C\u30002.0中,int占2个字节,但在VisualC++6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。

56.B解析:本题是找出打印“*”号的条件,从图中我们可以找到规律,第一行1个“*”,第二行3个“*”,第三行5个*,……,即每行中。的个数恰好是行数的2倍减一个,由此不难得出,横线处应当填入2*i-1。

57.A解析:scanf函数中格式控制后面应为变量地址列表,因此选项C和选项D都错误,选项B中“&d”是指针变量d的地址,与题目不符。由题目可知指针变量d中存放的是变量c的地址,所以正确答案为选项A。

58.C解析:本题中首先定义一个长度为10的一个整型数组,并初始化为“1,2,3,4,5,6,7,8,9,10”,然后调用排序函数sort(),通过分析不难看出,sort()函数是对具有n个元素的a数组进行从大到小排序。由于函数的第一个参数是数组名,其对应的实参可以是函数名或地址。本题在调用该函数时,实参是&aa[3]的地址,即把aa[3]的地址传给了行参数组名a,函数也就是对aa[3]开始的5个元素进行从大到小的摔序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化。Sort()执行完毕后,接着执行后面的for语句输出数组aa中各个元素的值,由于函数sort()只是对aa[3]开始的5个元素进行从大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并没有变化,所以输出为“1,2,3,8,7,6,5,4,9,10”。所以4个选项中C正确。

59.A解析:在数据库管理系统提供的数据语言中,数据定义语言负责数据的模式定义与数据的物理存取构建。

60.C

61.Cstr是指针数组,每个元素存放的是指向结构体类型数据的地址,每个元素可看作是一个指针变量,通过结构体指针变量引用结构体变量各成员的形式有两种,一是(*指针变量名).成员名;二是指针变量名->成员名,本题可以是“(*str[1]).name+2”或“str[1].>name+2”

温馨提示

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

评论

0/150

提交评论