2021-2022年江苏省盐城市全国计算机等级考试C语言程序设计_第1页
2021-2022年江苏省盐城市全国计算机等级考试C语言程序设计_第2页
2021-2022年江苏省盐城市全国计算机等级考试C语言程序设计_第3页
2021-2022年江苏省盐城市全国计算机等级考试C语言程序设计_第4页
2021-2022年江苏省盐城市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年江苏省盐城市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序

A.741B.963C.852D.87542l

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

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

3.C语言的逻辑表达式在特定情况下会产生“短路”现象。若有逻辑表达式“x++&&y++,”则以下叙述中正确的是()。

A.若x的值为0,则“y++”操作被“短路”,y值不变

B.若x的值为1,则“y++”操作被“短路”,y值不变

C.若y的值为0,则“&&”运算被“短路”,y值不变

D.若y或x的值为0,则表达式值为0,“x++”和“y++”均不执行

4.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。

A.125B.n/2C.nD.n+1

5.设有定义的语句:“charc1=92,c2=92;”,则以下表达式中的值为零的是()。

A.c1^c2B.c1&c2C.~c2D.c1|c2

6.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时()。

A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都要修改D.队头,队尾指针都可能要修改

7.设x=011050,则x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

8.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。A.log2+1

B.log2(n-1)

C.log2n

D.log2(n+1)

9.

10.设有以下程序段:structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std:若要引用结构体变量std中的color成员,写法错误的是()。A.std.colorB.ptr->colorC.std->colorD.(*ptr)color

11.执行以下程序后,a,b的值分别为main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

12.以下选项中是非转义字符的是()。

A.‘\d’B.‘\t’C.‘\b’D.‘\r’

13.以下能正确定义一维数组的选项是______。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

14.有以下程序:voidfunl(char*p)程序执行后的输出结果是()A.ProhsbnB.PrphsbnC.ProgsbnD.Program

15.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是

A.if(c<a)x=1;elseif(b<a)x=1;elsex=3;

B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

16.有以下程序

#include<stdio.h>

voidfun(intx)

{if(x/2>1)fun(x/2);

printf(”%d”,x);

}

main()

{fun(7);printf(”\n”);}

程序运行后的输出结果是()。A.137B.731C.73D.37

17.

18.设有定义:“inta;floatb;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0<回车>,a和b的值分别是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

19.

20.若输入“abcdef”“abdef”,下述程序的输出结果为()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"

二、2.填空题(20题)21.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。

22.若有定义:intx=1,y=2;floata=3.7,b=2.1;则(x+y)%2+(int)a/(int)b表达式的值为()。

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0||x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

24.以下程序的功能是输出如下形式的方阵:

13141516

9101112

5678

1234

请填空。

main()

{inti,j,x;

for(j=4;j>0;j--)

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

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printff"%1d\n",x);}

26.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。

27.以下函数的功能是【】。

floatav(a,n)

floata[];

intn;

{inti;floats;

for(i=0,s=0;i<n;i++)s=s+a[i];

returns/n;}

28.软件测试的方法有动态测试、静态测试和【】13种。

29.有以下程序:

main()

{inti,n=0;

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

{do

{if(i%3)continue;

n++;

}while(!i);

n++;

}

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

}

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

30.若输入字符串:abcde,则以下while循环体将执行【】次。

while((ch=getchar())=='e')printf("*");

31.设有下列宏定义:

#defineA2

#defineB(A+3)

则执行赋值语句"k=B*20;"(k为int型变量)后,k的值是______。

32.下列程序执行输出的结果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

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

voidswap(int*a,int*b)

{

int*tp;

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

}

main()

{

intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

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

}

34.没有char,a,b;,若要通过a&d运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的二进制是【】。

35.下面程序的功能是:输出100以内能被3整除且个位数为9的所有整数,清填空。main(){inti,j;for(i=0;();i++){j=i*10+9;if(j%3!=0)continue;printf("%d",j);}}

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

main()

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

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

for([11];i<10;i++)

a[i-1]=x[i]+[12];

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

printf("");

}

37.测试用例包括输入值集和【】值集。

38.以下程序中给指针p分配3个double型动态内存单元,请填空。

#include<stdio.h>

main()

