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

下载本文档

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

文档简介

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

一、单选题(20题)1.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是______。

A.i-1B.iC.i+1D.4-i

2.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}执行后输出的结果是A.11122B.12C.12020D.120

3.在位运算中,操作数左移一位,其结果相当于A.A.操作数乘以2

B.操作数除以2

C.操作数除以4

D.操作数乘以4

4.下列程序的输出结果是______。#include<stdio.h>main(){inti,j,k,a=3,b=2;i=(--a==b++)?--a;++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}

A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3

5.在执行完下列的C语句段之后,则B的值是()。Chara="A";intb;B=((34&&56)&&(a<'b'));

A.int类型B.float类型C.void类型D.函数无类型说明,定义有错

6.有以下程序:#include<stdio.h>main(){inty=10;while(y--);printf(“y=%d\n”,y);}程序运行后的输出结果是()。

A.y=0B.y=-1C.y=1D.while构成无限循环

7.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}当运行时输入:a<回车>后,以下叙述正确的是()。

A.变量c1被赋予字符a,c2被赋予回车符

B.程序将等待用户输入第2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2

D.变量c1被赋予字符a,c2中将无确定值

8.数组A[5][6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,下标从1开始,则元素A[5][5]的地址是()。

A.1175B.1180C.1205D.1120

9.

10.以下选项中合法的C语言常量是()。

A.‘C-STR’B.2014.1C.”\1.0D.2EK

11.已知字符A的ASCⅡ代码值是65,字符变量c1的直是A,c2的值是D。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。

A.A,BB.A,68C.65,66D.65,68

12.以下函数的功能是()intfun(char*A){char*b=a;while(*B)b++;{returnb-a;}}

A.比较两个字符串的大小B.字符串的复制C.计算字符串的长度D.字符串的连接

13.软件调试的目的是______。

A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能

14.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。

A.&B.^C.‖D.~

15.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。

A.单链表B.单循环链表C.带尾指针的单循环链表D.带头结点的双循环链表

16.有以下程序:#include<stdio.h>main(){inta=2,b=3,c=4;a*=16+(b++)-(++c);printf(“%d\n”,a);}程序运行后的输出结果是()。

A.15B.30C.28D.14

17.已知a,b均被定义为double型,则表达式:b=1,a=b+5/2的值为()。

A.1B.3C.3.0D.3.5

18.算法分析的两个主要方面是()。

A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性

19.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

20.数据结构通常是研究数据的及它们之间的联系______。A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑

二、2.填空题(20题)21.若a=1,b=2,则表达式!(x=A)‖(y=B)&&0的值是______。

22.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。

23.以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。

#include<stdio.h>

#include<ctype.h>

main()

{chars[80],d[80];inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(【】){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

24.下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

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

printf("%3d",b[i]);

}

}

25.下列程序的输出结果是【】。

main()

{inti;

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

{if(i>4)

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

break;}

printf("%d\n",i++);}}

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

#include<stdio.h>

structNODE

{intnum;structNODE*next;

main()

{struetNODEs[3]={{.'\0'},{2,'\0'},{3,'\O'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

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

sum+=q->next->num;sum+=r->next->next->num;

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

}

27.用树型结构表示实体类型及实体间联系的数据模型称为【】。

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

#include<string.h>

char*huiwen(char*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(【】)return("yes!");

elsereturn("no!");

}

main()

{charstr[50];

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

printf("%s\n",【】);

}

29.要求使下列程序输出5个整数,请填空。

for(i=0;i<=______;printf("%d\n",i+=2));

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

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

31.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

32.若变量x、y已定义为int类型且X的值为33,y的值为3,请将输出语句printf((),x/y);补充完整,使其输出的计算结果形式为:x/y=11。

33.软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。

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

#include<stdio.h>

main()

{chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{if(i%2==0)*p='*';

p++;i++;

}

puts(a);

}

35.在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的【】操作实现窗口的移动。

36.若对长度为90的线性表进行分块查找,其中每块子表长度为9。如果在索引表查找过程中进行顺序查找,那么平均查找长度为【】。

37.在E-R图中,矩形表示【】。

38.算法的复杂度主要包括【】复杂度和空间复杂度。

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

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

}

}

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

三、1.选择题(20题)41.若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是()。

A.实参与其对应的形参共占存储单元

B.只有当实参与其对应的形参同名时才共占存储单元

C.实参与其对应的形参分别占用不同的存储单元

D.实参将数据传递给形参后,立即释放原先占用的存储单元

42.有下列函数定义:intfun(doublea,doubleb){returna*b;}若下列选项中所用变量都已正确定义并赋值,错误的函数调用是()。

A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(x,y)x,y);

