二级C语言分类模拟题503.docx

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

二级C语言分类模拟题503.docx

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

二级C语言分类模拟题503.docx

二级C语言分类模拟题503

二级C语言分类模拟题503

一、选择题

1、以下关于return语句的叙述中正确的是______。

  A.一个自定义函数中必须有一条return语句

  B.一个自定义函数中可以根据不同情况设置多条return语句

  C.定义成void类型的函数中可以有带返回值的return语句

  D.没有return语句的自定义函数在执行结束时不能返回到调用处

2、以下叙述中错误的是______。

  A.可以给指针变量赋一个整数作为地址值

  B.函数可以返回地址值

  C.改变函数形参的值,不会改变对应实参的值

  D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL

3、以下叙述中不正确的是______。

  A.C程序的main函数可以有参数

  B.C程序的main函数可以没有参数

  C.C程序的main函数可以有两个参数,其中参数名必须为argc和argv

  D.main函数的第一个参数argc必须是整型,第二个参数argv是一个指向字符型的指针数组的指针

4、有以下程序:

  #include <stdio.h>

  int funa(int a,intb){return a+b;}

  int funb(int a,intb){return a-b;}

  intsss(int(*t)(),intx,inty){ return((*t)(x,y)); }

  main()

  { intx;

  x=sss(funa,9,3); x+=sss(funb,8,3);printf("%d\n",x);

  }

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

  A.24

  B.23

  C.17

  D.22

5、#include <stdio.h>

  intadd(inta,intb){return(a+b); }

  main()

  { intk,(*f)(),a=5,b=10;

  f=add;

  …

  }

  则以下函数调用语句中错误的是______。

  A.k=f(a,b);

  B.k=add(a,b);

  C.k=(*f)(a,b);

  D.k=*f(a,b);

6、有以下程序:

  #include <stdio.h>

  int *f(int*s,int*t)

  { if(*s<*t) s=t;

  returns;

  }

  main()

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

  r=f(p,q);

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

  }

  程序的运行结果是______。

  A.3,5,3,5,5

  B.3,5,5,5,5

  C.5,3,3,3,5

  D.5,5,5,5,5

7、有以下程序:

  #include <stdio.h>

  voidf(intx[],intn)

  { if(n>1)

  { printf("%d,",x[n-1]);

  f(x,n-1);

  printf("%d,",x[n-1]);

  }

  else

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

  }

  main()

  { intz[3]={1,2,3};

  f(z,3);

  printf("\n");

  }

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

  A.3,1,3,

  B.3,2,1,2,3,

  C.1,2,3,1,2,3,

  D.1,2,3,2,1,

8、有以下程序:

  #include <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,

9、以下叙述中正确的是______。

  A.任何情况下都不能用函数名作为实参

  B.函数既可以直接调用自己,也可以间接调用自己

  C.函数的递归调用不需要额外开销,所以效率很高

  D.简单递归不需要明确的结束递归的条件

10、有如下程序:

  #include <stdio.h>

  voidconvert(char ch)

  { if(ch<'X')convert(ch+1);

  printf("%c",ch);

  }

  main()

  { convert('W'); printf("\n"); }

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

  A.YZ

  B.VW

  C.XY

  D.XW

11、有以下程序:

  #include <stdio.h>

  intf(intx);

  main()

  { intn=1,m;

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

  }

  intf(intx)

  { returnx*2;}

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

  A.8

  B.2

  C.4

  D.1

12、设有如下函数定义:

  #include <stdio.h>

  int fun(int k)

  { if(k<1) return 0;

  else if(k==1) return 1;

  else return fun(k-1)+1;

  }

  若执行调用语句:

n=fun(3);,则函数fun总共被调用的次数是______。

  A.2

  B.3

  C.4

  D.5

13、有以下程序:

  #include <stdio.h>

  intf(intx)

  { inty;

  if(x==0||x==1) return(3);

  y=x*x-f(x-2);

  returny;

  }

  main()

  { intz;

  z=f(3);

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

  }

  程序的运行结果是______。

  A.0

  B.9

  C.6

  D.8

