2021年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2021年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2021年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2021年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2021年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

2021年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.某某二叉树的中序序列和后序序列正好相反,则该二叉树一定是______的二叉树

A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子

2.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序运行的结果是()。A.9B.61490C.61D.5

3.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序运行后的输出结果是()。

A.3B.13C.1D.0

4.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是()。A.i-1B.iC.i+1D.4一i

5.

6.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是________。

A.23B.26C.33D.36

7.数据在计算机存储器内表示时,如果元素在存储器中的相对位置能反映数据元素之间的逻辑关系,则称这种存储结构为()。

A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构

8.已知大写字母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'

9.在循环双链表的p所指的结点之前插入s所指结点的操作是()。A.p->prior->prior

B.p->prior->prior

C.s->prior->next=s

D.s->prior->prior=s

10.有以下程序:程序运行后的输出结果是()。A.6B.10C.8D.4

11.有以下程序:#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

12.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是A.6.5B.6C.5.5D.6

13.具有n个顶点的完全有向图的弧数为()。

A.n(n-1)/2B.n(n-1)C.n2D.n2-1

14.设有定义:“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;

15.若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是()。

A.|top[2]-top[1]|=0

B.top[1]+1=top[2]

C.top[1]+top[2]=m

D.top[1]=top[2]

16.下列关于字符串的说法中错误的是

A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志

B.'\0'作为标志占用存储空间,计入串的实际长度

C.在表示字符串常量的时候不需要人为在其末尾加入'\0'

D.在C语言中,字符串常量隐含处理成以'\0'结尾

17.若有以下定义,则对a数组元素地址的正确引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

18.有以下程序

main()

{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

程序执行后的输出结果是A.A.45B.20C.25D.36

19.在C语言中,要求运算数必须是整型的运算符是()。

A./B.++C.!=D.%

20.

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

voidfunc(int*a,intb[])

{b[0]=*a+b;}main

{inta,b[5];

a=0.b[0]=3;

func(&a,b);printf("%d\n",b[0]);

}

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

二、2.填空题(20题)21.仅依据规格说明书描述的程序功能来设计测试实例的方法称为【】。

22.有两个C程序文件T18.c和myfun.c同在VC系统目录(文件夹)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();prinff("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!:'\n')s[n++]=c;

n--;

while(n>=0)prinff("%c",s[n--]);

}

当编译连接通过后,运行程序T18时,输入"Thank!”,则输出结果是【】。

23.以下程序输出的最后一个值是【】

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<=5;i++)printf("%d\n",ff(i));

}

24.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

25.下面的函数strcat(str1,str2)实现将字符串str2拼接到字符串str1后面的功能。请填空使之完整。

char*strcat(str1,str2)

char*str1,*str2;

{char*t=str1;

while(【】)str1++;

while(【】);

return(t);}

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

27.若a是int型变量,且a的初值为4,则计算a+=a-=a*a表达式后a的值为______。

28.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

for(m=0;m<n;m++)

{if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;}

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=【】;【】=t;

}

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

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

printf("\n");

}

29.执行下面程序段时输出suet,请填空。

main()

{staticchara[]="student";

char*p;

for(p=a;p<【】;p+=2)

putchar(*p);

}

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

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

}

31.执行以下“for(i=1;i++<=4;i++);”语句后,变量i的值是()。

32.C语言中用______表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。

33.在面向对象方法中,类之间共享属性和方法的机制称为______。

34.若有以下程序:

main()

{inta[4][4]={{1,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);

}

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

35.数据库系统中实现各种数据管理功能的核心软件称为【】。

36.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

37.在结构化分析使用的数据流图(DFD)中,利用【】对其中的图形元素进行确切解释。

38.十进制数53转换为十六进制数为【】。

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

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

40.有以下说明定义和语句,可用a.day引用结构体成员day,写出引用结构体成员day的其他两种形式【】、【】。

struct{intday;charmouth;intyear;}a,*b;b=&a;

三、1.选择题(20题)41.请读程序段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));程序段的输出结果是______。

