2022年贵州省安顺市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2022年贵州省安顺市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2022年贵州省安顺市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2022年贵州省安顺市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2022年贵州省安顺市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

2022年贵州省安顺市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.若已包括头文件且已有定义charsl[18],s2={"ABCDE")和inti,现要将字符串”ABCDE”赋给sl,下列语句错误的是()。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]

2.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是().

A.地址传递B.单向值传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定

3.已知大写字母A的ASCII码是65,小写字母a的ACSII码是97。下列能将变量C中的大写字母转换为对应小写字母的语句是()。

A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'

4.

5.下面程序的时间复杂为()A.O(n)B.O(n^2)C.O(n^3)D.O(n^4)

6.计算机识别.存储和加工处理的对象被统称为_________

A.数据B.数据元素C.数据结构D.数据类型

7.

8.下面哪个不是用来解决哈希表冲突的开放地址法()

A.线性探测法B.线性补偿探测法C.拉链探测法D.随机探测法

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

A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上3种说法都不对

10.有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序的运行结果是()。

A.1B.41C.2D.331

11.程序执行后的输出结果是()。A.321.cbaB.123.abcC.abc,123D.1bc,a23

12.在一个有头结点的链队列中,假设f和r分别为队首和队尾指针,则插入s所指的结点的运算是()。

A.f->next=s;f=s;

B.r->next=s;r=s;

C.s->next=r;r=s;

D.s->next=f;f=s;

13.设二叉树的中序序列为BCDA,前序序列为ABCD,则后序序列为()。

A.CBDAB.DCBAC.BCDAD.ACDB

14.

15.

16.在循环队列中,若front与rear分别表示对头元素和队尾元素的位置,则判断循环队列空的条件是()。

A.front==rear+1B.rear==front+1C.front==rearD.front==0

17.有以下程序:#include<stdio.h>main(){chars[]="012xy\O8s34f4w2‘;inti;n=0;,for(i=0;s[i]!=0;i++)if(s[i]>=0s[i]<=9)n++;printf("%d\n",n);}程序运行后的输出结果是()。A.0B.3C.7D.8

18.有以下程序程序执行后的输出结果是()

A.60B.50C.45D.55

19.

20.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是

A.P的值不等于12345并且n的值小于3

B.P的值等于12345并且n的值大于等于3

C.P的值不等于12345或者n的值小于3

D.P的值等于12345或者n的值大于等于3

二、2.填空题(20题)21.下列程序段的输出结果是______。

intn='c';

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("morning");

case'd':printf("class");

}

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

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

}

23.若有以下程序:

main()

{int,p,a=5;

if(P=a!=0)

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

else

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

}

执行后输出结果是【】。

24.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

25.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于【】。

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

#definePR(a)printf("%d\t",(int)(a))

#definePRINT(a)PR(a);printf("ok!")

main()

{inti,a=1;

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

PRINT(a+i);

printf("\n");}

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

main()

{

intp=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

28.表示""整数x的绝对值大于5""时值为""真""的C语言表达式是【】。

29.以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输人数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next=NULL).

#include<stdio.h>

structlist{intdatd;structlist*next;};

【】creatlist()

{structlist*p,*q,*ph;

inta;

ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;

printf("Inputanintegernumber,enter-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{

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

p->data=a;

q->next=p;

【】=p;

scanf("%d",&a);

}

p->next='\0';

return(ph);

}

main()

{

structlisthead;

head=creatlist();

}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

31.有下列程序,功能是把输入的+进制长整型数以+六进制的形式输出,完成程序

#include"stdio.h"

main()

{charb[17]={"0123456789ABCDEF"};

intc[50],d,i=0,base=16;

longn;

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

do{c[i]=n%base;i++;n=【】;}

while(n!=0);

for(--i;i>=0;--i)

{d=【】;printf("%c",b[d]);}

printf("H\n");}

32.以下程序输出的结果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"}1,k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

33.数据的【】结构在计算机存储空间中的存放形式称为数据的存储结构或物理结构。

34.strcmp函数的功能是【】。

35.下列程序执行后输出的结果是【】。

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

37.若按功能划分,软件测试的方法通常分为______测试方法和黑盒测试方法。

