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

下载本文档

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

文档简介

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

一、单选题(20题)1.针对二分查找算法,假设一个有序数组有136个元素,那么要查找到第10个元素,需要比较的元素为()

A.68,34,17,9,13,11,10

B.68,34,17,8,12,10

C.69,35,18,10

D.68,34,18,9,13,11,10

2.

3.以下叙述中错误的是()。

A.改变函数形参的值,不会改变对应实参的值

B.函数可以返回地址值

C.可以给指针变量赋一个整数作为地址值

D.当在程序的开头包含文件stdi0.h时,可以给指针变量赋NULL

4.有如下定义:structperson{charname[9];intage;}structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};能输出字母M的是()

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[1]);

D.printf("%c\n",class[2].name[0]);

5.有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;…}则以下函数调用语句错误的是()。

A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);

6.已知字母a的ASCII码为十进制数97,下面程序的输出结果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}

A.输出无定值B.d,eC.e,fD.g,d

7.在关系数据模型中,通常可以把()称为属性,其值称为属性值。

A.记录B.基本表C.模式D.字段

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

A.C语言程序必须要有return语句

B.C语言程序中,要调用的函数必须在main()函数中定义

C.C语言程序中,只有int类型的函数可以未经声明而出现在调用之后

D.C语言程序中,main()函数必须放在程序开始的部分

9.

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

#include<stdio.h>

voidmain

{intb[6]={2,4,6,8,10,12);

int*p=b,**q=&p;

printf("%d,",*(p++));

printf("%d,",**q);

}

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

10.对以下四个序列用直接插入排序方法由小到大进行排序时,元素比较次数最少的是()

A.89,27,35,78,41,15

B.27,35,41,16,89,70

C.15,27,46,40,64,85

D.90,80,45,38,30,25

11.下列程序的运行结果为()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12

12.下列叙述中正确的是()。A.一个逻辑数据结构只能有一种存储结构

B.逻辑结构属于线性结构,存储结构属于非线性结构

C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率

D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

13.下列不可用于C语言用户标识符的是A.A.j2_KEY

B.char

C._g_

D.Double

14.用链接方式存储的队列,在进行删除运算时()。

A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改

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

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

16.以下有4组用户标识符,其中合法的一组是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

17.有3个关系R、S和T如下.

则由关系R和S得到关系T的操作是()。A.自然连接B.差C.交D.并

18.下列叙述中错误的是()。

A.一个C语言程序只能实现一种算法

B.c程序可以由多个程序文件组成

C.C程序可以由一个或多个函数组成

D.一个c函数可以单独作为一个C程序文件存在

19.下面程序的输出结果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不确定D.bcdef

20.假定a为一个整型数组名,则元素a[4]的字节地址为()。

A.a+4B.a+8C.a+16D.a+32

二、2.填空题(20题)21.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【】。

22.有定义chara,b;若想通过&运算符保留a对应的二进制数的第3位和第6位的值,其余位置0,则b的二进制数应是【】。

23.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

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

#include<stdio.h>

fun()

{inta=0;

a+=3;

printf("%d",A);

}

main()

{intcc;

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

fun();

printf("\n");

}

25.有以下程序:

voidf(inta[],inti,intj)

{intt;

if(i<j)

{t=a[i];a[i]=a[j];a[j]=t;

f(a,i+1,j-1);

}

}

main()

{inti,aa[5]={1,2,3,4,5};

f(aa,0,4);

for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");

}

执行后的输出结果是【】。

26.自盒测试方法重视【】的度量。

27.函数mystrlen(char*s)的功能是求字符串s的长度,请填空。

mystrlen(char*s)

{char*t:

t=s;

while(【】)t++;

return(t-s);

}

28.设有下列宏定义:

#defineA2

#defineB(A+3)

则执行赋值语句"k=B*20;"(k为int型变量)后,k的值是______。

29.有以下程序:

intf(intn)

{if(n==1)retum1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

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

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

}

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

30.设有以下定义:

structss

{intinfo;structss*link;}x,y,z;

且已建立如下图所示链表结构,

请写出删除点y的赋值语句【】。

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

main()

{inti;

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

{if(i>4)

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

break;}

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

32.下列程序的运行结果为【】。

voidaverage();

main()

{floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,99}};