{double*p;

p=(double*)malloc((【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5;

printf("%f%f%f\n",p[0],p[1],p[2]);

}

39.需求分析的最终结果是产生【】。

40.下面程序由两个源程序文件:t4.h和t4.c组成,程序编译运行结果是()。t4.h的源程序为:

#defineN10

#definef2(x)(x*N)

t4.c的源程序为:

#include<stdio.h>

#defineM8

#definef(x)((x)*M)

#include"t4.h"

main()

{inti,j;

i=f(1+1);j=f2(1+1);

printf("%d%d\n",i,j);

}

三、1.选择题(20题)41.设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。

A.x&&y

B.x<=y

C.x||y+z&&y-z

D.!((x<y)&&!z||1)

42.有以下程序,程序运行后的输出结果是_______。intf(intb[][4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf("%d\n"f(A));}

A.22B.11C.18D.16

43.若已定义

inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

其中则对a数组元素不正确的引用是

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

44.设有如下定义:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正确的赋值语句是

A.p=&data.n;

B.*p=data.n;

C.p=(structsk*)&data.n;

D.p=(structsk*)data.n:

45.有以下程序#include<string.h>structSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};num=s[0].num;strcpy(name,s[0].name);}main(){structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;p=&s[1];f(p->name,p->num);printf("%s%d\n",p->name,p->num);}程序运行后的输出结果是

A.SunDan20042B.SunDan20044C.LiSiGuo20042D.YangSan20041

46.main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}假定以上程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入PROGABCDEFGHIJKL,则输出结果为______。

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

47.有以下程序

main()

{inti,s=1;

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

if(!(i%5)&&!(i%3))s+=i;

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

程序的输出结果是

A.409B.277C.1D.91

48.设有下列二叉树:

对此二叉树中序遍历的结果为______。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

49.有以下程序段

intj;floaty;charname[50];

scanf("%2d%f%s",&j,&y,name);

当执行上述程序段,从键盘上输入555667777abc后,y的值为

A.55566.0B.566.0C.7777.0D.566777.0

50.下列数据结构中,属于非线性的是()。

A.线性表B.队列C.树D.栈

51.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

52.若运行时给变量x输入12,则以下程序的运行结果是main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}

A.0B.22C.12D.10

53.C语言规定,函数返回值的类型是由()

A.return语句中的表达式类型所决定

B.调用该函数时的主调函数类型所决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定

54.程序中头文件typel.h的内容是:#defineN5#defineM1N*3程序如下:#include"type1.h”#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序编译运行后的输出结果是()

A.10B.20C.25D.30

55.以下不正确的定义语句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5.3]={0,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

56.下列程序的输出结果,是______。main(){inta=0,b=0,c=0;if(++a>0||++b>0)++c;printf("\na=%d,b=%d,c=%d",a,b,c);}

A.a=0,b=0,c=0B.a=1,b=1,c=1C.a=1,b=0,c=1D.a=0,b=1,c=1

57.利用E-R模型进行数据库的概念设计,可以分成三步:首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行______,得到最终的E-R模型。

A.简化B.结构化C.最小化D.优化

58.若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是()。

A.sizeof,&=,<<,^

B.sizeof,<<,^,&=

C.^,<<,sizeof,&=

D.<<,^,&=,sizeof

59.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

60.设有以下语句

charx=3,y=6,z;

z=x^y<<2;

则z的二进制值是

A.00010100B.00011011C.00011100D.00011000

四、选择题(20题)61.设有如下程序段

62.

63.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。

A.提高耦合性降低内聚性有利于提高模块的独立性

B.降低耦合性提高内聚性有利于提高模块的独立性

C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D.内聚性是指模块间互相连接的紧密程度

64.现有格式化输入语句,

已知在输入数据后,

x,Y,z的值分别是23,56,78,则下列选项中正确的输入格式是()。

A.23,56,78<Enter>

B.x=23,y=56,z=78<Enter>

C.x=23C,sumy=56,z=78<Enter>

D.x=23],sum]y=56,line]z=78<Enter>

65.下面不属于软件工程三要素的是()。

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

66.(33)有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

}

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

}

以下关于程序段执行情况的叙述,正确的是

A)for循环语句固定执行8次

B)当产生的随机数n为4时结束循环操作

C)当产生的随机数n为1和2时不做任何操作

D)当产生的随机数n为0时结束程序运行

67.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是():

A.学生成绩管理系统B.ERP系统C.办公自动化系统D.UNIX系统

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

A.一个逻辑数据结构只能有一种存储结构

B.逻辑结构属于线性结构,存储结构属于非线性结构

C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率

D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率

69.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

70.有下列函数定义:fun(floath){printf("%f,%f\n",h,h*h);)该函数的类型是()。