A.68B.0C.字符'D'的地址D.不确定的值

42.以下程序的输出结果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20

43.表达式~0x11的值是()。

A.0xFFEEB.0x71C.0x0071D.0xFFE1

44.下述关于数据库系统的叙述中,正确的是()。

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

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

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

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

45.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序运行后的输出结果是______。

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

46.以下程序运行后,输出结果为______。main(){inta[2][3]={1,3,5,7,9,11),*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

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

47.树是结点的集合,它的根结点的数目是()。

A.有且只有1个B.1或多于1C.0或1D.至少有2个

48.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

49.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){intn.k;floatscore.sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf("NO%d:%f\n",n,ave);}}上述程序运行后结果不正确,调试中发现有—条语句出现在程序中的位置不正确。这条语句是

A.sum=0.0;

B.sum+=score;

C.ave=sun/4.0;

D.printf("NO%d:%f\n",n,ave);

50.一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是200,每一个元素的长度是2,则第6个元素的地址是______。

A.208B.210C.211D.212

51.下面程序的运行结果是()。#include<stdio.h>main(){inta=1,b=10;do{b-=a;a++;}while(b--<0);printf("a=%d,b=%d\n",a,b);}

A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=9

52.下列不属于软件工程的3个要素的是______。

A.工具B.过程C.方法D.环境

53.若有下面的说明和定义,则sizeof(structaa)的值是______。structaa{intr1;doubler2;floatr3;unionuu{charu1[5];longu2[2]}ua;}mya;

A.30B.29C.24D.22

54.C语言规定,程序中各函数之间()

A.既允许直接递归调用也允许间接递归调用

B.不允许直接递归调用也不允许间接递归调用

C.允许直接递归调用不允许间接递归调用

D.不允许直接递归调用允许间接递归调用

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

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

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

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

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

56.以下叙述中正确的是______。

A.C语言比其他语言高级

B.C语言可以不用编译就能被计算机识别执行

C.C语言以接近英国国家的自然语言和数学语言作为语言的表达形式

D.C语言出现得最晚,具有其他语言的一切优点

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

A.c='97'B.c="97";C.c=97;D.c="a";

58.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。A.switch(x)

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

59.有以下程序:voidswap(char*x,char*y){cbart;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

60.线性表若采用链式存储结构时,要求内存中可用存储单元的地址()

A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以

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

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

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

B.3,4,2,7,9,8,6,5,11,10,

C.2,4,3,9,12,12,11,11,18,9,

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

62.有以下程序:

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

A.6,4,3,2,1

B.6,5,4,3,2

C.5,4,3,2,1

D.10,4,3,2,l

63.

64.下列哪个不属于DOM元素结点类型?

A.元素结点B.文本结点C.属性结点D.样式结点

65.若调用fputc函数输出字符成功,则其返回值是()。

A.EOFB.1C.0D.输出的字符

66.若想定义int型变量a,b,c,d并都赋值为1,以下写法中错误的是()。

A.inta=b=c=d=1;

B.inta=1,b=1,c=1,d=1;

C.inta,b,c,d;a=b=c=d=1;

D.inta,b,c,d=1;a=b=c=d;

67.有以下程序:

#include<stdio.h>

main()

{inta[]={10,20,30,40},*p=a,j;

for(i=0;i<=3;i++){a[i]=*P;p++;}

printf("oAd\n",a[2]);

}

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

A.30

B.40

C.10

D.20

68.

69.

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

A.c语言规定必须用main作为主函数名,程序将从此开始执行

B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C.c语言程序将从源程序中第一个函数开始执行、

D.main的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等

71.有以下程序

#include"stdio.h"

main()

{charstr[]="tomeetme",str1[]="toseeyou";

char*p=str,*p1=str1;

inti;

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

if(*(p+i)==*(p1+i))

putchar(*(p+i));

printf("\n");

}

程序的运行结果是

A.to

B.tomeet

C.toee

D.程序段不能通过编译

72.在最坏情况下,堆排序的时间复杂度是()。

A.0(1902n)B.O(n1092n)C.o(n2)D.0(n1.5)

73.算法的有穷性是指A.算法程序的运行时间是有限的

B.算法程序所处理的数据量是有限的

C.算法程序的长度是有限的

D.算法只能被有限的用户使用

74.

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

A.auto和static

B.extern和register

C.auto和register

D.static和register

76.下列是用户自定义标识符的是

A._w1B.3_xyC.intD.LINE-3

77.软件需求分析一般应确定的是用户对软件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

78.若有定义:“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

79.HTTP协议的内容协商消息头包括()。

i.内容协商消息头ii.缓存控制消息头

iii.条件控制消息头iv.服务器状态消息头

A.i和iiB.i、ii和iiiC.ii和iiiD.iii和iv

80.有以下程序:

#include<stdio.h>

voidmain()

{fILE*fp;inti,a[4]={1,2,3,4},b;

fp=fopen("data.dat","wb");

for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);

fclose(fp)

fp=fopen("data.dat","rb");

fseek(fp,-2L*sizeof(int),1,fp);/*文件中读取sizeof(int)字节的数据到变量b中*/

fclose(fp);

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

}

