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

下载本文档

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

文档简介

2022-2023年江西省上饶市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设有向无环图G中的有向边集合E={<1,2>,<2,3>,<3,4>,<1,4>},则下列属于该有向图G的一种拓扑排序序列的是()。

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

2.下列叙述中正确的是()。A.一个逻辑数据结构只能有一种存储结构

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

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

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

3.当调用函数时,实参是一个数组名,则向函数传送的是______。

A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值

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

A.hAppychristmAs

B.happychristmas

C.HAppyCHrIstmAs

D.HAPPYCHRISTMAS

5.下列语句组中正确的是()。

A.char*s;s=“Olympic”;

B.chars[7];s=“Olympic”;

C.char*s;s={“Olympic”};

D.chars[7];s={“Olympic”};

6.单链表的存储密度()顺序表的存储密度。

A.大于B.等于C.小于D.不能确定

7.

8.

9.有定义语句: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;

10.

11.若有如下程序:#definePI3.1415926#defineA(r)2*PI*rmain(){floata,1;a=3.0;1=A(a);printf("r=%.2f,1=%.2f\n",a,1);}则程序运行后的输出结果是()

A.r=3.001=18.85

B.3.00,18.85

C.r=3.0000001=18.8495555

D.r=3.01=18.8495555

12.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf(“%d”,--y);}程序的运行结果是()。

A.852B.963C.741D.875421

13.有以下程序(提示:程序中fseek(fp-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(ing)字节)#include<stdio.h>main(){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),SEEK_END);fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/fclose(fp);printf("%d\n",B);}执行后输出结果是

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

14.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构

15.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。

I.人工管理阶段

II.文件系统阶段

Ⅲ.数据库阶段A.A.仅IB.仅ⅢC.I和IID.II和Ⅲ

16.有以下程序#include<stdio.h>voidfun(int*a,int*B){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序运行后的输出结果是______。A.3,5,5,3B.3,5,3,5C.5,3,3,5D.5,3,5,3

17.线性表(a1,a2,?,an)以链式方式存储,访问第i位置元素的时间复杂度为()。

A.O(0)B.O(1)C.O(n)D.O(n2)

18.以下选项中表示空函数的是()。

A.intfun(){return0;}

B.intfun();

C.intfun(){}

D.intfun(inta,intB){return1;}

19.第

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

20.有以下程序

#include<stdio.h>

main()

{structnode{intn;structnode*next;}*p;

structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};

p=x:

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

printf("%d\n",P->next->n);

}

程序运行后的输出结果是A.A.2,3B.2,4C.3,4D.4,6

二、2.填空题(20题)21.数据库管理系统是位于用户与______之间的软件系统。

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

23.下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其他元素不变,请填空。

#include<stdio.h>

main()

{

chara[]="labchmfye",t:

int1,j;

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

for(j=i+2;j<9;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;j++;}

puts(a);printf("\n");

}

24.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。

25.结构化分析方法是面向______进行分析的方法。

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

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

#include<stdio.h>

main()

{inta=2,b=-1,C=2;

if(a<B)

if(b<O)c=0;

elsec++;

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

}

28.以下定义的结构体类型里包含两个成员,其中成员变量info用来存放整型数据;成员变量link是指向自身结构体的指针。请将定义补充完整。

structnode

{intinfo;

【】link;

};

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

30.x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为______。

31.以下程序的运行结果是______。

structNode}

intx;

charch;

};

fun(structNode*sn)

}statick=1;

sn->x=20;

Sn->ch='a'+k++;

}

main()

{inti;

staticstructNodest=}10,'a'};

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

fun(&st);

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

}

32.在面向对象方法中,类的实例称为______。

33.用树型结构表示实体类型及实体间联系的数据模型称为【】。

34.若有语句:

inti=-19,j=i%4;

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

则输出结果是【】。

35.数据结构分为逻辑结构与存储结构,线性链表属于【】。

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

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

}

37.设有下列宏定义:

#defineA2

#defineB(A+3)

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

38.在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有______个元素。

39.若a=l,b=2,则表达式!(x=a)||y=b)&&0的值是______。

