2021-2022年河南省三门峡市全国计算机等级考试C语言程序设计_第1页
2021-2022年河南省三门峡市全国计算机等级考试C语言程序设计_第2页
2021-2022年河南省三门峡市全国计算机等级考试C语言程序设计_第3页
2021-2022年河南省三门峡市全国计算机等级考试C语言程序设计_第4页
2021-2022年河南省三门峡市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年河南省三门峡市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有定义语句:“intx,y;”,若要通过“scanf("%d,%d,&x,&y);”语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是

A.1112<回车>B.11,12<回车>C.11,12<回车>D.11,<回车>12<回车>

2.有以下程序:#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<9)printf("%d\n",a);clscprintf("%d\n",a--);}程序运行时从键盘输入9<回车>,则输出结果是()。A.10B.11C.9D.8

3.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩.,则表SC的关键字(键或码)为()

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩

4.C语言中,组成数据文件的成分是()。A.A.记录

B.数据行

C.数据块

D.字符(字节)序列

5.第

27

有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。

#include<stdio.h>

main()

{inti;

for(i=100;i<200;i++)

if((i-2)%4==0)

if(!((i-3)%7))

if(_______)

printf("%d",i);

}

A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0

6.设单链表中结点的结构为非空的循环单链表first的尾结点(由p所指向)满足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;

7.有以下定义语句,编译时会出现编译错误的是()。

A.chara=a;B.chara=\nC.chara=aa;D.chara=\x2d;

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

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

9.

10.设x和y均为bool量,则x&&y为真的条件是()。

A.它们均为真B.其中一个为真C.它们均为假D.其中一个

11.判断一个循环队列cq(最多元素为m)为空的条件是()。A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

12.设有一组关键字序列{5,8,14,20,31,55,78,81,93,97,111},使用二分(折半)法查找关键字93最少需要进行多少次比较()A.2B.3C.4D.5

13.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00

14.以下四个选项,不能看作一条语句的是()。

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

15.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是

A.1267B.1256C.1278D.1245

16.设有如下函数定义:#include<stdio.h>intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若执行调用语句“n=fun(3);”,则函数fun总共被调用的次数是()。

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

17.有以下程序

#include<stdio.h>

intfun()

{staticintx=1;

x*2;returnx;

}

main()

{inti,s=1,

for(i=1;i<=2;i++)s=fun();

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

程序运行后的输出结果是A.A.0B.1C.4D.8

18.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是()

A.多对多B.一对一C.多对一D.一对多

19.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)

20.

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

structNODE

{intk;

structNODE*link;

};

main()

{structNODEm[5],*p=m,*q=m+4;

inti=0;

while(p!=q){

p->k=++i;p++;

q->k=i++;q--;

}

q->k=i;

for(i=0;i<5;i++)printf("%d",m[i].k);

printf("\n");

}

22.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

23.对于长度为n的线性表,若进行顺序查找,时间复杂性为【】;若进行二分查找,则时间复杂性为【】。

24.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

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

}

25.以下程序的运行结果是()。

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

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

FILE*myf;longf1;

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

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

fclose(myf);

printf("%1d\n",f1);

28.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

29.有以下程序

main()

{intt=1,i=5;

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

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

}

执行后输出结果是______。

30.若有定义inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[1][1]得到的初值是______。

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

32.已知字符'A'的ASCII码值为65,以下语句的输出结果是【】。

charch='B';

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

33.当线性表的元素总数基本稳定,且很少进行插入和删除操作,并要求以很快的速度存取线性表中的数据元素时,应采用【】存储结构。

34.有以下程序:

#include<stdio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序运行时,如果从键盘输入Y?N?<回车>,则输出结果为【】。

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

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

main()

{enumem{em1=3,em2=l,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s\n",aa[eml],aa[em2],aa[em3]);

}

37.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,请填空:

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,B);

for(i=0;i<3;i++)printf("%4d",b[i]);

printf("\n");

}

voidfun(intm,intn,intar[][4],int*bar)

{inti,j,x;

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

{X=ar[i][0];

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];()=x:

}

}

