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

下载本文档

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

文档简介

2021-2022年辽宁省辽阳市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。

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

2.与单链表相比,双向链表的优点之一是()。

A.插入、删除操作更加简单B.可以随机访问C.可以省略表头指针或表尾指针D.顺序访问相邻结点更加灵活

3.设一棵二叉树有3个叶子节点,有8个度为1的节点,则该二叉树中总的节点数为()

A.12B.13C.14D.15E.16F.17

4.若有定义“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);

5.下列关于C语言文件的叙述中正确的是()。

A.文件由一系列数据依次排列组成,只能构成二进制文件

B.文件由结构序列组成,可以构成二进制文件或文本文件

C.文件由数据序列组成,可以构成二进制文件或文本文件

D.文件由字符序列组成,其类型只能是文本文件

6.若有定义语句:"inta[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

7.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出的结果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

8.以下能正确定义字符串的语句是()。

A.charstr=“\x43”;

B.charstr[]=“\0”;

C.charstr=”;

D.charstr[]={‘\064’};

9.以下程序的输出结果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020

10.有以下程序

#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

11.下而程序的输出结果是()。

A)32

B)26

C)24

D)4

12.

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

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

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

A.耦合度

B.内聚度

C.复杂度

D.数据传输特性

15.算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A.A.有零个输入或多个输入B.高效性C.有穷性D.确定性

16.若有说明charc[7]={'s','t','r','i','n','g'};则对元素的非法引用是()。

A.c[0]B.c[9-6]C.c[4*2]D.c[2*3]

17.

18.下列选项中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

19.下述哪一个是顺序存储结构的优点()。

A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示

20.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为()。

A.0~255B.0~32767C.0~65535D.0~2147483647

二、2.填空题(20题)21.算法的复杂度主要包括时间复杂度和______复杂度。

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

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

23.对于图书管理数据库,将图书表中"人民邮电出版社"的图书的单价涨价5%。请对下面的SQL语句填空:UPDATE图书【】WHERE出版单位="人民邮电出版社"

24.下面程序的功能是求整数m、n的最大公约数,请填空。

main()

{intm,n,r;

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

if(【】){r=m;m=n;n=r;)

while(【】)

{r=m%n;m=n;n=r;}

printf("%d",m);

}

25.有以下程序:

floatf1(floatn)

{returnn*n;}

floatf2(floatn)

{return2*n;}

main()

{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;

p1=f1;p2=f2;

y1=p2(p1(2.0));

t=P1;p1=p2;p2=t;

y2=p2(p1(2.0));

printf("%3.0f,%3.0f\n",y1,y2);

}

程序运行后的输出结果是【】。

26.定义inta=5,b;,则执行表达式b=++a*--a之后,变量b的值为【】。

27.阅读下面程序段,则执行后输出的结果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara='A';

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

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

inti=9;

printf("%o\n",i);

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

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

30.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。

31.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];

*d=0;

for(i=0;【】;i++)

if(*max<【】)

{*max=a[i];*d=i;}}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);}

32.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{intx[10],a[9],I;

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

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

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

printf("");

}

33.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。

voiddelete(chars[],inti,intn)

{intj,k,legth=0;

while(s[length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<length)

while(k<length)

s[j++]=s[k++];

s[j]='\0'

}

34.以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}

35.若有如下程序:

main()

{ints[]={1,2,3,4,5,6},*p=s;

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

则程序运行后的输出结果是【】。

36.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

37.设inta=5,b=6,表达式(++a==b--)?++a:--b的值是【】。

38.以下函数的功能是计算s=1+1/21+1/3!+…+1/n!,请填空。

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k;

s=s+fac;

}

}

39.以下程序用来统计文件中字符个数。请填空。

#include"stdio.h"

main()