A.int类型B.float类型C.void类型D.函数无类型说明,定义有错

71.有以下函数:

以下关于aaa函数功能叙述正确的是()。

A.将串s复制到串tB.比较两个串的大小C.求字符串s的长度D.求字符串s所占字节数

72.在C程序中有如下语句:char*func(intx,inty);它是()。

A.对函数func的定义。B.对函数func的调用。C.对函数func的原型说明。D.不合法的

73.有以下程序

main()

{inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i;

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

}

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

A.012B.135C.234D.345

74.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

75.有如下程序段

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

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

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5;

p=find(s,n);

puts(p);}

则执行后输出的结果为A.A.heB.andC.youD.tomeetme

76.

77.有以下程序程序运行后的输出结果是()。

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

78.下面程序的运行结果是()。

A.gaeB.gaC.LanguageD.有语法错

79.数据库的故障恢复一般是由

A.数据流图完成的B.数据字典完成的C.DBA完成的D.PAD图完成

80.以下叙述中错误的是()。A.可以通过typedef增加新的类型

B.可以用typedef将已存在的类型用一个新的名字来代表

C.用typedef定义新的类型名后,原有类型名仍有效

D.用typedd可以为各种类型起别名,但不能为变量起别名

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:计算n!。例如,若输人:6,则输出:6!=720.000000。

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

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

试题程序:

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

参考答案

1.C在for循环中,当y的值为9、6或3时,执行输出语句,输出表达式“——y”的值。y先自减1,然后再输出y的值。

2.B

3.A题干中,“x++&&y++”属于逻辑与表达式。仅当“x++”和“y++”的结果为真,整个逻辑表达式的结果才为真,否则整个表达式的结果为假。当“x++”的结果为0时,“y”就会被短路,即不再执行“y++”表达式,整个表达式的结果为假。所以当x的值为0时,“x”的结果也是0,“y”操作被“短路”,y值不变。故本题答案为A选项。

4.CC。【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。

5.A当值相同时按位异或,则为0,按位或与按位与时仍不变,负数也为非0。

6.D

7.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。

8.A

9.B

10.C【答案】C

【知识点】结构体成员变量的引用

【解析】结构体变量包括一个或多个成员变量,引用其成员变量的语法格式如下:

结构体变量.成员变量。通过结构体指针变量获得其结构体变量的成员变量的一般形式为:(*结构体指针变量).成员变量,也可以使用:结构体指针变量->成员变量来引用成员变量。

11.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;声明整型变量a,b,k,m和指针p1,p2,并分别将4和6赋给k和m,将k和m的地址赋给P1和p2;a=p1==&m;等价于a=(p1==&m);将p1是否等于地址m的值(0)赋给变量a,b=(*p1)/(*p2)+7;该句的含义是将后面表达式的的值7赋给变量b。

12.AC语言中,转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后加一个特定的字符。题干中,‘\\t’表示横向跳若干格,‘\\b’表示退格符,‘\\r’表示回车符,选项B、C、D正确,选项A错误。故本题答案为A选项。

13.B解析:选项A)定义的是长度为5的数组元素,但初值有6个元素,所以错误;选项C)不符合数组定义形式,数组名后应加上“[];选项D)的类型说明符错误,应改为char;选项B)中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以正确。

14.A本题中使用了函数的调用,由funl函数中的while循环可知,循环的作用是为了把q所指向的内容增加1,而从主函数传到函数时是从下标为3开始传,因此当调用函数执行完后,传过去的字符串为hsbn,前面不变。

15.C解析:选项A首先判断if语句条件中表达式的值“3<1”为假,然后执行最近的else后面的语句,该else后面又为if-else语句,在这个if-else语句中首先判断该if语句条件中表达式的值“2<1”为假,程序执行其最近的else后面的语句,将3赋值给x。

选项B中首先判断if语句条件中表达式的值“1<3”为真,然后执行最近的else后面的语句“x=3”,后面的else不再执行,最后x的值为3。

选项C中,首先执行第一条if语句,由于“1<3”为真,执行此if后面的语句“x=3”,接着执行第二条if语句,由于“1<2”为真,执行此if后面的语句“x=2”,接着执行第三条if语句,由于“1<1为假,后面的语句不执行,所以最后的x值为2不为3。

选项D中;首先执行第一条if语句,由于“a<b”为真,执行此if后面的语句“x=b”;接着执行第二条if语句,由于“b<c”,为真,执行此if后面的语句“x=c”,接着执行第三条if语句,由于“c<a”为假,后面的语句不执行,所以最后的x值为c即为3。

