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

下载本文档

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

文档简介

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

一、单选题(20题)1.执行下述程序后,输出的结果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0

2.若用一个大小为6的数值来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。

A.1和5B.2和4C.4和2D.5和1

3.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是_______。

A.p+1B.a+1C.a++D.++p

4.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。A.′a′<=c<=′z′

B.(c>=′a′)||(c<=′z′)

C.(′a′=C)

D.(c>=′a′)&&(c<=′z′)

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

6.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1)r=1;if(b==2)r=2;elseif(c!=3)r=3;elseif(d==4)r=4;printf(“%d\n”,r);}程序运行后的输出结果是()。

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

7.假设整型数i的地址为0x12345678,指针ip地址为0x21850043,则执行以下后,k的值为()。A.0x12345678B.0x21850043C.100D.不确定

8.线性链表中结点的结构为(data,next)。已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列()操作。

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

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

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

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

9.设有定义:

inta=1,b=2,C=3;

以下语句中执行效果与其他三个不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

10.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序运行后输出的结果是()。A.246810B.13579C.12345D.678910

11.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序经运行后形成下图所示的数据结构。则以下可以删除中间节点b的正确选项是()。

A.pt=p->next;p->next=p->next->next;free(pt);

B.pt=p->next;p->next=p->next->next->next;free(pt);

C.pt=&b;free(pt);

D.pt=&b;p->next=p->next->next->next;free(pt);

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

13.视图设计一般有3种设计次序,下列不属于视图设计次序的是()。

A.自顶而下B.由内向外C.由外向内D.自底向上

14.C语言中不合法的字符串常量是

A.\121B.'Y'C.\n\nD.ABCD\x6d

15.下列程序的输出结果是

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

for(j=0;j<N;j++)

a[i][j]=i+j-(i-j);

fun(a);}A.A.3B.4C.5D.6

16.请选出可用作C语言用户标识符的一组()。

A.voiddefineWORD

B.a3_b3_123IF

C.For_abccase

D.2aDOsizeof

17.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序运行后的输出结果是()。

A.9,8,9B.7,8,7C.7,8,3D.1,2,1

18.

19.

20.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'3'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}从第一列开始输入数据(<CR>代表…个回车符):3845<CR>,则狴序输出结果为()。

A.77889B.77868C.776810D.7.78866e+007

二、2.填空题(20题)21.下列程序的运行结果是______。

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

22.层次模型的典型代表是IBM公司的【】数据库管理系统。

23.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【】。

structstud

{charnum[6];

mts[4];

doubleave;

}a,*p;

24.软件测试中路径覆盖测试是整个测试的基础,它是对软件【】进行测试。

25.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisNO.”。空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES,\n");

case'n':

case'N':printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnterachar'y','Y'or'n','N':");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

26.数据库系统中实现各种数据管理功能的核心软件是______。

27.Jackson方法是一种面向【】的结构化方法。

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

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

main()

{inta=0;

a+=(a=8);

printf(“%d\n”,A);

}

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

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0||i%11==0)a[j++]=i;

*n=j;

}

main()

{intaa[M],n,k;

fun(10,aa,&n);

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

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");

}

31.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

32.设有定义“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc______。

33.以下程序运行后的输出结果是【】。

#include<stdio,h>

#include<string,h>

main()

{charch[]="abc".,x[3][4]:inti:

for(i=0;i<3:i++)strcpy(x[i],ch):

for(i=0;i<3:i++)printf("%s",&x[i][i]);

printf("\n")

}

34.在一棵二叉树中,度为0的结点的个数为n0,度为2的结点的个数为n2,则有n0=【】。

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

main()