程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是()。

A.使位置指针从文件末尾向前移2*sizeof(int)字节

B.使位置指针从文件末尾向前移2字节

C.使位置指针向文件末尾向前移懂2*sizeof(int)字节

D.使位置指针向文件末尾移动2字节

五、程序改错题(1题)81.写出下列程序的运行结果。

fun(inta,intb)

{if(a>b)return(a);

Elsereturn(b);}

main

{intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);printf(“%d\n”,r);}

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),其功能是找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n表示x中的元素个数,max存放最大值,index存放最大值所在元素的下标。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<time.h>#include<stdlib.h>#include<stdio.h>voidfun(inta[],intn,int*max,int*d){}voidmain(){ inti,x[20],max,index,n=10; srand((unsigned)time(NULL)); for(i=0;i<=n;i++) { x[i]=rand()%50; printf(“%4d”,x[i]); /*输出一个随机数组*/ } printf(n\nH); fun(xfnf&max,&index); printf(“Max=%5d,Index=%4d\n”,max,index);}

参考答案

1.C

2.C在fun函数中,while循环的功能是逐个取字符数组s的字符判断其是否是数字。若是则将这些数字组成一个数保存到变量n中,并返回变量n的值。

3.AC语言中的转义字符也是一个字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3个字符。strlen遇到‘\\0’字符计数结束,因此计数为3。故本题答案为A选项。

4.B本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。

5.D

6.A解析:观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中,i=0时,aa[0][1]=3,*p=2;*p输出的是指针所指向的数组值,此时p所指向的是aa[O][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。

7.C

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

9.D

10.C题干中,整型指针变量Pk指向k,Pm指向m,所以右边表达式“*pk*(*pm)”的值为“k*m”,即2*4=8;左边表达式“*(p=&n)”先将变量n的地址赋给p,然后对p解引用,引用到n,将n的值赋为8。本题答案为C选项。

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

12.D解析:本题考查的知识点是运算符的优先级。在这个表达式中,优先级最高的是(int)a,也就是对5.5取整,结果是5,其次是b/b,即2.5/2.5,结果是1.000000,最后相加结果为6.000000(表达式的最终结果为实型),所以4个选项中D正确。

13.B

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

15.B

16.B解析:'\\0'作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。

17.D本题考查如何引用数组元素的地址。选项A)中,p5引用的是af51的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误;选项B)中,*a1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。

18.C解析:统计1~9九个数中的奇数和,此题考察指向数组的指针,C语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第i+1个元素。程序运行的结果是1+2+3+4+5+6+7+8+9=25。

19.D解析:/、++和!=的操作数既可能是整型,又可能是实型。而%的操作数只能是整型。

