2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2021年江西省宜春市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

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

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

2.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序运行后的输出结果是()。A.b,bB.b,cC.a,bD.a,c

3.有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}程序的运行结果是()。A.2B.3C.7D.0

4.

5.有如下程序:

main

{inta=2,b=-1.c=2;

if(a<b)if(b<0)c=0;

elsec++;

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

}

该程序的输出结果是()。A.A.0B.1C.2D.3

6.

7.若有定义“doublex,y,*px,*py;”,执行了“px=&x;py=&y;”之后,正确的输入语句是()。

A.scanf(“%lf%le”,px,py);

B.scanf(“%f%f”,&x,&y);

C.scanf(“%f%f”,x,y);

D.scanf(“%lf%lf”,x,y);

8.下列链表中,其逻辑结构属于非线性结构的是()

A.双向链表B.带链的栈C.二叉链表D.循环链表

9.下面关于图的存储的叙述中,哪一个是正确的。________

A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关

B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关

C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关

D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关

10.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是

A.10,A,10B.10,a,10C.1O,a,0D.10,A,0

11.若有以下定义,则能使值为3的表达式是intk=7,x=12;

A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)

12.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

13.若有以下定义和语句:chars[10]="abcd!",*s2="\nl23\\";Drintf("%d%d\n",strlen(sl),strlen(s2));则输出结果是()。A.55B.105C.107D.58

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

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

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

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

15.在一个顺序队列中,队首指针指向队首元素的____位置。

A.前一个B.后一个C.当前D.最后一个

16.在黑盒测试方法中,设计测试用例的主要根据是A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图

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

A.图的遍历是从给定的源点出发每一个顶点仅被访问一次

B.图的深度遍历不适用于有向图

C.遍历的基本算法有两种:深度遍历和广度遍历

D.图的深度遍历是一个递归过程

18.下面哪些使用的不是贪心算法()

A.单源最短路径中的Dijkstra算法

B.最小生成树的Prim算法

C.最小生成树的Kruskal算法

D.计算每对顶点最短路径的Floyd-Warshall算法

19.

有以下程序:

main

{intx,i;

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

{x=i:

if(x%2=0)

if(x%3=0)

if(X%7=0)

printf(”%d,i)”;

}

}

输出结果是()。

A.28B.27C.42D.4l

20.下列程序的输出结果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8

二、2.填空题(20题)21.下列程序的运行结果为【】。

main(){inti=lO,*p,*func();

p=&i;

printf("%d",*p);

p=func(p);

printf("%d\n",*p)

}

int*func(px);

int*px;

{inttemp=20;

px=&temp;

return(px);

}

22.下列循环的循环次数是______。

ihtk=2;

while(k=0)

printf("%d",k);

k--;

printf("\n");

23.对有14个结点的完全二叉树的结点以从上到下、从左到右的顺序进行编号后,序号最小的叶结点的序号【】。

24.\13'在内存中占1个字节,"\12"在内存中占______个字节。

25.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisNO.”。空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES,\n");

case'n':

case'N':printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnterachar'y','Y'or'n','N':");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

26.程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

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

fun(intx,inty,intz)

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

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

28.在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。常见的数据模型有3种,它们分别是层次模型、网状模型和()。

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

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

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

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

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

}

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

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

33.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。

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

#include<stdio.h>

main()

{inta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

elsec++;

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

}

35.执行下列语句段后,x的值是______。

int*p,x;

x=100;

p=&x;

x=*p+50;

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

main()

{imti,sum;

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

sum+=i;

printf("%d",sum);

}

37.函数check用来判断字符串s是否是“回文”(顺读和倒读都一样的字符串为“回文”,如abeba)。是则函数返回值1,否则返回值0,请填空。

intcheck(char*s)

{

char*p1,*p2;intn;

n=strlen(s);

p1=s;

p2=【】;

while(p1<p2)

{

if(*p1!=*p2)break;

else{p1++;p2--;}

}

if(【】)return0;

elsereturn1;

}

38.以下程序中select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。

#defineN3