{charm;

m='B'+32;printf("%c\n",m);

36.下面函数用来求两个单精度数之和,并通过形参将结果传回,请填空。

Voidsub(floatx,noaty,【】z)

{【】=x+y;}

37.以下程序运行后的输出结果是______。

#include<string.h>

main()

{charch[]="abc",x[3][4];inti;

for(i=0;i<3;i++)strcpy(x[i],ch);

for(i=0;i<3;i++)printf("%s",&x[i][i]);

printf("\n");

}

38.以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。

#include<stdio.h>

#include<stdlib.h>

main()

{FILE*fp;

chara[5]="1234",b[7]="abcedf";

if((fp=fopen("【】","wb"))==NULL)exit(0);

fwrite(a,sizeof(char),4,fp);

fwrite(b,【】,1,fp);

fclose(fp);

}

39.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i])(d[j]=【】;j++;}

d[j]=0;

40.设y是int型变量,请写出y为奇数的关系表达式【】。

三、1.选择题(20题)41.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。

A.12B.11C.10D.编译出错

42.检查软件产品是否符合需求定义的过程称为()。

A.确认测试B.集成测试C.验证测试D.验收测试

43.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。

A.地址传递B.单向值传递C.由实参传递给形参,再由形参传递给实参D.传递方式由用户指定

44.以下程序的输出结果是_______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;print("%d%d%d,a[2],a[5],a[8]);}

A.258B.741C.852D.369

45.设有以下说明语句structex{intX;floaty;charz;}example;则下面的叙述中不正确的是

A.struct结构体类型的关键字

B.example是结构体类型名

C.x,y,z都是结构体成员名

D.structex是结构体类型名

46.设intx=1,y=1;表达式(!x||--y)的值是()。

A.0B.1C.2D.-1

47.结构化程序设计的基本原则不包括A.多态性B.自顶向下C.模块化D.逐步求精

48.以下程序的输出结果是______。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}

A.0B.29C.31D.无定值

49.设有下列二叉树:

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

A.ABCDEFB.DAECFC.BDAECFD.DBEFCA

50.下列程序的输出结果为______。main(){intp,y=0,x=0;p=x<<8|~y>>8;printf("%d",p);p+=(p+=2);printf("%d\n",p);}

A.-10B.00C.04D.-12

51.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是

A.acbedB.decabC.deabcD.cedba

52.以下叙述中不正确的是

A.在不同的函数中可以使用相同的名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

53.有以下程序段:intk=Owhile(k=1)k++;while循环执行的次数是()。

A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次

54.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

55.以下数组定义中错误的是()。

A.intx[][3]={0};

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

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

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

56.以下程序的输出结果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%1d\n",fun(3));}

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

57.下面的程序执行后,文件test.t中内容是______。#inc1ude<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w")for(i=0;i<strlen(st);i++)fputc(st[i]myf);fdose(myf);}main(){fun("test.t""newword");fun("test.t,"hello,");}

A.hello,B.newwor1dhelloC.newworldD.hello,rld

58.以下程序的输出结果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b=a);}

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

59.下面程序在屏幕上的输出是______。main(){printf(“ab\b\bc”);}A.ab\b\bcB.acC.abcD.abc

60.下列哪个面向对象程序设计不同于其他语言的主要特点

A.继承性B.消息传递C.多态性D.静态联编

四、选择题(20题)61.

62.有以下程序

#include<string.h>

main()

{FILE*fp;

inti,k,n;

fp=fopen("data.dat","w+");

for(i=4;i<9;i++)

{fprintf(fp,"%d",i);

if(i%3==0)fprintf(fp,"\n");

}

rewind(fp);

fscanf(fp,"%d%d",&k,&n);

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

fclose(fp);

}

程序的运行结果是

A.00B.45

C.4578D.45678

63.

64.有以下程序段:

inti,n;

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

{n=rand()%5;

switch(n)

{casel:

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

case2:

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

case():exit(0);

}

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

}

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

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

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

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

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

65.在数据库设计中,将E—R图转换为关系模式的过程属于()。

A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

66.

67.有以下程序:

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

A.ABCDDEFEDBD

B.abcDDfefDbD

C.abcAAfefAbA

D.Abcddfefdbd

68.下述程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是()。

#include<stdio.h>

main

{chars1[]="chinese",s2[]="japanese";

inti;

for(i=0;s1[i]='\0'&&s2[i]!='\0';i++)

if(s1[i]==s2[i]&&i<7)

_____________;

}A.A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%C",s1[]);printf("%d\n",i)