20.A

\n本题考查函数的调用,从主函数传递到调用函数中,*a的值为0,因此当执行完调用函数后,b[0]的值为6。

\n

21.黑箱法黑箱法

22.!knahT!knahT解析:程序中myfun.c被包含在T18.c中进行编译。fun函数中用getehar函数输入字符并赋给数组s,每输入一个字符,数组下标n加1,直到遇到回车键时输入结束。while(n>=0)循环反序输出字符中。所以myfun.c文件用于实现字符串反序的功能。

23.120120解析:静态变量的类型说明符是static,静态局部变量属于静态存储方式,它具有以下特点:

①静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。

②对静态局部变量是在编译时赋初值的,即只赋初值—次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。

③如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。(注意:C语言中的非静态变量在定义时,系统并不会自动给它赋初值)

④虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。

本题中函数的功能是:与for语句一起求一个整数的阶乘。

24.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。打开文件的函数为:fopen(),调用形式为:fp=fopen('文件名','使用文件方式');关闭文件的函数为:fclose(),调用形式为:fclose(fp),其中fp为文件指针。

25.*str1或*str1!='\0'或*str1!=0或*str1!=NUL*str1++=*str2++或*str1++=*str2*str2++*str1或*str1!='\\0'或*str1!=0或*str1!=NUL\r\n*str1++=*str2++或*str1++=*str2,*str2++解析:函数strcat(str1,str2)实现将字符串str2连接到字符串str1后面,所以首先要找到字符串str1的串尾,根据C语言的语法规定,一个串的串尾—定是—个隐含字符“\\0”,而在程序中,对字符串中字符的访问是通过两个指针变量来完成的,因此要找到字符串str1的串尾,要判断:str1是否为“\\0”,要找到字符串str2的串尾,要判断*str2是否为“\\0”,程序中必须以使字符串中字符逐—顺序体现,所以在题中我们应填写“*str1”和“*str1++=*str2++”。

26.BCDCDDBCD\r\nCD\r\nD解析:本题考查指向字符串的指针的运算方法。指针变量p首先指向字符串中的第一个字符A,执行p=s+1后,p指向字符串中的第二个字符B,然后输出值'BCD'并换行,依次执行循环语句。

27.-24-24解析:本题考查赋值运算符a+=b等价于a=a+b;a-=a*a等价于a=a-a*a=4-4*4=-12;a+=a,即a=a+a=-24。

28.x[0]x[0]x[0],x[0]解析:函数f()通过for循环逐个比较数组x中的元素,循环结束后,p0和p1分别表示最大值和最小值在数组中的下标位置,然后按照题意将最大值x[p0]和数组的最后一个元素x[n-1]交换位置,再将最小值x[p1]和第一个元素(x[0])进行交换,所以空白处应该填入x[0]。

29.a+strlen(a)或strlen(a)+aa+strlen(a)或strlen(a)+a解析:要输出suet就要将指针从字符串开始移动到字符串结尾,表达式p=a使p指向字符串的首地址;表达式p+=2使每次循环p值加2,是向前移动指针;空白处应判断是否到达字符串结尾,因此应填字符串的首地址加字符串长度,strlen(a)的返回值为字符串a所含的字符个数。

30.1020

31.6

32.非0非0解析:逻辑运算中,非0表示逻辑“真”,用。表示逻辑“假”。

33.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。

34.5858解析:for循环语句中continue语句的作用是当数组元素值小于0时,结束本次j循环,break语句的作用是当数组元素值等于0时,结束j循环,所以for循环语句的功能是计算数组元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。

35.数据库管理系统数据库管理系统(DBMS)

36.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。

37.数据字典或DD数据字典或DD解析:数据流图用来对系统的功能需求进行建模,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。数据词典(DataDictionary,DD)用于对数据流图中出现的所有成分给出定义,它使数据流图上的数据流名字、加工名字和数据存储名字具有确切的解释。

38.35

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

40.(*B).dat.b->day