40.算法的工作量大小和实现算法所需的存储单元多少分别称为算法的【】。

三、1.选择题(20题)41.有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是

A.gets(&s[0]);

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

C.gets(s);

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

42.有以下程序main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是

A.anothernumberanothor

B.anothernumbernumber

C.anothernumber

D.numbernumber

43.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是

A.ABCEDB.DCBEAC.DBCEAD.CDABE

44.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间

45.阅读下面程序,则执行后的结果是

#include"stdio.h"

main()

{charstr[]="tomeetme",*p;

for(p=str;p<str+7;p+=2)putchar(*p);

printf("\n");}

A.tomeetmeB.tmemC.oeteD.tome

46.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=0

D.a>=10||a<=0

47.以下选项中错误的是()

A.char*sp;gets(sp);

B.charsp[5]gets(sp);

C.char*sp="12345";gets(sp);

D.charsp[5]="\0"gets(sp)

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

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

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

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

50.若a、b、c、d都是int型变量且都已经正确赋初值,则下列不正确的赋值语句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

51.数据封装要解决的问题是()

A.实现规范化B.防止书写错误C.防止非法访问D.实现类型转换

52.若已建立如下图所示的单向链表结构:在该链表结构中,指针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;

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

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

54.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No

55.若有以下定义和语句;inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;

A.p+=2,*(p++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p

56.以下不是网络操作系统的是()

A.Windows3.1B.WindowsNTC.NetWareD.UNIX

57.在计算机中,算法是指()。

A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法

58.下面程序的输出结果是______。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun(n));}

A.0B.4C.12D.无限次循环

59.软件测试与排错是两类相互联系而又性质不同的活动,在下述项目中,不具有排错活动特征的项目是______。

A.修改程序B.运用推理和归纳的方法C.了解程序细节D.运用测试实例

60.设函数fun的定义形式为voidfun(charch,floatx){…}则以下对函数fun的调用语句中,正确的是

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8);

D.fun(32,32);

四、选择题(20题)61.

62.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是()。main{floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<b){t=a;a=b.b=t;)if(a<c){t=a;a=c;c=t;)it(b<c){t=b;b=C;c—=;)printf("%f\n%f\n%f\n",a,b,c);}A.1.002.003.00B.1.003.002.00C.132D.3.000002.000001.00000

63.“商品”与“顾客”两个实体集之间的联系一般是()。

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

64.有以下程序段

main()

{charx=040;

printf("%d\n",x<<1);}

程序执行后输出的结果是

A.100B.80C.64D.32

65.以下函数实现按每行8个输出W所指数组中的数据:

在横线处应填人的语句是()。