69.

70.

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

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

72.负责数据库中查询操作的数据库语言是()。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言

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

A.20B.10C.0D.出错

74.有以下程序:

#include<stdio.h>

main()

{chara[20],b[20],c[20];

scanf("%s%s",a,b);

gets(c);

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

}

程序运行时从第一列开始输入:

Thisisacat!<回车>

则输出结果是()。

A.Thisisacat!

B.Thisisa

C.Thisisacat!

D.Thisisacat!

75.

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

A.inty[5.3]={0,1,3,5,7,9};B.doublex[5]={2.0,4.0,6.0,8.0,10.0};

C.charc1[]={’1’,’2’,’3’,’4’,’5’};D.charc2[]={’\x10’,’\xa’,’\x8’};

77.在结构化程序设计方法中,下面内聚性最弱的是()。

A.逻辑内聚B.时间内聚C.偶然内聚D.过程内聚

78.

79.对如下二叉树进行后序遍历的结果为()。

A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是l5。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。

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

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

试题程序:

六、程序设计题(1题)82.编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

程序运行后,若输入精度

0.0005,则程序应输出为3.14…

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

参考答案

1.D本题j=要是考查带参数的宏的定义,过程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。

2.B

3.C解析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常驻量“移动”,指向数组的其他元素。

4.D

5.C

6.D第1个if语句是单独的一条语句,所以执行完第1个if语句后,r的值仍为初值0。第2个if语句与后续的两个elseif都是嵌套的,所以只会执行其中的一个语句,即“if(b==2)r=2;”这条语句。故本题答案为D选项。

7.C

8.B

9.C由于a小于b,所以所有选项中的条件都为假,c选项中实际执行了a=b;b=c;两个操作。而A、B、D选项由于条件不成立,所以什么也没有做,所以选择c选项。

10.D本题中exch函数是用数组中的第6个元素对第1个元素进行赋值,所以数组的值应该为678910。

11.A题干中,a、b、c3个节点都是node类型,它们都有两个成员:字符成员id,node类型指针成员next。由于a的next指向b,b的next指向c,因此a、b、c构成了链表。要想删除b节点,只需要将a节点的next(p->next)指向c(p->next->next),然后将节点b的存储空间释放即可。所以删除b节点的语句为“pt=p->next;p->next=p->next->next;free(pt);”。故本题答案为A选项。

12.C

13.C视图设计的设计次序分3种:自顶向下、自底向上和由内向外。它们为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握。

14.B解析:字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。由此可知,选项A)、C)、D)都是含法的字符串常量,而选B)是一个字符常量。

15.B

16.B解析:C语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。A)中的void与C语言的关键字重名,不合法;C)中的case和C语言的关键字重名,不合法;D)中的2a是数字开头,而且sizeof与C语言的关键字重名,不合法。

17.C在main函数中调用了f函数使形参s指向数组a。执行“S[1]+=6”;语句,则“a[1]=8;”执行“*s=7;”语句,则“a[0]=7”;执行“s+=2;”语句,则s指向数组的第3个元素并返回s。调用后,函数返回值赋给指针P,则*P=3,因此输出的结果为7,8,3。故本题答案为C选项。

18.C

19.C

20.A

21.5555解析:分析程序执行过程,第一次循环时,i=3,i=5,因为switch(3),所以执行case3,调用P(a[--i])=P(a[4])=P(5),输出5:第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(a[i++]):P(a[4])=P(5),输出5,之后i自加等于5。

22.IMS(informationManagementSystem)

23.2222解析:C语言里char类型占1个字节,int类型占2个字节,float类型占4个字节,double类型占8个字节,因此变量a在内存中所占字节数=1*6+4*2+1*8=6+8+8=22。

24.结构结构解析:路径测试是白盒测试方法中的—种,它要求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。

