2021-2022年陕西省安康市全国计算机等级考试C语言程序设计_第1页
2021-2022年陕西省安康市全国计算机等级考试C语言程序设计_第2页
2021-2022年陕西省安康市全国计算机等级考试C语言程序设计_第3页
2021-2022年陕西省安康市全国计算机等级考试C语言程序设计_第4页
2021-2022年陕西省安康市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年陕西省安康市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下面关于数据库系统中叙述正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

2.以下不正确的定义语句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5.3]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′\xa′,′\x8′};

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

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

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

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

5.有以下程序:

A.CDEFB.ABEFC.ABCDD.CDAB

6.程序运行后的输出结果是()。A.3B.4C.5D.6

7.一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。

A.2B.4C.6D.8

8.

9.若有定义floata=25,b,*p=&b;,则下列对赋值语句*p=a;和p=&a;的正确解释为()。

A.两个语句都是将变量a的值赋予变量p

B.*p=a是使p指向变量a,而p=&a是将变量a的值赋予变量指针p

C.*p=a是将变量a的值赋予变量b,而p=&a是使p指向变量a

D.两个语句都是使p指向变量a

10.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指()

A.数据与程序独立存放

B.不同的数据被存放在不同的文件中

C.不同的数据只能被对应的应用程序所使用

D.以上三种说法都不对

11.在顺序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找关键码12需做()次关键码比较。

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

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

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

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

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

13.在下列几种排序方法中,空间复杂度最高的是()

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

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

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

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

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

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

15.执行下列程序中的输出语句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13

16.有以下程序:#include<stdio.h>structS{inta,b;}data[2]=110,100,20,200};main(){structSp=data[1];printf(“%d\n”,++(p.a));}程序的运行结果是()。

A.10B.11C.20D.21

17.已知各变量的类型说明如下则以下符合C语言语法的表达式是()。A.a+=a-=(b=4)*(a=3)B.a=a*3=2C.x%(-3)D.y=f1oat(i)

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

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

19.以下选项中,合法的一组C语言数值常量是()。

A.028.5e-3-0xf

B.12.OXa234.5eO

C..1774c1.5Oabc

D.0x8A10,0003.e5

20.

二、2.填空题(20题)21.将代数式转换成程序设计中的表达式为【】。

22.数据模型是数据库系统中用于提供信息表示和操作手段的结构形式。实际数据库系统中所支持的数据模型主要有层次模型、网状模型和【】3种。

23.下面程序的功能是两个整数进行交换,请填空。

sub(int*x,int*y)

{【】

z=*x;*x=*y;*y=z;

return;}

main()

{intm,n,*t1,*t2;

scanf("%d,%d",&m,&n);

t1=&m;t2=&n;

【】

printf("%d,%d\n",m,n);}

24.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表带头结点)。请在下划线内填入正确内容。

structlink

{chardata;

structlink*next;};

structlink*p,*first;

intc=0;

p=first;

while(【】)

{c++;

p=【】;}

25.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

26.若有以下程序:

main()

{

inta[4][4]={{l,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},

{-31,32,-33,0}};

inti,j,s=0;

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

{

for(j=0;j<4;j++)

{

if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

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

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

28.数据库存管理系统常见的灵敏据模型有层次、网状和【】三种。

29.下列程序的循环次数是______。

x=2;

do

{x=x*x;}

while(!x);

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

31.以下程序通过函数SunFun求。这里f(x)=x2+1,由F函数实现。请填空。

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{returnx*x+1;}

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

main()

{

intp[7]={11,13,14,15,16,17,18);

inti=0,j=0;

while(i<7&&p[i]%2==1)

j+p[i++];

printf(“%d\n”j);

}

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

main()

{inta,b,c,x,y,z;

a=10;b=2;

c=!(a%b);x=!(a/b);

y=(a<b)&&(b>=0);

z=(a<b)||(b>=0);

printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);

}

34.若有说明chars1[]="Thatgirl",s2[]="isbeautiful";则使用函数strcmp(s1,s2)g,结果是______。

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

}

36.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

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

38.以下函数inverse的功能是使一个字符串按逆序存放,请填空。

inverse(charstr[])

{charm;

inti,j;

for(i=0,j=strlen(str);i<strlen(str)/2;【】,j--)

{m=str[i];

str[i]=【】;

【】;

}

}

39.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【】。

chara[10],b;scanf("a=%sb=%c",a,&b);

40.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。

三、1.选择题(20题)41.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}该程序的输出结果是

