二级C语言模拟629.docx

上传人:b****1 文档编号:2877420 上传时间:2023-05-04 格式:DOCX 页数:26 大小:29.34KB
下载 相关 举报
二级C语言模拟629.docx_第1页
第1页 / 共26页
二级C语言模拟629.docx_第2页
第2页 / 共26页
二级C语言模拟629.docx_第3页
第3页 / 共26页
二级C语言模拟629.docx_第4页
第4页 / 共26页
二级C语言模拟629.docx_第5页
第5页 / 共26页
二级C语言模拟629.docx_第6页
第6页 / 共26页
二级C语言模拟629.docx_第7页
第7页 / 共26页
二级C语言模拟629.docx_第8页
第8页 / 共26页
二级C语言模拟629.docx_第9页
第9页 / 共26页
二级C语言模拟629.docx_第10页
第10页 / 共26页
二级C语言模拟629.docx_第11页
第11页 / 共26页
二级C语言模拟629.docx_第12页
第12页 / 共26页
二级C语言模拟629.docx_第13页
第13页 / 共26页
二级C语言模拟629.docx_第14页
第14页 / 共26页
二级C语言模拟629.docx_第15页
第15页 / 共26页
二级C语言模拟629.docx_第16页
第16页 / 共26页
二级C语言模拟629.docx_第17页
第17页 / 共26页
二级C语言模拟629.docx_第18页
第18页 / 共26页
二级C语言模拟629.docx_第19页
第19页 / 共26页
二级C语言模拟629.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

二级C语言模拟629.docx

《二级C语言模拟629.docx》由会员分享,可在线阅读,更多相关《二级C语言模拟629.docx(26页珍藏版)》请在冰点文库上搜索。

二级C语言模拟629.docx

二级C语言模拟629

二级C语言模拟629

一、选择题

1、下列叙述中正确的是

  A.每一个结点有两个指针域的链表一定是非线性结构

  B.所有结点的指针域都为非空的链表一定是非线性结构

  C.循环链表是循环队列的链式存储结构

  D.线性结构的存储结点也可以有多个指针

2、使用白盒测试方法时,设计测试用例应根据

  A.程序的内部逻辑  B.程序的复杂结构  C.程序的功能  D.使用说明书

3、在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在多个科室治疗。

则实体医生和患者之间的联系是

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

4、设序列长度为n,在最坏情况下时间复杂度为O(log2n)的算法是

  A.二分法查找  B.顺序查找  C.分块查找  D.哈希查找

5、设数据集合为D={1,3,5,7,9},D上的关系为R,下列数据结构B=(D,R)中为非线性结构的是

  A.R={ (5,1),(7,9),(1,7),(9,3) }   B.R={ (9,7),(1,3),(7,1),(3,5) }

  C.R={ (1,9),(9,7),(7,5),(5,3) }     D.R={ (1,3),(3,5),(5,9) }

6、深度为7的二叉树共有127个结点,则下列说法中错误的是

  A.该二叉树有一个度为1的结点  B.该二叉树是满二叉树

  C.该二叉树是完全二叉树   D.该二叉树有64个叶子结点

7、某二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为

  A.DCBA  B.BDCA  C.ABCD  D.BADC

8、下面能作为软件需求分析工具的是

  A.PAD图  B.程序流程图  C.甘特图  D.数据流程图(DFD图)

9、下面不属于对象主要特征的是

  A.唯一性  B.多态性  C.可复用性  D.封装性

10、关系R经过运算σA=BAC>4∧D>3(R)的结果为

R

A

B

C

D

a

a

2

4

b

e

1

2

c

c

11

4

e

e

6

1

  A.(c,c,11,4)  B.(e,e,6,1)  C.(a,a,2,4)  D.(a,a,2,4)和(e,e,6,1)

11、简单程序设计步骤中不包括

  A.编码  B.确定算法  C.安装编译程序  D.调试