A.if(i/8==0)printf(”\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(’’\n”);

D.if(i%8==0)continue;

66.设有以下语句:typedefstructTY{charC;inta{41;}CIN;

则下面叙述中正确的是()。

A.CIN是structTr类型的变量

B.TT是struct类型的变量

C.可以用,lr定义结构体变量

D.可以用CIN定义结构体变量

67.读取二进制文件的函数调用形式为:fread(buffersize,count,fp);,其中buffer代表的是()。

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

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

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

D.一个内存块的字节数

68.

69.有以下程序

#include<stdio.h>

main()

{charb=2;

printf("%d\n",b=b<<3);

}

程序的运行结果是

A.4B.8

C.16D.2000

70.设有如下程序段:

则执行P=s;语句后,以下叙述中正确的是()。

A.可以用*P表示s[O]

B.S数组中元素的个数和P所指字符串长度相等

C.s和P都是指针变量

D.数组s中的内容和指针变量P中的内容相等

71.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序运行后的输出结果是______。

A.22B.76C.72D.62

72.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是

73.选出下列标识符中不是合法的标识符的是()。

A.hot_doB.cat1C._priD.2ab

74.若有定义语句:doublea,*p=&a;,以下叙述中错误的是()。

A.定义语句中的*号是一个间址运算符

B.定义语句中的*号只是一个说明符

C.定义语句中的P只能存放double类型变量的地址

D.定义语句中,*p=&n把变量a的地址作为初值赋给指针变量P

75.以下叙述中错误的是()。

A.函数的返回值类型不能是结构体类型,只能是简单类型

B.函数可以返回指向结构体变量的指针

C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员

D.只要类型相同,结构体变量之间可以整体赋值

76.数据的存储结构是指()。

A.存储在外存中的数据

B.数据所占的存储空间

C.数据在计算机中的顺序存储方式

D.数据的逻辑结构在计算机中的表示

77.

78.有以下程序:

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

A.0B.1C.4D.8

79.

80.以下选项中值为1的表达式是()。

A.

B.

C.

D.

五、程序改错题(1题)81.下列给定程序的功能是:读入一个整数n(2<=n<=5000),打印它的所有为素数的因子。例如,若输入整数1234,则应输出:2,617。

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

注意:不要改动main函数,不能增选或删行,也不能匿改程序的结构。

试题程序:

#include<conio.h>

#include<stdio.h>

//****found****

Prime(intm);

{

intj,P;

p=1;

//****found****

for(j=2;j<m;j++)

if!(m%j)

{

p=0;

break;

}

return(p);inti,n;

printf("\npleaseenteranintegernumberbetween2

and5000:");

scanf("%d",&n);

printf("\n\nTheprimefactor(s)of%dis(are):",n):

for(i=2;i<n;i4+)

if((!(n%i))&&(Prime(i)))

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

printf("\n");

}

六、程序设计题(1题)82.请编写一个函数proc,它的功能是:求出1~m(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为70,则程序输出:7111421222833354244495556636670注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineN100voidproc(intm,int*a,int*n){ }voidmain{intarr[N],n,k;system("CLS");proc(70,arr,&n);for(k=0;k<n;k++)if((k+1)%20==0)//每行输出20个数{printf("%4d",arr[k]);printf("\n");}elseprintf("%4d",arr[k]);printf("\n");}

参考答案

1.A

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

3.B解析:当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,函数中的形参可定义成以下三种形式:

①形参定义成数组;

②形参定义成可变长数组:

③形参定义为指针变量。

4.C程序定义一个字符数组b和一个字符变量k。for循环通过循环变量k,遍历数组b中的各个字符,通过if语句判断当前下标为k的字符的ASCII值与字符'm'的ASCII值的大小,ASCII值小于‘m’的ASCII值的字符改成大写字母(b[k]=b[k]-'a'+'A'),然后输出b[k]。在字符串“happychristmas”中,ASCII值小于'm'的字符有h,a,c,h,i,a,所以程序输出:HAppyCHrIstmAs。本题答案为C选项。

5.A字符型指针变量可以用A选项的赋值方法“Char*s;s=“OlymPiC”;”。C选项的写法“char*s;s={“Olympic”};”是错误的。字符数组可以在定义的时候初始化,如“chars[]={“Olympic”};”或者“chars[]=“Olympic”;”,但是不可以在定义字符数组后对数组名赋值(数组名是常量,代表数组首地址),所以B选项和D选项都是错误的。对于本例,B、D选项中字符数组s的大小至少为8,才能存放下字符串(字符串的末尾都有结束标识‘\\0’),同时,此时S为字符数组的地址,是常量,不能为其赋值。故本题答案为A选项。

6.C

7.D

8.B

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

10.B

11.A

12.A第1次for循环,y的值为9,“y%3”的值为0,满足if条件输出“--y”,即先自减后输出,所以输出8;第2次for循环,y的值为7,“y%3”的值为1,不满足if条件,不执行printf语句;第3次for循环,y的值为6,“y%3”的值为0,满足if条件输出“--y”,即先自减后输出,所以输出5;第4次for循环,y的值为4,不满足if条件,不执行printf语句;第5次for循环,y的值为3,满足if条件,输出2;第6次for循环,y的值为1,不满足if条件,不执行printf语句。故本题答案为A选项。

13.D解析:函数fopen(constchar*filename,constchar*mode)的功能是以mode指定的模式打开filename指定的磁盘文件:fclose(FILE*fp)的功能是关闭文件指针fp指向的文件;函数fscanf(FILE*fp,constchat\'*format1,address,--])的功能是根据format中的格式从中指向的文件中读取数据,并存入到相应的address指向的变量中.函数fprintf(FILE*fp,constchar*format[,argument--])的功能是把argument列表中的表达式值写到fp所指向的文件中;函数fwfite(void*ptr,intsize,intn,FILE*fp)的功能是把ptr指向的缓冲区中的size×n个字节写到文件指针fp指向的文件中。本题中首先定义了一个文件指针fp,然后通过函数fopen以可'wb'的方式打开文件'data.daft',直接通过一个for循环,每循环一次调用函数fwrite将数组中的元素a[i]的值写进fp所指的文件中,该循环共循环4次,循环完后fp所指文件的内容为123,然后通过fclose函数关闭fp所指文件.接着通过函数fopen以'rb”的方式打开文件'data.dat',通过fseek函数让指针中从文件末尾向前移动2个int型大小字节的,然后通过函数fread从中所指的文件中读取一个int型大小的数据到变量b中,故此时b的值为3,因此最后输出的,b的值为3,所以,4个选项中选项D符合题意。

14.C数据结构与算法:数据结构的基本概念[评析]逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。线性结构和非线性结构是根据数据元素之间关系的不同特性加以分类的,即是从逻辑上加以分类的。

15.A数据管理技术发展的兰个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。

16.B解析:本题主要考查的是函数的实参和形参之间的传递关系,C语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式。指针变量作函数参数也要遵循这一规则。调用函数不可能改变实参指针变量的值。所以x和y的地址并没有改变,即p和q也没有改变,因此,选项B是正确的。

17.C

18.C空函数是函数体没有执行语句的函数。选项A、D不是空函数;选项B是函数的声明;只有选项C是空函数。故本题答案为C选项。

19.D

20.B解析:p指向x的第一个元素,所以p->n的值为2,p->next指向x+1,即指向x的第二个元素,所以p->next->n为4。

21.操作系统操作系统解析:数据库管理系统是帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为用户提供服务。

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

23.j++a[j]>a[j]

24.实体联系图或E-R图实体联系图或E-R图解析:实体联系图(B-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。

25.数据流数据流解析:结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

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

27.22解析:分析程序,a=2,b=-1,c=2时,if语句的表达式a<b不成立,不再往下判断,直接退出if语句,执行后面的输出语句,程序结束。在这个程序中a、b、c的值没做任何改变。

28.structnode*

29.类类解析:在面向对象的方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。

30.1616解析:函数运算不改变数据类型,所以结果也是double型,fabs(x)是对x取绝对值,pow(y,fabs(x))是y的labs(x)次幂,即2.04。0=16.000000(注意;结果为double型)。

31.20c。20,c。解析:函数fun的功能是给结构体指针变量所指的结构体变量的各成员赋值,主函数两次调用函数fun,第一次调用,实参st两个成员的值是20和字符b,调用结束时,静态局部变量k没有释放,值为2:第二次调用,实参st两个成员的值是20和字符c,调用结束时,静态局部变量k没有释放,值为3;因此,输出结果是20和c。

32.对象对象解析:类描述的是具有相似性质的一组对象。例如,每本具体的书是一个对象,而这些具体的书都有共同的性质,它们都属于更一般的概念“书”这一类对象。一个具体对象称为类的实例。

33.层次模型用树型结构表示实体类型及实体间联系的数据模型称为层次模型,用有向图结构表示实体类型及实体间联系的数据模型称为网状模型,用二维表格结构表示实体及其联系的数据模型称为关系模型。

34.-3-3解析:%运算符是求两个数相除的余数,其结果与被除数的符号一致,本题中“-19%4”的值为“-3”。

35.存储结构

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

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

38.3131解析:设队列容量为m,如果:rear>front,则队列中元素个数为rear-front;如果rear<front,则队列中元素个数为m+(rear-front)。本题rear<front,则m=32+(2-3)=31。

39.00解析:根据运算符的运算顺序可知,该表达式最后运算的是与(&&)运算,而任何表达式与“0”进行“与”运算,结果都为0。

40.时间复杂度和空间复杂度时间复杂度和空间复杂度

41.D解析:在格式输入中,要求给出的是编译的地址,而D)答案中给出的s[1]是一个值的表达式。

42.C解析:switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行后面的语句。如果在该语句的后面没有break语句,则继续执行下一个case,直到遇到break语句或switch多分支则结束,在switch语句中,break语句的作用是使流程跳出switch结构,中止switch语句的执行。本题中在for循环中嵌套了switch语句,每循环一次通过scanf()函数从键盘上输入一个k值,然后执行switch语句。for循环共循环了2次,当i=1时,从键盘上输入0,使得k的值为0,执行switch语句中cast:0后面的语句,输出another,接着执行case:0下面的语句输出number,退出switch语句,当i=2时,从键盘上输入1,使得k的值为1,执行switch语句中case:1后面的语句,输出number,退出switch语句。当i=3时退出循环。故最后的输出为another、number和number。

43.B解析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。

44.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。

45.B解析:存放字符串的字符数组的名字就是这个字符串的首地址。本题的功能是对字符串'tomeetme'进行选择式输出,从第一个字母开始,每输出一个字符即跳过一个。

46.B解析:条件表达式本题考查C语言的逻辑表达式及逻辑或('||')运算符的用法。''表示或的意思,'|'是按位或的意思,'&&'是并且的意思,C语言中没有'or'。

47.A

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

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

50.A解析:C语言规定,赋值号的右边可以是一个赋值表达式.因此选项C)、选项D)正确:在选项B)中,a++是一个自加1的表达式,a被重新赋值,因此它是一个合法的赋值表达式:选项A)中,a+d是一个算术表达式,虽然最后有一个分号,但这个表达式中没有赋值操作,因此它不是一条赋值语句。

51.C

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

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

54.B本题考核的知识点是puts()函数的应用。主函数中定义了一个字符数组s并赋初值,一个字符串指针变量ps并让它指向s。程序中p+4的地址为数组第5个元素的地址,而调用put(str_adr)函数时,将从str_adr这一地址开始,依次输出存储单元中的字符,遇到第一个“\\0”时结束输出,并自动输出一个换行符。所以put(p++4)将输出n/No,put(s)将从s第一个元素开始输出到第3个元素结束(因为执行*(p4)c0语句后s中的第5个元素的值为0,而s中的第4个元素为“\\”,puts将遇到“\\0”,结束输出),即输出yes。所以,4个选项中选项B符合题意。

55.A解析:引用一个数组元素,可以用:(1)下标法,如a[i]形式;(2)指针法,如*(a+i)或*(p+i)。数组的下标从0开始,值为3的数组元素是a[2]。B、C的内容为a[3],D将a[2]前自加,结果为4。

56.A

57.CC。【解析】计算机算法是指解题方案的准确而完整的描述,它的基本特征分别是:可行性、确定性、有穷性和拥有足够的情报。

58.C解析:本题定义了一个fun函数,用于num求和,具体执行过程如下:

num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;

num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/10=0);

num=O:while条件不成立,所以返回k的值12。

59.D解析:测试和排错是互相联系但又是性质不同的两类活动,排错的主要特征包括;修改程序错误,推理和归纳,了解程序细节。而“运用测试实例”是具有测试活动的特征。

60.D解析:题目中定义的函数fun()有两个参数,一个是字符型变量ch,另一个是浮点型变景x,函数类型是void即无返回值。选项A调用fun的第1个参数是字符串常量与字符变量不匹配,所以不正确。选项B是有返回值函数的调用形式,不正确。选项C的第1个参数是错误的字符常量,字符常量是用单引号括起来的—个字符(是转义字符可能有多个字符),故也不正确。选项D使用两个整型常量调用fun这在C语言中是允许的。因为整型到字符型可以自动转换,整型到浮点型也可以自动转换。故应该选择D。

61.B

62.D本题考查if语句。第1个if语句,如果a<b,则a与b交换;第2个if语句,如果a<c,则a与c交换;第3个if语句,如果b<2t,则b与c交换。3个if语句结合起来实现的功能就是将a、b、C按从大到小排序。

63.D商品与顾客两个实体集之间的买与被买联系是多对多的,因为一种商品可以被多个顾客购买,而一个顾客也可以买多个商品。

64.C本题主要考查位运算。“左移”运算(<<)的功能是把“<<”左边的运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。左移时,若左端移出的部分不包含有效二进制数1,则每左移一位,相当于移位对象乘以2。

本题中,首先定义一个字符型变量x,然后给该变量符一个八进制数的初值,而在程序中输出时,要求输出的结果是十进制数,因此,需要进行数制转换,首先将八进制数转换为二进制数,然后进行逻辑左移运算,将运算结果转换为十进制数输出。

八进制40对应的二进制数为00100000,然后进行逻辑左移一位运算,得到结果为01000000,该数对应的十进制数为2的6次方,即64。因此,本题程序执行后的输出结果是64,正确答案选C。

65.C要按照每行8个输出数据的话,横线处语句的功能应该为:当i是8的倍数时(即i%8==0),输出一个换行符。因此C选项正确。

66.D本题考查typcdef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。

67.Cfread函数中的参数buffer是内存块的首地址,输入的数据存入此内存块中。

68.B

69.C本题考查左移运算符(<<)的使用。左移运算符是将一个数的各二进制位全部左移若干位,右补0,题目中是将b的二进制数左移3位,右补0,初始时b的值为十进制数2,用二进制可以表示为00000010,左移3位,得到二进制数00010000,转换为十进制数为16。

70.AP=8;后,指针P指向s的首地址,*P=s[0],因此选项A)是正确的;p是字符串指针,所指向的字符串为”beijing”,其长度为7,而数组s中元素的个数为20,因此选项B)和D)是错误的;s是数组,不是指针变量,所以选项C)也是错误的。