A.69825B.63825C.6385D.693825

42.若变量已正确定义,下列正确的程序段是()。

A.while(ch=getchar()=='\N')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

43.以下正确的程序段是

A.charstr1[]="12345",str2[]="abcdef";

B.charstr[10],*st="abcde";strcat(str,st);

C.charstr[10]=""。*st="abcde";strcat(str,st);

D.char*st1="12345",*st2="abcde";strcat(st1,st2);

44.函数rewind(fp))的作用是()。

A.使fp指定的文件的位置指针重新定位到文件的开始位置

B.将fp指定的文件的位置指针指向文件中所要求的特定位置

C.使fp指定的文件的位置指针向文件的末尾

D.使fp指定的文件的位置指针自动移至下一个字符位置

45.在c语言中,变量的隐含存储类别是()。

A.autoB.staticC.externD.无存储类别

46.下列程序的运行结果是______。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

47.在设计程序时,应采纳的原则之一是______。

A.程序结构应有助于读者理解B.不限制goto语句的使用C.减少或取消注解行D.程序越短越好

48.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

49.数据库技术的根本目标是要解决数据的()。

A.存储问题B.共享问题C.安全问题D.保护问题

50.以下4个选项中,不能看作一条语句的是

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

51.下列叙述中不正确的是

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

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

C.数据库设计是指设计一个能满足用户要求,性能良好的数据库

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

52.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}则循环体执行的次数是()。

A.1B.5C.9D.死循环

53.在ASCII代码表中每一个大写字母比它相应的小写字母的ASCII码()。

A.小32B.小64C.大32D.大1

54.C语言函数返回值的类型是由______决定的。

A.return语句中的表达式类型B.调用函数的主调函数类型C.调用函数时临时D.定义函数时所指定的函数类型

55.有以下程序:main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序运行后的输出结果是()。

A.44B.33C.34D.43

56.设有以下定义:inta=0;doubleb=1.25;charc='A';#defined2则下面语句中错误的是()。

A.a++;B.b++;C.c++;D.d++;

57.有下列程序段:intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是()。

A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

58.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的

A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法

59.以下合法的赋值语句是______。

A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)

60.若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是()。

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

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

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

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

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

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

A.32B.12C.21D.22

62.有定义语句:intm=1,n=2,P=5,x;,则以下选项中各程序段执行后,x的值不等于5的是()。

A.

B.

C.

D.

63.下列函数的功能是

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的长度

B.比较两字符串的大小

C.将字符串s复制到字符串t中

D.将字符串s连接到字符串t后

64.已定义c为字符型常量,则下列语句中正确的是()。

A)c=′97′B)c="97"

C)c=97D)c="a"

65.设有以下函数:

66.有以下程序:

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

A.357B.753C.369D.751

67.在c语言中,只有在使用时才占用内存单元的变量,其存储类型是()。A.aut0和Iegister

B.extern和register

C.aut0和static

D.static和register

68.(48)软件调试的目的是()

A.发现错误

B.改正错误

C.改善软件的性能

D.挖掘软件的潜能

69.

70.

71.有以下程序段以下关于程序段执行情况的叙述,正确的是()。

A.当产生的随机数n为0时结束程序运行

B.当产生的随机数n为4时结束循环操作

C.当产生的随机数n为1和2时不做任何操作

D.for循环语句固定执行8次

72.

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

#include<stdio.h>

main

{inti;

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

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

break;

}

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

}

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

73.

74.

75.栈和队列的共同特点是()。

A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点

76.

77.有如下程序

#include"stdio.h"

fun(inta,intb)

{ints;

s=a*(b/4);

printf("%d\n",s);}

main()

{inta=16,b=10;

fun(a,b);

}

该程序的输出结果是

A.16B.32

C.40D.80

78.

79.非空的循环单链表head的尾结点(由p所指向)应该满足

A.p->next==NULLB.p==NULLC.p->next=headD.p=head