#defineM3

select{inta[N][M],int*n;

{inti,j,row=l,eolum=l;

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

forj=0;j<M;j++)

if(a[i][j]>a[row][colum]){row=i;colum=j:}

*n=______;

return______;

}

main()

{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj

max=select(a,&n);

printf("max=%d,line=%d\n",max.n;

}

39.以下程序的功能是从键盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。

#include<stdio.h>

main()

{floatx,amax,amin;

scanf("%f",&x);

amax=x;amin=x;

while(【】)

{if(x>amax)amax=x;

else

if(【】)amin=x;

scanf("%f",&x);

}

printf("\namax=%f\namin=%f\n",amax,amin);

}

40.设a、b、c为int型变量,且a=10、b=5、c=1,则执行完以下语句,a的值变为【】。

a/=10-(++b)-(c--);

三、1.选择题(20题)41.若有以下程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;printf("%d\n",a[2]);}上面程序的输出结果是()。

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

42.C语言中,文件组成的基本单位为()。

A.记录B.数据行C.数据块D.字符序列

43.下列叙述中,正确的是

A.用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系

B.用E-R图只能表示实体集之间一对一的联系

C.用E-R图只能表示实体集之间一对多的联系

D.用E-R图表示的概念数据模型只能转换为关系数据模型

44.在C语言中,运算对象必须是整型数的运算符是()。

A.%B.\C.%和\D.**

45.在C语言中,函数中变量的隐含存储类别是______。

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

46.下列合法的变量名是()

A.#33B.3D64C.a>bD.sum

47.以下有关宏替换的叙述不正确的是()。

A.双引号中出现的宏名不替换B.使用宏定义可以嵌套C.宏定义仪仪是符号替换D.宏名必须用大写字母表示

48.下列选项中,当x为大于1的奇数时,值为0的表达式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

49.有以下程序main(){ihta[]{2,4,6,9,10},y=0,x,*p;p=&a[1];for(x=1);X<3;x++)y+=p[x];printf("%d\n",y);程序运行后的输出结果是

A.10B.11C.14D.15

50.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序运行后的输出结果是______。

A.运行后报错B.66C.611D.510