14、有以下程序:

  #include <stdio.h>

  intfun(intn)

  { if(n==1) return 1;

  elsereturn(n+fun(n-1));

  }

  main()

  {

  intx;

  scanf("%d",&x);

  x=fun(x);

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

  }

  执行程序时,给变量x输入10,程序的输出结果是______。

  A.55

  B.54

  C.65

  D.45

15、若有以下程序:

  #include <stdio.h>

  voidf(intx)

  { if(x>=10)

  { printf("%d-",x%10); f(x/10); }

  else

  printf("%d",x);

  }

  main()

  {  int z=123456;

  f(z);

  }

  则程序的输出结果是______。

  A.6-5-4-3-2-1-

  B.6-5-4-3-2-1

  C.1-2-3-4-5-6

  D.1-2-3-4-5-6-

16、若有以下程序:

  #include <stdio.h>

  int f(int a[],int n)

  { if(n>1)

  { int t;

  t=f(a,n-1);

  return t>a[n-1]?

t:

a[n-1];

  }

  else

  returna[0];

  }

  main()

  {  int a[]={8,2,9,1,3,6,4,7,5};

  printf("%d\n",f(a,9));

  }

  则程序的输出结果是______。

  A.9

  B.1

  C.8

  D.5

17、在C语言中,只有在使用时才占用内存单元的变量,其存储类型是______。

  A.auto和static

  B.extern和register

  C.auto和register

  D.static和register

18、以下叙述中正确的是______。

  A.函数的形式参数不属于局部变量

  B.对于变量而言,“定义”和“声明”这两个词实际上是同一个意思

  C.在复合语句中不能定义变量

  D.全局变量的存储类别可以是静态类