{FILE*fp;longnum=OL;

if((fp=fopen("fname.dat","r")==NULL)

{Pirntf("Openerror\n");exit(0);}

while(【】)

{fgetc(fp);num++;}

printf("num=%1d\n",num-1);

fclose(fp);

}

40.若有如下程序:

main()

{ints=8,a=3,b=5,c=6;

if(a>b)s=a;a=b;b=s;

if(a>c){s=a;a=c;b=s);

if(b>c)s=b;b=c;c=s;

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

}

则程序运行后的输出结果是【】。

三、1.选择题(20题)41.以下程序输出的结果为______。main(){char*dlpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char*p;inti;p=alpha;for(i=0;i<4;iff)printf("%s",p[i])}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

42.有如下程序

main()

{intn=9;

while(n>6){n--;printf("%d",n);}}

该程序的输出结果是

A.987B.876C.8765D.9876

43.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12

44.下列数据结构中,能用二分法进行查找的是()。

A.顺序存储的有序线性表B.线性链表C.二叉链表D.有序线性链表

45.可在C程序中用作用户标识符的一组标识符是

A.andB.DateC.HiD.case_2007y-m-dDr.TomBigl

46.有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-′a′+′A′;

s++;}}

main()

{charstr1[100]="abcddfefdbd",c=′d′;

ss(str1,c);printf("%s\n",str1);}

程序运行后的输出结果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

47.整型变量x和y的值相等并且为非零值,则下面选项中,结果一定为零的表达式是()。

A.x|yB.xy

C.x||yD.x&y

48.设有如下三个关系表:

下列操作中正确的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

49.设有定义intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

50.两个或两个以上的模块之间关联的紧密程度称为______。A.耦合度B.内聚度C.复杂度D.数据传输特性