25.getchargetchar解析:题中要求根据输入的字符调用函数YesNo来判断输入的字符是y(Y)还是n(N),字符的输入可用字符输入函数getchar。函数YesNo用来判断一个字符是y(Y)还是n(N),主要用了一个switch多分支结构来比较输入字符与字符'y','Y'、,'n','N'是否相等来实现的。注意:用于字符串处理的函数。

26.数据库管理系统数据库管理系统解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。

27.数据结构数据结构解析:Jackson方法是—‘种面向数据结构的结构化方法。

28.模块化模块化解析:结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化和限制使用goto语句。自顶向下程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。

逐步求精:对复杂问题,应设计一些子目标作过度,逐步细化。

模块化:一个复杂问题,肯定是由若干精简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。

限制使用goto语句。

29.1616解析:在程序中首先将8赋值给变量a,然后再进行复合赋值运算。即a=a+a=8+8=16,所以该空格处应该填16。

30.77解析:程序中的if(i%7==0||i%11==0)是找出能被7或11整除的所有整数,a[j++]=i是将满足条件的数放到a数组中,变量j记录了满足条件的数据个数,main函数通过变量n得到此数据个数。如果m的值为50,即表达式fun(10,aa,&n)为fun(50,aa,&n)时,输出结果为:711142122283335424449

31.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)

32.若结构体变量abc有成员a,并有指针p_abc指向结构变量abe,则引用变量abe成员s的标记形式有abe.a和p_abc->a。

33.abcbccabcbcc解析:for循环用strcpy函数将字符数组ch的值'abc',分别复制给二维数组x的每一行,然后通过for循环先后打印出以x[0][0],x[1][1],x[2][2]开头的字符串'abe','bc','c',所以输出结果为:abcbcc。

34.n2+1

35.bb解析:在ASCII码表中,至少有3个值考生得记住:,0,的ASCII码为48;‘A’的ASCII码为65;‘a’的ASCII码为97。因为记住这3个后,其他字母和数字的ASCII码就可以很容易推出来了。本题中,“B”的ASCII码为‘A’+1=66,所以,字符类型m的ASCII为66+32=98=97+1=‘a’+1,所以最后输出的结果为字符‘b’。

36.float*z

37.abcbcc

38.lett.dat6*sizeof(char)lett.dat6*sizeof(char)解析:本题主要考查函数fwrite(char*pt,unsignedsize,unsignedn,FILE*fp),把pt所指向的n*size个字节输出到fp所指定的文件中。

39.s[i++]s[i++]解析:本题中为了能实现字符串的拷贝,需要使字符数组s从头到尾依次遍历其所有元素.本题应使用i的自增后置来实现。

40.(y%2)==1或(y%2)!=0(y%2)==1或(y%2)!=0

41.B解析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。

42.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。

(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。

(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。

(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。

(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。

43.B解析:C语言以定,实参变量对形参变量的数据传递是“单向值传递”,只由实参传绐形参。在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维持原值。

44.C解析:在本题运行时主要注意的是当i=9时,a[i]=10-9=1:i=8时,a[i]=10-8=2;i=7时,a[i]=10-7=3;……依此类推,直到i=0时,a[i]=10-0=10:此时,i的值已变为-1,判断for的循环条件,不成立,然后输出a[2],a[5],a[8]分别为8,5,2。

45.B解析:本题中,structex是结构体类型名,ex-ample是结构体变量名。

46.A解析:当逻辑或运算符两边的运算对象至少有一个为1时,整个逻辑表达式的值是1;如果两边的运算对象都为0,则整个逻辑表达式的值为0。题中!x=0,--y=0,所以整个表达式的值是0。

47.A结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。

48.C解析:函数fun的形参是简单变量,main函数中调用fun时只是把实参的值传递给形参,形参的改变不影响实参,所以调用完函数fun后a的值不发生变化,即a=31。

49.C解析:叉树的遍历分为先序、中序、后序三种不同方式。本题要求中序遍历,其遍历顺序应该为:中序遍历左子树->,访问根结点->中序遍历右子树.按照定义,中序遍历序列是BDAECF,故答案为B。

50.D

51.D解析:中序遍历的递归算法如下:①遍历左子树;②访问根结点;③遍历右子树。前序遍历的递归算法如下:①访问根结点;②遍历左子树;③遍历右子树。后序遍历的递归算法如下:①遍历左子树;②遍历右子树;③访问根结点。由后序遍历结果dabec可知c是根结点,且无右子树。再由左子树的后序遍历结果dabe可知,e是左子树的根结点,且由左子树的中序遍历结果deba可知,d是左子树的左子树结点,b和a是左子树的右子树结点。再次由后序遍历结果ab可知,a是左子树结点。b是根结点。至此,各结点在树中的位置已完全确定。

52.D解析:C语言在函数中说明的变量为局部变量,只在函数内起作用但不会影响到其他函数。所以在不同的函数中使用相同的函数名不代表是同一函数,A)项正确。在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,B)正确。在一个函数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用,C)正确。复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以D)项错误。注意:函数的书写风格。