12、若想给已定义为int型的变量a,b,c,d赋值为1,以下选项中错误的语句是

  A.d=1,c=d,b=c,a=b;  B.a=b=c=d=1;  C.a=1,b=a,c=b,d=c;  D.a=b,b=c,c=d,d=1;

13、有C语言表达式:

2*3+4+15%3,关于其执行顺序,以下叙述中正确的是

  A.先执行2*3得6,再执行6+4得10,再执行15%3得0,最后执行10+0得10

  B.先执行2*3得6,再执行15%3得5,最后执行6+4+5得15

  C.先执行15%3得0,再执行2*3得6,最后执行6+4+0得10

  D.先执行15%3得3,再执行4+3得7,再执行2*3得6,最后执行6+7得13

14、若有定义:

int a;float b;double c;,程序运行时输入:

1,2,3<回车>,能把1输入给变量a、2输入给变量b、3输入给变量c的输入语句是

  A.scanf("%d,%f,%lf",&a,&b,&c);   B.scanf("%d%f%lf",&a,&b,&c);

  C.scanf("%d,%lf,%lf",&a,&b,&c);  D.scanf("%d,%f,%f",&a,&b,&c);

15、以下选项中,合法的C语言实数是

  A.E1  B.1e0  C.0.10E  D.2.1e0.2

16、关于程序中的注释,以下叙述中正确的是

  A.注释的内容可以放在一对/*和*/之间  B.注释必须置于所说明的语句前或语句后

  C.注释中间可以嵌套另一个注释  D.注释内容错误会导致编译出错

17、有以下程序:

  #include <stdio.h>

  main()

  { inta,b;

  for(a=0;a<3;a++)

  { scanf("%d",&b);

  switchB.

  { default:

printf("%d,",b++);

  case1:

printf("%d,",b++);

  case2:

printf("%d,",b++);

  }

  }

  }

  程序运行时输入:

1 2 3<回车>,则输出结果是

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

18、以下非法的定义语句是

  A.longb=0L;  B.unsignedinta=-100u;  C.shortc2=0123;  D.intd=0x0;

19、有以下程序:

  #include <stdio.h>

  main()

  { inta=0,b=0;

  for(;a<5;a++)

  { if(a%2==0)continue;

  b+=a;

  break;

  }

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

  }

  程序运行后的输出结果是

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

20、有以下程序:

  #include <stdio.h>

  main()

  { charc;

  c=getchar();

  do{

  putchar(c++);

  }while((c=getchar())!

='#');

  }

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

abcdefg##<回车>,则输出结果是

  A.bcdefgh$  B.bcdefgh  C.abcdefg#  D.abcdefg

21、有如下程序:

  #include <stdio.h>

  main()

  { chara='0',b='a';

  inti;

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

  { if(i%3) putchar(a+i);

  else putchar(b+i);

  }

  }

  程序运行后的输出结果是

  A.a12d  B.ab3d  C.10ab  D.11ac

22、有以下程序:

  #include <stdio.h>

  main()

  { charch='M';

  while(ch!

='K')

  { putchar(ch);

  ch--;

  }

  }

  程序运行后的输出结果是

  A.ML  B.MK  C.OP  D.mm

23、有以下程序:

  #include <stdio.h>

  intk=5;

  voidf(int *s)

  { s=&k;

  *s=k;

  }

  main()

  { intm=3;

  f(&m);

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

  }

  程序运行后的输出结果是

  A.3,3  B.5,5  C.3,5  D.5,3

24、有如下程序:

  #include <stdio.h>

  intsum_mod(inta,intb)

  {returna+b%2;}

  main()

  { inti;

  for(i=0;i<5;i++) printf("%d",sum_mod(i,4));

  printf("\n");

  }

  程序运行后的输出结果是

  A.12345  B.01234  C.45678  D.43210

25、以下对指针变量的操作中,错误的程序段是

  A.int x=0,*p; *p=x;  B.intx=1,*p,*q=&x;p=q;

  C.int *p,*q; q=p=NULL;  D.intp,*q; q=&p;