38.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。

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

#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,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

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

*(a+t2)=ch;

t1++;t2--;}}

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

FILE*myf;longf1;

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

fscek(myf,(),SEEK_END);f1+ftell(myf);

fclose(myf);

printf("%1d\n",f1);

三、1.选择题(20题)41.结构化程序设计的3种基本结构是()。

A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移

42.下面程序输出的结果是main(){intinta[3)[3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",a[2-i][i]);}

A.159B.753C.357D.591

43.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

44.软盘处于写保护状态时,其中记录的信息______。

A.不可能丢失

B.不能被擦除,但能追加新的信息

C.不能通过写磁盘操作被更新

D.不能以常规方式擦除,但可以通过操作系统的格式化功能擦除

45.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}执行后输出结果是()。

A.赋初值的字符串有错B.6,7C.5,6D.6,6

46.以下程序的输出结果是()。#include<stdio.h>main(){printf("%d\n",NULL);}

A.不确定的值(因变量无定义)B.0C.-1D.1

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

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

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

A.构成C程序的基本单位是函数

B.可以在一个函数中定义另一个函数

C.main()函数必须放在其他函数之前

D.所有被调用的函数一定要在调用之前进行定义

49.设有栈S和队列Q,其初始状态为空,元素a1、a2、a3、a4、a5、a6依次入栈,出栈的元素进入队列Q,若6个元素出队列的顺序是a2、a4、a3、a6、a5、a1,则栈的容量至少是______。

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

50.下面不属于软件设计原则的是()。

A.抽象B.模块化C.自底向上D.信息隐蔽

51.在函数scanf的格式控制中,格式说明的类型与输入项的类型应该对应匹配。如果类型不匹配,系统将()。

A.不予接收B.并不给出出错信息,但不能得到正确的数据C.能接收到正确输入D.给出出错信息,不予接收输入

52.已知字母A的ASCII码为十进制数65,下面程序的输出结果是()main(){charch1,ch2;ch1=A+5-3;ch2=A+6-3;printf("%d,%c\n",ch1,ch2);}

A.67,DB.B,CC.C,DD.不正确定的值

53.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n".k);}执行后的输出结果是()。

A.5,5B.5,11C.11,11D.11,5

54.下列程序的运行结果是()。#include<stdio.h>#include<string.h>main(){char*s1="ahDuj";char*s2="ABdUG":intt;t=strcmp(s1,s2);printf("%d",t);}

A.正数B.负数C.零D.不确定的值

55.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件

B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

56.有下列程序:main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}执行后的输出结果是()。

A.5B.24C.32D.40

57.若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。

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

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

C.s->next=NULL;p=p->next;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

58.fscanf函数的正确调用形式是()。

A.fscanf(文件指针,格式字符串,输出表列);

B.fscanf(格式字符串,输出表列,文件指针);

C.fscanf(格式字符串,文件指针,输入表列);

D.fscanf(文件指针,格式字符串,输入表列);

59.下面程序段中c的二进制值是______。chara=3,b=6,c;c=a^b<<1;

A.1011B.1111C.11110D.11100

60.下面程序的输出结果是______。main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}

A.3B.3.2C.0D.3.07

四、选择题(20题)61.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。

A.函数的形参和实参分别占用不同的存储单元

B.形参只是形式上的存在,不占用具体存储单元

C.同名的实参和形参占同一存储单元

D.函数的实参和其对应的形参共占同一存储单元

62.有以下程序:

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

A.24B.720C.120D.6

63.

64.

65.