71.C题目中需要求出程序的输出值i,j,其中i的值由sizeof决定,j的值由strlen函数决定。

sizeof是C语言的一种运算符,以字节的形式给出操作数的存储空间的大小。sizeof的操作对象可以是具体的数据类型,也可以是变量。题目中的操作数为数组名,利用sizeof可计算出数组所占用内存的字节数,题目中数组类型为char,大小为7,故该数组占用的内存数为7。

strlen函数则是计算一段字符串的长度,可以从整个字符串的头部开始计算,也可以从字符串的中间开始计算,当碰到第一个字符串结束符“\\0”,则停止计算,返回当前的计算值。题目中在前两个字符之后就出现了结束符“\\0”,故strlen函数的值为2。

72.C本题主要考查if结构。程序要求选择编译时产生错误信息的一个选项,下面分别来分析题目中的四个选项。

在选项A中,由于变量x已经被正确定义且赋了初值,不管x++的结果为零或者非零,程序都不会报错。

在选项B中,条件判断语句“x>y&&y!=0”的运算过程等价于“((x>y)&&y)!=0”,不管结果为何值,程序编译时不会报错。

在选项C中,程序看起来没有错,但我们仔细看会发现,在语句x--后面缺少一个语句结束符——分号,因此,在编译时系统会报错。