53.A解析:程序中,k的初值为0。执行while后面小括号中的赋值表达式k=1,则k的值为1,即整个表达式的值为真。所以执行循环体,执行语句“k++;”。因为k进行自加,不再减小,没有值为0的可能,即while后面小括号中的赋值表达式的值一直为真,不能退出循环,因此while循环将无限次地执行下去,所以,选项A正确。

54.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。

55.B解析:二维数组的初始化有以下几种形式:①分行进行初始化;②不分行进行初始化;③部分数组元素进行初始化;④省略第一维的定义,不省略第二维的定义。选顷B)等号右边分了3行,大于等号左边数组的行数2。

56.A解析:本题两次执行fun函数,第一次执行得f(3)=s=n-f(n-1)=3-f(2):第二次执行得s=2,通过传递返回值f(2)=2,所以s=3-2=1,即f(3)=1。

57.A解析:C语言中文件有文本文件与二进制文件,对文件的使用前必须先打开,打开方式有只读,写入、读写等方式。

58.A解析:65536等于2的16次方,而短整型无符号数的取值范围为0~65535,65536已经超出a的存储范围,将截取溢出了的最高第17位,低16位全部为0,因此把a赋值给b,得到的是剩余的16个0,所以b的值为0。

59.BC语言中允许使用一种特殊形式的字符常量,就是以一个“\\”开头的字符序列,这样的字符称为“转义字符”。常用的转义字符有:\\n,换行;\\t,水平制表;\\b,退格;\\r,回车。

60.A解析:继承是一个子类直接使用父类的所有属性和方法。它可以减少相似的类的重复说明,从而体现出一般性与特殊性的原则,这使得面向对象程序设计语言有了良好的重用性,也是其不同于其他语言的主要特点。

61.B

62.D本题主要考查文件的操作。在程序中,首先定义了一个文件类的指针变量fp,然后定义了三个整型变量,接着以可读/写的形式打开文件data.dat,最后执行for循环:

当i=4时,将变量i的值格式化输出到fp指向的文件中,即为4,然后判断i%3是否为0,如果是,则输出换行符,否则不执行其他操作。

当i=5时,那么输出到文件中的值为5,同样,输出6并输出换行符,接着输出7和8到文件中。循环结束,此时文件中的内容为456<换行>78。

执行rewind(fp);语句,这个语句的作用是将文件的位置指针返回到文件的开头,然后用该文件的内容分别给变量k和n赋值,赋值的过程中,碰到换行符表示一个赋值的结束,因此,赋值后,两变量的结果分别是456和78。因此,最后的输出结果是45678。

63.B

64.A\n程序中的if循环是固定地执行8次,属于计数器,程序是从中随机抽取一个数,然后对5进行求余再输出,共抽取8个数。所以答案为A。

\n

65.BB.【解析】数据库设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。其中逻辑设计的主要工作是将E-R图转换为关系模式。

66.A

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

68.A本题考查输出函数putchar的功能,即把字符输出到标准输出设备;puts是把指向的字符串输出到标准输出设备。

69.D

70.A