51.有以下程序:voidswap1(int*a,int*b){int*c=a;s=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

52.设计程序时,应采纳的原则之一是()。

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

53.设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

54.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。A.概要设计B.详细设计C.可行性分析D.需求分析

55.在一个C源程序文件中所定义的全局变量,其作用域为A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围

56.以下错误的定义语句是A.intx[][3]={{0},{1},{1,2,3}};

B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D.intx[][3]={1,2,3,4};

57.以下对枚举类型名的定义中正确的是______。

A.enuma={one,two,three};

B.enuma{on=9,two=-1,three};

C.enuma={"one","two","three"};

D.enuma{"one","two","three"};

58.下列正确的实型常量是()。

A.E3.4B.-12345C.2.2e0.8D.4

59.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。A.A.&B.^C.||D.~

60.表示“在使用x之前,先使x的值加1”的正确方式是()

A.++xB.x++C.+xD.+x+

四、选择题(20题)61.程序中若有如下说明和定义语句

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

62.

63.

64.有以下程序:

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

A.2.3B.1,3C.1,4D.1,2

65.若有以下说明和定义,以下叙述中错误的是(

)。uniondt{

int

a;char

b;double

c;}data;A.两个共用体变量之间可以相互赋值B.变量data所占内存字节数与成员c所占字节数相等C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000D.共用体在初始化时只能用第一个成员的类型进行初始化

66.有以下程序:

若运行时输入:123<回车>,则输出结果是()。

A.编译错误2000B.102000C.122030D.10

67.有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是()。

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

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

A.p+5B.*a+1C.&a+1D.&a[0]

69.以下定义数组的语句中错误的是()。

70.若有以下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为6的表达式是_______。

A.*p+6B.*(p+6)C.*p+=5D.p+5

71.

72.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

73.

74.以下选项中不能用作C程序合法常量的是()。

75.读取二进制文件的函数调用形式为:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

A.一个内存块的首地址,代表读入数据存放的地址

B.一个整型变量,代表待读取的数据的字节数

C.一个文件指针,指向待读取的文件

D.一个内存块的字节数

76.下列关于Internet和Web的说法中,正确的是()。

A.Web就是Internet的别称

B.Web是基于Internet之上的一个应用服务

C.Internet是基于Web之上的一个信息系统

D.Internet与Web没有任何关系

77.(71)算法分析的目的是______。

A.找出数据结构的合理性

B.分析算法的效率以求改进

C.分析算法的易懂性和可靠性

D.找出算法中输入和输出之间的关系

78.下列对于线性链表的描述中正确的是()。

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

79.

80.以下程序的输出结果是()。

A.678910

B.13579

C.12345

D.62345

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。

例如,若输入“Ab,cD”,则输出“AB,CD”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!

六、程序设计题(1题)82.编写一个函数,输入n个字符串,串与串之间以Enter键分隔,找出最短字符串中第一个字符串,传回该串地址(用一个新串“*”作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B

2.D

3.B

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

5.C文件由数据序列组成,可以构成二进制文件或文本文件。故本题答案为C选项。

6.A数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

7.B本题考查实参与形参调用,从实参传递到形参时,只是数值的传递,调用函数中值的改变不会影响主函数中的值,因此原样输出。

8.BC语言中,字符串是用一对双引号标识的字符序列,并用字符型数组来存放。C选项和D选项不属于字符串,A选项定义的是一个字符变量str,但赋值字符串,显然也不正确。故本题答案为B选项。

9.B从题目中可知,\O、\t、\\分别为一个字符,而sizeof是求字节个数的函数,其中包括\O占的字节,strlen函数是求数组长度的函数;其以\0结束,因此strlen的值为5,sizeof的值为20。

10.C解析:本题中第一行代码对指针P进行了初始化,其指向数组a的第6个元素,在其后的操作中p的值也没有改变过,所以最后输出*p=*\u3000\u3000(p+0)\u3000\u3000=a\u3000[5]\u3000=6,而第二行代码中对q指向的值进行赋值,等价于*q=a[10]=11,所以输出结果*q为11。

11.C本题考查的是联合所占的存储空间。sizeof(t)=sizeof(douhle)*3=8*3=24。联合体所占的存储空间取决于所占空间最大的成员所占的空间。

12.A

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

14.A解析:本题考核模块独立性的评价。评价模块独立性的主要标准有两个;一是模块之间的耦合,它表明两个模块之间互相独立的程度,也可以说是两个或两个以上模块之间关联的紧密程度(所以,本题的正确答案为选项A);二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。

15.B

16.C

17.D

18.B水平制表符中,'\t'表示的是横向跳若干格;选项B中,'\039'错误,'\039'是八进制形式表的字符,最大数为7,但其中出现'9',','是字符逗号;选项D中,'\n'表示的是换行。

19.A

20.C

21.空间空间解析:算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

22.intz;sub(t1t2);

23.SET单价=单价*1.05SET单价=单价*1.05解析:更新表中元组的值,使用UPDATE命令,一次可以更新表中的一个或多个属性值。UPDATE短语之后指定更新数据所属的表,将新的属性值或表达式赋值给对应的属性名(SET单价=单价*1.05),并置于SET短语之后。要求对人民邮电出版社的图书涨5%,需要用WHERE短语对元组进行限制,即对符合条件的元组进行更新。

24.m<n或n>mr或r!=0m<n或n>m\r\nr或r!=0解析:本题使用的是“辗转相除”法求两个数的最大公约数,即以两个数中较大的除以较小的,如果余数不为0,则将较小的数和余数做同样处理,直到被除断为止,此时较小的数就是两个数的最大公约数。本题第一空要求填写一个if语句的判断条件,如果满足此条件则交换m和n的值,再看后面while循环的循环体,使用m%n求余,则此if语句的作用应该是保证m是两个数中较大的那个,故第一空填m<n或n>m。接下来的while循环实现整个辗转相除的过程,其结束条件应该是余数r为0,所以while的循环条件应该填r或r!=0。

25.8168,16解析:float(*p1)(float)是定义p1为指向函数的float型的指针变量。因此p1=f1;p2=f2;表示p1指向函数f1,p2指向函数f2,故所有y1=p2(p1(2.0))=f2(f1(2.0))=8;后面将p1与p2互换,y2=f1(f2(2.0))=16。

26.2525解析:#NAME?

27.NN解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符“A”的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。

28.1111解析:本题考核的知识点是printf()函数的输出格式。本题中定义了一个整型变量i并赋初值为9,然后要求以八进制输出i的值,9的八进制数的表示为11。

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

30.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。

31.i<na[i]i<n\r\na[i]解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它所指向的变量时要对它进行指针运算,也即*号运算。

32.I=1x[I-1]I=1,x[I-1]解析:对于10个数,相临的两个数相加取和,总共要进行9次加法运算,所以空14处应填入I=1。相临的两个数相加取和,放在数组a中,x[0]与x[1]的和存放在a[0]中,所以空15处应填入x[I-1]。

33.length++i<lengthlength++\r\ni<length解析:第—个循环极有可能是计算串的长度,在i<=length时字符才被删除,被删除的是从第i个到第i+n或最后一个间的所有字符。删除前,应判断i<=length。由于已经进行了-i运算,故实际应填入i<length。

34.x=2

35.4不定值4,不定值

36.封装封装

37.77解析:此表达式为三目运算符,++a的值为6,b--的值为6,则整个表达式的值为++a的值,++a的值为7。请注意前缀++,--和后缀++,--的区别。

38.k=k*ik=k*i解析:本题中遗过for循环求s表达式中每一项的和,表达式“fac=fac/k;”求的是每—项的值,所以k的值应为n!,在求n!的时候,可以用上次循环阶乘的值乘i,就可以直接得此次n!,故本题填k=k*i。

39.!feof(fp)!feof(fp)解析:本题中统计文件中字符个数的算法可描述为;首先判断文件位置指针是否指向了文件尾,如果不是则读出一个字符,同时字符的个数加1,再判断文件位置指针是否位于文件尾,如此循环,直到文件位置指针位于文件尾为止。本题首先以读文件的方式打开了文件“fname.dat”,如果打开成功则把返回的文件型指针赋值给fp,然后通过循环求文件中的字符数。首先判断文件位置指针是否位于文件尾,如果不是则循环读取字符,每次字符数加l。所以下划处应填循环条件,文件位置指针不是指向文件尾,即“!feof(fp)”。

40.5685,6,8解析:首先要清楚当满足第1个if的判断条件时只执行一条语句“s=a;”,当满足第2个if的判断条件时执行一条复合语句“{s=a;a=c;b=s};”,当满足第3个if的判断条件时只执行一条语句“s=b;”。执行程序:判断a>b,由于a=3,b=5则3>5为假,不执行“s=a;”,执行“a=b;”和“b=s;”,则a=5,b=8。判断a>c,由于a=5,c=6则5>6为假,不执行“{s=a;a=c;b=s};”。判断b>c,由于b=5,c=6则5>6为假,不执行“s=b;”,执行“b=c;”和“c=s;”,则b=6,c=8。最后输出5,6,8。

41.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当执行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。

42.B解析:该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n--运算,n的值变为8,所以第一次的输出值是8,由此可以排除选项A)和D)。由循环条件n>6可以知道,最后一次循环开始时,n的值应该为7,所以最后一次执行循环时,输出为6,由此可以排除选项C)。