D.fun(x,y);

43.下列程序段的执行结果是______。inti;intx[][3]=}1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",x[i][2-i]);

A.159B.147C.357D.369

44.下列说法正确的是()。

A.在C程序中,main()函数必须位于程序的最前面

B.在C程序中,一条语句只能写一行而不能写多行

C.C程序是以行为基本单位的

D.C语言本身没有输入输出语句

45.以下程序的输出结果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}

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

46.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是

A.编译出错B.9C.21D.9

47.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是______。

A.只读B.追加C.读或读写D.以上均正确

48.数据库是()的集合,它具有统一的结构格式并存放于统一的存储介质,可被各个应用程序所共享

A.视图B.消息C.数据D.关系

49.设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1,则T中的叶子结点数为()。

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

50.已有定义:intx=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是

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

51.以下程序的运行结果是()。#include<stdio.h>#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti=10,j=15,k;k=10*MIN(i,j);printf("%d\n",k);}

A.10B.15C.100D.150

52.有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);)程序运行后的输出结果是

A.12353514B.12353513C.12343514D.12343513

53.下列程序的输出结果是()。#include<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}},(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}

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

54.从工程管理角度,软件设计一般分为两步完成,它们是()。

A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计

55.按照“先进后出”原则组织数据的数据结构是()。

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

56.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

57.下列说法不正确的是()。

A.一个C语言源程序可以由一个函数组成也可以由多个函数组成

B.main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略

C.C语言程序是以函数为基本单位的

D.在C语言程序中,注释行只能位于一条语句的后面

58.下列程序的输出结果是()。main{intx=8,y=8;printf("%d%d\n",x--,--y);}

A.88B.77C.78D.87

59.有以下程序:#include<string.h>main(){charp[20]={'a','b','c','d'),q[]="abc",r[]="abcde"strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",sizeof(p));}程序运行后的输出结果是()。

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

60.对下述程序的判断中,正确的是()。#include<stdio.h>voidmain(){char*P,s[256];p=s;while(strcmp(s,"theend")){printf("Inputthestring:");gets(s);while(*P)putchar(*p++);}}

A.此程序循环接收字符串并输出,直到接收到字符串“theend”为止

B.此程序循环接收字符串,接收到字符串“theend”则输出,否则程序终止

C.此程序循环接收字符串并输出,直到接收字符串“theend”为止,但因为代码有错误,程序不能正常工作

D.此程序循环接收字符串并将其连接在一起,直到接收字符串“theend”为止,输出连接在一起的字符串

四、选择题(20题)61.

62.

63.以下关于宏的叙述中正确的是()。

A.宏替换没有数据类型限制

B.宏定义必须位于源程序中所有语句之前

C.宏名必须用大写字母表示

D.宏调用比函数调用耗费时间

64.

65.

以下程序的输出结果是()。

main()

{inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};

printf("%(1%d%d%d\n".a[O][3],a[1][2],a[2]

[1],a[3][0];

}

A.0650B.1470C.5430D.输出值不定

66.设有定义语句int(*f)(int);,则以下叙述正确的是()。

A.f是基类型为int的指针变量

B.f是指向函数的指针变量,该函数具有一个int类型的形参

C.f是指向int类型一维数组的指针变量

D.f是函数名,该函数的返回值是基类型为int类型的地址

67.数据库、数据库系统和数据库管理系统之间的关系是()。

A.数据库包括数据库系统和数据库管理系统

B.数据库系统包括数据库和数据库管理系统

C.数据库管理系统包括数据库和数据库系统

D.三者没有明显的包含关系

68.设有charstr[10],下列语句正确的是

A.scanf("%s",&str);B.printf("%c",str);

C.printf("%s",str[0]);D.printf("%s",str);

69.下面不属于软件工程三要素的是()。

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

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

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D.以上说法都不正确

71.下列关于栈的叙述正确的是()。

A.栈按“先进先出”组织数据,B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据

72.

73.有以下程序:

intfun(intx)

{intp;

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

p=x-fun(x-2);

returnp;

}

main

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

执行后的结果是()。A.A.7B.3C.2D.0

74.

75.请选出以下语句的输出结果Printf("%d\n",strlen("\t\"\065\xff\n"));

A.5B.14C.8D.输出项不合法,无正常输出

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

#include<stdio.h>

main