71.C

72.C数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增加、删除、修改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。因此本题答案为C)。

73.Amalloc(sizeof(int))的作用是开辟一个长度为sizeofl:int)的存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了一个整型的指针变量P。然后执行语句*p=n,使得*p的值为10,并通过ieturn返回此值,ePa的值为l0。然后在主函数中输出a+fun(10)=10+10=20。故本题答案为A)。

74.D答案为D,空格表示结束,则c里面的内容为'acat!',前面没有空格。

75.B

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

77.C内聚按强度从低到高有以下几种类型:

(1)偶然内聚,如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。(2)逻辑内聚,几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。如一个模块读取各种不同类型外设的输入。尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。(3)时间内聚,如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。

(4)过程内聚,如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚。

78.D

79.D所谓的后序遍历是指,首先遍历左子树,然后遍历右子树,最后访问根结点,并且在遍历左、右树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。

80.D

81.

82.

【考点分析】

本题考查:迭代法求给定多项式的值。迭代算法:让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。需要注意变量的数据类型以及赋初值操作。

【解题思路】

首先应该定义double类型变量,并且赋初值,用来存放多项式的某一项和最后的总和。从第2项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用sl来表示每一项,s表示求和后的结果。需注意sl和S的初值都为1.0,因为循环变量从第二项开始累加。2021年江苏省镇江市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.执行下述程序后,输出的结果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0

2.若用一个大小为6的数值来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()。

A.1和5B.2和4C.4和2D.5和1

3.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是_______。

A.p+1B.a+1C.a++D.++p

4.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。A.′a′<=c<=′z′

B.(c>=′a′)||(c<=′z′)

C.(′a′=C)

D.(c>=′a′)&&(c<=′z′)

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

6.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1)r=1;if(b==2)r=2;elseif(c!=3)r=3;elseif(d==4)r=4;printf(“%d\n”,r);}程序运行后的输出结果是()。

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

7.假设整型数i的地址为0x12345678,指针ip地址为0x21850043,则执行以下后,k的值为()。A.0x12345678B.0x21850043C.100D.不确定

8.线性链表中结点的结构为(data,next)。已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列()操作。

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

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

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

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

9.设有定义:

inta=1,b=2,C=3;

以下语句中执行效果与其他三个不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

10.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序运行后输出的结果是()。A.246810B.13579C.12345D.678910

11.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序经运行后形成下图所示的数据结构。则以下可以删除中间节点b的正确选项是()。

A.pt=p->next;p->next=p->next->next;free(pt);

B.pt=p->next;p->next=p->next->next->next;free(pt);

C.pt=&b;free(pt);

D.pt=&b;p->next=p->next->next->next;free(pt);

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

13.视图设计一般有3种设计次序,下列不属于视图设计次序的是()。

A.自顶而下B.由内向外C.由外向内D.自底向上

14.C语言中不合法的字符串常量是

A.\121B.'Y'C.\n\nD.ABCD\x6d

15.下列程序的输出结果是

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

for(j=0;j<N;j++)

a[i][j]=i+j-(i-j);

fun(a);}A.A.3B.4C.5D.6

16.请选出可用作C语言用户标识符的一组()。

A.voiddefineWORD

B.a3_b3_123IF

C.For_abccase

D.2aDOsizeof

17.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序运行后的输出结果是()。

A.9,8,9B.7,8,7C.7,8,3D.1,2,1

18.

19.

20.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'3'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}从第一列开始输入数据(<CR>代表…个回车符):3845<CR>,则狴序输出结果为()。

A.77889B.77868C.776810D.7.78866e+007

二、2.填空题(20题)21.下列程序的运行结果是______。

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

22.层次模型的典型代表是IBM公司的【】数据库管理系统。

23.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【】。

structstud

{charnum[6];

mts[4];

doubleave;

}a,*p;

24.软件测试中路径覆盖测试是整个测试的基础,它是对软件【】进行测试。

25.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisNO.”。空白处需要填入的内容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES,\n");

case'n':