average(*score,12);

}

voidaverage(p,n)

intn;

float*p;

{inti;

floatsum=0;

for(i=0;i<n;i++,p++)sum+=(*p);

printf("%.2f\n",sum/n);

}

33.已有定义:double*p;,请写出完整的语句,利用malloc函数使p指向一个双精度型的动态存储单元______。

34.下列二维数组初始化语句中,正确且与语句floata[][3]={0,3,8,0,9};等价的是

35.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。

36.下面程序的功能是:计算1~20之间的奇数之和与偶数之和,请填空使程序功能完整。

#include<stdio.h>

main()

{inta=0,b=0,c=0,i;

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

{a+=i;

();

c+=b;

}

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

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

}

37.有以下程序:

main()

{inti,n=0;

for(i=2;i<5;i++)

{do

{if(i%3)continue;

n++;

}while(!i);

n++;

}

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

}

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

38.将以下程序写成三目运算表达式是【】。

if(a>b)max=a;

elsemax=b;

39.观察题目要求,可以知道以下几点:}

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

三、1.选择题(20题)41.数据库的故障恢复一般是由()来执行恢复

A.电脑用户B.数据库恢复机制C.数据库管理员D.系统普通用户

42.有关物理独立性的描述错误的是()

A.物理独立性是指用户的应用程序与存储结构是相互独立的

B.符合物理独立性的数据在磁盘上的数据库中怎样存储用户可以不了解

C.符合物理独立性的数据,当其数据的物理存储改变了,应用程序不用改变

D.物理独立性是指用户的应用程序与存储结构是相互联系的

43.设有以下说明语句:structex{intx;floaty;charz;}example;在下面的叙述中,不正确的一条是______。

A.struct是结构体类型的关键词

B.example是结构体类型名

C.x,y,2都是结构体成员名

D.structex是结构体类型

44.有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}该程序的执行结果是______。

A.321B.3C.不输出任何内容D.陷入死循环

45.线性表常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

46.以下叙述中正确的是

A.C程序中注释部分可以出现在程序中任意合适的地方

B.花括号“{”和“}”只能作为函数体的定界符

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.分号是C语句之间的分隔符,不是语句的一部分

47.在下列选项中,没有构成死循环的是()。

A.inti=100;while(1){i==i0+1;if(i>100)break;}

B.for(;;);

C.intk=10000;do{k++;}while(k>10000);

D.ints=36;while(s)--s;

48.有以下程序:#include<stdio.h>main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q.a,b);程序运行后的输出结果是()。

A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

49.C语言提供的合法关键字是()

A.swicthB.cherC.CaseD.default

50.有以下程序#include.<string.h>main(){char*p="abcde\ofghjik\0";printf("%d\n",strlen(p));}程序运行后的输出结果是

A.12B.15C.6D.5

51.以下叙述中错误的是()。

A.可以通过typedef增加新的类型

B.可以用tyPedef将已存在的类型用新的名字来表示

C.用typedef定义新的类型名后,原有类型名仍有效

D.用tyPedcf可以为各种类型起别名,但不能为变量起别名

52.信息隐蔽的概念与下述哪一种概念直接相关?

A.软件结构定义B.模块独立性C.模块类型的划分D.模块耦合度

53.对于下述程序,在方式串分别采用“wt”和“wb”运行时,两次生成的文件TEST的长度是#include<stdio.h>voidmain(){FILE*fp=fopen("TEST",);fputc('A',fp);fputc('\n',fp);fputc('B',fp);fputc('\n',fp);fputc('C',fp);fclose(fp);}

A.7字节、7字节B.7字节、5字节C.5字节、7字节D.5字节、5字节

54.有以下函数fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a-*b);}该函数的功能是______。

A.计算a和b所指字符串的长度之差

B.将b所指字符串连接到a所指字符串中

C.将b所指字符串连接到a所指字符串后面

D.比较a和b所指字符串的大小

55.执行下面的程序后,a的值为main(){inta,b;for(a=1,b=1;a<=10;a++){if(b%3==1){b+=3;continue;}b-=5;}}

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