38.结构化设计主要分为系统设计和模块设计,【】的任务是决定系统的模块结构。

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

typedefunionstudent

{

charname[10];

longsno;

charsex;

floatscore[4];

}STU;

main()

{

STUa[5];

printf("%d\n",sizeof(A));

}

40.在C语言中,while和do…while循环的主要区别是______的循环至少被执行一次。

三、1.选择题(20题)41.若程序有宏定义:#defineN100则以下叙述中正确的是______。

A.宏定义中定义了标识符N的值为整数100

B.在编译程序对C源程序进行预处理时用100替换标识符N

C.对C源程序进行编译时用100替换标识符N

D.在运行时用100替换标识符N

42.若变量已正确定义,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\h",i);其输出结果是()。

A.0,0B.0,1C.1,1D.程序进入无限循环

43.有以下函数intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能的叙述正确的是A.求字符串s的长度B.比较两个串的大小C.将串s复制到串tD.求字符串s所占字节数

44.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

45.已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序______。maini(){chara='A';intb=20;printh("%d,%o",(a=a+a,a+b,b),a+'a'-'A',b);}

A.表达式非法,输出零或不确定值

B.因输出项过多,无输出或输出不确定值

C.输出结果为20,141

D.输出结果为20,141,20

46.C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式是______。

A.由实参传给形参,再由形参传回给实参B.地址传递C.单向值传递D.由用户指定传递方式

47.设已定义i和k为int类型变量,则以下for循环语句______。for(i=0;k=-1,k=1;i++,k++)printf("****\n");

A.判断循环结束的条件不合法B.是无限循环C.循环一次也不执行D.循环只执行一次

48.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)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,10);for(i=0;i<10;i++)printf("%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.9,2,7,4,5,6,3,8,1,10,

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

49.有下列程序:

main()

{intx=0;

inty=0;

while(x<7&&++y)

{y--;

printf(:%d,%d",y,x);

}

程序的输出结果是()。

A.0,7B.7,7C.0,6D.1,6

50.以下只有在使用时才为该类型变量分配存储单元的存储类说明是______。

A.auto和static

B.auto和register

C.register和static

D.extern和register

51.若有结构体定义:structstu{intnum;charsex;intage;}a1,a2;则下列语句中错误的是()。

A.printf("%d,%c,%d",a1);

B.a2.age=a1.age;

C.a1.age++;

D.a1.num=5;

52.阅读下面程序段,则执行后的结果为#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}

A.64B.8C.56D.0

53.结构化程序设计的一种基本方法是()

A.筛选法B.递归法C.归纳法D.逐步求精法

54.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);程序的运行结果是()。

A.12300B.123C.1D.321

55.有以下程序:inta=3;main(){ints=0;{inta=5;s+=a++;)s+=a++;printf('%d\n',s);}程序运行后的输出结果是()。

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

56.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构

57.以下程序的输出结果是______。fun(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fun(&p,a);printf("%d\n",*p);}

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

58.以下程序段的输出结果是chars[]=“\\141\141abc\t”;printf(“%d\n”,strlen(s));

A.9B.12C.13D.14

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

A.一个算法的空间复杂度大,则其时间复杂度也必定大

B.一个算法的空间复杂度大,则其时间复杂度必定小

C.一个算法的时间复杂度大,则其空间复杂度必定小

D.上述三种说法都不对

60.c语言规定,在一个源程序中,main函数的位置()。

A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后

四、选择题(20题)61.

62.设有定义:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若变量均已正确赋初值,则以下语句中错误的是()。

A.t1=t2;

B.t2.num1=tl.numl;

C.t2.mark=tl.mark;

D.t2.num2=tl.num2;

63.下面叙述正确的是_______。

A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数

C.算法的有穷性是指算法必须能在执行有限个步骤之后终止

D.算法的时间复杂度是指执行算法程序所需要的时间

64.

65.

66.

67.

68.下列关于信息系统的叙述中,错误的是()。

A.广播电视是一种双向的、点到多点的信息交互系自

B.网络聊天是一种双向的,以信息交互为主要目的系统

C.电话是一种双向的、点对点的、以信息交互为主要的的系统

D.雷达是一种以感测和识别为主要目的的系统

69.在满足实体完整性约束的条件下()。

A.一个关系中应该有一个或多个候选关键字

B.一个关系中只能有一个候选关键字

C.一个关系中必须有多个候选关键字

D.一个关系中可以没有候选关键字

70.有以下程序

main()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)

puts(ps);

}

