2021年辽宁省大连市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2021年辽宁省大连市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2021年辽宁省大连市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2021年辽宁省大连市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2021年辽宁省大连市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

2021年辽宁省大连市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA

2.

3.

4.栈通常采用的两种存储结构是A.A.线性存储结构和链表存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构

5.下面程序运行的结果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

6.在下面栈的基本运算中,不是加工型运算的是______。

A.初始化B.进栈C.退栈D.判栈空

7.为了使模块尽可能独立,要求_____。A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

8.下列关于栈的叙述中,正确的是()。

A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对

9.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

A.循环队列B.栈C.队列D.二叉树

10.广义表((a))的表尾是()。

A.aB.(a)C.((a))D.()

11.有以下程序:#include<stdio.h>main(){char*s="[2]34";intk=0,a=0;whil(s[k+1]!=\0){k++;if(k%2=o){a=a+(s[k]-0+1);continue;}a=a+(s[k]-0);printf("k=%da=%d\n",k,a);}程序运行后的输出结果是()。A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15

12.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。

A.wbB.wb+C.rb+D.rb

13.若串S=,software,其子串的数目是()。

A.8B.37C.36D.9

14.以下符号中不能作为标识符的是()。

A._256B.r32C.intD.e231

15.以下程序段中,与语句“k—a>b?(b>c?1:O):0;”功能相同的是()。

A.if(a>b)(b>c)k=1;elsek=0;

B.if((a>b)‖(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b>c)k=1;

D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:

16.程序中若有如下说明和定义语句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;.....}以下选项中对函数Fun的正确调用语句是______。A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);

17.结构化程序所规定的三种最基本控制结构是A.A.输入、处理、输出

B.树形、网形、环形

C.顺序、选择、循环

D.主程序、子程序、函数

18.对于哈希表,如果将装填因子α定义为表中装入的记录数与表的长度之比,那么向表中加入新纪录时,()

A.α的值随时冲突次数的增加而递减

B.α越大发生冲突的可能性越大

C.α等于1时不会再发生冲突

D.α低于0.5时不会发生冲突

19.

20.为了提高软件的独立性,模块之间最好是()。

A.控制耦合B.公共耦合C.内容耦合D.数据耦合

二、2.填空题(20题)21.以下程序的输出是【】。

main()

{

charstrl[]]="Howdoyoudo",*p1=strl;

strcpy(strl+strlen(strl)/2,"esshe");

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

}

22.当运行以下程序时,输入abcd,程序的输出结果是【】。

insert(charstr[])

{inti;

i=stolen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

seanf("%s",str);insert(str);

}

23.对于一棵具有n个结点的树,则该树中所有结点的度之和为【】。

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

#include<stdio.h>

main()

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

inti=0,j=0;

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

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

25.若有如下定义,doublea[100];,则a数组元素的下标上限是【】。

26.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}

27.下列程序的功能是计算1~100的整数的累加和。

main()

{inti,sum=【】;

i=1;

for(【】)

{sum+=i;

i++;

}

printf("sum=%d\n",【】);

}

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

main()

{ints=0,i=1;

while(s<=10)

{S=S+i*i;

i++;

b

}

printf("%d",--i);

}

29.下面程序的输出是【】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

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

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

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

32.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。

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

34.数据流图的类型有【】和事务型。

35.—个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

36.数据库是指按照一定的规则存储在计算机中的【】的集合,它能被各种用户共享。

37.下面程序的运行结果是【】。

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;

sub(s,7,SIZE-1);

for(i=0;i<SIZE;i++)printf("%c",s[i]);

printf("\n");}