80.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:求S的值。设例如,当k为20时,函数的值应为1.551759。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数,用来删除字符串中的所有*。例如,输入abc*de*f*gh,则输出为abcdefgh。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.A\n数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据在不同位置出现时应保持相同的值。

\n

2.B

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

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

5.A在函数funl()之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处开始到整个程序末结束。在函数funl()之内定义了两个变量a和b,并且分别初始化为字符ˊCˊ和ˊDˊ。

6.B[解析]&按位与,如果两个相应的二进制位都为1.则该位的结果值为1.否则为0.按位或两个相应的二进制位中只要有一个为1.该位的结果值为1.2的二进制为0000010.4的二进制为000000所以做或运算结果为0000110.该数与5即00000101做与操作结果为0000100.即4.

7.C

8.D

9.C解析:“p”是指针变量,指向一个地址:“*p”,为p指针所指向地址的内容。

10.D解析:在数据库系统中,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。由此可知,选项A.B与C中的说法都是错误的。

11.B

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

13.A

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

15.C本题考查逗号表达式。程序输出时输出一个%d,所以输出第一个a的值与后续无关。本题考查逗号表达式。本题的返回值是a+7,a=2*3=6,a+7=13(注意:本题问的是a的值,而不是程序的输出值)。

16.D声明data是结构体S的数组,初始化data[0].a=10,data[0].b=100,data[l].a=20,data[1].b=200。主函数中“p=data[1];”,即p.a=data[1].a,p.b=data[1].b,执行语句“printf(“%d\\n”,++(p.a));”。输出时,p.a先增1再输出,p.a=data[1].a=20,先增1等于21。故本题答案为D选项。

17.A

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

19.BC语言中,八进制数其开头必须是数字“0”,其数字包括0~7,因此选项A错误。浮点数据的指数形式表示中,字母e或E之后的指数必须为整数,所以选项C错误。选项D中,整型数据l0,000的表示形式是错误的。

20.B本题考查标准输入输出函数和循环语句。gets(s)函数的作用是将输入的字符读入字符串s,直到遇到回车。而scanf函数接收字符串时的结束标志为回车或者空格。因此选项B)不能,选项C)和选项D)中按字符逐个读入字符串s中,直到读入的字符是换行符为止,因此B正确。

21.SQRT(x2+y2)/(a+b)

22.关系模型关系模型

23.intz;sub(t1t2);

24.p!=NULLp->nextp!=NULL\r\np->next解析:结构体变量构成链表需要每个节点中都有一个指向下一个结点的指针,就像本题中的next指针一样。注意:掌握可以对链表进行的操作。

25.1对多(或1:N)1对多(或1:N)

26.5858解析:本题中处理二维数组元素用了两重循环,外循环变量i表示数组的行,内层循环变量j表示数组的列。在第二重循环中首先判断数组元素的值是否小于0,若是则处理该行的下一个元素;若不是则判断a[¨刚的值是否等于0,若等于0则退出内层循环开始处理下一行;其他情况下,把a[i][j]的值加到变量s中。所以本程序段的功能是把每行值为0的元素前面的所有大于0的元素值加到变量s中。

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

28.关系关系

29.11解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环;do…while语句的特点是先执行后判断,因此循环体至少执行1次.本程序中x=2不符合循环条件,所以只循环1次。

30.21

31.xx解析:考查函数的调用。函数调用时,实参与形参一致,函数F只有一个形参,故函数的调用为F(x)。

32.2424解析:本题考核的知识点是数组的定义和数组元素的引用。主函数中首先定义了一个长度为7的数组,然后用一个while循环引用数组的元素,当i大于7或者p[i]为偶数时,循环结束。显然当i=2时,p12]=14为偶数时,循环结束,此时j的值为j=p[0]+p[1]=24;

33.c=1x=Oy=Oz=1

34.-1-1解析:strcmp(s1,s2)函数的作用是:对字符数组s2和字符数组s1进行比较。如果s1<s2,则返回负数;如果s1==s2,则返回0;如果s1>s2,则返回正数。

35.efghefgh解析:函数ss返回形参s所指向的符号串的后半部分,故p='efgh'。

36.概念(或概念级)概念(或概念级)

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