16.D解析:本程序主要考查递归函数。fun(7),首先将参数代入函数,因为(7/2)>1,所以执行f(3),以此类推直到f(1.5),(1.5/2)<1,所以执行打印函数,此时x值为3,然后退出f(1.5)返回f(3),打印x值即7。所以选D。

17.C

18.B本题考查scanf函数,输入格式符%2d%f表示只接收了字符,其中a输入的值为2位的十进制整数,即87,然后将紧接着的6赋给b,因为b的值为单精度数在,即6.000000,故选择B选项。

19.D

20.D本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。

21.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。

22.22解析:本题考查表达式的运算。因为x=1,y=2,所以表达式(x+y)%2=3%2=1,(int)a/(int)b=(int)}(3/2)=1,因此整个表达式的结果为(x+y)%2+(int)a/(int)b=1+1=2。

23.2424解析:本题考查函数的循环调用。p=x*func(x-1),当x=4时,不满足if语句的条件,p=4*func(3),x=3也不满足条件,则func(3)=3*func(2),func(2)=2*func(1),x=1满足条件return(1),则输出结果为4*3*2*1=24。

24.ii解析:外循环是递减的,方阵中的每个元素为(j-1)*4+i,因此空格处填i。

25.99解析:考查ifelse语句,n==4不满足条件,所以fun5(4)=4+fun5(3),n==3也不满足条件,fun5(3)=3+funS(2),n==2满足条件fun5(2)=2,故x=4+3+2=9。

26.模块化模块化

27.求出数组元素平均值求出数组元素平均值解析:函数有一个数组形参a和一个整型形参n。函数首先用循环求数组a的前n个元素和,然后将和除以n。即求数组元素的平均值。

28.正确性测试正确性测试

29.n=4n=4解析:continue语句是结束本次循环。i=2时因i%3条件为真,故不执行do-while语句中的n++,只执行一次n++得n=1;i=3时,i%3条件为假,执行两次n++得n=3;i=4时,i%3条件为真,执行一次n++得n=4。

30.00解析:函数getchar()是从键盘得用户输入的一个字符。用户输入的第1个字符a,不管后面输入的是什么ch的值都是'a',因此条件(ch=getchar())=='e'为假,这个循环不会被执行。

31.100100解析:本题考查带参数的宏定义及相关运算。运算过程为:k=B*20=(A+3)*20=(2+3)*20=100。

32.88解析:第1次for循环,i=0,调用函数f(2),然后将a的值加1,在f()函数中,变量c为static类型,所以c=8:第2次for循环,i=1,调用函数f(3),然后将a的值加1,调用函数f(3)时,a=c++=8,所以k=8。

33.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针.变量a和b,a和b分别指向了实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依旧是原来的值。

34.1000001010000010解析:运算“&”的规则是只有当两个相应的二进制位都为1时,该位的结果才为1。要保留第2、8位,只要将其与二进制数10000010相与。

35.i<10i<10解析:分析程序,当(i=0,1,2,…)时,“j=i*10+9”语句的运行结果是(9,39,69,99)个位数为9的所有整数;题中要求是100以内的整数,所以i<10;“if(j%3!=0)continue;”语句的功能是当条件不能被3整除时,继续循环不执行操作,直到能被3整除时输出该数,即输出的数满足条件100以内能被3整除且个位数为9。

36.i=1x[i-1]i=1\r\nx[i-1]解析:对于10个数,相邻的两个数相加取和,总共要进行9次加法运算,所以空11处应填入i=1。相邻的两个数相加取和,放在数组a中,x[0]与x[1]的和存放在a[0]中,所以空12处应填入x[i-1]。

37.输出输出解析:测试用例曲测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。

38.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:该函数的调用格式是malloc(n),作用是申请n个字符的存储单元,并返回该存储区的首地址,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址。所以在此空白处应该填写3*sizeof(double)或size(double)*3或其他等价的表达式。

39.需求规格说明书需求规格说明书解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。

40.16111611解析:本题主要考查宏定义的两种形式,不带参数的宏定义:“#define宏名替换文本”;带参数的宏定义:“#define宏名(形参表)替换文本”。故i=((1+1)*8)=16,j=(1+1*10)=11。