在选项D中,语句{;}可能会让一些人产生误解,觉得是错误的,其实它是一种典型的正确格式,只是没有内容,但不是错误的语句,能通过编译。

在程序编译时报错的一般都是书写格式的问题,程序的逻辑错误编译时很少被检测出来。

73.D

74.C\ndoublea,*p=&a语句的意思是将a的值存放到指针变量P中,P是指针可以随意指向任何地址,所以答案C错误。

\n

75.A函数返回值类型可以是简单类型和结构体类型。

76.D数据的存储结构也称为数据的物理结构,是数据的逻辑结构在计算机存储空间中的具体存放形式。

77.D

78.Cm函数中的X为静态局部变量,占用固定的内存单元,下一次调用时仍可保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用X的值。主函数中调用两次fun函数t第一次调用:X=1,X=x}2=2,s=2;第二次调用:(直接用上次X的值)x=X·2=4,s=4。因此C选项正确。

79.C

80.B解析:‘0’代表ASCⅡ码为48的字符,‘\\0’代表ASCⅡ码为0的字符,‘1’代表ASCⅡ码为49的字符,所以只有选项B的表达式的值为1。

81.\n\t(1)错误:Prime(intm);

\n正确:Prime(intm)

\n(2)错误:if(!(m%j)

\n正确:if(!(m%j))

\n【解析】(1)第一个标识下面的“Prime(intm);”在程序中显然是一个函数,因此应将后面的分号去掉。

\n(2)第二个标识下面的for语句最简单的应用形式为:for(循环变量赋初值;循环条件;循环变量增值)语句。显然if语句后面缺少括号,因此,“if!(m%j)”改为“if(!(m%i))”。

\n本题主要考查标点符号、运算符、基本定义。\n

82.voidproc(intm,int*a,int*n){inti,j=0;for(i=1;i<=m;i++)//进行m次循环if(i%7==0||i%11==0)//能被7或11整除的所有整数a[j++]=i;//符合条件的数放在数组a中*n=j;//返回这些数的个数}【解析】本题需要先判断1~m每一个整数能否被7或11整除,然后将符合条件的整数放在数组a中,最后将符合条件的数的个数通过形参n返回主函数。2022-2023年江西省上饶市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设有向无环图G中的有向边集合E={<1,2>,<2,3>,<3,4>,<1,4>},则下列属于该有向图G的一种拓扑排序序列的是()。

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

2.下列叙述中正确的是()。A.一个逻辑数据结构只能有一种存储结构

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

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

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

3.当调用函数时,实参是一个数组名,则向函数传送的是______。

A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值

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

A.hAppychristmAs

B.happychristmas

C.HAppyCHrIstmAs

D.HAPPYCHRISTMAS

5.下列语句组中正确的是()。

A.char*s;s=“Olympic”;

B.chars[7];s=“Olympic”;

C.char*s;s={“Olympic”};

D.chars[7];s={“Olympic”};

6.单链表的存储密度()顺序表的存储密度。

A.大于B.等于C.小于D.不能确定

7.

8.

9.有定义语句: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;

10.

11.若有如下程序:#definePI3.1415926#defineA(r)2*PI*rmain(){floata,1;a=3.0;1=A(a);printf("r=%.2f,1=%.2f\n",a,1);}则程序运行后的输出结果是()

A.r=3.001=18.85

B.3.00,18.85

C.r=3.0000001=18.8495555

D.r=3.01=18.8495555

12.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf(“%d”,--y);}程序的运行结果是()。

A.852B.963C.741D.875421

13.有以下程序(提示:程序中fseek(fp-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(ing)字节)#include<stdio.h>main(){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),SEEK_END);fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/fclose(fp);printf("%d\n",B);}执行后输出结果是

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

14.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构

15.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。

I.人工管理阶段

II.文件系统阶段

Ⅲ.数据库阶段A.A.仅IB.仅ⅢC.I和IID.II和Ⅲ

16.有以下程序#include<stdio.h>voidfun(int*a,int*B){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序运行后的输出结果是______。A.3,5,5,3B.3,5,3,5C.5,3,3,5D.5,3,5,3

17.线性表(a1,a2,?,an)以链式方式存储,访问第i位置元素的时间复杂度为()。

A.O(0)B.O(1)C.O(n)D.O(n2)

18.以下选项中表示空函数的是()。

A.intfun(){return0;}

B.intfun();

C.intfun(){}

D.intfun(inta,intB){return1;}

19.第

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

20.有以下程序

#include<stdio.h>

main()

{structnode{intn;structnode*next;}*p;

structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};

p=x:

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

printf("%d\n",P->next->n);

}

程序运行后的输出结果是A.A.2,3B.2,4C.3,4D.4,6

二、2.填空题(20题)21.数据库管理系统是位于用户与______之间的软件系统。

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

23.下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其他元素不变,请填空。

#include<stdio.h>

main()

{

chara[]="labchmfye",t:

int1,j;

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

for(j=i+2;j<9;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;j++;}

puts(a);printf("\n");

}

24.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。

25.结构化分析方法是面向______进行分析的方法。

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

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

#include<stdio.h>

main()

{inta=2,b=-1,C=2;

if(a<B)

if(b<O)c=0;

elsec++;

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

}

28.以下定义的结构体类型里包含两个成员,其中成员变量info用来存放整型数据;成员变量link是指向自身结构体的指针。请将定义补充完整。

structnode

{intinfo;

【】link;

};

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

30.x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为______。

31.以下程序的运行结果是______。

structNode}