38.i++或++istr[j-1]str[j-1]=mi++或++i\r\nstr[j-1]\r\nstr[j-1]=m解析:字符中逆序存放的算法是:将字符串中的第i个字符和第strlen(str)-i个字符交换。然后交换字符串中第i+1个字符和第(strlen(str)-i)-1个字符,故循环变量i的值应改变,且步长为1,所以[18]处应填i++;读程序可知,循环中通过中间变量m交换字符串中的第i个字符和第strlen(str)-i个字符,所以题中第一、二处应分别填写str[j-1]、str[j-1]=m。

39.a=123b=5

40.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。

41.C解析:该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char.p[2]后,程序中第一个循环for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p11)元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的内容为字符串'8254'。③程序中第二个循环中的循环体s=e*10+p[i][j]-‘0’;的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前p[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串结束标志,\\0,就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串'6937'中一个隔一个地取出字符,分别是‘6’和‘3’,然后从p[1]所指向的字符串'8254'中一个隔一个地取出字符,分别是‘8’和‘5’,同时经过转换和相加运算后,结果s中的值应该是6385,所以,正确答案是C)。

42.D解析:本题考查两个知识点:①C语言用'\\n'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。

43.C解析:本题考查了一维字符数组的定义和初始化。选项C中str[10]初始化为空,可以不必进行类似''的空赋值,字符数组若没有进行初始化赋值,默认的字符为空,并且定义完str数组后,应该用“,”分隔而不是“。”,所以选项C错误。

44.A解析:位置指针重返文件头函数rewind()的调用形式为:rewind(fp)。其中,“fp”是指向文件的文件型指针。rewind(fp)的功能是:使fp指定的文件的位置指针重新定位到文件的开始位置。

45.A解析:auto变量:无static声明的局部变量。用auto作存储类别的声明时,可以不写auto,存储类别隐含确定为auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用static声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用extern声明外部变量,外部变量即全局变量,可以用extern声明来改变全局变量的作用域,实际上,关键字'auto'可以省略,auto不写则隐含确定为'自动存储类别',属于动态存储方式。

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

47.A解析:程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理解。因此选项A是正确答案。程序滥用goto语句将使程序流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。因此选项B、C、D都是错误的。

48.C本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解答本题的关键是掌握while语句。

49.B解析:数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖的使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共,享数据的要求,就出现了数据库技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项B正确。

50.D解析:C语言的语句都用“;”结束。如果只有一个分号,称为“空语句”。用一对花括号把若干语句括起来构成一个语句组,称为“复合语句”,在语法上视为一条语句。因此选项A是一条语句。选项B是逗号表达式加分号构成的语句。选项C是一条if语句,该语句的if子句是一条空语句。选项D中“if(b==0)m=1;n=2;”是两个表达式语句。所以,4个选项中选项D符合题意。

51.B解析:B选项错误,原因是,数据库应该具有物理独立性和逻辑独立性,改变其一而不影响另一个。

52.B解析:因为在循环中存在一条这样的语句“if(n=4)break;”,所以循环变量n递增到4的时候循环会被强行结束。故一共循环了5次,每次n的值分别为0、1、2、3、4。应该选择B。

53.A解析:本题考查大小写字母的ASCII码值的关系。大写字母比它相应的小写字母的ASCII码小32。

54.D解析:函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型—致,如果不—致,则以函数类型为准,即函数类型决定返回值的类型。

55.C解析:字符数组即可以用{初始化列表}来初始化,也可以用一个字符串常量来初始化。但字符串常量系统会自动为其添加结束标记'\\0',故比实际长度要多一位,所以本题输出为34,应该选择C。

56.D解析:本题考核的知识点是在自加运算符的运算对象。自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#defined2定义了d为常数2,不能在对d进行自加运算.故选项D是个不正确的语句,所以,4个选项中选项D符合题意。

57.D解析:因为变量t的初始值等于1,经过第一次dowhile循环中,执行t=t-2这条语句一次,所以变量t的值为-1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,再执行t=t-2这条语句一次,所以变量t的值为-3,接着再判断关系表达式t!=n是否成立,如果关系表达式成立,执行第三次循环,否则退出循环。由此可知,所以只要输入变量n的值为负奇数,则一定会使t==n成立,则退出dowhile循环。