66.(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()

A.可行性分析

B.需求分析

C.详细设计

D.程序编码

67.设有以下程序段:

intX=0,s=0;

while(!X!=0.s+=++X;

prinff(”%d”,S.;

则()。

A.运行程序段后输出0B.运行程序段后输出lC.程序段中的控制表达式是非法的D.程序段执行无限次

68.

69.

70.下列SQL语句中,用于修改表结构的命令式是A.A.Alter

B.Create

C.Update

D.Insert

71.

72.以下是正确C语言实型常量的是()。

A..e—1B.e一1C.一1eD.1e一1

73.

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

A.在switch语句中,不-定使用break语句

B.在switch语句中必须使用default

C.break语句必须与switch语句中的case配对使用

D.break语句只能用于switch语句

75.下列程序执行后的输出结果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}

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

76.

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

A.软件交付使用后还需要进行维护

B.软件一旦交付使用就不需要再进行维护

C.软件交付使用后其生命周期就结束

D.软件维护是指修复程序中被破坏的指令

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

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

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

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

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

79.有以下程序

80.

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

请修改函数proc()中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.规定输入的字符串中只包含字母和+号。编写函数fun,其功能是:除了字符串前导和尾部的母号外,将其他的*号全部删除。形参h已指向字符串中第一个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用c语言提供的字符串函数。

参考答案

1.A解析:本题考核的知识点是scanf()函数的运用。seanf()函数有两个参数,第一个参数为输入格式字符串,第二个参数为输入变量地址列表,在scallf()语句中非格式字符可以作为输入时数据的间隔,输入时必须原样输入,在本题中输入格式串为%d,%d其中“,”为非格式字符,所以输入时必须原样输入。所以4个选项中选项A符合题意。

2.A本题考查简单的运算符操作.当输入9时,(a++<9)为假,所以执行else语句中的printf("%d\n",a--),在执行时此时a经过a++操作a=10,所以答案为A。

3.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。

4.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。

5.D

6.C

7.Cchar类型用于存储单个字符的简单变量类型,它可以被指定为一个字符常量或一个整数。

8.B解析:实型常量有两种书写形式:①小数形式,它由符号、整数部分、小数点及小数部分组成;②指数形式,由十进制小数形式加上指数部分组成,其形式为十进制小数e指数或十进制小数E指数。注:e或E后面的指数必须是整数,并且在e或E的前面必须有数字。本题中,选项A)中E的前面没有数字,因此错误。选项C)中0.8不是整数,因此错误。选项D)中4是整型常量而不是实型常量。

9.D

10.A

11.C

12.A

13.A结构体和共用体;在“联合”中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值

14.D解析:在if后面只能有一条语句,或一条复合语句,即用花括号将多条语句括起来。选项D)中没有将两条语句括起来,不能看成一条语句。

15.D解析:putchar(c1)输出1,putchar(c2)输出2,printf('%c%c\\n',c5,c6)输出45。

16.B执行调用语句“n=fun(3);”,3被当作实参传递进去,进行了一次调用。3被当作实参传进去后,程序会执行“elsereturnfun(k-1)+1;”,函数被调用了第2次,参数是3-1,也就是2。2被当作参数传进去后,程序会执行“elsereturnfun(k-1)+1;”函数被调用了第3次,参数是2-1,也就是1。1被当作实参传进去后,程序会执行“elseif(k==1)return1;”,函数不再被递归调用。所以最终结果为3次。故本题答案为B选项。

17.C

18.C解析:该题考查的是实体间的联系。多对多联系(m:n):如果对于实体集A中的每个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中有m个实体(m≥0)与之联系,则称实体集A与实体集B之间是多对多联系,记作m:n。一对一联系(1:1):如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之有联系,反之亦然,则称实体集A与实体集B之间是一对一联系,记作1:1。一对多联系(1:n):如果对于实体集A中每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B之间是一对多联系,记作1:n。那么根据题意可知是多对一联系。所以选项C是正确的。

19.C

20.A

21.1343113431解析:初始化时,指针p指向m[0]的地址,指针q指向m[4]的地址,p!=q满足循环条件,执行循环语句,得到m[0].k=1,m[4].k=1,此时i=2,指针p指向m[1]的地址,指针q指向m[3]的地址,p!=q满足循环条件,执行循环语句,得到m[1].k=3,k=3,此时i=4,指针q指向m[2]的地址,p==q不满足循环条件,则退出循环,m[2].k=4。所以最后输出为13431。

22.中序中序解析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历.前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左了树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树:并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然光遍历右子树,然后访问根结点,最后遍历左子树。