41.B解析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“\\0”,故指向字符数组的指针p的*(p+4)的值为“\\0”。由于“\\0”的编码值就是0,所以本题输出为0。

42.B

43.A解析:本题主要考查按位求反运算和整型常量的表示:①十六进制整型常量的形式是以数字0x或0X开头的十六进制字符串;②按位求反运算的规则是:将二进制表示的运算对象按位取反,即将1变0,将0变1。“0x11”即0000000000010001,进行按位求反运算“~0x11”后为1111111111101110,即OxFFEE。

44.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。

45.B解析:本题是考查手工模拟执行程序的能力。a初值是1,循环开始时b值为1,由于a>=8为假,不执行break,但a%2==1为真,执行a+=5,a值变为6,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为2,由于a值为6,a>=8仍为假,不执行break,但a%2==1为假,不执行复合语句“{a+=5;continue;}”而执行a-=3,a值变为3。再开始下一次循环,这时b值为3。由于a值为3,a>=8仍为假,不执行break,但a%2==1为真,执行a+=5,a值变为8,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为4。由于a值为8,a>=8为真,执行break,停止for循环。此时输出的b值应为4。

46.C解析:s是一个含有两个元素的指针数组,pp是一个指向指针变量的指针,s[0]是指向二维数组a行下标为0的元素的首地址,即a[0][0]的地址,s[1]为a[1][0]的地址。pp的值为s[0]的地址。**pp=s[1][1]后,a[0][0]的值将被赋值为a[1][1]的值,执行p=*pp;后,p中将是s[0]的值,最后的输出语句将输出地址s[0]所指向的数据,即a[0][0]。

47.CC。【解析】树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为0。

48.B解析:条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式17表达式2:表达式3其求解顺序是:先求解表达式1,若为非O(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。并且注意++、--的用法。

49.A解析:程序中使用了两层for循环,外层循环的作用是控制人数,循环一次是求一个人的成绩和,然后除以4得到平均成绩。每个人的成绩总和一开始时都必须清0,否则就会出现后面人的总成绩越来越大。“sum=0.0”;应在外层循环中。选项A正确。

50.B解析:顺序结构中,第n个元素的地址为An=A0+(n-1)*L(A为地址,L为元素长度)。

51.B解析:本题考查两个知识点:自加自减运算符和do-while循环语句。do-while循环条件是b--<0,所以循环体语句只执行一次。

52.D解析:本题考查了软件工程的基本概念。软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制和管理。

53.D解析:结构伸变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量aa中,成员r1占2个字节,r2占8个字节,r3占4个字节,共用体ua占8个字节,所以共占用2+8+4+8=22个字节。

54.A解析:C语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。

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

56.C解析:C语言是于1972—1973年,由D.M.Ritehie在贝尔实验室为描述和实现UNIX操作系统而在B语言的基础上设计出来的。C语言同时具备高级语言和低级语言的特点,既适用于编写系统软件,义可用于编写应用软件。计算机不能直接执行C语言的源程序,必须编译生成目标程序后才能执行。

57.C解析:C语言中,字符型数据和整型数据之间可以通用。一个字符数据既可以字符形式输出,也可以整数形式输出,所以把整型数据赋给字符型变量,直接用c=97即可,所以选项C)正确。由于题目要求选出正确的语句,选项A)少分号,不能构成语句,因此错误。B)、D)是将一个字符串赋给一个字符变量,所以错误。

58.C

59.C解析:函数swap()实现的功能为交换字符指针x和y首位的数值。

60.D解析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据接点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。

61.C题目中定义了一个结构体类型s,然后定义了一个结构体变量s并初始化,执行f函数后,将s中元素a的每个元素都加上i,这里需要注意最后一个元素没有加i,所以最终答案为C选项。

62.D表达式(*q)++先取出q所指对象的值,再对该值递增,计算中q的值不变。所以f函数的功能是将指针q所指的数加5。函数调用f(a);相当于将数组a的第一个元素加5,操作后a[5]={10,4,3,2,1}。