26、有如下程序段:

  int *p,a=1;

  p=&a;

  *p=10;

  则变量a的值为

  A.不能确定  B.1  C.10  D.11

27、有以下程序:

  #include <stdio.h>

  inta=2;

  intf(intk)

  { staticintn=0;

  int m=0;

  n++; a++; m++; k++;

  returnn+m+a+k;

  }

  main()

  { intk;

  for(k=0;k<2;k++) printf("%d,",f(k));

  printf("\n");

  }

  程序运行后的输出结果是

  A.6,9,  B.6,10,  C.6,6,  D.6,7,

28、有以下程序:

  #inelude <stdio.h>

  voidf(intx[],intn)

  { if(n>1)

  { printf("%d,",x[0]);

  f(&x[1],n-1);

  printf("%d,",x[0]);

  }

  else

  printf("%d,",x[0]);

  }

  main()

  { intz[3]={4,5,6};

  f(z,3);

  printf("\n");

  }

  程序运行后的输出结果是

  A.6,5,4,6,5,4,  B.4,5,6,5,4,  C.4,5,6,4,5,6,  D.6,5,4,5,6,

29、有如下程序:

  #include <stdio.h>

  #include <string.h>

  main()

  { chara[]:

"1234",*b="ABC";

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

  }

  程序运行后的输出结果是

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

30、有以下程序:

  #include <stdio.h>

  int* sum(intdata)

  { staticintinit=1;

  init+=data;

  return&init;

  }

  main()

  { inti,*p;

  for(i=1;i<=3;i++)sum(i);

  p=sum

(1);

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

  }

  程序运行后的输出结果是

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

31、以下对C语言函数的叙述中正确的是

  A.调用函数时,只能把实参的值传给形参,形参的值不能传给实参

  B.函数既能嵌套定义,又能递归定义

  C.函数必须有返回值,否则不能使用

  D.程序中有调用关系的所有函数必须放在同一个源程序中

32、有以下程序:

  #include <stdio.h>

  #defineS(x)x/x*x

  main()

  { intk=6,j=3;

  printf("%d,%d\n",S(k+j),S(j+k));

  }

  程序运行后的输出结果是

  A.27,27  B.9,9  C.27,29  D.29,29

33、若有定义:

  typedefint*T;

  T *a[20];

  则以下与上述定义中a类型完全相同的是

  A.int **a[20];  B.int (*a)[20];  C.int *(*a)[20]; D.int *a[20];

34、设有以下程序段:

  struetperson

  { floatweight;

  charsex;

  charname[10];

  }rec,*ptr;

  ptr=&rec;

  从键盘读入字符串给结构体变量rec的name成员,错误的输入语句是

  A.scanf("%s",rec->name);  B.scanf("%s",rec.name);

  C.scanf("%s",(*ptr).name);  D.scanf("%s",ptr->name);

35、有如下程序:

  #include <stdio.h>

  structpair

  { intfirst,second;};

  structpairget_min_max(int*array,intlen)

  { inti;

  structpairres;

  res.first=array[0];

  res.second=array[0];

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

  { if(array[i]<res.first)res.first=array[i];

  if(array[i]>res.second)res.seeond=array[i];

  }

  returnres;

  }

  main()

  { intarray[6]={19,21,3,4};

  structpairmin_max=get_min_max(array,6);

  printf("min=%d,max=%d\n",min_max.first,min_max.second);

  }

  程序运行后的输出结果是

  A.min=0,max=6  B.min=1,max=20  C.min=1,max=19  D.min=0,max=21

36、有以下程序:

  #include <stdio.h>

  main()

  { inti;

  FILE* fp;

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

  { fp=fopen("res.txt","w");

  fputc('K'+i,fp);

  fclose(fp);

  }

  }

  程序运行后,在当前目录下会生成一个res.txt文件,其内容是

  A.EOF  B.M  C.KLM  D.L