41.D解析:本题考查逻辑运算符的使用。当“&&”的两个运算对象都足逻辑1时,表达式才返回值是1;当“||”的两个运算对象至少有一个是逻辑1时,表达式返回值是1。选项A)中,x和y都是逻辑1,所以返回值是1;选项B)中,x=4<=y=6为逻辑1,所以返回值是1;选项C)中,y+z的值等于14,非0,y-z的值为-2,非0,所以逻辑表达式4||14&&-2的值不为0;选项D)中,x<y为1,!z为0,1&&0为1,0||为1,因此,!1为0。

42.D解析:本题通过函数调用对数组a[0][0]、a[1][1]、a[2][2]、a[0][3]进行求和,然后用return语句返回s的值。

43.D解析:通常,引用一个数组元素可以用下标法,如a[p-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

44.C解析:本题主要考查了结构体变量引用成员数据的方法,主要有以下几种:结构体变量名.成员名或结构体指针->成员名的方法来引用结构体成员。

45.A解析:题目中定义的函数f()包含两个参数,一个字符指针,—个整型变量。当修改参数指针所指向的内容的时候,实参所指的内容也被修改,即传址调用;但只是修改参数变量的内容,则实奉不受影响,即传值调用。因此,主函数调用f()函数后,第1个参数被修改成函数中s[0]的name成员,第2个参数不受影响,还是主函数中s[1]的num成员。故最终输出SunDan20042。应该选择A。

46.C解析:本题主函数带有两个参数,一个int型变量argc,另一个是char型的一维一级指针数组argv。当主函数被执行时,系统自动将根据命令行的情况,分别给主函数的两个参数赋值。Argc中存放命令行中命令字和参数的总和的个数,argv用来存放命令行中命令字和所有参数的字符串的,并规定avgv[0]存放命令字字符串,argv[1]用来存放第一个参数的字符串,argv[2]用来存放第2个参数的字符串,依此类推。题中argc的值是2,执行完--argc后为1,输出argv[1],此数组存在第一个参数的字符串ABCDEFGHIJKL。

47.D解析:本题是计算50之内的自然数相加之和,题中if语句括号中的条件表达式!(i%5)&&!(i%3)表明只有能同时被5和3整除的数才符合相加的条件,1~49之间满足这个条件的只有,15、30和45,因为s的初始值为1,所以s=1+15+30+45=91。

48.B解析:所谓中序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。

49.B解析:本题考查通过scanf函数输入数据时的格式控制问题。变量j的格式控制为“%2d”,即只接收输入数据的前两位,从第三位开始直到空格之间的输入都会被保存到变量y中,因为y为浮点型数据,所以输出结果为选项B)。

50.C解析:线性结构,是指数据元素只有一个直接前件元素和直接后件元素。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。

51.C本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解答本题的关键是掌握while语句。

52.A解析:本题考查的是三目运算符的用法,三目运算符的形式为(表达式1)?(表达式2):(表达式3)。当(表达式1)的值为真时,求(表达式2)的值为整个表达式的值;如果(表达式1)的值为假,则求(表达式3)的值为整个表达式的值。题中,表达式x>12的结果为假,所以执行的语句是x-12,最终y的值应该是0。

53.D

54.C

55.B解析:在一维数组中要注意的是下标表达式的常量表达式的值必须是大于等于零,并且小于自身元素的个数,既数组长度,选项B)的下标不是整数,所以错误。

56.C解析:“||”是或运算,它有个“短路”的特点需特别注意,当“||”运算符左边的表达式的值为真时,则程序就不再对“||”右边的表达式的值进行运算,而是使得整个表达式的值直接为真。

57.D解析:在概念设计中,按照模块的划分画出各个模块的E-R图,然后把这些图合成一张E-R图作为全局模型,最后应该对全局E-R图进行优化,看是否有重复和不合理的地方。不能只进行简单的合并。

58.B解析:关系运算符<,<=,>,>=的优先级别相同,且高于==,!=两种运算符的级别。运算符的优先级别是:算术运算符优先级别最高,关系运算符次之,赋值运算符最低。

59.B本题主要考查C语言合法语句的定义。

在选项A中,a==1不是一个合法的语句,因为它没有语句结束标识符“;”,不能说是一条语句,如果作为一个表达式,它是正确的。

在选项B中,由于变量i已被正确定义并有初值,“++i;”是正确的语句。

在选项C中,由于正确的赋值语句中,赋值符号的左边不能为常量或表达式,而右边不能为变量或表达式,很明显,“a=a++=5;”违背了赋值语句的原则。

在选项D中,“a=int(i);”语句是不正确的,在C语言中没有这种表示形式,如果是想将变量i强制转换为整型的操作,应该为“a=(int)i;”。