56.有以下程序:voidf(intv,intw){intt;t=v;v=w;w=t;}main(){intx=l,y=3,z=2;if(x>y}f(x,y);elseif(y>z)f(y,z);elsef(x,z);printf("%d,%d,%d\n",x,y,z);}执行后输出结果是

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

57.下列关于c语言用户标识符的叙述中正确的是()。

A.用户标识符中可以出现下划线和中划线(减号)

B.用户标识符中不可以出现中划线,但可以出现下划线

C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头

58.可在C程序中用作用户标识符的一组标识符是A.and2007

B.Date_y-m-d

C.HiDr.Tom

D.caseBigl

59.在数据流图(DFD)中,带有名字的箭头表示______。

A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分

60.若有以下定义和语句,则输出的结果是______。charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");

A.2,MB.3,EC.2,ED.输出结果不确定

四、选择题(20题)61.

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

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

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

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

D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

63.

64.有以下程序l

该程序试图通过指针P为变量n读人数据并输出,但程序有多处错误,以下语句正确的是()。

65.

66.

67.

68.

69.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是()。

A.一个内存块的字节数

B.一个整型变量,代表待读取的数据的字节数

C.一个文件指针,指向待读取的文件

D.一个内存块的首地址,代表读人数据存放的地址

70.

71.串的长度是______。A.A.串中不同字符的个数

B.串中不同字母的个数

C.串中所含字符的个数且字符个数大于零

D.串中所含字符的个数

72.

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

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据和相关文档的集合

74.表达式“~0x11”的值是()。

A.0xFFEEB.0x71C.0x0071D.0xFFF1

75.数据的存储结构是指()。

A.数据所占的存储空间

B.数据的逻辑结构在计算机中的存放形式

C.数据在计算机中的顺序存储方式

D.存储在计算机外存中的数据

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

A.a=4,b=4

B.a=4,b=5

C.a=5,b=4

D.a=5,b=5

77.下列描述中不正确的是()。

A.字符型数组中可能存放字符串。

B.可以对字符型数组进行整体输入、输出。

C.可以对整型数组进行整体输入、输出。

D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

78.C语言中,组成数据文件的成分是()。A.A.记录

B.数据行

C.数据块

D.字符(字节)序列

79.

80.

有以下程序:

intfun(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

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

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是将a中的十位数和个位数依次放在c的个位和百位上,b中的十位数和个位数依次放在c的十位和千位上。例如,当a=45,b=12时,调用该函数后c=2514。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

参考答案

1.B

2.A

3.C指针变量的值只能是存储单元地址,而不能是一个整数,故选项C错误。

4.D

5.D运算符“()”的优先级高于运算符“*”。“(*f)()”定义函数指针,f是指向函数的指针。执行语句“f=add;”,将函数add的首地址赋给指针f,所以调用函数add可以写为f。函数的返回值是整型,不是指针类型,不能用运算符,故*f(a,b);”的调用方式错误。故本题答案为D选项。

6.D解析:C语言规定,所有字符常量都可以化为整型常量来处理,因而字符常量也可以参与算术运算。注:字符常量参与算术运算时,其实是使用其对应的ASCII码值进行计算。本题中,'a'对应的ASCII码值是97。题中虽然没有给'6'和'0'的ASCII码值,但应该知道'6'-'0'是将字符'6'转换成整数6的表达式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型输出分别是g和d。

7.D解析:数据库表中字段转化为属性,把记录的类型转化为关系模式。

8.C

9.D

\n首先定义了一个指向一维数组b的指针P,一个指向指针P的指针变量q;输出*(p++)是先输出*p,即b[O]的值,再将指针P指向数组的下一个元素b[1];输出**q是输出指针P所指单元的内容。

\n

10.C

11.Bstructdate中包含year、month、day这3个整型变量,一个整型变量占2个字节;sizeof是求所占字节数的运算符。

12.DD)【解析】数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,常用的存储结构有顺序和链式结构。采用不同的存储结构,其处理的效率是不同的。

13.B本题主要考查标识符的命名规则。选项A是合法的用户标识符,它符合命名的规则;选项B不是一个合法的用户标识符,因为它是系统中定义了的关键字;选项C是一个合法的标识符;选项D可能也会有很多人认为它不是一个合法的标识符,认为它是关键字,但事实上它不是一个关键字,因为C语言中严格区分大小写,因此,它不是双精度关键字“double”,所以它是一个合法的用户标识符。