23.O(n)O(log2n)

24.t*10或10*tt*10或10*t解析:本题要求累加一系列有规律的数,从输出结果来看,s保存的是最终结果,而s在循环体中,每次累加一个t,则说明t在5次循环中分别等于1.12、123、1234、12345;而t每次循环等于“填空内容”加上循环变量i,又因为i在5次循环中分别等于1、2、3、4,5,所以t每次循环要加的“填空内容”应分别为0、10、120,1230,12340,这一系列值正好是前一次t的值的10倍.所以“填空内容”应是t*10。

25.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函数main()中定义了一个变量i,并赋初值4,调用fun()函数将i的初值传递给形参m,进行fun()函数后的运算,输出结果为m=4,k=4。将k值输出后自行增加1,k=5,此时全局变量k的值变为5。主函数中调用fun()函数后,i再自行增加1,i=5,所以主函数输出的结果为“i=5k=5”。

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

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

28.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。

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

30.二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的,a[4][4]可以分解为4个一维数组,其数组名分别为a[O]、a[1]、a[2]、a[3],这4个一维数组都有4个元素,a[0]的元素为a[0][0]、a[0][1]、a[0][2]、a[0][3]。\r\n\r\n

31.x>5||x<-5或abs(x)>5x>5||x<-5或abs(x)>5解析:要使整数x的绝对值大于5,则x大于5或x小于-5,用C语言表示即为:x>5||x<-5或者abs(x)>5。

32.B66B66解析:字符B的ASCII码值为66,因此,按%c形式输出B,按%d形式输出66,输出结果为:B66。

33.顺序顺序

34.XX解析:程序是从键盘缓冲区循环接收字符,并输出接收到的字符在ASCII码表中的前一个字符,直到接收到‘?’为止。

35.3535解析:函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,形参指针变量a和b分别指向i和j,在swap(int*a,int*b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。

36.DDBBCCDDBBCC解析:C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值+1。在本题中,没有明确说明枚举元素em3的值,则em3=em2+1=1+1=2,进而可知,在printf()打印函数中,要打印的数组元素是aa[3],aa[1]、aa[2],因此最后的打印结果应当为“DDBBCC”。

37.br[i]br[i]解析:函数fun的功能是求出二维数组每行元素中的最大值。对于3行4列的二维数组将有3个最大值存放到数组br[]中。x存放的是每行的最大值,当求出每行的最大值x后,应该将x赋值给br[]。因此此处填空应该是br[i]。

38.log2n

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

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

关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。

41.BB。【解析】程序的三种基本控制结构包括:顺序、选择和重复(循环),这三种结构就足以表达出各种其他形式的结构。

42.B解析:本题用循环的方法考查对数组概念的掌握。首先,当i=0时,数组中的位置是a[2][0]=7,当然,如果用排除法的话,就不用考虑后面的循环了,因为在4个选项中,第1个数为了的选项只有B)。本题执行第2次循环时,i的值为1,则printf函数中的数组指向为a[1][1]=5,依次循环,可求出答案。