intx;

charch;

};

fun(structNode*sn)

}statick=1;

sn->x=20;

Sn->ch='a'+k++;

}

main()

{inti;

staticstructNodest=}10,'a'};

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

fun(&st);

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

}

32.在面向对象方法中,类的实例称为______。

33.用树型结构表示实体类型及实体间联系的数据模型称为【】。

34.若有语句:

inti=-19,j=i%4;

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

则输出结果是【】。

35.数据结构分为逻辑结构与存储结构,线性链表属于【】。

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

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

}

37.设有下列宏定义:

#defineA2

#defineB(A+3)

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

38.在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有______个元素。

39.若a=l,b=2,则表达式!(x=a)||y=b)&&0的值是______。

40.算法的工作量大小和实现算法所需的存储单元多少分别称为算法的【】。

三、1.选择题(20题)41.有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是

A.gets(&s[0]);

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

C.gets(s);

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

42.有以下程序main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是

A.anothernumberanothor

B.anothernumbernumber

C.anothernumber

D.numbernumber

43.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是

A.ABCEDB.DCBEAC.DBCEAD.CDABE

44.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间

45.阅读下面程序,则执行后的结果是

#include"stdio.h"

main()

{charstr[]="tomeetme",*p;

for(p=str;p<str+7;p+=2)putchar(*p);

printf("\n");}