63.A

64.D

65.Dfputc函数的一般调用形式为fputc(ch,fp),其中ch是要输出的字符,它可以是一个字符常量,也可以是一个字符变量,fp是文件指针变量。函数的作用是将字符(ch的值)输出到fp所指向的文件中。

fputc函数也返回一个值,如果输出成功,则返回值就是输出的字符;如果输出失败,则返回一个EOF(-1)。因此,本题的正确答案选D。

66.AC语言中赋值运算符的结合方向是从右向左的,变量先定义后使用。“inta=b=c=d=1;”,本条语句首先执行赋值运算“d=1”,由于变量d并未定义,故编译不通过,提示没有定义标识符b、c、d,A选项错误。故本题答案为A选项。

67.A\nFor循环结束后,数组a的值并没有变化,由于数组是由0开始,所以a[2]的值是30。

\n

68.A

69.C

70.AC语言中的主函数只能是main()函数,不能任意指定,所以B选项错误。C语言从主函数main()开始,到主函数main()结束,所以C选项错误。主函数必须写成小写的main,不能混淆大小写,所以D选项错误。

71.C本题属于综合性题目,考查的知识点有字符数组的指针表示,for循环与if语句的结合,初始时定义两个字符数组:str和str1,用两个指针p、p1分别指向这两个数组,每个数组中都是长度为8的字符串。定义变量i作为数组下标的增量,if语句表示如果有*(p+i)=*(p1+i),即str[i]=str1[i],则将相同的字符输出。tomeetme中与toseeyou相同位置上具有的相同字符为toee。

72.B若有n个元素的序列,将元素接腰序组成一棵完全二叉树,当且仅当满足下列条件时称为堆。大根堆是指所有结点的值大于或等于左右子结点的值;小掇堆是指所有结点的值小于或等于左右子结点的值。在调整建堆的过程中,总是将根结点值与左、右子树的根结点进行比较,若不满足堆的条件,则将左、右子树根结点值中的大者与根结点值进行交换。堆排序最坏情况需要0(nl092n)次比较,所以时间复杂度是0(nl092n),B选项正确。

73.A算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。

74.B

75.CC语言的存储类型为auto、register、extern、static。下面分别解释每种存储类型的含义。auto:函数中的局部变量,动态地分配存储空间,数据存储在动态存储区中,在调用该函数时,系统会给它们分配存储空间,在函数调用结束后自动释放这些存储空间。register:为了提髙效率,C语言允许将局部变量的值放在CPU的寄存器中,这种变量叫“寄存器变量”,只有局部自动变量和形参可以作为寄存器变量。extern:外部变量(即全局变量)是在函数的外部定义的,它的作用域为从变量定义处开始到本程序文件的末尾。如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件末尾。static:静态局部变量,属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放。故本题答案为C选项。

76.A本题主要考查标识符的定义。对标识符的定义是考试中常考的内容之一。标识符主要由数字、下画线和字母组成,其中数字不能放在首位,另外,用户自定义标识符时,不能将标识符定义为C语言中已定义的关键字,如int、while等。

根据上面对标识符的分析,我们不难看出本题的正确答案是A。在选项B中,3_xy以数字开头,不符合标识符定义的规定;在选项C中,int是C语言系统中已经定义了的关键字;在选项D中,LINE-3使用的数字、下画线和字母以外的字符,因此不正确。

77.DD。【解析】软件需求分析中需要构造一个完全的系统逻辑模型,理解用户提出的每一功能与性能要求,使用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。

78.C在计算(float)(a4-b)/2时,由于通过强制类型转换将(a+b)转换成了float型,所以应先将2转换成float型,再进行计算,得4.500000。在计算(int)x%(int)y时,先将x和y通过强制类型转换成int型,再进行求余运算,结果为1。又因为4.500000是float型,所以将1和它相加时,先将1换成float型,再计算,得到5.500000。类型转换的一般规则是:低级类型从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:char→int→unsigned→log→float→double。