14.D

15.C宏定义只是做简单的替换,本题中SUB(a+b)*c=(a+b)-(a+b)*c=-20。故本题答案为C选项。

16.C解析:选项A中for和case为C语言中的保留字,不能作为用户标志符,故A错误。选项B中的4d其开头的第一个为数字,而在C语言中规定,第一个字符必须为字母或者下划线,故B错误;选项D中void为C语言中的保留字,不能作为用户标志符,故D错误。所以,4个选项中选项C符合题意。

17.B关系之间的操作分为自然连接、投影、交、并、差等,由图可知此操作为差操作。

18.A答案A

解析:一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法。

19.C解析:字符串少一个结束标志,所以输出的结果不确定。

20.C

21.物理独立性物理独立性

22.100100100100解析:“&”运算符的运算规则是:两个二进制数的对应二进制位只要有一个为0,则结果为0;二者都为1时,结果为1。因此,要想保留某位可用1,屏蔽某位用0。

23.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

24.33333333解析:本题考查for循环,for(cc=1;cc<=4;cc++)表示循环4次,a+=3表示每次a的值增加3,但是子函数中没有将变量a定义为static类型,所以每次调用完子函数之后,变量a所做的改变都不能保存,这样在下一次调用子函数时,a的初值仍是0,所以不管调用多少次,子函数输出始终是3。

25.154321,5,4,3,2解析:第一次调用函数f后aa[0]=5、aa[4]=1;第二次调用函数f后aa[1]=4、aa[4]=2;第三次调用函数f后aa[3]=3。正确答案为1,5,4,3,2。

26.测试覆盖率测试覆盖率解析:白盒测试又称为结构测试。白盒测试作为对结构的测试,要求对被测程序的各种结构特性进行测试,这种情况被称为覆盖,故白盒测试又称为“基于覆盖的测试”。白盒测试方法重视测试覆盖率的度量,力求提高覆盖率,从而找出被测程序的错误。

27.*t*t解析:通过while循环扫描字符串,遇到字符‘\\0’结束,并用t统计字符串的长度。

28.100100解析:本题考查带参数的宏定义及相关运算。运算过程为:k=B*20=(A+3)*20=(2+3)*20=100。

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

30.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要删除结点y,只需让结点x的指针域指向y结点的指针域所指向的后续结点就可,因此把结点z的地址赋给x的指针域就可以了,即让结点x的指针域指向结点z。而结点z的地址保存在结点y的指针域中,因此只需把结点y的指针域赋值给结点x的指针域即可。

31.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,if语句条件满足,所以执行printf('%d\\n',i),输出5,然后break语句跳出了for循环。

32.82.25

33.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函数只有一个参数,该参数指定了需要分配多少字节的内存。然后将分配好的内存块的首地址作为void*(未知类型指针)返回.故标准的调用形式应该写成:

p(double*)malloc(sizeof(double));

34.B

35.线性结构线性结构解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。

36.b=i+1b=i+1解析:分析for循环条件,i=0说明循环从0开始判断,i+=2是间隔为2的数,i<=20就是控制数是20之内的a+=i,就是所有偶数的和,如果从1开始(b=i+1)间隔为2的数(1,3,5,7,9,11,13,15,17,19)相加就是所有奇数的和。

37.n=4n=4解析:continue语句是结束本次循环。i=2时因i%3条件为真,故不执行do-while语句中的n++,只执行一次n++得n=1;i=3时,i%3条件为假,执行两次n++得n=3;i=4时,i%3条件为真,执行一次n++得n=4。

38.max=(a>b)?a:b;max=(a>b)?a:b;解析:本题考查三目运算符的用法,条件运算符要求有三个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式3所以,我们可以写成(a,b)?a:b,它是一个“条件表达式”。执行顺序是:如果(a>b)条件为真,则条件表达式取值a,否则取值b。注意:逗号表达式的执行原理。