51.有以下程序voidss(char*s,chart){while{*s)if(*s==t)*s-t-'a'+'A';S++;main(){charstrl[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序运行后的输出结果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

52.以下程序运行后,a的值是()main(){inta,k=4,m=6,*pl=&k,*p2=&m;a=p1=&m;printf("%d\n",a);}

A.4B.1C.0D.运行时出错,a无定值

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

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

54.下列关于单目运算符++、――的叙述中正确的是______。

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

55.以下与函数fseek(fp,0L,SEEK_SE乃有相同作用的是()。

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

56.表达式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8

57.下面程序的输出结果是

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

A.0B.1C.10D.9

58.若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

59.以下程序的输出结果是______。#include<stdio.h>structstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%s\n",(*p).name);}main(){structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};fun(students+2);}

A.ZhangB.ZhaoC.WangD.18

60.下列程序的运行结果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}

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

四、选择题(20题)61.

62.

能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。

A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)

B.(x>=1)

C.

D.(x<2=10)

E.

F.(x>=100)

G.

H.(x<=1l0)

I.(gt;=1)&&(x<=10)

J.

K.(gt;=100)&&(x<=110)

63.有以下程序:

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

A.4B.10C.14D.6

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

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

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

A.一种数据的逻辑结构可以有多种存储结构

B.数据的存储结构与数据的处理效率无关

C.数据的存储结构与数据的处理效率密切相关

D.数据的存储结构在计算机中所占的空间不一定是连续的

66.main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}假定以上程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入PROGABCDEFGHIJKL,则输出结果为______。

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

67.以下选项中,不能作为合法常量的是()。

A.1.234e05B.1.234e+5C.1.234e0.5D.1.234e0

68.软件设计中划分模块的一个准则是()。

A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦台

69.

70.源程序的文档不包括()。

A.符合号名的命名要有实际意义B.正确的文档形式C.良好的视觉组织D.正确的程序注释

71.设pl和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是()。

A.k=*pl+*p2B.p2=k;C.pl=p2;D.k=*pl*(*p2.;

72.有以下程序:

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

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

73.

74.已知字符‘A’的ASCII代码值是65,字符变量cl的值是‘A’,c2的值是‘D’。则执行语句printf(”%d,%d”,cl,c2—2);的输出结果是()。

A.65,68B.A,68C.A,BD.65,66

75.下列叙述中,不属于软件需求规格说明书的作用的是()

A.便于用户,开发人员进行理解和交流

B.反映出用户问题的结构,可以作为软件开发工作的基础和依据

C.作为确认测试和验收的依据

D.便于开发人员进行需求分析

76.下列程序的输出结果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}

A.123B.234C.223D.233

77.有以下程序

78.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系

79.若变量已正确定义并赋值,以下符合C++语言语法的表达式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

80.

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。例如,当S所指字符串为“ABCD”时,t所指字符串中的内容应为“ABCDDCBA”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.编写函数fun,其功能是:将所有大于1小于整数m的非素数存人XX所指数组中,非素数的个数通过k返回。

例如,若输入17,则应输出:46891012141516。注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

参考答案

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

2.A++a与a++的区别是前者先自加再运算,后者是先运算后自加。

3.A因为fun(intx)是一个递归函数。在主函数中fun(7)经过3次递归调用。其过程可以描述为fun(7)=7-fun(5)=7-(5*fun(3))=7*(5*(3*fun(1)))=7-(5-(3-3))=7-5=2。最后的输出结果为2。故本题答案为A选项。

4.C

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

6.A

7.A因为x和y都是double型数据,输入时的格式字符应为%lf,B、C选项错误。D选项中的“scanf(“%lf%lf”,x,y);”应为“scanf(“%lf%lf”,&x,&y);”。故本题答案为A选项。

8.C数据的逻辑结构是描述数据之间的关系,分两大类:线性结构和非线性结构。线性结构是n个数据元素的有序(次序)集合,指的是数据元素之间存在着“一对一”的线性关系的数据结构。常用的线性结构有:线性表,栈,队列,双队列,数组,串。非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后驱。常见的非线性结构有:树(二叉树等),图(网等),广义表。

9.A

10.A解析:本题考核的知识点是scallf()函数输入格式。格式字符“%d”用于输入整数,“%C”用来输入字符。在输入时,系统把第一个10作为整数10赋给m,把随后的A作为字符赋值给c,后面的10作为整数赋给n,最后输出的结果为10,A,10所以,A选项为所选。

11.D解析:运算符“%”的两侧都应该是整型数。另外,本题需要掌握的知识点是:x%=k,等价于x=x%k。注意:强制类型转换表达式。

12.B

13.A\\n和\\\\分别为转义字符,各占据一个字符的位置。

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

15.A

16.A【答案】:A

【知识点】:黑盒测试

【解析】:黑盒测试也称功能测试或数据驱动测试,它完全不考虑程序内部的逻辑结构和内部特征,只着眼于程序的外部结构,主要用来检查程序功能是否按照需求规格说明书的规定正常使用。故选A。

17.C

18.D

19.C只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择C选项。

20.A本题考查switch语句。当i一1时,执行case1,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当i=2时,执行case2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3=10”;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a—a+2—13,a—a+3一l6:当i=4时,执行default,a=a+3=19,结束循环。

21.1020

22.00解析:解答本题需要注意表达式“k=0”,它是赋值表达式而不是关系表达式,不论k为何值,表达式k=0总会使k为0,所以不能进入循环。

23.8

24.22解析:'\\13':表示八进制数13表示的ASCII字符,是一个字符,占一个字节;而”\\12”是个字符串,除了八进制数12表示的ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志“'\\0'”,所以共有2个字节。

25.getchargetchar解析:题中要求根据输入的字符调用函数YesNo来判断输入的字符是y(Y)还是n(N),字符的输入可用字符输入函数getchar。函数YesNo用来判断一个字符是y(Y)还是n(N),主要用了一个switch多分支结构来比较输入字符与字符'y','Y'、,'n','N'是否相等来实现的。注意:用于字符串处理的函数。

26.静态分析静态分析解析:程序测试分为静态分析和动态测试。其中,静态分析是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

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

28.关系模型关系模型解析:在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的反映,它分为两个阶段:把现实世界中的客观对象抽象为概念模型;把概念模型转换为某一DBMS支持的数据模型。常见的数据模型有3种,它们分别是层次模型、网状模型和关系模型。

29.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。

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

31.1010解析:整型指针最初被赋的值是数组arr的头指针,即指向数组的第一个元素30,p++后,指针指向数组的下一个元素,即*p=arr[1]=25,在执行*(p+3)时,则相当于a[1+3],即10。因此,输出应为100。

32.282,8解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。这里程序初始时a=1,b=10,经过操作b-=a;a++后b=9,a=2,判断条件b--<O不成立,退出循环,但b的值被减1,因此结果为:a=2,b=8。

33.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。

34.22解析:分析程序,a=2,b=-1,c=2时,if语句的表达式a<b不成立,不再往下判断,直接退出if语句,执行后面的输出语句,程序结束。在这个程序中a、b、c的值没做任何改变。

35.150150解析:本题先给变量x赋初始值100,然后将指针p指向变量x,*p是取指针p所指地址的内容,即100,所以x=100+50=150。

36.无定值无定值解析:for(i=1;i<7;i++)决定了循环次数为6次,每次执行的操作是Sum+=i,但由于sum没有初始化,并不知道sum的初值是多少,所以结果无定值.

37.s+n-1p1<p2s+n-1\r\np1<p2解析:判断是否“回文”字符串,应该使用两个字符型指针,一个从前往后遍历字符串,另一个从后往前遍历字符串,直到它们中途相遇,如果每次两个指针所指的字符都相同,则为“回文”字符串。程序中已经使p1=s,即指向字符串的第一个字符了,所以p2应该指向s的最后一个字符,故第一空应填s+n-1。比较两个指针时,如果有一次不相同,则跳出循环,因为此时已可肯定不是“回文”字符串。如果是while循环的条件p1<p2不满足时自然结束的循环,则每次比较都是相同的,两个指针是中途相遇了才结束比较。两种情况的区别就是pl<p2是否成立。故第二空应该填p1<p2。

38.rowa[row][colum]row\r\na[row][colum]解析:通过对题意的分析,在select()函数中,变量row的作用是用来记录最大元素的行下标,column的作用是用来记录最大元素的列下标。程序中通过一个循环求得数组元素中最大值的行列下标,分别存放在变量row和colmnn中,根据题意,应该把行下标赋值给形参指针变量n指向的变量,把最大值a[row][columa]作为函数值返回。

39.x>=0x<aminx>=0x<amin解析:本题先从键盘接受数值,并分别赋给amax(用于保存最高成绩)和amin(用于保存最低成绩),然后通过while循环控制是否结束输入,并且通过if语句来给amax和amin赋值。

40.3

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

42.D解析:C语言处理文件的方法是将文件以数据流的形式处理,不是将文件作为一个结构集合来处理,所以,C语言中文件的组织方式是无结构的字符序列方式。

43.A解析:两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。

44.A解析:在C语言中,“%”运算符两侧的运算数必须是整型。

45.A解析:函数中变量的存储类别包括auto,static,extern,其中auto为隐含存储类别,static为静态存储类别,register是寄存器存储类别。

46.D

47.D解析:本题考查宏替换的规则。宏替换分为简单的字符替换和带参数的宏替换两类。使用宏时应注意以下几点:①定义仅仅是符号替换,不是赋值语句,因此不做语法检查;②为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。

48.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项D)等于关系表达式的结果为假,即等于0。