60.B本题主要考查位运算。“按位异或”运算(^)是双目运算符,其功能是把参与运算的两数各对应的二进制位相异或,它在操作时,两对应位相同结果为0,不同则为1。“左移”运算(<<)的功能是把“<<”左边的运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。左移时,若左端移出的部分不包含有效二进制数1,则每左移一位,相当于移位对象乘以2。

本题中,有三个字符型的变量x,y,z,其中x和y的值分别为3和6。先转换为二进制数分别为00000011和00000110。本题中需要注意的是逻辑左移运算符的优先级比按位异或运算符的优先级高,因此,先将y进行运算逻辑左移2位操作,得到的结果为00011000,然后进行按位异或运算,得到最后的结果是00011011。本题正确的答案选B。

61.A本题主要考查的是字符数组、字符串和字符指针的一些概念。数组元素个数,是在定义数组的时候确定的,本题的S数组元素个数是20。而字符串长度是从该字符串的第1个字符开始,一直到“\0”字符为止,所历经的字符个数,

“\0”不算在内。所以本题P所指字符串(”Beijin9”)的长度为7。因此选项B)的叙述不正确。s是数组名,而不是指针变量,因此选项C)不正确。数组s中除了包含字符串“Beijin9”外,还包含其后的20个以内字节的内容,而指针变量p中包含的只是数组s的首地址。因此选项D)的说法也不正确。

62.D

63.B模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。故答案为B选项。

64.D若在scanf的格式化控制串中插人了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。所以选择D,也可以输入x=23],sum]Y=56,line]z=78L<Enter>即是否输入最后的L都不影响前面三个变量的赋值。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。

65.B\n软件工程包括三个要素:方法、工具和过程。软件工程方法为软件开发提供了”如何做”的技术。工具支付软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。

\n

66.D

67.D系统软件是管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件。应用软件是为了应用于特定的领域而开发的软件。选项D属于系统软件。选项A、B、C属于应用软件。故选D选项。

68.D数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。

69.C本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解答本题的关键是掌握while语句。

70.A本题考查函数值的类型,在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型(int)处理。

71.C本题重点考察的知识点while循环语句的应用。一()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针t不断递增,直到t指向字符串结束标识处。当t指向结束标识处时,由于后缀++运算符的原因,它还会被再递增1,所以接下来的t一一;语句让它回到结束标识处。最后返回t—s,s还是指向字符串第l个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。因此C选项正确。

72.C

73.B第一个for循环的结果是p[9]={0,1,2,3,4,,5,6,7,8},第二个for循环:i=0,++p,使得p指向了1,所以输出的结果是1,然后i++,i=1,++p,p指向了3……

74.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。

75.B在本题中,首先定义了两个宏N和M,大小都为10,然后定义了一个返回指针的函数find,该函数带有两个形参,第一个为字符型的指针数组,第二个为整型变量,在函数体中,首先定义了一个指针变量q,并将形参中指针数组的第一个元素赋值给q,然后执行for循环,在循环体中,首先执行条件判断语句,其条件为strcmp(a[i],q)<0(strcmp函数的作用是比较两字符串的大小,如果相等,则返回0值,如果参数中的第一个字符串大,则返回正值,否则返回负值),如果结果为真,说明指针数组当前元素所指向的字符串比q所指向的字符串小,此时,程序执行将当前指针数组元素赋值给p,最后返回p,通过上面的分析我们可以看出,find函数的作用是找出指针数组中各元素所指向字符串的最小字符串。

在主函数中,定义了一个二维数组s,并赋了初值,然后定义一个指针变量p,用来存放函数find的返回值。调用函数find的参数分别为s和5,结合形参看find函数,不难知道调用find函数就是找出二维数组s中各字符串中最小的字符串,那么应该为and。此时,指针变量p指向字符串“and”的首地址,然后执行puts(p),完成该字符串的输出。因此,本题正确的答案是B。

76.D

77.A第一个嵌套的for循环功能将对角线上的数据从大到小排序,其他数据不变,排序完成后,a[0][0]值为6,输出第一行为6432,答案选择A)

78.A考查用指针来引用字符数组元素的方法。指针pl+k相当于指针pl向后移动了k个字符的位置,指针p2同理。

79.C数据库的故障恢复是数据库数据保护机制中的一种完整性控制。所有的系统都免不了会发生故障,其原因有可能是硬件失灵,有可能是软件系统崩溃,也有可能是其他外界的原因。在系统发生故障后,要求DBMS要有一套发生故障后的数据恢复机构来保证数据库能够恢复到一致的、正确的状态,这就是数据库的故障恢复。