case'N':printf("\nThisisNO.\n");}}

main()

{charch;

printf("\nEnterachar'y','Y'or'n','N':");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

26.数据库系统中实现各种数据管理功能的核心软件是______。

27.Jackson方法是一种面向【】的结构化方法。

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

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

main()

{inta=0;

a+=(a=8);

printf(“%d\n”,A);

}

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

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0||i%11==0)a[j++]=i;

*n=j;

}

main()

{intaa[M],n,k;

fun(10,aa,&n);

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

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");

}

31.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

32.设有定义“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc______。

33.以下程序运行后的输出结果是【】。

#include<stdio,h>

#include<string,h>

main()

{charch[]="abc".,x[3][4]:inti:

for(i=0;i<3:i++)strcpy(x[i],ch):

for(i=0;i<3:i++)printf("%s",&x[i][i]);

printf("\n")

}

34.在一棵二叉树中,度为0的结点的个数为n0,度为2的结点的个数为n2,则有n0=【】。

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

main()

{charm;

m='B'+32;printf("%c\n",m);

36.下面函数用来求两个单精度数之和,并通过形参将结果传回,请填空。

Voidsub(floatx,noaty,【】z)

{【】=x+y;}

37.以下程序运行后的输出结果是______。

#include<string.h>

main()

{charch[]="abc",x[3][4];inti;

for(i=0;i<3;i++)strcpy(x[i],ch);

for(i=0;i<3;i++)printf("%s",&x[i][i]);

printf("\n");

}

38.以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。

#include<stdio.h>

#include<stdlib.h>

main()

{FILE*fp;

chara[5]="1234",b[7]="abcedf";

if((fp=fopen("【】","wb"))==NULL)exit(0);

fwrite(a,sizeof(char),4,fp);

fwrite(b,【】,1,fp);

fclose(fp);

}

39.若有定义语句chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i])(d[j]=【】;j++;}

d[j]=0;

40.设y是int型变量,请写出y为奇数的关系表达式【】。

三、1.选择题(20题)41.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为______。

A.12B.11C.10D.编译出错

42.检查软件产品是否符合需求定义的过程称为()。

A.确认测试B.集成测试C.验证测试D.验收测试

43.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。

A.地址传递B.单向值传递C.由实参传递给形参,再由形参传递给实参D.传递方式由用户指定

44.以下程序的输出结果是_______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;print("%d%d%d,a[2],a[5],a[8]);}

A.258B.741C.852D.369

45.设有以下说明语句structex{intX;floaty;charz;}example;则下面的叙述中不正确的是

A.struct结构体类型的关键字

B.example是结构体类型名

C.x,y,z都是结构体成员名

D.structex是结构体类型名

46.设intx=1,y=1;表达式(!x||--y)的值是()。

A.0B.1C.2D.-1

47.结构化程序设计的基本原则不包括A.多态性B.自顶向下C.模块化D.逐步求精

48.以下程序的输出结果是______。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}

A.0B.29C.31D.无定值

49.设有下列二叉树:

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

A.ABCDEFB.DAECFC.BDAECFD.DBEFCA

50.下列程序的输出结果为______。main(){intp,y=0,x=0;p=x<<8|~y>>8;printf("%d",p);p+=(p+=2);printf("%d\n",p);}

A.-10B.00C.04D.-12

51.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是

A.acbedB.decabC.deabcD.cedba

52.以下叙述中不正确的是

A.在不同的函数中可以使用相同的名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

53.有以下程序段:intk=Owhile(k=1)k++;while循环执行的次数是()。

A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次

54.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

55.以下数组定义中错误的是()。

A.intx[][3]={0};

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

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

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

56.以下程序的输出结果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%1d\n",fun(3));}

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

57.下面的程序执行后,文件test.t中内容是______。#inc1ude<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w")for(i=0;i<strlen(st);i++)fputc(st[i]myf);fdose(myf);}main(){fun("test.t""newword");fun("test.t,"hello,");}

A.hello,B.newwor1dhelloC.newworldD.hello,rld