49.C解析:题目首先申请了一个整型数组a,并让一个指针变量p指向数组的元素arl)。然后使用一个for循环,循环变量x从1递增到2,即循环两次.在循环体中每次让y累加p[x]的值,而p[x)写成指针形式就是*(p+x)。所以两次y加的值分别是a[2]和a[3]的值,故最终输出6+8=14。应该选择C。

50.A解析:本题考核的知识点是通过指针引用数组的元素的方法.本题中首先定义了一个一维数组a并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。所以,4个选项中选项A符合题意。

51.B解析:本题中的函数ss()有两个参数,一个是字符型指针变量s,另一个是字符型变量t在函数中通过一个while循环,在循环中一次取出s指向的字符串并判断它是否和t中存放的字符相同,若相等,则执行“s=t-'a'+'A':”(若是小写字母,则把它转换成大写字母)语句。在主函数中执行函数调用ss(strl,c),很显然是把str1数组中所有字符“d”变成大写字母,其他字符不变。所以4个选项中B正确。

52.C

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

①形参定义成数组;

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

③形参定义为指针变量。

54.D解析:本题考查++与--运算符的问题。自增运算符++与自减运算符--的运算对象只能是变量,不能是表达式或常量,变量的数据类型可以是int、char、float和double型,其结果是将变量的值加1或减1。