79.B

80.Afseek用于二进制方式打开的文件,移动文件读写指针位置.

81.

82.voidfun(inta[],intn,int*max,int*d){ inti; *max=a[0]; *d=0; for(i=l;i<=""p=""> if(*max<a[i]) {*max=a[i];*d=i;}}fun()函数形参max用来存放最大值,形参d用来存放最大值的下标。由于它们都是指针变量,因此在引用所指向的变量时,要进行指针运算。循环语句用来遍历数组元素,找出最大值。条件语句用来判断该数组元素是否最大。2021年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.某某二叉树的中序序列和后序序列正好相反,则该二叉树一定是______的二叉树

A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子

2.有以下程序#include<stdio.h>intfun(chars[]){intn=0;while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)return(n);}main{chars[10]={6,1,*,4,*,9,*,0,*);printf("%d",fun(s));}程序运行的结果是()。A.9B.61490C.61D.5

3.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序运行后的输出结果是()。

A.3B.13C.1D.0

4.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是()。A.i-1B.iC.i+1D.4一i

5.

6.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是________。

A.23B.26C.33D.36

7.数据在计算机存储器内表示时,如果元素在存储器中的相对位置能反映数据元素之间的逻辑关系,则称这种存储结构为()。

A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构

8.已知大写字母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'

9.在循环双链表的p所指的结点之前插入s所指结点的操作是()。A.p->prior->prior

B.p->prior->prior

C.s->prior->next=s

D.s->prior->prior=s

10.有以下程序:程序运行后的输出结果是()。A.6B.10C.8D.4

11.有以下程序:#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

12.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是A.6.5B.6C.5.5D.6

13.具有n个顶点的完全有向图的弧数为()。

A.n(n-1)/2B.n(n-1)C.n2D.n2-1

14.设有定义:“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;

15.若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是()。

A.|top[2]-top[1]|=0

B.top[1]+1=top[2]

C.top[1]+top[2]=m

D.top[1]=top[2]

16.下列关于字符串的说法中错误的是

A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志

B.'\0'作为标志占用存储空间,计入串的实际长度

C.在表示字符串常量的时候不需要人为在其末尾加入'\0'

D.在C语言中,字符串常量隐含处理成以'\0'结尾

17.若有以下定义,则对a数组元素地址的正确引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

18.有以下程序

main()

{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

程序执行后的输出结果是A.A.45B.20C.25D.36

19.在C语言中,要求运算数必须是整型的运算符是()。

A./B.++C.!=D.%

20.

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

voidfunc(int*a,intb[])

{b[0]=*a+b;}main

{inta,b[5];

a=0.b[0]=3;

func(&a,b);printf("%d\n",b[0]);

}

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

二、2.填空题(20题)21.仅依据规格说明书描述的程序功能来设计测试实例的方法称为【】。

22.有两个C程序文件T18.c和myfun.c同在VC系统目录(文件夹)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();prinff("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!:'\n')s[n++]=c;

n--;

while(n>=0)prinff("%c",s[n--]);

}

当编译连接通过后,运行程序T18时,输入"Thank!”,则输出结果是【】。

23.以下程序输出的最后一个值是【】

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<=5;i++)printf("%d\n",ff(i));

}

24.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

25.下面的函数strcat(str1,str2)实现将字符串str2拼接到字符串str1后面的功能。请填空使之完整。

char*strcat(str1,str2)

char*str1,*str2;

{char*t=str1;

while(【】)str1++;

while(【】);

return(t);}

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

27.若a是int型变量,且a的初值为4,则计算a+=a-=a*a表达式后a的值为______。

28.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

for(m=0;m<n;m++)

{if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;}

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=【】;【】=t;

}

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

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

printf("\n");

}

29.执行下面程序段时输出suet,请填空。

main()

{staticchara[]="student";

char*p;

for(p=a;p<【】;p+=2)

putchar(*p);

}

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

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

}