A.tomeetmeB.tmemC.oeteD.tome

46.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=0

D.a>=10||a<=0

47.以下选项中错误的是()

A.char*sp;gets(sp);

B.charsp[5]gets(sp);

C.char*sp="12345";gets(sp);

D.charsp[5]="\0"gets(sp)

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

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

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

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

50.若a、b、c、d都是int型变量且都已经正确赋初值,则下列不正确的赋值语句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

51.数据封装要解决的问题是()

A.实现规范化B.防止书写错误C.防止非法访问D.实现类型转换

52.若已建立如下图所示的单向链表结构:在该链表结构中,指针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;

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

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

54.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序运行后的输出结果是(选项D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No

55.若有以下定义和语句;inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;

A.p+=2,*(p++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p

56.以下不是网络操作系统的是()

A.Windows3.1B.WindowsNTC.NetWareD.UNIX

57.在计算机中,算法是指()。

A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法

58.下面程序的输出结果是______。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun(n));}

A.0B.4C.12D.无限次循环

59.软件测试与排错是两类相互联系而又性质不同的活动,在下述项目中,不具有排错活动特征的项目是______。

A.修改程序B.运用推理和归纳的方法C.了解程序细节D.运用测试实例

60.设函数fun的定义形式为voidfun(charch,floatx){…}则以下对函数fun的调用语句中,正确的是

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8);