43.D解析:考查printf函数的相关知识。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和C)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,所以正确答案为B)。输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。所以选项D)为正确答案。

44.A\r\n二分法又叫折半(对分)查找法,只适合于顺序存储的有序表(是指线性表中的元素按值非递减排列)。二分法的基本思想是:设有序线性表的长度为n,被查元素为X,则二分查找的方法如下:

将X与线性表的中间项进行比较:若中间项的值等于x,则说明找到,查找结束;若x小于中间项的值,则在线性表的前半部分(即中间项以前的部分)以相同的方法进行查找;若X大于中间项的值,则在线性表的后半部分(即中间项以后的部分)以相同的方法进行查找、这个过程-直进行到查找成功或于表长度为0,(说明线性表中没有这个元素为止)顺序存储的线性袁在计算机中-般用一个-维数组来表示,在数组中我们可以通过数组名和下标来对数组中的任意一个元素进行访问,而在链表(不管是有序还是无序)中,要对元素进行访问必须从表头结点开始,顺着链条一个一个结点进行搜索,因此选项A正确

45.A解析:在C语言中,合法标识符的命名规则是:标识符可以由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。C语言的标识符可以分为关键字、预定义标识符和用户标识符。选项B)和C)中的横线以及点都不合法,选项D)中的case为C语言关键字。

46.B解析:在内存中,字符数据以ASCII码存储,它的存储形式与整数的存储形式类似。C语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。