58.C解析:模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性这两个定性的度量标准。

59.B解析:本题中的答案A与D都缺少“;”,而答案C中,表达式是不能独立成为语句的,答案B使用了C语言的自减运算符它就相当于D=D-1,所以答案B为一赋值语句。

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

61.Cc语言中函数参数传递满足”单向传递”,只由实参传给形参,而不能由形参传给实参。Fun函数体内输出P的值为2,而并没有影响到fun函数外a的值,a的值在main函数体内依然为1,所以选项c)正确。

62.C选项A),执行else子句,执行后x=5。选项B),执行if子句,执行后x=5。选项D),执行if子句,执行后x=P=5。选项c),执行if子句,执行后X=2。

63.B在本题中,从题目给出的四个选项我们就可以知道,程序是对两个字符串进行操作。下面将具体分析程序。

程序首先定义两个字符型的指针变量s和t,从后面的程序中不难看出这两个指针变量应该用来对两个字符串进行操作处理。用循环来对字符串进行处理时,循环继续的条件是指针变量s和指针变量t所指向的结果值不为0,且两结果值相等。很显然,指针变量s和指针变量t所指向的结果值不为0,说明两字符串没有结束,只有结束时才为0,而结果值相等说明两字符相等,如果不等,循环则结束,此时程序将要求返回不等元素之间的差值,从差值的正负关系我们可以判断出哪个元素更大。综上所述,程序段的作用是用来比较两字符串的大小。因此,本题正确的答案选B。

64.C字符常量用一对单引号括起来,而且单引号之内只能有一个字符。

65.A赋值给函数指针,需要函数的参数一致,返回值一致,才可以赋值。选项A)正确。

66.A本题考查的是for循环与二维数组的定义和引用。当定义二维数组的初始化列表只使用一重花括号时,其中的每个值依次代表从第l行的第1个元素起,直到第l行满,接着代表第2行、第3行……的每一个元素。程序中的循环将循环3次,循环变量i的值分别是0、1、2,所以3次循环中输出的数分别是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后输出的结果为357。故应该选择A)。

67.Aaut0:函数中的局部变量动态地分配存储空间,数据存储在动态存储区中,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。register:为了提高效率。c语言允许将局部变量的值放在cPu中的寄存器中,这种变量叫“寄存器变量”,只有局部自动变量和形式参数可以作为寄存器变量。extern:外部变量(全局变量)是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件末尾。static:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放。根据以上分析可知,故本题答案为A)。

68.B注:与软件测试要对比着复习

69.A

70.D

71.An为。时执行exit(0);函数结束,所以产生的随机数为0时,函数结束。答案选择A)。

72.C

\n当if执行到第一个满足(i*i>一20)&&(i*i<=100)这个条件的i出现时,通过break语句跳出循环,执行下面的printf语句。

\n

73.A

74.B

75.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。

76.D

77.B题目给出的程序分为两个部分:主函数main和函数fun。main函数给出了整型变量a,b的初始值,并将整型变量a,b作为fun的实参。fun函数的功能是计算s的值并输出。对于整型变量,运算符“/”的作用是求出两个数除法所得商的整数部分。s=a*(b/4),a的初始值为16,b的初始值为10,b/4的结果为2,a*2得32。

78.D

79.C循环链表是一种链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。循环链表的操作和线性链表基本一致,差别仅在于算法中的循环条件不是p或p->next是否为空,而是它们是否等于头指针。选项A是线性链表尾结点满足的条件。

80.C

81.(1)错误:proc(i.ntk)

正确:doubleproc(intk)

(2)错误:returnS

正确:returns;

【解析】由主函数中的函数调用以及函数proc()中的re-turn语句可知,函数proc()的返回值类型为double。因此,“proc(intk)”应改为“doubleproc(intk)”。根据C语言中的语法规则,每一条语句都必须以分号结束。因此,应在语句“returns”后加上分号。

82.

【解析】根据题目中要求删除字符串中所有的*号,需要检查字符串中的每一个字符,将不是*号的字符放入原来的字符串中,形成新的字符串,最后在新的字符串的末尾加上结束符。