43.B解析:在C语言的数组元素的引用方法,我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0),即*p来引用,对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”:*(p+1)就代表存储单元a[1],注意:一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式。(p+2)来引用…,对于数组元素a[9],可以用表达式,(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i<10,则数组元素a[i]可以用*(p+i)来表示。

44.C

45.C解析:本题在定义字符数组时没有定义数组长度,但用字符常量给数组赋了初值,这时初值的个数即为数组的长度,故数组长度为6(包括'\\0')。字符串的长度为有效字符的个数5。strlen(s)返回值为串中字符的个数(不计最后的'\\0'),则输出值为5。sizeof(s)计算数组所占的字节数,包含'\\0',则输出值为6。因此,C选项正确。

46.B解析:在C语言中NULL的ASCII码值为0,而输出函数要求以整形格式输出,故最后的输出数0。所以,选项B正确。

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.A解析:本题综合考查C语言的概念部分,关于C语言,我们应该了解以下必须要掌握的基础知识:

①C程序是由函数构成的。

②一个函数由两部分组成:函数的首部和函数体。

③一个C程序总是从main函数开始执行的,而不论main函数的整个程序中的位置如何(main函数可以放在程序最开始,也可以放在程序最后,或写在一些函数之前,在另一些函数之后)。

④C程序在书写上,表现形式比较自由,一行内可以写几个语句,一个语句可以分写在几行上。每个语句和数据定义的最后必须有一个分号。

⑤C程序本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成。

⑥可以用/*……*/对C语言的程序的任何部分作注释。

49.C

50.C解析:软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节。②模块是指可以单独命名且可编址的元素。如高级语言中的过程、函数、子程序等。③信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。因此,本题的正确答案是C。

51.B解析:在scanf函数的格式控制中,格式说明的类型与输入项的类型必须一一对应匹配,如不匹配将导致数据输入出现错误,但是系统并不报错。

52.A

53.B解析:子函数fun(intx,inty),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m+1”时,i的值为9,因此最终m的值为11。

54.A解析:本题考查字符串比较函数和两个字符串比较的原则两个知识点:①原则是依次比较两个字符串同—位置的一对字符,若它们的ASCII码值相同,则继续比较下一对字符,若它们的ASCII码值不同.则ASCII码值较大的字符所在的串符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部i个字符与另一个字符串的前i个字符相同,则字符串较长的较大。②strcmp(s1,s2)的返回值,当str1<str2时,返回值<0;当str1=str2时,返回值为0;当str1>str2,返回值>0。

55.D解析:C语言把文件看成是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件和二进制文件。ASCII文件又称文本文件,它的每一个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。

56.C解析:在for循环体中,首先判断自变量i能否被5整除,然后再自加两次,最后判断i能否被8整除。当for循环执行到第30次时,i的值为30能被5整除,然后i经过两次自加1运算,值变为32,能被8整除,故执行“printf('%d',i);”语句,即输出32。本题的答案为选项C)。

57.A解析:在答案A中:p=p->next;s->next=p;p->next=s;s的确已插到了链表的末尾,但它的next却并没有为NULL,而是指向了它的直接前趋p,这样它就不是一个单向链表(单向链表最后一个结点的next指针一定是一个NULL)。

58.D解析:fscanf的调用形式是:fscanf(文件指针,格式字符串,输入表列);

59.B解析:C语言提供六种位运算符,按优先级由高到低的顺序分别为:取反(~)、左移(<<)和右移(>>)、按位与(&)、按位异或(∧)、按位或(|)。所以表达式c=a^b<<1先运算b<<1得二进制值为00001100,再运算a∧00001100,最后得二进制值00001111。

60.C

61.A本题重点考察的是函数的形参和实参。I在定义函数时函数名后面括弧中的变量名称为“形式参数”l(简称形参),在主调函数中调用一个函数时,函数名后面括弧1中的参数(可以是—个表达式)称为“实际参数”(简称实参)。fC语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。因此A选项正确。

62.C函数hm()求数组指定返回的元素的积。函数fun(a,3)求的是数组a[0]~a[3]的积。因此结果为2t3女4十5=120,故答案为C选项。

63.A

64.A

65.D

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

67.B考查while语句的使用,逻辑非运算符和不等于运算符的区别,逻辑非运算符”!”的优先级大于不等于运算符”!=”的优先级。

68.B

69.C

70.A本题主要考查SQL中一些基本的命令。SQL常用的语句包括:Select、Insert、Update、Delete、Create、Alter和Drop等。

在SQL语言中使用率最高的是Select,这个命令的作用是从表中查找出满足条件的记录。

Insert命令的作用是对数据表进行插入操作。

Update命令的作用是对数据表进行更新操作。

Delete命令的作用是对数据表中的数据进行删除操作。

Create命令的作用是创建数据表。

Alter命令的作用是修改表的结构。

Drop命令的作用是用来删除表,它与Delete的区别是进行Drop操作后,数据表不存在了,而进行Delete操作后,数据表还在,只是数据被删除了。