47.B解析:两个相同的数位或和位与的结果还是这个数,所以选项A和D都不正确。两个非0的数逻辑或的结果为真,也就是1,所以选项C不正确。位异或是当两个数对应位的值不同时该位结果为1,相同时该位结果为0,两个相同的数的所有对应位都相同,所以结果肯定为0。故应该选择B。

48.C解析:本题考查数据库的关系代数运算。R表中只有一个域名A,有两个记录(也叫元组),分别是m和n;S表中有两个域名,分别是B和C,其所对应的记录分别为1和3。注意观察表T,它是由R的第一个记录依次与S的所有记录组合,然后再由R的第二个记录与S的所有记录组合,形成的一个新表。上述运算恰恰符合关系代数的笛卡儿积运算规则。关系代数中,笛卡儿积运算用“×”来表示。因此,上述运算可以表示为T=R×S。因此,本题的正确答案为C。

49.A解析:题面中各变量定义后,指针变量p指向了变量n2所在的存储单元,指针变量q指向了变量n1所在的存储单元,要使得n1的值赋n2,可用指针变量q所指向的存储单元的值赋给指针变量p所指向的存储单元,即*p=*q。

50.A解析:耦合度是对模块间互相连接的紧密程度的度量;内聚度是对一个模块内部各个元素间彼此结合的紧密程度的度量。

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

52.AA。【解析】程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理解。程序滥用goto语句将使程序流程无规律,可读性差;添加注释行有利于对程序的理解.不应减少或取消,程序的长短要依据实际的需要而定,并不是越短越好。

53.D解析:选项A:'a'&&'b'是字符a与b的相与,不为0:选项B:a<=b,由题中变量赋值可知,结果为1。选项C:a||+c&&b-c,结果为1;选项D:!((a<B)&&!c||1),运算结果为0。

54.D通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

软件生命周期的主要活动阶段为:

①可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成开发任务的实施计划。

②需求分析。对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。编写软件,规格说明书及初步的用户手册,提交评审。

③软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。

④软件实现。把软件设计转换成计算机可以接受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。

⑤软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。

⑥运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。

55.D解析:全局变量的有效范围是从定义变量的位置开始到本源文件结束。如果需要在其他源文件中使用该全局变量,则可以在其他源文件中使用extern关键字来声明该全局变量,这样该全局变量的作用域就被扩展到以extern声明了该全局变量的位置开始到此源文件结束。故本题的正确答案为D。

56.C解析:本题考查的是二维数组的定义和初始化方法。C语言中,在定义并初始化二维数组时,可以省略数组第一维的长度,但是不能省略第二维的长度。故选项C)错误。

57.B解析:声明枚举类型用enum开头。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);说明;1、在C编译中,对枚单元素按常量处理,同时可以改变他们的值。2、枚举值可以用来做判断比较。3、一个整数不能直接赋给一个牧举变量。

58.B解析:实型常量有两种书写形式。①小数形式,它由符号、整数部分、小数点及小数部分组成;②指数形式,由十进制小数形式加上指数部分组成,其形式为:十进制小数e指数或十进制小数E指数。

注:e或E后面的指数必须是整数,并且在e或E的前面必须有数字。本题中,选项A)中E的前面没有数字,因此错误。选项C)中0.8不是整数,因此错误。选项D)中4是整型常量而不是实型常量。

59.B解析:按逻辑位运算的特定作用主要有3点:①用按位与运算将特定位清0或保留特定位:②用按位或运算将特定的位置设置为1;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。

60.A

61.A解析:函数fun()的参数为指针类型,返回值为字符型,而选项B、C的参数不是指针类型,所以不正确,选项D中,*fl(s)表示返回值为指针的函数,所以也不正确。

62.B

63.B

64.B在f(int+P,int4q)函数中,执行P=P+1是将P所对应的地址加1,而0q=+q+1是将q所指向的n的地址所对应的值加1,所以m的得知所对应的值没有变,而n的值则为3了。因此B选项正确。

65.C浮点型占8个字节,整型占4个字节,当把整型数据用浮点型格式输出时,结果为0.000000

66.B首先二维数组a中的元素都初始化为0,其次定义了指向数组的指针ptr,并且依次将ptr指向二维数组