2021-2022年陕西省安康市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下面关于数据库系统中叙述正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

2.以下不正确的定义语句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5.3]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′\xa′,′\x8′};

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

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

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

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

5.有以下程序:

A.CDEFB.ABEFC.ABCDD.CDAB

6.程序运行后的输出结果是()。A.3B.4C.5D.6

7.一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。

A.2B.4C.6D.8

8.

9.若有定义floata=25,b,*p=&b;,则下列对赋值语句*p=a;和p=&a;的正确解释为()。

A.两个语句都是将变量a的值赋予变量p

B.*p=a是使p指向变量a,而p=&a是将变量a的值赋予变量指针p

C.*p=a是将变量a的值赋予变量b,而p=&a是使p指向变量a

D.两个语句都是使p指向变量a

10.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指()

A.数据与程序独立存放

B.不同的数据被存放在不同的文件中

C.不同的数据只能被对应的应用程序所使用

D.以上三种说法都不对

11.在顺序表{2,5,7,10,14,15,18,23,35,41,52}中,用二分法查找关键码12需做()次关键码比较。

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

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

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

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

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

13.在下列几种排序方法中,空间复杂度最高的是()

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

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

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

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

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

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

15.执行下列程序中的输出语句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13

16.有以下程序:#include<stdio.h>structS{inta,b;}data[2]=110,100,20,200};main(){structSp=data[1];printf(“%d\n”,++(p.a));}程序的运行结果是()。

A.10B.11C.20D.21

17.已知各变量的类型说明如下则以下符合C语言语法的表达式是()。A.a+=a-=(b=4)*(a=3)B.a=a*3=2C.x%(-3)D.y=f1oat(i)

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

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

19.以下选项中,合法的一组C语言数值常量是()。

A.028.5e-3-0xf

B.12.OXa234.5eO

C..1774c1.5Oabc

D.0x8A10,0003.e5

20.

二、2.填空题(20题)21.将代数式转换成程序设计中的表达式为【】。

22.数据模型是数据库系统中用于提供信息表示和操作手段的结构形式。实际数据库系统中所支持的数据模型主要有层次模型、网状模型和【】3种。

23.下面程序的功能是两个整数进行交换,请填空。

sub(int*x,int*y)

{【】

z=*x;*x=*y;*y=z;

return;}

main()

{intm,n,*t1,*t2;

scanf("%d,%d",&m,&n);

t1=&m;t2=&n;

【】

printf("%d,%d\n",m,n);}

24.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表带头结点)。请在下划线内填入正确内容。

structlink

{chardata;

structlink*next;};

structlink*p,*first;

intc=0;

p=first;

while(【】)

{c++;

p=【】;}

25.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

26.若有以下程序:

main()

{

inta[4][4]={{l,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},

{-31,32,-33,0}};

inti,j,s=0;

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

{

for(j=0;j<4;j++)

{

if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

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

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

28.数据库存管理系统常见的灵敏据模型有层次、网状和【】三种。

29.下列程序的循环次数是______。

x=2;

do

{x=x*x;}

while(!x);

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

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

31.以下程序通过函数SunFun求。这里f(x)=x2+1,由F函数实现。请填空。

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{returnx*x+1;}

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

main()

{

intp[7]={11,13,14,15,16,17,18);

inti=0,j=0;

while(i<7&&p[i]%2==1)

j+p[i++];

printf(“%d\n”j);

}

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

main()

{inta,b,c,x,y,z;

a=10;b=2;

c=!(a%b);x=!(a/b);

y=(a<b)&&(b>=0);

z=(a<b)||(b>=0);

printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);

}

34.若有说明chars1[]="Thatgirl",s2[]="isbeautiful";则使用函数strcmp(s1,s2)g,结果是______。

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

}

36.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。

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

38.以下函数inverse的功能是使一个字符串按逆序存放,请填空。

inverse(charstr[])

{charm;

inti,j;

for(i=0,j=strlen(str);i<strlen(str)/2;【】,j--)

{m=str[i];

str[i]=【】;

【】;

}

}

39.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是【】。

chara[10],b;scanf("a=%sb=%c",a,&b);

40.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。

三、1.选择题(20题)41.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}该程序的输出结果是