71.A

72.D所谓常量是指在程序运行过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。实型常量有两种表示形式:十进制小数形式、指数形式。指数形式中e后面的指数必须是整数,阶码标志e之前需要有数字,由此可知选项A,B,C错误。答案为D选项

73.B

74.Adefault语句在swtch语句中可以省,所以8错误;switch语句中并非每个case后都需要使用break语句,所以c错误;break语句还可以用于for等循环结构中,所以D错误。

75.D解析:本题中的宏调用MA(1+a+b)展开后的结果是1+a+b*(1+a+b-1)=1+1+2*(1+1+2-1)=2+2*3=8。所以输出的结果是8,选项D正确。

76.B

77.A解析:维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。软件工程学的目的就在于提高软件的可维护性,同时也要设法降低维护的代价。

软件维护通常有以下四类;

①为纠正使用中出现的错误而进行的改正性维护;

②为适应环境变化而进行的适应性维护;

③为改进原有软件而进行的完善性维护;

④为将来的可维护和可靠而进行的预防性维护。

软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。由此可知,本题中选项B、C、D中的说法都是错误的。

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

79.Af(2)展开后为,2*5+1,值为ll,f(1+1)展开后为,l+1*5+1值为7,所以答案选择A):

80.B

81.(1)错误:y=0;

正确:y=1;

(2)错误:d=i=num;

正确:d=num-i;

【解析】由函数proc()可知,变量y是判断小于num/2的整数中是否存在素数的标志,y=1为找到所要的素数,其初始值应该为1,因此,“y=0;”应改为“y=1;”变量ntim为两个素数之和,变量i和d为要求的两个素数,因此,“d=i-num;”应改为“d=num-i;”。

82.

2021-2022年河南省三门峡市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有定义语句:“intx,y;”,若要通过“scanf("%d,%d,&x,&y);”语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是

A.1112<回车>B.11,12<回车>C.11,12<回车>D.11,<回车>12<回车>

2.有以下程序:#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<9)printf("%d\n",a);clscprintf("%d\n",a--);}程序运行时从键盘输入9<回车>,则输出结果是()。A.10B.11C.9D.8

3.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩.,则表SC的关键字(键或码)为()

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩

4.C语言中,组成数据文件的成分是()。A.A.记录

B.数据行

C.数据块

D.字符(字节)序列

5.第

27

有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。

#include<stdio.h>

main()

{inti;

for(i=100;i<200;i++)

if((i-2)%4==0)

if(!((i-3)%7))

if(_______)

printf("%d",i);

}

A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0

6.设单链表中结点的结构为非空的循环单链表first的尾结点(由p所指向)满足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;

7.有以下定义语句,编译时会出现编译错误的是()。

A.chara=a;B.chara=\nC.chara=aa;D.chara=\x2d;

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

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

9.

10.设x和y均为bool量,则x&&y为真的条件是()。

A.它们均为真B.其中一个为真C.它们均为假D.其中一个

11.判断一个循环队列cq(最多元素为m)为空的条件是()。A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

12.设有一组关键字序列{5,8,14,20,31,55,78,81,93,97,111},使用二分(折半)法查找关键字93最少需要进行多少次比较()A.2B.3C.4D.5

13.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位编译系统上,程序执行后的输出结果是______。A.21,43B.43,21C.43,00D.21,00

14.以下四个选项,不能看作一条语句的是()。

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

15.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是

A.1267B.1256C.1278D.1245

16.设有如下函数定义:#include<stdio.h>intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若执行调用语句“n=fun(3);”,则函数fun总共被调用的次数是()。

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

17.有以下程序

#include<stdio.h>

intfun()

{staticintx=1;

x*2;returnx;

}

main()

{inti,s=1,

for(i=1;i<=2;i++)s=fun();

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

程序运行后的输出结果是A.A.0B.1C.4D.8

18.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是()

A.多对多B.一对一C.多对一D.一对多

19.下列程序段的时间复杂度为()。A.O(2n)B.O(n)C.O(n2)D.O(i*j)

20.

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

structNODE

{intk;

structNODE*link;

};

main()

{structNODEm[5],*p=m,*q=m+4;

inti=0;

while(p!=q){

p->k=++i;p++;

q->k=i++;q--;

}

q->k=i;

for(i=0;i<5;i++)printf("%d",m[i].k);

printf("\n");

}

22.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种;前序遍历、【】遍历和后序遍历。

23.对于长度为n的线性表,若进行顺序查找,时间复杂性为【】;若进行二分查找,则时间复杂性为【】。

24.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

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

}

25.以下程序的运行结果是()。

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

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

FILE*myf;longf1;

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

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

fclose(myf);

printf("%1d\n",f1);

28.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

29.有以下程序

main()

{intt=1,i=5;

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

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

}

执行后输出结果是______。

30.若有定义inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},则初始化后,a[1][1]得到的初值是______。

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