55.D解析:题目中fseek(fp,0L,SEEK_SET)的作用将文件指针定位到文件开始。feof(fp)的作用是判断文件指针是否已到文件结尾,因此选项A不对。ftell(fp)的作用是获取当前文件指针的位置,因此选项B不对。fgetc(fp)的作用是从文件中读取一个字节,因此选项C不对。rewind(fp)的作用是将文件指针重定位到文件开头,所以应该选择D。

56.D解析:*、/和%的优先级要高于+和—,同级别的运算符从左至右运算。所以本题首先计算5/2和5%2,虽然我们都知道5/2的结果应该是2.5,但C语言中规定了两个整数相除的结果为整数,而且是截尾取整,所以5/2的结果是2;5%2表示的是5除以2所得的余数,其结果为1。计算完后,表达式变为3.6-2+1.2+1,从左至右计算不难得出结果为3.8,故应该选择D。

57.C解析:此题考查了指针引用一维数组元素的方法。*p+9因为运算符'*'的优先级高于'+',所以输出结果为p指向的元素1,然后加9,值为10。

58.B解析:本题主要考查结构指针:p=&st,访问结构体的成员,可以通过结构变量访问,即st.i,也可以用等价的指针形式,即(*p).i和p->i。

59.B

60.C解析:本题考查ifelse语句。第一个if语句,先判断条件,发现a<b条件成立,执行下列的语句;第二个if语句,先判断条件,发现b<0条件不成立,则执行与其配对的else语句,c+=1,得c=5。

61.C

62.C

\n本题考查逻辑与(&&)和逻辑或(||)运算符的使用。x值在[1,10]之间,C语言中可以写成x值在[100,11O]之间,C语言表达式应写成“(x>=100)&&(x>=110)”;[1,1O]和[100,110]满足任意条件就可以,所以是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:(x>=1)&&(x<=10)&&(x<=110)。

\n

63.B函数的功能是求数组所有元素的和。递归表示为a[3]+a[2]+a[1]+a[0]+f(t,0)=10。

64.CC。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

65.BB。【解析】数据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素所占的存储空间不一定是连续的。数据的存储结构与数据的处理效率密切相关。

66.C解析:本题主函数带有两个参数,一个int型变量argc,另一个是char型的一维一级指针数组argv。当主函数被执行时,系统自动将根据命令行的情况,分别给主函数的两个参数赋值。Argc中存放命令行中命令字和参数的总和的个数,argv用来存放命令行中命令字和所有参数的字符串的,并规定avgv[0]存放命令字字符串,argv[1]用来存放第一个参数的字符串,argv[2]用来存放第2个参数的字符串,依此类推。题中argc的值是2,执行完--argc后为1,输出argv[1],此数组存在第一个参数的字符串ABCDEFGHIJKL。

67.CC语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项c)中,e(E)后面的指数是小数,所以不合法。

68.B一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模

温馨提示

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

评论

0/150

提交评论