67.D在格式输入中,要求给出的是变量的地址,而B)答案中给出的s[1]是一个值的表达式。

68.D本题考查数组元素的地址的引用。A中,p+5引用的是a[5]的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误(注:数组元素下标从0开始);B中,*a+1指的是将数组a的第一个元素加1;选项C中,不存在这种引用方式;D中,&a[0]引用的是数组的首地址。

69.AA)选项中定义的数组为2行4列,而赋值时赋成了3行,因此出错。

70.C解析:选项A,*p+6,其值等于1+6=7;选项B,*(p+6),其值等于a[6]=7;选项C,*p+=5,其值等于*p=*p+5=1+5=6;选项D,p+5是个地址值。

71.B

72.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。

73.A

74.A整数不能用逗号隔开,所以A)错误。

75.Afread(void*buffer,sizet_size,sizet__count,FILE*stream);功能是从一个文件流中读数据,读取countl"元素,每个元素disize个字节,如果调用成功返回count。buffer:用于接收数据的内存地址,大小至少是size*count个字节;size:单个元素的大小,单位是字节;count:元素的个数,每个元素占size个字节;streaili:输入流。故本题答案为A)。

76.B

77.B

78.A解析:在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。由此可见,选项A的描述正确。因此,本题的正确答案为A。

79.D

80.Achange函数的功能是将数组中的第6个元素值赋给第l个元素。第一次调用后,x[0]=x[5]=6。第二次调用实际是以x的第2个元素作为数组首元素,所以调用结束时x[1]=x[6]=7。后三次调用分别将x[2]、x[3]、x[4]赋值为8、9、10。81.

(1)if((tt[i]>=’a’)&&(tt[i]<=‘z’))

(2)tt[i]一=32;

【考点分析】

本题考查:if语句条件表达式;小写字母转大写字母的方法。

【解题思路】

(1)分析本题可知,要判断字符是否为小写字母,即判断其是否在a—z之间,所以这里需要进行连续的比较,用&&。(2)从ASCIl码表中可以看出,小写字母的ASCIl码值比对应大写字母的ASCIl值大32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASCIl码值判断该字母是不是小写字母,若是,则ASCIl码值减32即可。

82.

【解析】首先指定第一个字符串为长度最小的字符串,然后在循环过程中将其与其他的所有串的长度进行比较,求出最小的串。设置一个指针变量min,使它的初值为第一个字符串,再使其他的所有串的长度与min的长度进行比较,若其他字符串的长度小于min.则将其他字符串的首地址赋值给min。最后使用返回语句,返回最短长度min的字符串的地址。

2021-2022年辽宁省辽阳市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。

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

2.与单链表相比,双向链表的优点之一是()。

A.插入、删除操作更加简单B.可以随机访问C.可以省略表头指针或表尾指针D.顺序访问相邻结点更加灵活

3.设一棵二叉树有3个叶子节点,有8个度为1的节点,则该二叉树中总的节点数为()

A.12B.13C.14D.15E.16F.17

4.若有定义“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);

5.下列关于C语言文件的叙述中正确的是()。

A.文件由一系列数据依次排列组成,只能构成二进制文件

B.文件由结构序列组成,可以构成二进制文件或文本文件

C.文件由数据序列组成,可以构成二进制文件或文本文件

D.文件由字符序列组成,其类型只能是文本文件

6.若有定义语句:"inta[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

7.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}输出的结果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

8.以下能正确定义字符串的语句是()。

A.charstr=“\x43”;

B.charstr[]=“\0”;

C.charstr=”;

D.charstr[]={‘\064’};

9.以下程序的输出结果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020

10.有以下程序

#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

11.下而程序的输出结果是()。

A)32

B)26

C)24

D)4

12.

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

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

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

A.耦合度

B.内聚度

C.复杂度

D.数据传输特性

15.算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A.A.有零个输入或多个输入B.高效性C.有穷性D.确定性

16.若有说明charc[7]={'s','t','r','i','n','g'};则对元素的非法引用是()。

A.c[0]B.c[9-6]C.c[4*2]D.c[2*3]