sub(char*a,inttl,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

38.在树形结构中,树根结点没有______。

39.设x、y、z均为int型变量,请写出描述“x或y中至少有一个小于z”的表达式______。

40.有以下程序

main()

{intt=1,i=5;

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

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

}

执行后输出结果是______。

三、1.选择题(20题)41.有以下程序main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序运行后输出结果是

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

42.以下不正确的叙述是A.A.在C程序中,逗号运算符的优先级最低

B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变

D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

43.下列程序执行后的输出结果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

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

44.假设下面四个选项中所有的数都是8进制数或16进制数,均是不正确的选项是()。

A.0160x8f018

B.0abc0170xa

C.010-0x110x16

D.0al27ff-123

45.请阅读以下程序:main(){inta=5,b=0,c=0;if(a=b+c)printf(”"***\n");elseprintf("$$$\n");}以上程序

A.有语法错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$

46.若有以下定义,则对a数组元素的正确引用是()。inta[5],*p=a;

A.*&a[5]B.*a+1C.*(p+5)D.*(a+2)

47.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意顺序

48.以下选项中不合法的标识符是

A.ptintB.FORC.&aD._00

49.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。

A.12B.11C.10D.编译出错

50.变量m的值为8,m的地址为1010,若欲使p为指向m的指针变量,则下列赋值正确的是()。

A.&m=8B.*p=8C.*p=1010D.p=&m

51.设有以下语句

typedefstructS

{intg;charh;}T;

则下面叙述中正确的是()A.可用S定义结构体变量B.可以用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量

52.若有定义“char,*p2,*p3,*p4,ch;”,则不能正确赋值的程序语句为()

A.p1=&ch;scanf("%c",p1);

B.p2=(char*)malloc(1);scanf("%c",p2);

C.p3=getchar();

D.p4=&ch;*p4=getchar();

53.下列关于栈的描述中错误的是()。A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针

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

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

55.有以下程序:voidswap1(int*a,int*b){int*c=a;a=b,b=c;}voidswap2(int*a,int*b){intc=*a;*a=*b,*b=c;}main(){inta=10,b=15;swap1(&a,&b);printf("%d,%d,",a,b);a=10,b=15;swap2(&a,&b);printf("%d,%d",a,b);}其输出结果为______。

A.15,10,10,15B.15,10,15,10C.10,15,10,15D.10,15,15,10

56.有以下程序voidswap(char*x,char*y){chart;t=*x;*X=*y;*y=t;}main(){char*s1:"abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序执行后的输出结果是

A.123,abcB.abc,123C.1bc,a23D.321,cba

57.有以下程序

#include<stdio.h>

main()

{FILE*fp;inti,a[6]={1,2,3,4,5,6};

fp=fopen("d3.dat","w+b");

fwrite(a,sizeof(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/

fread(a,sizeof(int),3,fp);fclose(fp);

for(i=0;i<6;i++)printf("%d,",a[i]);

}

程序运行后的输出结果是

A.4,5,6,4,5,6,B.1,2,3,4,5,6,C.4,5,6,1,2,3,D.6,5,4,3,2,1,

58.以下程序的输出结果是main(){charcf[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",cf[1]);;}

A.AAAAB.BBBC.BBBCCD.CC

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

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

60.有以下程序:streetSTU{charnum[10];floatscore[3];};main(){structSTUs[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s,inti;floatsum=0;for(i=0;i<3,i++)sum=sum+p->score[i];printf("%6.2f\n",sum);}程序运行后的输出结果是()。

A.260B.270C.280D.285

四、选择题(20题)61.下列字符数组初始化语句中,不正确的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

C.charc[]={a,b,c,d);

D.charc[]={"ffgoodmorning"};

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

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

63.若有定义语句:inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是()。

A.a[o][4]B.a[1][3]C.a[o][3]D.a[1][4]

64.用数据流图(DFD.作为描述工具的软件开发阶段是()。

A.可行性分析B.需求分析C.概要设计D.详细设计

65.

有以下程序:

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

66.(26)下面不属于软件工程的3个要素的是()

A.工具

B.过程

C.方法

D.环境

67.(63)线性表的顺序存储结构和线性表的链式存储结构分别是______。

A.顺序存取的存储结构、顺序存取的存储结

B.随机存取的存储结构、顺序存取的存储结构

C.随机存取的存储结构、随机存取的存储结

D.任意存取的存储结构、任意存取的存储结构

68.

69.有以下程序

#include<stdio.h>

structst

{intx,y,z;}data[2]={3,10,2,20,15,7};

main()

{structst*p=data;

printf("%d,",p->y);

printf("%d\n",(++p)->x);

}

程序的运行结果是

A.10,3B.20,3

C.10,20D.20,2

70.若有定义:“inta=4,b=5;floatx=3.4,y=2.1;”,则下列表达式的值为()。(float)(a+b)/2+(int)x%(int)y;

A.5.5B.55C.5.500000D.55.00000

71.设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.++kB.k+=1C.k++D.k+1

72.

73.有以下程序程序的运行结果是()

A.8,5,4,2,B.8,7,5,2C.9,7,6,4,D.7,4,2,

74.为了提高测试的效率,应该()。

A.随机选取测试数据

B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划

D.集中对付那些错误群集的程序

75.在下列语句中,其含义为“q是一个函数指针,该指针指向整型数据”的定义语句是()。

A.int**q;B.int(*q);C.int*q;D.int*q;

76.若有定义:intX=0,*P=&x;,则语句printf(”%d\n”,*P.的输出结果是()。

A.随机值B.0C.X的地址D.P的地址

77.两个或两个以上模块之间联系的紧密程度称为()。

A.耦合性B.内聚性C.复杂性D.数据传输特性

78.具有3个结点的二叉树有

A.2种形态B.4种形态C.7种形态D.5种形态

79.

80.

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:将str所指字符串中出现的t1所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当str所指字符串中所指的内容为abcdabcdef9,t1所指字符串中的内容为bc,t2所指字符串中的内容为11时,结果在w所指的数组中的内容应为alldalldefg。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c在此程序中,编写函数intfun(),其功能是求出小于或等于lim的所有素数,将其存放在aa数组中,并返回所求出的素数的个数。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include<conio.h>2#include<stdio.h>3#include<stdlib.h>4#defineMAX1005intfun(intlim,intaa[MAX])6{78}9voidmain()10{11FILE*wf;12intlimit,i,sum;13intaa[MAX];14system("CLS");15printf("输入一个整数:");16scanf("%d",&limit);17sum=fun(limit,aa);18for(i=0;i<sum;i++)19{20if(i%10==0&&i!=0)/*每行输出10个数*/21printf("\n");22printf("%5d",aa[i]);23}24/******************/25wf=fopen("out.dat","w");26sum=fun(15,aa);27for(i=0;i<sum;i++)28{29if(i%10==0&&i!=0)/*每行输出10个数*/30fprintf(wf,"\n");31fprintf(wf,"%5d",aa[i]);32}33fclose(wf);34/******************/35}

参考答案

1.B栈是先进后出的原则组织数据,所以人栈最早的最后出栈,所以选择B。

2.B

3.C

4.A解析:和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。注意:这3种运算方法在各种存储结构中的应用。

5.C解析:表达式“x+=-z---y”等价于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

6.D

7.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。

8.B栈是先进后出,因此,栈底元素是先入栈的元素,栈顶元素是后入栈的元素。

9.BB。【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。

10.D

11.C输出结果:k=1a=2\r\nk=2a=4\r\nk=3a=7\r\nk=4a=12

12.B解析:本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二进制文件;方式“rb+”为读写打开一个二进制文件:方式“rb”为输入打开一个二进制文件。

13.B

14.C

15.A本题考查了双重三目运算符的用法。例如:表达式a>b?c:d可以看成,当a>b时取C的值,否则取d的值。在本题中k=a>b?(b>c?1:0):0可以看做:当b>c时为真,则k=a>b?1:0。当bb?0:0。也就是说,当a>b并且b>C时,k=1,否则k=0。所以A选项符合题意。

16.A解析:题中将函数fun的入口地址赋给了指针变量f1,这时f1和fun都指向函数的开头,调用*f1就是调用函数fun。

17.C解析:结构化程序设计方法采用顺序、选择和循环三种基本程序控制结构编写程序,从而使程序具有好的结构。

18.B

19.D

20.D在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,以有利于提高模块的独立性。耦合性与内聚性是模块独立的两个定性标准,是互相关联的。

21.HowdoessheHowdoesshe解析:strcpy(strl,s1):字符串拷贝函数,作用是将字符串s1拷贝到字符数组strl中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括\'\\0\'在内。本题中strlen(strl)的值为13,则strcpy(strl+strlen(strl)/2,'esshe');相当于strcpy(strl+6,'esshe');,因此可得答案为Howdoesshe。

22.a*b*c*d*a*b*c*d*解析:程序中的变量i用于存放字符串str的长度,执行while语句,通过分析可知,字符串第2*i项的值可由第i项的值得到;第2*i-1项直接赋值为。号,i减1,如此反复直到不满足i>0的条件时,输出运行后的字符串。

23.n-1

24.2424解析:本题关键是while循环。

当i=0时,满足条件:i<7&&11%2==1,执行j=0+11=11,i++,i为1;

当i=1时,满足条件:i<7&&13%2=1,执行j=11+13=24,i++,i为2;

当i=2时,不满足条件:i<7&&14%2==1,循环结束。输出j的值24。

25.9999解析:数组的下标是从0开始存放数据的,而不是1,当数组大小为n时,其下标从0开始,到n-1,所以本题的答案为99。

26.

27.0;sum<=100;sum

28.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,输出结果为3。

29.1212解析:本题通过第一个for循坪将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:

i=1:k=0+arr[1]+1即k=2;

i=2:k=2+arr[2]+2即k=6;

i=3:k=6+arr[3]+3即k=12;

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

31.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。

32.概要概要

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

34.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。

35.可重用性可重用性解析:继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

36.数据数据解析:数据库是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成,这些数据按一定的数据模型组织、描述和存储。

37.abcdefglkjihabcdefglkjih解析:本题主要考查了字符变量可参与的运算。因为字符在计算机中是以ASCII码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的ASCII码值比它对应的小写字母ASCII码值小32。

38.前件前件

39.x<z‖y<zx<z‖y<z解析:本题考查逻辑运算符和逻辑表达式。x或y中至少有一个小于z,即x<z或y<z,是“或”的关系。

40.00解析:本题中的for循环共执行了6次,每执行一次将相应i的值相乘,最后当i=-1时停止循环.该for循环执行完后t的值为5*4*3*2*1*0=0,故最后输出I的值为0。

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

42.D解析:在C语言所有的运算符中,逗号运算符的优先级最低。C语言中区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。

43.A解析:函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针型。它的作用是将一个变量的地址传递到另一个函数中。当数组名作参数时,如果形参数组中的各元素的值发生变化,实参数组元素的值也将随之发生变化。

44.D解析:在8进制中,不可能包括8以亡的数字,它的范围只在0~7之间,以0开头。同样,十六进制是以0x开头,数字在0~9和a~f之间。

45.D解析:解答本题时,先判断if语句,因为a=b+c不成立,则执行else语句。

46.D本题考查通过指针引用数组元素。选项A)、B),没有这种引用形式;选项c),*(p5)是引用数组的第6个元素,而数组一共有5个元素,出现越界;选项D),*(a2)引用数组的第3个元素。

47.B解析:由栈“后进先出”的特点可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中栈是先进后出的,所以不可能是任意顺序。所以B是正确的。它执行的顺序是:e1进栈→e2进栈→e2出栈→e3进栈→e4进栈→e4出栈→e3出栈→e1出栈,所以只看出栈序列应为e2,e4,e3,e1。

48.C

49.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。

50.D解析:指针变量是通过指向变量地址来指定变量值的。这里只要取m的地址赋给p,即可实现使p为指向m的指针变量。

51.B解析:结构体类型的定义格式为:

strcut结构体名

{成员说明列表};

结构体变量的定义有3种形式:第一种:定义结构体型的同时定义结构体变量如:strcut结构体名{成员说明列表}变量;第二种先定义一个结构体类型,然后使用该类型来定义结构体变量,如:strcutstudent{成员说明列表):student变量;第三种:定义一个无名称的结构体类型的同时定义结构体变量,如:Strctstudent{成员说明列表}变量。和上面三种情况比较我们不难得知只有选项B是正确的。所以,4个选项中选项B符合题意。

52.C

53.B栈是限定只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,它们的操作特点是先进后出,因此具有记忆作用。栈可以采用顺序存储,也可以采用链式存储。

54.B解析:C语言以定,实参变量对形参变量的数据传递是“单向值传递”,只由实参传绐形参。在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维持原值。

55.D解析:C语言规定,实参变量对形参变量的数据传递是“值传递”,只由实参传给形参,而不能由形参传回来给实参。在内函数调用结束后,形参单元被释放,实参单元仍保留并维持原值。本题中swapl()函数中,虽然改变了形参指针的值,但实参指针的值并没有改变,所以执行第一个printf后应输出10,15,swap2()函数实现了交换两个变量a和b的值,因此执行第三个printf后输出交换后的值15,10,所以本题答案为D。

56.C解析:这是一个转换程序:低字节相互转换,高字节不变。“abe”的ab和“123”的12相互转化。

57.A解析:首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据“4”,然后fread函数将文件fp中的后3个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了{4,5,6,4,5,6}。

58.B解析:维字符数组可以看成由若干个一维字符数组组成,每行是一个一维字符数组。本题首先定义了一个数组ch[3][5]并给它们按行赋初值,即相当于给ch[0]赋值“AAAA”,给ch[1]赋值“BBB”,给ch[2]赋值“BBB”,最后输出转义字符“'\\'”、ch[1]和转义字符“\\”,因此输出为“BBB”.所以,4个选项中B为所选。

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

60.B解析:程序中首先定义了一个结构体,其成员为一字符数组和一浮点型数组。在main()首先定义了一个结构体数组并初始化。接下来在for循环中遍历了结构体数组中的第一个元素中数组成员即{“20021”,90,95,85”}循环结果为90+95+85=270最后sum为270,又输出格式为“%6.2f\\n”要求保留两位小数故最后输出为270.00。所以4个选项中B正确。

61.A本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②℃语言中没有字符串变量,只能用字符数组来存储字符串。

62.D本题考查++运算操作符,当++在变量前面时,是先加l再赋值,当++在变量后面时,是先赋值再加l,所以答案选择D。

63.B在C语言中数组的下标是从0开始,且二维数组元素的存储是按行存放的。

第一行6个:a[0][0]

第二行:a[1][0](第七个),a[1][1](第8个),a[1][2](第9个),a[1][3](第10个)

64.B\n结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。而结构化分析就是使用数据流图、数据字典、结构化语言、判定树和判定表等工具,来建立一种新的、称为结构化规格说明的目标文档。

\n

65.C

\n调用函数fun(7)时,由于x的值为7,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(5);

\n调用函数fun(5)时,由于x的值为5,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(3);

\n调用函数fun(3)时,由于x的值为3,执行语句“p=x-fun(x-2);”,相当于执行p=7-fun(1);

\n调用函数fun(1)时,由于X的值为1,执行语句“return(3);”,函数的返回值为3。

\n因此函数调用fun(7)等价于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函数fun(7)的返回值为2。答案为C。

\n

66.D

67.B

68.B

69.C本题考查结构体数组的相关操作。结构体数组的定义方法与结构体变量的定义方法一样,只不过将变量变为数组。数组内的各元素在内存中是连续存放的。题目中给出了一个结构体st,该结构体有三个整型成员x,y,z。结构体数组data元素的个数为2,并对数组进行初始化,data[0]={3,10,2},data[1]={20,15,7}。主函数main中定义了一个指针p指向数组data,第一个printf函数是输出p->y,即data[0].y,该值等于10。第二个printf函数是输出(++p)->x,++p使得指针p指向data[1],输出的目标为data[1].x,该值等于20。故输出结果为10,20。

70.C在计算(float)(a4-b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。在计算(int)x%(int)y时,先将x和y通过

温馨提示

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

评论

0/150

提交评论