程序的运行结果是

A.yzB.zC.zD.x

xyzyzyzxy

xyzxyz

71.

72.

73.设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是()。

A.x++;printf("%dkn",x);

B.n=++x;printf("%d\n",n);

C.++x;printf("%d\n",x);

D.n=x++;printf("%6d\n",n);

74.有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序运行后的输出结果是

A.12B.15C.16D.20

75.

76.(20)数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计

B.模式设计和内模式设计

C.内模式设计和物理设计

D.结构特性设计和行为特性设计

77.

78.当变量c的值不为2、4、6时,值为“真”的表达式是()。

79.已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断e中的字符是否为大写字母的表达式是()。

A.isupper(c)

B.A<=c<=Z

C.A<=cc<=Z

D.c<=(z-32)(a-32)<=c

80.

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1,1,2,3,5,8,13,21,…例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将a、b两个两位正整数合并成一个新的整数放在c中。合并的方式是将a中的十位数和个位数依次放在变量c的千位和十位上,b中的十位数和个位数依次放在变量c的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。注意:部分源程序给出如下。请勿改动主函数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.C数组名sl是代表sl数组首地址的地址常量,因为“=”左边不能出现常量,所以s1="ABCDE"的方法是错误的。

2.B

3.B根据ASCII码可知大写字符A与小写字符a的ASCIl码相差32,而D中应该是加上'a',选项A和C左侧的表达式都是大写字符C与大写字符A的差与'a'的ASCIl代码的和就是小写字符c的ASCII代码。

4.B

5.B

6.A

7.D

8.C

9.D程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。设计算法时要考虑到数据结构的设计,但是不仅仅是要考虑到数据结构的设计,还要考虑到其他的程序结构的问题。设计算法时不能只考虑结果的正确性和可靠性,还需要考虑到程序的时间冗余度等方面。所以答案选择D。

10.Aelse总是与离它最近的if配对,所以当第1个if语句的判断条件不成立时,不再执行第2个if语句以及与第2个if语句配对的else语句,而是直接执行“x++”,输出1。故本题答案为A选项。

11.D[解析]字符串是一个特殊的数组,所以按照数组的规则,s1应该指向的是数组的首地址,即"abc的第一个字符的地址。s2指向的是"123"的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符ai和1的内容,所以打印输出为D)。

12.B

13.B二叉树的前序序列为ABCD,由于前序遍历首先访问根节点,可以确定该二叉树的根节点是A。再由中序序列为BCDA,可知以A为根节点的该二叉树只存在左子树,不存在右子树,故后序序列为DCBA。本题答案为B选项。

14.D

15.B

16.C

17.B考查简单的C程序数组和循环。for循环是指i=0,如果s/[3]!=0,则i自动加1。if循环指的是s[i]中的元素大于等于0且小于等于9,则n加l,所以答案为B。

18.A函数fun的功能是求数组的n个元素之和。fun(a,5)=15。由于s岫是静态局部变量,所以保持l5不变,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。

19.A

20.D解析:本题考查的知识点是do-while循环结构循环执行条件的判断.使用do-while语句必须注意以下几点:

先执行语句,后判断表达式。所以,无论一开始表达式的值为“真”还是“假”,循环体中的语句至少执行一次,这一点与while不同,

如果do-while语句循环体部分是由多个语句组成,则必须用花括号括起来,使其形成复合语句。

C语言中的do—while语句是在表达式“真”时重复执行循环体。