在本题给出的四个选项中,数据流图用来描绘系统的逻辑模型,它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。

数据字典是关于数据信息的集合,也就是对数据流图中包含的所有元素定义的集合,是对数据流图进行补充。

DBA即数据库管理员,它的工作主要有数据库安装、数据库配置和管理、权限设置和安全管理、监控和性能调节、备份和恢复等。

PAD图即问题分析图,是一种程序结构可见性好、结构唯一、易于编制、易于检查和易于修改的详细设计表现方法。

根据上面的分析,我们可以知道数据库的故障恢复是由数据库管理员来完成的。因此,本题的正确答案是C。

80.Atypede伪原类型起个别名,并没有增加新的类型,所以答案选择A)。

81.

82.

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

2021-2022年江苏省盐城市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序

A.741B.963C.852D.87542l

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

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

3.C语言的逻辑表达式在特定情况下会产生“短路”现象。若有逻辑表达式“x++&&y++,”则以下叙述中正确的是()。

A.若x的值为0,则“y++”操作被“短路”,y值不变

B.若x的值为1,则“y++”操作被“短路”,y值不变

C.若y的值为0,则“&&”运算被“短路”,y值不变

D.若y或x的值为0,则表达式值为0,“x++”和“y++”均不执行

4.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。

A.125B.n/2C.nD.n+1

5.设有定义的语句:“charc1=92,c2=92;”,则以下表达式中的值为零的是()。

A.c1^c2B.c1&c2C.~c2D.c1|c2

6.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时()。

A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都要修改D.队头,队尾指针都可能要修改

7.设x=011050,则x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

8.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过()。A.log2+1

B.log2(n-1)

C.log2n

D.log2(n+1)

9.

10.设有以下程序段:structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std:若要引用结构体变量std中的color成员,写法错误的是()。A.std.colorB.ptr->colorC.std->colorD.(*ptr)color

11.执行以下程序后,a,b的值分别为main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

12.以下选项中是非转义字符的是()。

A.‘\d’B.‘\t’C.‘\b’D.‘\r’

13.以下能正确定义一维数组的选项是______。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

14.有以下程序:voidfunl(char*p)程序执行后的输出结果是()A.ProhsbnB.PrphsbnC.ProgsbnD.Program

15.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是

A.if(c<a)x=1;elseif(b<a)x=1;elsex=3;

B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

16.有以下程序

#include<stdio.h>

voidfun(intx)

{if(x/2>1)fun(x/2);

printf(”%d”,x);

}

main()

{fun(7);printf(”\n”);}

程序运行后的输出结果是()。A.137B.731C.73D.37

17.

18.设有定义:“inta;floatb;”,执行“scanf("%2d%f",&a,&b);”语句时,若从键盘输入876543.0<回车>,a和b的值分别是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

19.

20.若输入“abcdef”“abdef”,下述程序的输出结果为()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"

二、2.填空题(20题)21.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。

22.若有定义:intx=1,y=2;floata=3.7,b=2.1;则(x+y)%2+(int)a/(int)b表达式的值为()。

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

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0||x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

24.以下程序的功能是输出如下形式的方阵:

13141516

9101112

5678

1234

请填空。

main()

{inti,j,x;

for(j=4;j>0;j--)

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

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

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

longfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printff"%1d\n",x);}

26.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。

27.以下函数的功能是【】。

floatav(a,n)

floata[];

intn;

{inti;floats;

for(i=0,s=0;i<n;i++)s=s+a[i];

returns/n;}

28.软件测试的方法有动态测试、静态测试和【】13种。

29.有以下程序:

main()

{inti,n=0;

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

{do

{if(i%3)continue;

n++;

}while(!i);

n++;

}

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

}

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

30.若输入字符串:abcde,则以下while循环体将执行【】次。

while((ch=getchar())=='e')printf("*");

31.设有下列宏定义:

#defineA2

#defineB(A+3)

则执行赋值语句"k=B*20;"(k为int型变量)后,k的值是______。

32.下列程序执行输出的结果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

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

voidswap(int*a,int*b)

{

int*tp;

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

}

main()

{

intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

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

}

34.没有char,a,b;,若要通过a&d运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的二进制是【】。

35.下面程序的功能是:输出100以内能被3整除且个位数为9的所有整数,清填空。main(){inti,j;for(i=0;();i++){j=i*10+9;if(j%3!=0)continue;printf("%d",j);}}

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