32.已知字符'A'的ASCII码值为65,以下语句的输出结果是【】。

charch='B';

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

33.当线性表的元素总数基本稳定,且很少进行插入和删除操作,并要求以很快的速度存取线性表中的数据元素时,应采用【】存储结构。

34.有以下程序:

#include<stdio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序运行时,如果从键盘输入Y?N?<回车>,则输出结果为【】。

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

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

main()

{enumem{em1=3,em2=l,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s\n",aa[eml],aa[em2],aa[em3]);

}

37.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,请填空:

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,B);

for(i=0;i<3;i++)printf("%4d",b[i]);

printf("\n");

}

voidfun(intm,intn,intar[][4],int*bar)

{inti,j,x;

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

{X=ar[i][0];

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];()=x:

}

}

38.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。

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

#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,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

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

*(a+t2)=ch;

t1++;t2--;}}

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

FILE*myf;longf1;

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

fscek(myf,(),SEEK_END);f1+ftell(myf);

fclose(myf);

printf("%1d\n",f1);

三、1.选择题(20题)41.结构化程序设计的3种基本结构是()。

A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移

42.下面程序输出的结果是main(){intinta[3)[3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",a[2-i][i]);}

A.159B.753C.357D.591

43.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

44.软盘处于写保护状态时,其中记录的信息______。

A.不可能丢失

B.不能被擦除,但能追加新的信息

C.不能通过写磁盘操作被更新

D.不能以常规方式擦除,但可以通过操作系统的格式化功能擦除

45.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}执行后输出结果是()。

A.赋初值的字符串有错B.6,7C.5,6D.6,6

46.以下程序的输出结果是()。#include<stdio.h>main(){printf("%d\n",NULL);}

A.不确定的值(因变量无定义)B.0C.-1D.1

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

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

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

A.构成C程序的基本单位是函数

B.可以在一个函数中定义另一个函数

C.main()函数必须放在其他函数之前

D.所有被调用的函数一定要在调用之前进行定义

49.设有栈S和队列Q,其初始状态为空,元素a1、a2、a3、a4、a5、a6依次入栈,出栈的元素进入队列Q,若6个元素出队列的顺序是a2、a4、a3、a6、a5、a1,则栈的容量至少是______。

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

50.下面不属于软件设计原则的是()。

A.抽象B.模块化C.自底向上D.信息隐蔽

51.在函数scanf的格式控制中,格式说明的类型与输入项的类型应该对应匹配。如果类型不匹配,系统将()。

A.不予接收B.并不给出出错信息,但不能得到正确的数据C.能接收到正确输入D.给出出错信息,不予接收输入

52.已知字母A的ASCII码为十进制数65,下面程序的输出结果是()main(){charch1,ch2;ch1=A+5-3;ch2=A+6-3;printf("%d,%c\n",ch1,ch2);}

A.67,DB.B,CC.C,DD.不正确定的值

53.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n".k);}执行后的输出结果是()。

A.5,5B.5,11C.11,11D.11,5

54.下列程序的运行结果是()。#include<stdio.h>#include<string.h>main(){char*s1="ahDuj";char*s2="ABdUG":intt;t=strcmp(s1,s2);printf("%d",t);}

A.正数B.负数C.零D.不确定的值

55.下列关于C语言数据文件的叙述中正确的是A.文件由ASCII码字符序列组成,C语言只能读写文本文件

B.文件由二进制数据序列组成,C语言只能读写二进制文件

C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

56.有下列程序:main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}执行后的输出结果是()。