17.

18.下列选项中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

19.下述哪一个是顺序存储结构的优点()。

A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示

20.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为()。

A.0~255B.0~32767C.0~65535D.0~2147483647

二、2.填空题(20题)21.算法的复杂度主要包括时间复杂度和______复杂度。

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

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

23.对于图书管理数据库,将图书表中"人民邮电出版社"的图书的单价涨价5%。请对下面的SQL语句填空:UPDATE图书【】WHERE出版单位="人民邮电出版社"

24.下面程序的功能是求整数m、n的最大公约数,请填空。

main()

{intm,n,r;

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

if(【】){r=m;m=n;n=r;)

while(【】)

{r=m%n;m=n;n=r;}

printf("%d",m);

}

25.有以下程序:

floatf1(floatn)

{returnn*n;}

floatf2(floatn)

{return2*n;}

main()

{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;

p1=f1;p2=f2;

y1=p2(p1(2.0));

t=P1;p1=p2;p2=t;

y2=p2(p1(2.0));

printf("%3.0f,%3.0f\n",y1,y2);

}

程序运行后的输出结果是【】。

26.定义inta=5,b;,则执行表达式b=++a*--a之后,变量b的值为【】。

27.阅读下面程序段,则执行后输出的结果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara='A';

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

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

inti=9;

printf("%o\n",i);

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

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

30.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。

31.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];

*d=0;

for(i=0;【】;i++)

if(*max<【】)

{*max=a[i];*d=i;}}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);}

32.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{intx[10],a[9],I;

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

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

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

printf("");

}

33.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。

voiddelete(chars[],inti,intn)

{intj,k,legth=0;

while(s[length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<length)

while(k<length)

s[j++]=s[k++];

s[j]='\0'

}

34.以下程序段的运行结果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}

35.若有如下程序:

main()

{ints[]={1,2,3,4,5,6},*p=s;

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

则程序运行后的输出结果是【】。

36.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。

37.设inta=5,b=6,表达式(++a==b--)?++a:--b的值是【】。

38.以下函数的功能是计算s=1+1/21+1/3!+…+1/n!,请填空。

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k;

s=s+fac;

}

}

39.以下程序用来统计文件中字符个数。请填空。

#include"stdio.h"

main()

{FILE*fp;longnum=OL;

if((fp=fopen("fname.dat","r")==NULL)

{Pirntf("Openerror\n");exit(0);}

while(【】)

{fgetc(fp);num++;}

printf("num=%1d\n",num-1);

fclose(fp);

}

40.若有如下程序:

main()

{ints=8,a=3,b=5,c=6;

if(a>b)s=a;a=b;b=s;

if(a>c){s=a;a=c;b=s);

if(b>c)s=b;b=c;c=s;

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

}

则程序运行后的输出结果是【】。

三、1.选择题(20题)41.以下程序输出的结果为______。main(){char*dlpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char*p;inti;p=alpha;for(i=0;i<4;iff)printf("%s",p[i])}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

42.有如下程序

main()

{intn=9;

while(n>6){n--;printf("%d",n);}}

该程序的输出结果是

A.987B.876C.8765D.9876

43.有以下程序段

charch;intk;

ch=′a′;k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12

44.下列数据结构中,能用二分法进行查找的是()。

A.顺序存储的有序线性表B.线性链表C.二叉链表D.有序线性链表

45.可在C程序中用作用户标识符的一组标识符是

A.andB.DateC.HiD.case_2007y-m-dDr.TomBigl

46.有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-′a′+′A′;

s++;}}

main()

{charstr1[100]="abcddfefdbd",c=′d′;

ss(str1,c);printf("%s\n",str1);}

程序运行后的输出结果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

47.整型变量x和y的值相等并且为非零值,则下面选项中,结果一定为零的表达式是()。

A.x|yB.xy

C.x||yD.x&y

48.设有如下三个关系表:

下列操作中正确的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

49.设有定义intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

50.两个或两个以上的模块之间关联的紧密程度称为______。A.耦合度B.内聚度C.复杂度D.数据传输特性