main()

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

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

for([11];i<10;i++)

a[i-1]=x[i]+[12];

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

printf("");

}

37.测试用例包括输入值集和【】值集。

38.以下程序中给指针p分配3个double型动态内存单元,请填空。

#include<stdio.h>

main()

{double*p;

p=(double*)malloc((【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5;

printf("%f%f%f\n",p[0],p[1],p[2]);

}

39.需求分析的最终结果是产生【】。

40.下面程序由两个源程序文件:t4.h和t4.c组成,程序编译运行结果是()。t4.h的源程序为:

#defineN10

#definef2(x)(x*N)

t4.c的源程序为:

#include<stdio.h>

#defineM8

#definef(x)((x)*M)

#include"t4.h"

main()

{inti,j;

i=f(1+1);j=f2(1+1);

printf("%d%d\n",i,j);

}

三、1.选择题(20题)41.设x、y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。

A.x&&y

B.x<=y

C.x||y+z&&y-z

D.!((x<y)&&!z||1)

42.有以下程序,程序运行后的输出结果是_______。intf(intb[][4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf("%d\n"f(A));}

A.22B.11C.18D.16

43.若已定义

inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

其中则对a数组元素不正确的引用是

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

44.设有如下定义:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正确的赋值语句是

A.p=&data.n;

B.*p=data.n;

C.p=(structsk*)&data.n;

D.p=(structsk*)data.n:

45.有以下程序#include<string.h>structSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};num=s[0].num;strcpy(name,s[0].name);}main(){structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;p=&s[1];f(p->name,p->num);printf("%s%d\n",p->name,p->num);}程序运行后的输出结果是

A.SunDan20042B.SunDan20044C.LiSiGuo20042D.YangSan20041

46.main(intargc,char*argv[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}假定以上程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入PROGABCDEFGHIJKL,则输出结果为______。

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

47.有以下程序

main()

{inti,s=1;

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

if(!(i%5)&&!(i%3))s+=i;

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

程序的输出结果是

A.409B.277C.1D.91

48.设有下列二叉树:

对此二叉树中序遍历的结果为______。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

49.有以下程序段

intj;floaty;charname[50];

scanf("%2d%f%s",&j,&y,name);

当执行上述程序段,从键盘上输入555667777abc后,y的值为

A.55566.0B.566.0C.7777.0D.566777.0

50.下列数据结构中,属于非线性的是()。

A.线性表B.队列C.树D.栈

51.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

52.若运行时给变量x输入12,则以下程序的运行结果是main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}

A.0B.22C.12D.10

53.C语言规定,函数返回值的类型是由()

A.return语句中的表达式类型所决定

B.调用该函数时的主调函数类型所决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定

54.程序中头文件typel.h的内容是:#defineN5#defineM1N*3程序如下:#include"type1.h”#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序编译运行后的输出结果是()

A.10B.20C.25D.30

55.以下不正确的定义语句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5.3]={0,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

56.下列程序的输出结果,是______。main(){inta=0,b=0,c=0;if(++a>0||++b>0)++c;printf("\na=%d,b=%d,c=%d",a,b,c);}

A.a=0,b=0,c=0B.a=1,b=1,c=1C.a=1,b=0,c=1D.a=0,b=1,c=1

57.利用E-R模型进行数据库的概念设计,可以分成三步:首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行______,得到最终的E-R模型。

A.简化B.结构化C.最小化D.优化

58.若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是()。

A.sizeof,&=,<<,^

B.sizeof,<<,^,&=

C.^,<<,sizeof,&=

D.<<,^,&=,sizeof

59.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

60.设有以下语句

charx=3,y=6,z;

z=x^y<<2;

则z的二进制值是

A.00010100B.00011011C.00011100D.00011000

四、选择题(20题)61.设有如下程序段

62.

63.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。

A.提高耦合性降低内聚性有利于提高模块的独立性

B.降低耦合性提高内聚性有利于提高模块的独立性

C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D.内聚性是指模块间互相连接的紧密程度

64.现有格式化输入语句,

已知在输入数据后,

x,Y,z的值分别是23,56,78,则下列选项中正确的输入格式是()。

A.23,56,78<Enter>

B.x=23,y=56,z=78<Enter>

C.x=23C,sumy=56,z=78<Enter>

D.x=23],sum]y=56,line]z=78<Enter>

65.下面不属于软件工程三要素的是()。

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

66.(33)有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case

温馨提示

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

评论

0/150

提交评论