D.fun(32,32);

四、选择题(20题)61.

62.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是()。main{floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<b){t=a;a=b.b=t;)if(a<c){t=a;a=c;c=t;)it(b<c){t=b;b=C;c—=;)printf("%f\n%f\n%f\n",a,b,c);}A.1.002.003.00B.1.003.002.00C.132D.3.000002.000001.00000

63.“商品”与“顾客”两个实体集之间的联系一般是()。

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

64.有以下程序段

main()

{charx=040;

printf("%d\n",x<<1);}

程序执行后输出的结果是

A.100B.80C.64D.32

65.以下函数实现按每行8个输出W所指数组中的数据:

在横线处应填人的语句是()。

A.if(i/8==0)printf(”\n”);

B.if(i/8==O)continue;

C.if(i%8==0)prinff(’’\n”);

D.if(i%8==0)continue;

66.设有以下语句:typedefstructTY{charC;inta{41;}CIN;

则下面叙述中正确的是()。

A.CIN是structTr类型的变量

B.TT是struct类型的变量

C.可以用,lr定义结构体变量

D.可以用CIN定义结构体变量

67.读取二进制文件的函数调用形式为:fread(buffersize,count,fp);,其中buffer代表的是()。

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

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

温馨提示

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

评论

0/150

提交评论