{inti;

for(i=1;i<=10,i++)

{if((i*i>=20)&&(i*i<=100))

break;

}

printf("%d\n",i*i;

}A.A.49B.36C.25D.64

77.

78.有以下程序

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.01234567

C.76310462D.13570246

79.

80.针对简单程序设计,以下叙述的实施步骤顺序正确的是()。

A.确定算法和数据结构、编码、调试、整理文档

B.编码、确定算法和数据结构、调试、整理文档

C.整理文档、确定算法和数据结构、编码、调试

D.确定算法和数据结构、调试、编码、整理文档

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。例如,变量a中的值原为8,b中的值原为3,程序运行后,a中的值为3,b中的值为8。请改正程序中的错误,使它得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.请编写一个函数voidproc(intm,intk,intxx[]),该函数的功能是将大于整数m且紧靠m的k个非素数存人所指的数组中。例如,若输入:105(即M=10,k=5),则应输出:l214151618。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B

2.A解析:当执行switch语句时,首先计算紧跟其后一对括号中的值,然后在语句体内寻找与该值吻合的case标号。若相等,则执行该标号后开始的各语句,包括在其后的所有case和default后的语句,直到switch语句体结束。

3.A左移运算符“<<”是双目运算符,其功能是把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。例如,a<<4是把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。

4.D

5.A解析:本题考查默认函数的函数值的类型。在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型处理,因此,函数的类型为int类型。

6.B执行“y--”直到值为0。退出循环。由于“y--”是后缀自减运算,先使用再自减,因此退出循环时,y的值为-1。故本题答案为B选项。

7.A解析:本题考查的是getchar()函数。getchar()函数执行时将从键盘缓冲区中读取用户的输入,而不管输入的是否可打印字符,所以当输入a<回车>后,键盘缓冲区被输入的实际上是两个字符:'a'和'\\n'。故选项A的说法是正确的。

8.D

9.A

10.B所谓常量,是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,需要使用双引号;选项C不是合法的常量形式;选项D为实型常量中的指数形式,但指数形式e(E)之前必须是数字,之后必须为整数。故本题答案为B选项。

11.C在C语言中,用整型格式输出字符时,输出的是其ASCII码值。

12.C

13.B解析:在对程序进行测试时会发现错误,这就要进行程序调试(排错)。程序调试活动由三部分组成:一是错误定位,根据错误的外部表现形式,确定程序中出错的位置,找出错误的内在原因;二是对程序进行修改,排除这个错误;三是进行回归测试,防止引进新的错误。所以程序调试的目的就是诊断和改正程序中的错误。软件调试不能改善软件的性能,也不能挖掘软件的潜能。

14.B按逻辑位运算特点:①用按位与运算将特定位清为0或保留特定位;②用按位或运算将特定的位置为1;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。

15.C

16.C单目运算符“++”的优先级高于赋值运算符。表达式“a*=16+(b++)-(++C);”可转化为“a=a*(16+b-(c+1));b=b+1;”,代入值计算可得a=28。故本题答案为C选项。

17.D

18.A

19.A解析:在C语言中,应当在定义函数时指定函数值的类型。凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换,即函数类型决定返回值的类型。

20.A

21.00解析:根据运算符的运算顺序可知,该表达式最后运算的是与(&&)运算,而任何表达式与“0”进行“与”运算,结果都为0。

22.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。

23.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根据题意和程序可知要填空的内容是:将字符申s中的数字字符放入d数组的条件。

24.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:将数组a中元素a[i]与a[j+1]值相加后的值赋予数组b中元素b[i],即可实现将一个数组的前项和后项之和存入另一数组。

25.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i:3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1执行第三次for循环时,i=5,讧语句条件满足,所以执行printf('%d\\n',i)输出5,然后break语句跳出了for循环。

26.55解析:程序通过语句s[0].next=s+1;s[1].next=s+2;s[2].next=s;将结构体变量s中各结点连接成了一个循环链表,即最后一个结点的指针域指向了头结点(s[2].next=s),整个链表形成一个环,并通过语句p=s;q=p->next;r=q->next;将结构体指针变量p,q,r指向了各结点,具体结构如下图:

故本题输出的sum为3+2=5。

27.层次模型用树型结构表示实体类型及实体间联系的数据模型称为层次模型,用有向图结构表示实体类型及实体间联系的数据模型称为网状模型,用二维表格结构表示实体及其联系的数据模型称为关系模型。

28.str+strlen(str)-1i>strlen(str)/2huiwen(str)str+strlen(str)-1\r\ni>strlen(str)/2\r\nhuiwen(str)解析:首先使指针p1指向字符串的首地址,指针p2指向字符串的尾地址(不包括字符串结束标记'\\0'),然后指针p1从前往后,指针p2从后往前,直到移至字符串的中间元素,若两者所指的元素不相等,则跳出循环,此时i<=strlen(str)/2,若两者所指的元素均相等,则此时i>strlen(str)/2。

通过if语句判断,如果i>strlen(str)/2,则返回“yes!”,否则返回“no!”。

主函数中要求输出函数huiwen(str)的返回值。

29.88解析:本题考查基本的for循环条件,i+=2表示i每次递增2,从0开始,输出5个整数则需要的条件是i<=8。

30.SOSO解析:考查用指针引用字符串数组中元素的方法。题中需要注意两个问题:一是for循环的修正表达式共执行两次'i--'操作;二是*p[i]是对某个字符的引用。

31.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。

32.x/y=%dx/y=%d解析:本题考查prinff语句的输出格式。printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:printf('<格式化字符串>”,<参最表>)其中,格式化字符串包括两部分内容。一部分足正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分开,且顺序一一

33.软件开发软件开发解析:软件生命周期可以分为3个时期:软件定义期,包括问题定义、可行性研究和需求分析3个阶段;软件开发期,包括系统设计、详细设计、编码和测试4个阶段;软件维护期,即运行维护阶段。编码和测试属于软件开发阶段。

34.*2*4*6*8**2*4*6*8*解析:程序中指针p指向数组a,while(*P)语句的循环条件是*p!=\'\\0\',在循环体中,当i=0,2,4,6,8时,i%2=0,执行*p=\'*\',即a[i]=\'*\',继续执行p++;i++;使i为奇数;当i=1,3,5,7时,i%2=1,继续执行p++;i++;使i为偶数。可见,程序在字符串'123456789',的下标为偶数的位置上赋值\'*\',代替原字符串中的1,3,5,7,9。所以,程序输出结果为*2*4*6*8*。

35.拖动拖动

36.10.5

37.实体实体解析:E-R模型中,有3个基本的抽象概念:实体、联系和属性。在E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。

38.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

39.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个的形式输出。

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

41.C解析:本题考查函数调用时的参数传递。函数的形参是函数定义时由用户定义的形式上的变量,实参是函数调用时,主调函数为被调函数提供的原始数据。在函数调用时,实参和其所对应的形参分别占用不同的存储单元,彼此之间不影响。

42.C解析:本题考查函数调用时的参数传递。选项C)中第一个参数的表达式不正确,因此不能得到正确的结果。

43.C解析:数组x在初始化时赋9个值,列值为3,则行值为3。i为0时,x[i][2-1]指的是元素x[0][2](值为3):i为1时,x[i][2-i]指的是元素x[1][1](值为5):i为2时,x[i][2-1]指的是元素x[2][0](值为7);输出结果是357。

44.D解析:本题涉及C语言最基本的4个知识点:①C语言程序是由函数构成的,C程序的基本单位是函数;②每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,但是main()函数可以放在程序中的任意位置;③C语言的书写格式是自由的,一行可以写多条语句,一条语句也可以写在不同的行上;④C语言本身不提供输入输出语句,可以通过函数来实现输入和输出操作。

45.D解析:strcpy()函数的作用是把第二个参数代表的字符串,复制到第一个参数指向数组中。首先定义了两个字符数组b1和b2,并用一个字符串给b1赋初值,然后定义了一个字符型指针变量pb,通过赋初值使它指向b1[3]。接着执行while循环,该循环执行了3次:第一次判断条件“--pb>=b1”,使pb的值为“b1+2”,执行“strcpy(b2,pb);”后,b2中的内容为“cdefg”;第二次判断条件“--pb>=b”,使pb的值为“b1+1”,执行“strcpy(b2,pb);”后b2的内容为“bcdefg”第三次判断条件“--pb>:b1”使pb的值为“b1”,执行“strcpy(b2,pb);”后b2的内容为“abcdefg”。最后输出b2数组中存放的字符串长度,显然是7。(这里还有一个关键点:就是每当执行一次while循环判断条件,就执行一次“--pb”,使得指针pb自减1,即前移一位)。

46.B解析:本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。

本题可按部就班地逐步运算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

47.D解析:fgetc函数是指从指定的文件读入一个字符,该文件必须是以读或读写方式打开的。fgetc函数的调用形式为:ch=fgetc(fp);。

48.C解析:数据库是数据的集合,其中的数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构,以建立数据之间的内在联系与复杂的关系。

49.D解析:根据给定的条件,在树中,各结点的分支总数为:4×1+2×2+1×3+4×1=15:树中的总结点数为:15(各结点的分支总数)+1(根结点)=16:非叶子结点总数为:4+2+1+1=8。因此,叶子结点数为16(总结点数)-8(非叶子结点总数)=8。因此,本题的正确答案为D。

50.D解析:本题考查的知识点是!和&&的运算规则.本题中,&&左边的表达式!(x+y)为!(3+7),结果为假,即为0。再加上2,然后减一,相当于0+5-1=4。左边等于4,&&右边的表达式y+z/2相当于4+5/2为6,所以整个表达式相当于4&&6为真,即为1,所以选项D正确。

51.B解析:该题考查函数的宏定义及三目运算符。表达式10*MIN(i,j)利用宏展开后为:10*i<j?i:j,即100<15?10:15,其值为15,然后将15赋给k。

52.A解析:本题考查的是自加运算符的运用。自加运算符有前缀和后缀两种不同的形式,对于变量本身来说,无论是前缀还是后缀其作用的效果都是相同的,使变量值增1。但作为表达式来说却有着不同的值,前缀时自增表达式的值是变量增1,后的值,而后缀时自增表达式的值是变量增1前的值。本题程序开始定义了两个整型变量m和n,并分别初始化为12和34.第一条输出语句是按整型格式输出表达式m++和++n的值,根据前面所述,表达式m++的值为12,++n的值为35,所以第一次输出的字符串是'1235',执行完后m和n的值都自增1,分别是13和35.接下来第二条输出语句也是按整型格式输出表达式n++和++m的值,分别是35和14,故最终的输出应该为“12353514”,所以,4个选项中选项A符合题意。

53.B解析:第1次执行for循环,p[1][0]=p[1][0]-1=3:第2次执行for循环,p[1][1]=p[1][1]-1=4:第3次执行for循环,p[1][2]=1,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

54.A解析:从工程管理的角度看,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步精化成软件的算法或表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计/数据设计和过程设计。因此,本题的正确答案是A。

55.BB.【解析】栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元索是最后被插入的元素,也是最后被删除的元素。栈是按先进后出的原则组织数据的。

【知识拓展】“栈”的形式如手枪的弹匣,最后压入的子弹总是最先被弹出,而最先压人的子弹最后才被弹出,也就是“先进后出”。

56.C解析:带参数宏的格式为:#define标识符(形参表)形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

57.D解析:本题涉及C语言基本的3个知识点:①C语言是以函数为基本单位的,每一个函数完成相对独立的功能,一个程序可以包括多个函数,但有且仅有一个主函数;②主函数main()的圆括号内是填写参数的,可以没有参数,但括号不可以省略;③程序的注释部分应该在“/*…………*/”之间,它允许出现在程序的任何位置。

58.D解析:本题考查自减(--)运算符的使用。“x--”是先引用x的值然后将x的值减1,所以输出的x值为8;“--y”是先将y的值减1然后再引用y的值,所以输出的y值为7。

59.B解析:题目中首先通过strcat(p,r)函数将r所指字符串内容连接到p所指的字符串后面,p[20]={'a','b','c','d','a','b','c','d','e'},然后通过strcpy(p+strlen(q),q),首先在p[0]地址的基础上向后移动三位,然后将q所指字符串的内容复制到p所指的存储空间中,从字符d往后全部覆盖,p[20]={'a','b','c','a','b','c'}。在输出语句中strlen(p)是求字符串的长度。

60.A解析:strcmp(str1,str2)是比较字符串str1和sir2,当两字符串相等时,返回值为0,不相等时返回值为非0;所以此段程序的功能是在未接收到字符串“theend”时,读入字符并输出。

61.D

62.D

63.A宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头,因此B)选项中宏定义必须位于源程序中所有语句之前是错误的。宏名一般用大写,但不是必须用大写,因此c)选项错误。宏展开不占运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、值传递、返回值),因此D)选项错误。

64.C

65.A

\n当所赋的值不够其列的宽度时,系统在其后自动补0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故选择A选项。

\n

66.B本题考查的是指向函数的指针。语句“int(*f)(int);”是对一个函数的声明,其中f是指向该函数的指针,该函数有一个整型的参数,函数返回值类型为整型。故答案选B)。

67.B数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。数据库可以被直观地理解为存放数据的仓库,只不过这个仓库在计算机的大容量存储器上,例如,硬盘就是一种最常见的计算机大容量存储设备。数据必须按一定的格式存放,因为它不仅需要存放,而且还要便于查找和使用。

数据库管理系统(DBMS)是位于用户与操作系统之间的完成数据管理的系统软件。它是用户与数据库的接口。应用程序一般要通过DBMS才能访问数据库。在数据库建立、运用和维护时对数据库进行统一控制。

数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。数据库是整个数据库系统最基本的成分。数据库管理系统是数据库系统的核心。数据库

温馨提示

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

评论

0/150

提交评论