在本题中,循环执行判断条件为while后面括号里的表达式即p!=12345&&n<3(意思为p不等于12345且n小于3)是否为“真”,由此可得循环结束的条件为:p大于12345或者p小于12345又或者n大于等于3。选项A的意思是:p的值不等于12345并且n的小于3和while后面括号里的表达式等价是循环执行的条件而不是循环结束的条件,所以选项A不正确;选项B的意思是:p的值等于12345并且n的值大于3,不是循环结束的条件一个子集,所以选项B不正确;选项C的意思是:p的值不等于12345或者n的值小于3前一半是结束条件的子集,后一部分不是结束条件,所以选项C不正确;选项D描述的意思是:p的值等于12345或者你的大于等于3是结束条件的子集,所以选项D满足题意。所以4个选项中D正确。

21.morningclassmorningclass解析:本题考查了两个知识点:①“++,--”运算后缀形式是先使用变量原来的值,使用完后再使其增1或减1;②在switch语句中,当n='c'时,执行“case'c'”,输出morning;因为此句中没有break语句,因此接着执行“case'd':”,输出class,最终输出结果为morningclass。

22.82.25

23.11解析:首先计算if语句后面的表达式,根据运算符的优先级可知,先算“a!=0”,该值为1,再把1赋值给p,结果为1(真),执行其后的printf语句,输出的值为1。

24.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。

25.格式化模型格式化模型解析:层次模型与网状模型属于格式化模型。

26.123ok!123ok!解析:本题主要考查了printf函数用在了宏替换中。宏替换不是函数调用,只是一种简单的字符替代。所以本题中PRINT(a+i)展开为:printf(“%d\\t”,(int)(a+i)),当i=0时,输出1;当i=1时,输出2;当i=2时;输出3;for循环结束后输出ok!。

27.33解析:条件表达式的一般形式为;表达式1?表达式2:表达式3条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值;若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。30/3=10>0,所以执行p/10,结果为3。

28.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整数x的绝对值大于5,则x大于5或x小于5,用C语言表示即为:x>5||x<-5或者x<-5||x>5。故本题答案为;x>5||x<-5或者x<-5||x>5。

29.structlist*q

30.7979解析:因为在调用子函数时进行的是数值传递,调用子函数并不能改变实参的值,所以经过调用子函数,c、d的值并没有发生变化还是原来的值。

31.n/base或n/16c[i]n/base或n/16\r\nc[i]解析:字符串的综合运用。

32.D

33.逻辑逻辑解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构或物理结构。

34.字符串的比较strcmp函数的原型是intstrcmp(char*s1,char*s2);功能是对s1和s2所指字符串进行比较,若s1<s2返回负数,若s1==s2返回0,若s1>s2返回正数。

35.77解析:在程序执行时,static变量仅初始化一次,下次使用时将使用上次保存的值。

36.指针P指向数组a的首地址,执行语句p++;后p指向数组a的第2个元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n

37.白盒白盒解析:软件测试的方法分为白盒测试方法和黑盒测试方法.

38.系统设计系统设计解析:结构化设计主要分为系统设计和模块设计。系统设计决定系统的模块结构,模块设计具体考虑每个模块内部的算法、模块输入、输出及模块功能。

39.8080解析:本题考查的知识点是共用体数组变量所占内存的长度。数组a是共用体变量,共用体类型变量所占的内存长度为最大成员的长度,即单精度数组的长度,为4×4=16,因此,数组a所占的内存长度为5×16=80,所以最后输出的s的值为80。

40.do…whiledo…while解析:考查while和do…while循环的主要区别。while循环的控制出现在循环体之前,只有当while后面的表达式的值为非零时,才可能执行循环体;在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。

41.B解析:本题考查的重点是宏定义。#define指令定义一个标识符和一个串,编译程序在对C源程序处理时,发现该标识符就都用该串替换,因此选项B是正确的。

42.B解析:do…while循环的执行过程如下:①执行do后面的循环体中的语句。②计算while后一对圆括号中表达式的值。当值为非0时,转去执行步骤①;当值为0时,执行步骤③。③退出do…while循环。对于本题变量i的初始值等于“0”,接着执行do后面的循环体中的语句,输出变量i的值0。再判断while后面括号中表达式i++的值,其值为0,所以循环结束。此时变量i的值经过自加已经变为1,所以再次输出i的值“1”。