39.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本题主要考查了插入排序。由于程序中的数组在开始已经按从小到的大顺序排好。在插入时,首先要查到第一个大于待插入数的数组下标,即当待插入元素小于数组中当前元素时,记下数组的当前下标p,并结束循环。故第一空目的是为了记下数组下标,应填p=i;插入的第二部是将大于待插入元素的所有元素都向后移动一位,故在循环时,要从最后一个元素到第p个元素都要后移一位,因此第二空应填i>=p。最后一个循环是将N+1个元素都输出,故最后一空应为i<=N。(注:本题有多种答案,以上仅提供一种)

40.调试调试

41.CC)【解析】数据库一旦发生故障,需要及时进行故障恢复,并由数据库管理员负责执行故障恢复。

42.D

43.B解析:example是结构体类型变量名,因此选项B的说法是不正确的。

44.B解析:本题x赋初值为3,当执行printf('%d',x-);时,由于X--的作用是先运算x,再将x的值减1,所以,printf输出的x值为3,等输出后,x的值减1变为2,继续执行,判断条件!x为假,循环只被执行一次。

45.AA.【解析】线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。

46.A解析:“/*”与“*/”之间的信息称为注释信息,在C语言中,允许在任何能够插入空格符的位置插入注释,但C语言的注释不能进行嵌套,故选项A正确;在C语言中,函数体是从花括号“{”开始,到花括号“}”结束.但没有规定花括号“{”和“}”只能作为函数体定界符,故选项B错误;选项C中前半句是正确的,在C程序中由有一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数比如库函数,主函数main()就不能由用户来命名,故选C不正确;在C语言中明确规定每条语句以分号“;”结束,分号是语句不可缺少的一部分,故选项D不正确。所以,4个选项中选项A符合题意。

47.D

48.C解析:程序中P和q是指针变量,它们分别存放了变量a和L的地址,执行P=&a;q=&b;语句后,*p和*q的值就分别为7和8,执行r=P;P=q;q=r;实际上是进行指针变量p和q的交换,即将其存放的a和b的地址进行了交换,也就是P指向了b,q指向了a,此时a,b的值并没有改变,所以输出的*P,*q的值为8,7,而a,b的值仍为7,8。

49.D

50.D解析:本题首先定义了一个字符型指针变量p,并用一个字符串给它赋值,然后调用printf()函数输出p所指向的字符串的长度。由于字符串的结束标记为、0,其长度为第1个\\0前的字符个数,故长度为5。所以4个选项中D正确。

51.A解析:选项A)错误,原因是typedef可以声明新的类型名来代替已有的类型名,但却不能增加新的类型。

52.B解析:采用信息隐蔽的目的就是为了确保每个模块的独立性。

53.B解析:以“wt”方式写入的是字符文件,转义字符\'\\n\'被看作两个字符来处理。而'wb'方式写入的是二进制文件,转义字符\'\\n\'是一个字符。故正确答案为选项B)。

54.D解析:本题的函数fun的最后一个语句是“return(*a-*b);”,也就是返回指针a所指单元的值与指针b所指单元的值的差。显然这不可能是计算a和b所指字符串的长度之差,因此选项A的说法是错误的。由于函数中并没有出现。a=*b的赋值操作,所以选项B的连接字符串的说法也是错误的。同理,由于没有*a现*a=*b的赋值操作,所以选项C的复制字符串的说法也是错误的。排除了三个选项后,就可以断定正确选项是D。

55.D

56.C解析:本题考核的知识点是函数的调用和if-else语句的应用。C语言规定else总是和离它最近的if语句配对。分析可以知道,函数f()作用是让形参v和形参w的值交换。在i函数中首先定义了三个变量x。y和z。然后再执行下面的if-else语句.由程序可以看出第—个else和第一个订搭配,第二个else和第二个if搭配。由于调用函数时是进行值传递的。即将实参x,y,z传给形参v和w,以后行参和实参再无联系,故通过if语句调用f()函数后,x、y和z的值并没有改变。故最后输出的x、v和z的值为1、3和2,所以,4个选项中选项C符合题意。

57.B解析:在C语言中,合法的标识符由字母,数字和下划线组成(故选项A不正确),并且第一个字符必须为字母或者下划线(故选项B和选项D不正确).所以,B选项为所选.

58.A解析:在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线。C语言的标识符可以分为关键字、预定义标识符和用户标识符。选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字。

59.C解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加

温馨提示

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

评论

0/150

提交评论