A.5B.24C.32D.40

57.若已建立如下图所示的单向链表结构:在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是______。

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

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

C.s->next=NULL;p=p->next;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

58.fscanf函数的正确调用形式是()。

A.fscanf(文件指针,格式字符串,输出表列);

B.fscanf(格式字符串,输出表列,文件指针);

C.fscanf(格式字符串,文件指针,输入表列);

D.fscanf(文件指针,格式字符串,输入表列);

59.下面程序段中c的二进制值是______。chara=3,b=6,c;c=a^b<<1;

A.1011B.1111C.11110D.11100

60.下面程序的输出结果是______。main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}

A.3B.3.2C.0D.3.07

四、选择题(20题)61.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。

A.函数的形参和实参分别占用不同的存储单元

B.形参只是形式上的存在,不占用具体存储单元

C.同名的实参和形参占同一存储单元

D.函数的实参和其对应的形参共占同一存储单元

62.有以下程序:

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

A.24B.720C.120D.6

63.

64.

65.

66.(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()

A.可行性分析

B.需求分析

C.详细设计

D.程序编码

67.设有以下程序段:

intX=0,s=0;

while(!X!=0.s+=++X;

prinff(”%d”,S.;

则()。

A.运行程序段后输出0B.运行程序段后输出lC.程序段中的控制表达式是非法的D.程序段执行无限次

68.

69.

70.下列SQL语句中,用于修改表结构的命令式是A.A.Alter

B.Create

C.Update

D.Insert

71.

72.以下是正确C语言实型常量的是()。

A..e—1B.e一1C.一1eD.1e一1

73.

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

A.在switch语句中,不-定使用break语句

B.在switch语句中必须使用default

C.break语句必须与switch语句中的case配对使用

D.break语句只能用于switch语句

75.下列程序执行后的输出结果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}

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

76.

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

A.软件交付使用后还需要进行维护

B.软件一旦交付使用就不需要再进行维护

C.软件交付使用后其生命周期就结束

D.软件维护是指修复程序中被破坏的指令

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

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

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

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

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

79.有以下程序

80.

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

请修改函数proc()中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.规定输入的字符串中只包含字母和+号。编写函数fun,其功能是:除了字符串前导和尾部的母号外,将其他的*号全部删除。形参h已指向字符串中第一个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用c语言提供的字符串函数。

参考答案

1.A解析:本题考核的知识点是scanf()函数的运用。seanf()函数有两个参数,第一个参数为输入格式字符串,第二个参数为输入变量地址列表,在scallf()语句中非格式字符可以作为输入时数据的间隔,输入时必须原样输入,在本题中输入格式串为%d,%d其中“,”为非格式字符,所以输入时必须原样输入。所以4个选项中选项A符合题意。

2.A本题考查简单的运算符操作.当输入9时,(a++<9)为假,所以执行else语句中的printf("%d\n",a--),在执行时此时a经过a++操作a=10,所以答案为A。

3.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。

4.D解析:C语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。

5.D

6.C

7.Cchar类型用于存储单个字符的简单变量类型,它可以被指定为一个字符常量或一个整数。

8.B解析:实型常量有两种书写形式:①小数形式,它由符号、整数部分、小数点及小数部分组成;②指数形式,由十进制小数形式加上指数部分组成,其形式为十进制小数e指数或十进制小数E指数。注:e或E后面的指数必须是整数,并且在e或E的前面必须有数字。本题中,选项A)中E的前面没有数字,因此错误。选项C)中0.8不是整数,因此错误。选项D)中4是整型常量而不是实型常量。

9.D

10.A

11.C

12.A

13.A结构体和共用体;在“联合”中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。应该说明的是,这

温馨提示

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

评论

0/150

提交评论