19、有以下程序:

  #include <stdio.h>

  void fun2(chara,charB.

  { printf("%c%c",a,b); }

  chara='A',b='B';

  void fun1()

  { a='C'; b='D'; }

  main()

  { fun1();

  printf("%c%c",a,b);

  fun2('E','F');

  }

  程序的运行结果是______。

  A.ABEF

  B.CDEF

  C.ABCD

  D.CDAB

20、有以下程序:

  #include <stdio.h>

  int d=1;

  void fun(int p)

  {

  int d=5;

  d+=p++;

  printf("%d",d);

  }

  main()

  {

  int a=3;

  fun(a);

  d+=a++;

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

  }

  程序的输出结果是______。

  A.8 4

  B.9 6

  C.9 4

  D.8 5

21、若有以下程序:

  #include <stdio.h>

  int f(int m)

  { static int n=0;

  int a=2;

  n++; a++; return n+m+a;

  }

  main()

  { intk;

  fbr(k=0;k<4;k++) printf("%d,",f(k));

  }

  则程序的输出结果是______。

  A.3,5,7,9,

  B.4,7,10,13,

  C.4,5,6,7,

  D.4,6,8,10,

22、有以下程序:

  #include <stdio.h>

  intfun(intn)

  { staticintt=1; inti=1;

  for(;i<=n;i++) t*=i;

  returnt;

  }

  main()

  { intt=1,i;

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

  t+=fun(i);

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

  }

  程序的运行结果是______。

  A.8

  B.11

  C.15

  D.4

23、#include <stdio.h>

  fun(int x,int y)

  { 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,11

  B.5,5

  C.11,11

  D.11,5

24、在一个C源程序文件中所定义的全局变量,其作用域为______。

  A.由具体定义位置和extern说明来决定范围

  B.所在程序的全部范围

  C.所在函数的全部范围

  D.所在文件的全部范围

25、以下叙述中错误的是______。

  A.未经赋值的全局变量值不确定

  B.未经赋值的auto变量值不确定

  C.未经赋值的register变量值不确定

  D.未经赋值的静态局部变量值为0

26、有以下程序:

  #include <stdio.h>

  int a=2;

  intf(intk)

  { staticint n;

  intm;

  m=n=0;

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

  return n+m+a+k;

  }

  main()

  { intk;

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

  printf("\n");

  }

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

  A.6,8,

  B.6,9,

  C.6,6,

  D.6,7,

27、以下叙述中正确的是______。

  A.局部变量不能被说明为static

  B.只有全局变量才有自己的作用域,函数中的局部变量没有作用域

  C.只有在函数内部定义的变量才是局部变量

  D.只要是用户定义的标识符,都有一个有效的作用域

28、以下叙述中错误的是______。

  A.函数中的形参属于局部变量

  B.在函数内部定义的变量只能在本函数范围内使用

  C.在函数外部定义的变量在所有函数中都有效

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

29、当没有指定C语言中函数形参的存储类别时,函数形参的存储类别是______。

  A.外部(extern)

  B.静态(static)

  C.寄存器(register)

  D.自动(auto)

30、以下选项中叙述错误的是______。

  A.C程序函数中定义的自动变量,系统不自动赋确定的初值

  B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

  C.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

  D.C程序函数的形参不可以说明为static型变量

31、有以下程序:

  #include <stdio.h>

  intfun()

  { static int x=1;

  x*=2;

  return x;

  }

  main()

  { int i,s=1;

  for(i=l;i<=3;i++) s*=fun();

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

  }

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

  A.10

  B.30

  C.0

  D.64

32、若有以下程序:

  #include <stdio.h>

  char *a="you";

  char b[]="WelcomeyoutoChina!

";

  main()

  { inti,j=0; char*p;

  for(i=0;b[i]!

='\0';i++)

  { if(*a==b[i])

  { p=a;

  for(j=i;*p!

='\0';j++)

  { if(*p!

=b[j]) break;

  p++;

  }

  if(*p=='\0') break;

  }

  }

  printf("%s",&b[i]);

  }

  则程序的输出结果是______。

  A.China!

  B.toChina!

  C.meyoutoChina!

  D.youtoChina!

33、有以下程序:

  #include <stdio.h>

  intf(intn);

  main()

  { inta=3,s;

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

  }

  intf(intn)

  { staticinta=1;

  n+=a++;

  returnn;

  }

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

  A.9

  B.8

  C.7

  D.10

34、有以下程序:

  #include <stdio.h>

  intfun()

  { staticintx=1;

  x+=1;

  returnx;

  }

  main()

  { inti,s=1;

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

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

  }

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

  A.120

  B.11

  C.6

  D.21

35、有以下程序:

  #include <stdio.h>

  fun(inta,intb)

  { int static m=0,i=2;

  i=i+m+1;

  m=i+a+b;

  return m;

  }

  main()

  { int k=4,m=1,p;

  p=fun(k,m);

  printf("%d,",p);

  p=fun(k,m);

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

  }

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

  A.8,17

  B.7,16

  C.8,8

  D.7.17

36、有如下程序:

  #include <stdio.h>

  intsum(intdata)

  {

  staticintinit=0;

  returninit+=data;

  }

  main()

  {

  inti;

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

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

  }

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

  A.1,3,6,10,15,

  B.1,2,3,4,5,

  C.0,0,0,0,0,

  D.1,1,1,1,1,

 

二、操作题

37、规定输入的字符串中只包含字母和*号。

编写函数fun,其功能是:

将字符串中的前导*号全部删除,中间和尾部的*号不删除。

  例如,字符串中的内容为:

"*******A*BC*DEF*G****",删除后字符串中的内容应当是:

"A*BC*DEF*G***+"。

编写函数时,不得使用C语言提供的字符串函数。

  注意:

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

  #include <stdio.h>

  void fun(char*a)

  {

  }

  main()

  { chars[81];

  printf("Enterastring:

\n");gets(s);

  fun(s);

  printf("Thestringafterdeleted:

\n");puts(s);

  }

38、请编写一个函数voidfun(inttt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列的最大元素,并依次放入pp所指的一维数组中。

二维数组中的数已在主函数中给出。

  注意:

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

  #include <conio.h>

  #include <stdio.h>

  #include <stdlib.h>

  #define M 3

  #define N 4

  voidfun(int tt[M][N],int pp[N])

  {

  }

  main()

  {

  intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}};

  intp[N],i,j,k;

  printf("Theoriginaldatais:

\n");

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

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

  printf("%6d",t[i][j]);

  printf("\n");

  }

  fun(t,p);

  print

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

当前位置:首页 > 人文社科 > 文化宗教

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

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