37、有如下定义:

  struct st

  {intn; float t;}a[20];

  FILE *fp;

  若文件已正确打开,则以下将文件内容读入数组a中的语句错误的是

  A.for(i=0;i<20;i++)

  fread(a[i],sizeof(structst),1L,fp);

  B.fread(a,sizeof(structst),20L,fp);

  C.for(i=0;i<20;i+=2)

  fread(&a[i],2*sizeof(structst),1L,fp);

  D.for(i=O;i<20;i++,i++)

  fread(&a[i],sizeof(structst),2L,fp);

38、有以下程序段:

  intm=33,n=66;

  m=m^n;n=n^m;m=m^n;

  执行上述语句后,m和n的值分别是

  A.m=66,n=66  B.m=33,n=66  C.m=66,n=33  D.m=33,n=33

39、有以下程序:

  #define Out(n) n%2==0?

 "%c":

"%d"

  #include <stdio.h>

  main()

  { intx;

  for(x=65;x<69;x++)

  printf(Out(x),x);

  }

  程序的运行结果是

  A.ABCD  B.A66C68  C.65666768  D.65867D

40、有如下定义:

  structst

  { intx;floaty;}rec,*px;

  若要使指针px指向rec的成员x,正确的赋值语句是

  A.px=(struetst*)&rec.x;  B.px=(struetst*)rec.x;

  C.px=&rec.x;  D.*px=rec.x;

 

二、程序填空题

41、下面给定程序中,函数fun的功能是:

计算形参X所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

  例如,有10个正数:

46、30、32、40、6、17、45、15、48、26,平均值为30.500000。

  移动后的输出为:

46、32、40、45、48、30、6、17、15、26。

  请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

  注意:

不得增行或删行,也不得更改程序的结构!

  试题程序:

  #include <stdlib.h>

  #include <stdio.h>

  #define N 10

  doublefun(double *x)

  { inti,j; doubles,av,y[N];

  s=0;

  for(i=0;i<N;i++) s=s+x[i];

  /**********found**********/

  av=______;

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

  if(x[i]>av){

  /**********found**********/

  y[______]=x[i];

  x[i]=-1;}

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

  /**********found**********/

  if(x[i]!

=______)y[j++]=x[i];

  for(i=0;i<N;i++)x[i]=y[i];

  returnav;

  }

  main()

  { inti; doublex[N];

  for(i=0;i<N;i++){x[i]=rand()%50;printf("%4.0f",x[i]);}

  printf("\n");

  printf("\nTheaverageis:

%f\n",fun(x));

  printf("\nTheresu]t:

\n",fun(x));

  for(i=0;i<N;i++) printf("%5.Of",x[i]);

  printf("\n");

  }

 

三、程序修改题

(共18分)

42、下面给定程序中,函数fun的功能是:

根据整形参m的值,计算如下公式的值。

  

  例如,若m为5,则应输出0.536389。

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

  注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

  试题程序:

  #include <stdio.h>

  doublefun (intm)

  { double y=1.0;

  inti;

  /**************found**************/

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

  /**************found**************/

  y-=1/(i*i);

  return(y);

  }

  main()

  { intn=5;

  printf("\nTheresultis%lf\n",fun(n));

  }

 

四、程序设计题

四、程序设计题(共24分)

43、编写函数fun,它的功能是:

求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。

  例如,若n为1000时,程序输出应为:

s=153.909064。

  注意:

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

  试题程序:

  #include <math.h>

  #include <stdio.h>

  doublefun(intn)

  {

  }

  main() /*主函数*/

  { voidNONO();

  printf("s=%f\n",fun(1000));

  NONO();

  }

  voidNONO()

  {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件*/

  FILE *fp,*wf;

  inti,n;

  doubles;

  fp=fopen("in.dat","r");

  wf=fopen("out.dat","w");

  for(i=0;i<10;i++){

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

  s=fun(n);

  fprintf(wf,"%f\n",s);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2