31.执行以下“for(i=1;i++<=4;i++);”语句后,变量i的值是()。

32.C语言中用______表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。

33.在面向对象方法中,类之间共享属性和方法的机制称为______。

34.若有以下程序:

main()

{inta[4][4]={{1,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);

}

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

35.数据库系统中实现各种数据管理功能的核心软件称为【】。

36.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

37.在结构化分析使用的数据流图(DFD)中,利用【】对其中的图形元素进行确切解释。

38.十进制数53转换为十六进制数为【】。

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

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

40.有以下说明定义和语句,可用a.day引用结构体成员day,写出引用结构体成员day的其他两种形式【】、【】。

struct{intday;charmouth;intyear;}a,*b;b=&a;

三、1.选择题(20题)41.请读程序段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));程序段的输出结果是______。

A.68B.0C.字符'D'的地址D.不确定的值

42.以下程序的输出结果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20

43.表达式~0x11的值是()。

A.0xFFEEB.0x71C.0x0071D.0xFFE1

44.下述关于数据库系统的叙述中,正确的是()。

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

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

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

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

45.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序运行后的输出结果是______。

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

46.以下程序运行后,输出结果为______。main(){inta[2][3]={1,3,5,7,9,11),*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

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

47.树是结点的集合,它的根结点的数目是()。

A.有且只有1个B.1或多于1C.0或1D.至少有2个

48.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

49.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){intn.k;floatscore.sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf("NO%d:%f\n",n,ave);}}上述程序运行后结果不正确,调试中发现有—条语句出现在程序中的位置不正确。这条语句是

A.sum=0.0;

B.sum+=score;

C.ave=sun/4.0;

D.printf("NO%d:%f\n",n,ave);

50.一个采用顺序存储方式的线性表中,若线性表的第一个元素的存储地址是200,每一个元素的长度是2,则第6个元素的地址是______。

A.208B.210C.211D.212

51.下面程序的运行结果是()。#include<stdio.h>main(){inta=1,b=10;do{b-=a;a++;}while(b--<0);printf("a=%d,b=%d\n",a,b);}

A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=9

52.下列不属于软件工程的3个要素的是______。

A.工具B.过程C.方法D.环境

53.若有下面的说明和定义,则sizeof(structaa)的值是______。structaa{intr1;doubler2;floatr3;unionuu{charu1[5];longu2[2]}ua;}mya;

A.30B.29C.24D.22

54.C语言规定,程序中各函数之间()

A.既允许直接递归调用也允许间接递归调用

B.不允许直接递归调用也不允许间接递归调用

C.允许直接递归调用不允许间接递归调用

D.不允许直接递归调用允许间接递归调用

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

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

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

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

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

56.以下叙述中正确的是______。

A.C语言比其他语言高级

B.C语言可以不用编译就能被计算机识别执行

C.C语言以接近英国国家的自然语言和数学语言作为语言的表达形式

D.C语言出现得最晚,具有其他语言的一切优点

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

A.c='97'B.c="97";C.c=97;D.c="a";

58.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。A.switch(x)

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

59.有以下程序:voidswap(char*x,char*y){cbart;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

60.线性表若采用链式存储结构时,要求内存中可用存储单元的地址()

A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以

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

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

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

B.3,4,2,7,9,8,6,5,11,10,

C.2,4,3,9,12,12,11,11,18,9,

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

62.有以下程序:

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

A.6,4,3,2,1

B.6,5,4,3,2

C.5,4,3,2,1

D.10,4,3,2,l

63.

64.下列哪个不属于DOM元素结点类型?

A.元素结点B.文本结点C.属性结点D.样式结点

65.若调用fputc函数输出字符成功,则其返回值是()。

A.EOFB.1C.0D.输出的字符

66.若想定义int型变量a,b,c,d并都赋值为1,以下写法中错误的是()。

A.inta=b=c=d=1;

B.inta=1,b=1,c=1,d

温馨提示

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

评论

0/150

提交评论