43.A解析:aaa()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针\u3000t不断递增,直到t指向字符串结束标志处。当t指向结束标志处时,由于后缀++运算符的原因,它还会被再递增1,所以接卜来的t--;语句让它回到结束标志处。最后返回t-s,因此s还是指向字符串第1个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。

44.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

45.C解析:本题中首先输出逗号表达式“a=a+a,a+b,b”的值,即20。然后以八进制的形式输出a+'a'-'A'的值为97对应的八进制数141,由于最后一个表达式b没有对应输出格式的输出项表列就不会输出。

46.C解析:简单变量做实参时,相应的形参变量也是简单变量,它们之间的数据传递方式是单向值传递,即数据只能由实参传到形参,形参值的改变不影响实参值的变化。

47.B解析:本题定义了一个for循环,循环变量是i,但由于本题并没有设置循环条件,所以循环的条件永远默认为真,即无限次执行循环。

48.C解析:本题考核的知识点是程序中算法的基本分析。sort()函数作用是将数组aa中的下标为偶数的元素按大到小排序.主函数中首先定义了一个长度为10的数组并赋值,然后调用sort()函数,将数组aa中奇数个元素的值按大到小排序,因此执行完该函数后,数组中奇数个元素的值为9,7、5、3和1,故主函数中最后通过一个for循环输出数组aa中各元素的值为9、2、7、4、5、6、3、8、1和10,所以,4个选项中选项C符合题意。

49.A解析:本题考查while循环。y的值在while循环的控制表达式中加1,在循环体内减1,所以总的y值不变,且控制条件++y永远非零。当x加到7时不满足循环条件,结束循环。

50.B解析:auto变量和register变量在使用时,系统自动为其分配存储单元;退出时自动释放这些存储单元另做它用。

51.A解析:题中a1和a2两个结构体变量名所对应的成员相同,可以与运算“++’相结合。结构体变量的输出格式为:printf('要输出变量名;%d\\t',结构变量名.要输出的成员变量名),

52.C解析:如果没有指明函数值类型,则默认函数返回值的类型为int型。注意:顺序程序结构的执行过程。

53.D解析:在结构化程序设计中,通常采取自顶向下、逐步求精的方法,尤其是在详细设计和编码阶段,其总的思想就是先全局后局部、先整体后细节、先抽象后具体、程序自顶向下、逐步细化。而筛选法、递归法和归纳法指的都是程序的某种具体算法。逐步求精法是结构化程序设计中很重要的思想,一定要牢记!

54.B

55.A解析:本题中定义一个全局变量a和一个局部变量a。局部变量和全局变量的不同在于,局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失,而全局变量是在函数外部任意位置上定义的变量,它的作用域从变量定义开始,到整个源文件结束为止。若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽,在该函数内,起作用的将是局部变量,与同名的全局变量不发生任何关系。在程序中首先定义了变量s并赋值为0,接着在嵌套的复合语句{}中定义了变量a并赋初值为5,接着执行语句“s+=a++;”在这条语句中a加1,但表达式a++还是原来的值,故s=s+5,s为5,程序执行到外层,此时{}内定义的变量a不再有效,变量a为{}之前定义的且初值为3,接着执行{}后面的语句“s+=a++;”,相当于执行语句“s=s+(a++);”即s=5+3,最后值为8,所以输出的s值为8。故4个选项中A正确。

56.C数据结构与算法:数据结构的基本概念[评析]逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。线性结构和非线性结构是根据数据元素之间关系的不同特性加以分类的,即是从逻辑上加以分类的。

57.C

58.A解析:字符数组中可以存放字符串,但字符数组的长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即\'\\0\',之前的字符数。字符数组s中依次存放的字符是:\'\\\\'1'4'1'\\141'a'b'c'\\t\',和最后一个字符串结束标记\'\\0\',故字符串的长度是9。

59.D解析:时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项A、B、C的说法都是错误的。故本题的正确答案是D。

60.C解析:不论main函数在整个过程中的位置如何,一个C程序总是从main函数开始执行的。

61.A

62.C结构体不能通过结构体名字整体赋值,通过结构体名.成员名的方式赋值。所以C选项错误。

63.C解析:算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设

温馨提示

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

评论

0/150

提交评论