A.69825B.63825C.6385D.693825

42.若变量已正确定义,下列正确的程序段是()。

A.while(ch=getchar()=='\N')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);

43.以下正确的程序段是

A.charstr1[]="12345",str2[]="abcdef";

B.charstr[10],*st="abcde";strcat(str,st);

C.charstr[10]=""。*st="abcde";strcat(str,st);

D.char*st1="12345",*st2="abcde";strcat(st1,st2);

44.函数rewind(fp))的作用是()。

A.使fp指定的文件的位置指针重新定位到文件的开始位置

B.将fp指定的文件的位置指针指向文件中所要求的特定位置

C.使fp指定的文件的位置指针向文件的末尾

D.使fp指定的文件的位置指针自动移至下一个字符位置

45.在c语言中,变量的隐含存储类别是()。

A.autoB.staticC.externD.无存储类别

46.下列程序的运行结果是______。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

47.在设计程序时,应采纳的原则之一是______。

A.程序结构应有助于读者理解B.不限制goto语句的使用C.减少或取消注解行D.程序越短越好

48.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

49.数据库技术的根本目标是要解决数据的()。

A.存储问题B.共享问题C.安全问题D.保护问题

50.以下4个选项中,不能看作一条语句的是

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

51.下列叙述中不正确的是

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

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

C.数据库设计是指设计一个能满足用户要求,性能良好的数据库

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

52.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}则循环体执行的次数是()。

A.1B.5C.9D.死循环

53.在ASCII代码表中每一个大写字母比它相应的小写字母的ASCII码()。

A.小32B.小64C.大32D.大1

54.C语言函数返回值的类型是由______决定的。

A.return语句中的表达式类型B.调用函数的主调函数类型C.调用函数时临时D.定义函数时所指定的函数类型

55.有以下程序:main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序运行后的输出结果是()。

A.44B.33C.34D.43

56.设有以下定义:inta=0;doubleb=1.25;charc='A';#defined2则下面语句中错误的是()。

A.a++;B.b++;C.c++;D.d++;

57.有下列程序段:intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是()。

A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

58.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的

A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法

59.以下合法的赋值语句是______。

A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)

60.若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是()。

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

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

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

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

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

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

A.32B.12C.21D.22

62.有定义语句:intm=1,n=2,P=5,x;,则以下选项中各程序段执行后,x的值不等于5的是()。

A.

B.

C.

D.

63.下列函数的功能是

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的长度

B.比较两字符串的大小

C.将字符串s复制到字符串t中

D.将字符串s连接到字符串t后

64.已定义c为字符型常量,则下列语句中正确的是()。

A)c=′97′B)c="97"

C)c=97D)c="a"

65.设有以下函数:

66.有以下程序:

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

A.357B.753C.369D.751

67.在c语言中,只有在使用时才占用内存单元的变量,其存储类型是()。A.aut0和Iegister

B.extern和register

C.aut0和static

D.static和register

68.(48)软件调试的目的是()

A.发现错误

B.改正错误

C.改善软件的性能

D.挖掘软件的潜能

69.

70.

71.有以下程序段以下关于程序段执行情况的叙述,正确的是()。

A.当产生的随机数n为0时结束程序运行

B.当产生的随机数n为4时结束循环操作

C.当产生的随机数n为1和2时不做任何操作

D.for循环语句固定执行8次

72.

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

#include<stdio.h>

main

{inti;

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

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

break;

}

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

}

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

73.

74.

75.栈和队列的共同特点是()。

A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点

76.

77.有如下程序

#include"stdio.h"

fun(inta,intb)

{ints;

s=a*(b/4);

printf("%d\n",s);}

main()

{inta=16,b=10;

fun(a,b);

}

该程序的输出结果是

A.16B.32

C.40D.80

78.

79.非空的循环单链表head的尾结点(由p所指向)应该满足

A.p->next==NULLB.p==NULLC.p->next=headD.p=head

80.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:求S的值。设例如,当k为20时,函数的值应为1.551759。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编写一个函数,用来删除字符串中的所有*。例如,输入abc*de*f*gh,则输出为abcdefgh。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.A\n数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据在不同位置出现时应保持相同的值。

\n