51.有以下程序:voidswap1(int*a,int*b){int*c=a;s=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

52.设计程序时,应采纳的原则之一是()。

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

53.设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

54.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()。A.概要设计B.详细设计C.可行性分析D.需求分析

55.在一个C源程序文件中所定义的全局变量,其作用域为A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和extern说明来决定范围

56.以下错误的定义语句是A.intx[][3]={{0},{1},{1,2,3}};

B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D.intx[][3]={1,2,3,4};

57.以下对枚举类型名的定义中正确的是______。

A.enuma={one,two,three};

B.enuma{on=9,two=-1,three};

C.enuma={"one","two","three"};

D.enuma{"one","two","three"};

58.下列正确的实型常量是()。

A.E3.4B.-12345C.2.2e0.8D.4

59.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。A.A.&B.^C.||D.~

60.表示“在使用x之前,先使x的值加1”的正确方式是()

A.++xB.x++C.+xD.+x+

四、选择题(20题)61.程序中若有如下说明和定义语句

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

62.

63.

64.有以下程序:

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

A.2.3B.1,3C.1,4D.1,2

65.若有以下说明和定义,以下叙述中错误的是(

)。uniondt{

int

a;char

b;double

c;}data;A.两个共用体变量之间可以相互赋值B.变量data所占内存字节数与成员c所占字节数相等C.程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000D.共用体在初始化时只能用第一个成员的类型进行初始化

66.有以下程序:

若运行时输入:123<回车>,则输出结果是()。

A.编译错误2000B.102000C.122030D.10

67.有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是()。

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

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

A.p+5B.*a+1C.&a+1D.&a[0]

69.以下定义数组的语句中错误的是()。

70.若有以下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为6的表达式是_______。

A.*p+6B.*(p+6)C.*p+=5D.p+5

71.

72.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

73.

74.以下选项中不能用作C程序合法常量的是()。

75.读取二进制文件的函数调用形式为:fread(buffer,size,Count,fp);,其中buffed

代表的是()。

A.一个内存块的首地址,代表读入数据存放的地址

B.一个整型变量,代表待读取的数据的字节数

C.一个文件指针,指向待读取的文件

D.一个内存块的字节数

76.下列关于Internet和Web的说法中,正确的是()。

A.Web就是Internet的别称

B.Web是基于Internet之上的一个应用服务

C.Internet是基于Web之上的一个信息系统

D.Internet与Web没有任何关系

77.(71)算法分析的目的是______。

A.找出数据结构的合理性

B.分析算法的效率以求改进

C.分析算法的易懂性和可靠性

D.找出算法中输入和输出之间的关系

78.下列对于线性链表的描述中正确的是()。

A.存储空间不一定连续,且各元素的存储顺序是任意的

B.存储空间不一定连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

79.

80.以下程序的输出结果是()。

A.678910

B.13579

C.12345

D.62345

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。

例如,若输入“Ab,cD”,则输出“AB,CD”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!

六、程序设计题(1题)82.编写一个函数,输入n个字符串,串与串之间以Enter键分隔,找出最短字符串中第一个字符串,传回该串地址(用一个新串“*”作为结束输入的标志)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:

参考答案

1.B

2.D

3.B

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

5.C文件由数据序列组成,可以构成二进制文件或文本文件。故本题答案为C选项。

6.A数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

7.B本题考查实参与形参调用,从实参传递到形参时,只是数值的传递,调用函数中值的改变不会影响主函数中的值,因此原样输出。

8.BC语言中,字符串是用一对双引号标识的字符序列,并用字符型数组来存放。C选项和D选项不属于字符串,A选项定义的是一个字符变量str,但赋值字符串,显然也不正确。故本题答案为B选项。

9.B从题目中可知,\O、\t、\\分别为一个字符,而sizeof是求字节个数的函数,其中包括\O占的字节,strlen函数是求数组长度的函数;其以\0结束,因此strlen的值为5,sizeof的值为20。

10.C解析:本题中第一行代码对指针P进行了初始化,其指向数组a的第6个元素,在其后的操作中p的值也没有改变过,所以最后输出*p=*\u3000\u3000(p+0)

温馨提示

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

评论

0/150

提交评论