58.以下程序的输出结果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b=a);}

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

59.下面程序在屏幕上的输出是______。main(){printf(“ab\b\bc”);}A.ab\b\bcB.acC.abcD.abc

60.下列哪个面向对象程序设计不同于其他语言的主要特点

A.继承性B.消息传递C.多态性D.静态联编

四、选择题(20题)61.

62.有以下程序

#include<string.h>

main()

{FILE*fp;

inti,k,n;

fp=fopen("data.dat","w+");

for(i=4;i<9;i++)

{fprintf(fp,"%d",i);

if(i%3==0)fprintf(fp,"\n");

}

rewind(fp);

fscanf(fp,"%d%d",&k,&n);

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

fclose(fp);

}

程序的运行结果是

A.00B.45

C.4578D.45678

63.

64.有以下程序段:

inti,n;

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

{n=rand()%5;

switch(n)

{casel:

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

case2:

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

case():exit(0);

}

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

}

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

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

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

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

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

65.在数据库设计中,将E—R图转换为关系模式的过程属于()。

A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段

66.

67.有以下程序:

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

A.ABCDDEFEDBD

B.abcDDfefDbD

C.abcAAfefAbA

D.Abcddfefdbd

68.下述程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是()。

#include<stdio.h>

main

{chars1[]="chinese",s2[]="japanese";

inti;

for(i=0;s1[i]='\0'&&s2[i]!='\0';i++)

if(s1[i]==s2[i]&&i<7)

_____________;

}A.A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%C",s1[]);printf("%d\n",i)

69.

70.

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

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

72.负责数据库中查询操作的数据库语言是()。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言

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

A.20B.10C.0D.出错

74.有以下程序:

#include<stdio.h>

main()

{chara[20],b[20],c[20];

scanf("%s%s",a,b);

gets(c);

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

}

程序运行时从第一列开始输入:

Thisisacat!<回车>

则输出结果是()。

A.Thisisacat!

B.Thisisa

C.Thisisacat!

D.Thisisacat!

75.

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

A.inty[5.3]={0,1,3,5,7,9};B.doublex[5]={2.0,4.0,6.0,8.0,10.0};

C.charc1[]={’1’,’2’,’3’,’4’,’5’};D.charc2[]={’\x10’,’\xa’,’\x8’};

77.在结构化程序设计方法中,下面内聚性最弱的是()。

A.逻辑内聚B.时间内聚C.偶然内聚D.过程内聚

78.

79.对如下二叉树进行后序遍历的结果为()。

A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是l5。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。

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

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

试题程序:

六、程序设计题(1题)82.编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

程序运行后,若输入精度

0.0005,则程序应输出为3.14…

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

参考答案

1.D本题j=要是考查带参数的宏的定义,过程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。

2.B

3.C解析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常驻量“移动”,指向数组的其他元素。

4.D

5.C

6.D第1个if语句是单独的一条语句,所以执行完第1个if语句后,r的值仍为初值0。第2个if语句与后续的两个elseif都是嵌套的,所以只会执行其中的一个语句,即“if(b==2)r=2;”这条语句。故本题答案为D选项。

7.C

8.B

9.C由于a小于b,所以所有选项中的条件都为假,c选项中实际执行了a=b;b=c;两个操作。而A、B、D选项由于条件不成立,所以什么也没有做,所以选择c选项。

10.D本题中exch函数是用数组中的第6个元素对第1个元素进行赋值,所以数组的值应该为678910。

11.A题干中,a、b、c3个节点都是node类型,它们都有两个成员:字符成员id,node类型指针成员next。由于a的next指向b,b的next指向c,因此a、b、c构成了链表。要想删除b节点,只需要将a节点的next(p->next)指向c(p->next->next),然后将节点b的存储空间释放即可。所以删除b节点的语句为“pt=p->next;p->next=p->next->next;free(pt);”。故本题答案为A选项。

12.C

13.C视图设计的设计次序分3种:自顶向下、自底向上和由内向外。它们为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握。

温馨提示

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

评论

0/150

提交评论