2.B

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

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

5.A在函数funl()之前定义了全局字符变量a和b。这两个变量的作用域是从其定义处开始到整个程序末结束。在函数funl()之内定义了两个变量a和b,并且分别初始化为字符ˊCˊ和ˊDˊ。

6.B[解析]&按位与,如果两个相应的二进制位都为1.则该位的结果值为1.否则为0.按位或两个相应的二进制位中只要有一个为1.该位的结果值为1.2的二进制为0000010.4的二进制为000000所以做或运算结果为0000110.该数与5即00000101做与操作结果为0000100.即4.

7.C

8.D

9.C解析:“p”是指针变量,指向一个地址:“*p”,为p指针所指向地址的内容。

10.D解析:在数据库系统中,通过系统提供的映象功能,使数据具有两方面的独立性:一是物理独立性。即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性。即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。由此可知,选项A.B与C中的说法都是错误的。

11.B

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

13.A

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

15.C本题考查逗号表达式。程序输出时输出一个%d,所以输出第一个a的值与后续无关。本题考查逗号表达式。本题的返回值是a+7,a=2*3=6,a+7=13(注意:本题问的是a的值,而不是程序的输出值)。

16.D声明data是结构体S的数组,初始化data[0].a=10,data[0].b=100,data[l].a=20,data[1].b=200。主函数中“p=data[1];”,即p.a=data[1].a,p.b=data[1].b,执行语句“printf(“%d\\n”,++(p.a));”。输出时,p.a先增1再输出,p.a=data[1].a=20,先增1等于21。故本题答案为D选项。

17.A

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

19.BC语言中,八进制数其开头必须是数字“0”,其数字包括0~7,因此选项A错误。浮点数据的指数形式表示中,字母e或E之后的指数必须为整数,所以选项C错误。选项D中,整型数据l0,000的表示形式是错误的。

20.B本题考查标准输入输出函数和循环语句。gets(s)函数的作用是将输入的字符读入字符串s,直到遇到回车。而scanf函数接收字符串时的结束标志为回车或者空格。因此选项B)不能,选项C)和选项D)中按字符逐个读入字符串s中,直到读入的字符是换行符为止,因此B正确。

21.SQRT(x2+y2)/(a+b)

22.关系模型关系模型

23.intz;sub(t1t2);

24.p!=NULLp->nextp!=NULL\r\np->next解析:结构体变量构成链表需要每个节点中都有一个指向下一个结点的指针,就像本题中的next指针一样。注意:掌握可以对链表进行的操作。

25.1对多(或1:N)1对多(或1:N)

26.5858解析:本题中处理二维数组元素用了两重循环,外循环变量i表示数组的行,内层循环变量j表示数组的列。在第二重循环中首先判断数组元素的值是否小于0,若是则处理该行的下一个元素;若不是则判断a[¨刚的值是否等于0,若等于0则退出内层循环开始处理下一行;其他情况下,把a[i][j]的值加到变量s中。所以本程序段的功能是把每行值为0的元素前面的所有大于0的元素值加到变量s中。

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

28.关系关系

29.11解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环;do…while语句的特点是先执行后判断,因此循环体至少执行1次.本程序中x=2不符合循环条件,所以只循环1次。

30.21

31.xx解析:考查函数的调用。函数调用时,实参与形参一致,函数F只有一个形参,故函数的调用为F(x)。

32.2424解析:本题考核的知识点是数组的定义和数组元素的引用。主函数中首先定义了一个长度为7的数组,然后用一个while循环引用数组的元素,当i大于7或者p[i]为偶数时,循环结束。显然当i=2时,p12]=14为偶数时,循环结束,此时j的值为j=p[0]+p[1]=24;

33.c=1x=Oy=Oz=1

34.-1-1解析:strcmp(s1,s2)函数的作用是:对字符数组s2和字符数组s1进行比较。如果s1<s2,则返回负数;如果s1==s2,则返回0;如果s1>s2,则返回正数。

35.efghefgh解析:函数ss返回形参s所指向的符号串的后半部分,故p='efgh'。

36.概念(或概念级)概念(或概念级)

37.可行性研究可行性研究解析:软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用及

温馨提示

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

评论

0/150

提交评论