二级C语言模拟654.docx

上传人:b****5 文档编号:5735489 上传时间:2022-12-31 格式:DOCX 页数:22 大小:29.17KB
下载 相关 举报
二级C语言模拟654.docx_第1页
第1页 / 共22页
二级C语言模拟654.docx_第2页
第2页 / 共22页
二级C语言模拟654.docx_第3页
第3页 / 共22页
二级C语言模拟654.docx_第4页
第4页 / 共22页
二级C语言模拟654.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

二级C语言模拟654.docx

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

二级C语言模拟654.docx

二级C语言模拟654

二级C语言模拟654

一、选择题

1、以下选项中,与k=n++完全等价的表达式是______。

  A.k=n,n=n+1  B.n=n+1,k=n  C.k=++n  D.k+=n+1

2、关于

  Do循环体while(条件表达式);

  以下叙述中正确的是______。

  A.条件表达式的执行次数总是比循环体的执行次数多一次

  B.循环体的执行次数总是比条件表达式的执行次数多一次

  C.条件表达式的执行次数与循环体的执行次数一样

  D.条件表达式的执行次数与循环体的执行次数无关

3、VC6.0中int类型变量所占字节数是______。

  A.1  B.2

  C.3  D.4

4、现有格式化输入语句,scanf("x=%d],sum]y=%d,line]z=%dL",&x,&y,&z);,已知在输入数据后,x,y,z的值分别是23,56,78,则下列选项中正确地输入格式的是

  [注]"]"表示空格,<Enter>表示回车

  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>

5、有以下程序:

  #include<stdio.h>

  main()

  {

  charch[]="uvwxyz",*pc;

  pc=ch;

  printf("%c\n",*(pc+5));

  }

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

  A.z  B.0  C.元素ch[5]的地址  D.字符y的地址

6、有以下程序:

  #include<stdio.h>

  main()

  {chara[4][4]={''};

   inti,j;

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

   {a[i][0]=a[i][3]='#';

    for(j=1;j<3;j++)

    {a[0][j]=a[3][j]='#';

     if((i!

=0)&&(i!

=3))a[i][j]='o';

    }

  {

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

  {for(j=0;j<4;j++)

      printf("%2c",a[i][j]);

    printf("\n");

   }

  }

  程序的运行结果是______。

  A.#oo#

   #oo#

  B.####  

   #oo#   

  C.#oo#  

   ####   

  D.####

   ####

7、有以下程序段

  #include<stdio.h>

  intj;floaty;charname[50];

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

  当执行上述程序段,从键盘上输入555667777123后,y的值为______。

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

8、下列选项中不是C语句的是______。

  A.{ inti;i++;printf("%d\n",i);}

  B.;

  C.a=5,c=10

  D.{;}

9、构成计算机软件的是______。

  A.源代码  B.程序和数据

  C.程序和文档  D.程序、数据及相关文档

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

  A.在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上

  B.在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔

  C.在printf函数中,各个输出项只能是变量

  D.使用printf函数无法输出百分号%

11、有以下程序:

  #include<stdio.h>

  main()

  {

  inta=3;

  a+=a-=a*a;

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

  }

  程序的输出结果是______。

  A.0  B.9  C.3  D.-12

12、以下关于字符串处理的叙述正确的是______。

  A.进行字符串复制时,目的串的存储空间必须足够大

  B.两个字符串进行比较时,短的一个必定比长的一个小

  C.计算一个字符串的长度时,应包含串尾的结束标志

  D.两个字符串连接时,对存储空间的大小没有要求

13、以下说法正确的是______。

  A.C程序是从第一个定义的函数开始执行的

  B.在C程序中,要调用的函数必须在main()函数中定义

  C.C程序是从main()函数开始执行

  D.C程序中的main()函数必须放在程序的开始部分

14、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。

以下不能将变量c中的大写字母转换为对应小写字母的语句是______。

  A.c=('A'+c)%26-'a'  B.c=c+32  C.c=c-'A'+'a'  D.c=(c-'A')%26+'a'

15、有以下程序

  #include<stdio.h>

  main()

  {inti,s=0,t[]={1,2,3,4,5,6,7,8,9};

  for(i=0;i<9;i+=2)s+=*(t+i);

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

  }

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

  A.25  B.20  C.45  D.36

16、以下选项中关于程序模块化的叙述错误的是______。

  A.把程序分成若干相对独立的模块,可便于编码和调试

  B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

  C.可采用自低向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

  D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

17、有以下程序:

  #include<stdio.h>

  main()

  {unsignedchara=2,b=4,c=5,d;

  d=a|b;d&=c;printf("%d\n",d);}

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

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

18、某二叉树共有12个节点,其中叶子节点只有1个,则该二叉树的深度为(根节点在第l层)______。

  A.3  B.6  C.8  D.12

19、关系数据库规范化主要为克服数据库逻辑结构中的插入异常、删除异常以及______。

  A.数据丢失的问题  B.结构不合理的问题

  C.数据不一致的问题  D.冗余度大的问题

20、有以下程序:

  #include<stdio.h>

  #include<stdlib.h>

  intfun(intn)

  {int*p;

  p=(int*)malloc(sizeof(int));

  *p=n;return*p;

  }

  main()

  {inta;

  a=fun(10);printf("%d\n",a+fun(10));

  }

  程序的运行结果是______。

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

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

  A.gets函数用于从终端读入字符串  B.getchar函数用于从磁盘文件读入字符

  C.fputs函数用于把字符串输出到文件  D.fwrite函数用于以二进制形式输出数据到文件

22、已知函数的调用形式:

fread(buffer,size,count,fp);,其中buffer代表的是______。

  A.一个整型变量,代表要读入的数据项总数

  B.一个文件指针,指向要读的文件

  C.一个指针,是指向的输入数据放在内存中的起始位置

  D.一个存储区,存放要读的数据项

23、有两个关系R和T如下:

R

A

B

C

a

1

2

b

4

4

c

2

3

d

3

2

T

A

C

a

2

b

4

c

3

d

2

  则由关系R得到关系T的操作是______。

  A.选择  B.交  C.投影  D.并

24、若有以下程序段,w和k都是整型变量:

  

  w=k;

  LB:

if(w==0)gotoLE;

  w--;

  printf("*")

  gotoLB;

  LE;

  

  则不能与上面程序段等价的循环语句是______。

  A.for(w=k;w!

=0;w--)printf("*");

  B.for(w=k;w;--w)printf("*");

  C.w=k;

  while(w--!

=0)printf("*");

  D.w=k;

  w++;do{w--;printf("*");}while(w!

=0);

25、以下定义数组的语句中错误的是______。

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

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

26、有以下程序

  #include<stdio.h>

  intfun(intx,inty)

  {if(x!

=y)return((x+y)/2);

  elsereturn(x);

  }

  main()

  {inta=4,b=5,c=6;

  printf("%d\n",fun(2*a,fun(b,c)));

  }

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

  A.6  B.3  C.8  D.12

27、下列语句组中,正确的是______。

  A.char*s;s="Olympic";B.chars[7];s="Olympic";

  C.char*s;s={"Olympic"};  D.chars[7];s={"Olympic"};

28、以下所列对结构类型变量tdl的声明中错误的是______。

  A.typedefstructaa

  {intn;floatm;}AA;

  B.#defineAAstructaa

  AA{intn;floatm;)tdl;

  AAtdl;

  C.struct

  {intn;floatm;)aa;

  D.struct

  {intn;floatm;}tdl;

  structaatdl;

29、以下程序运行后的输出结果是______。

  #include<stdjo.h>

  voidreverse(inta[],intn)

  {inti,t;

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

  {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

  }

  mam()

  {intb[10]={10,9,8,7,6,5,4,3,2,1);inti,s=0;

  reverse(b,10);

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

  s+=b[i];

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

  }

  A.27  B.6  C.25  D.30

30、下列选项中,由C语言提供的合法关键字的是______。

  A.swicth  B.cher  C.default  D.Case

31、有以下程序段:

  intx;

  for(x=3;x<6;x++)

  printf((x%2)?

("**%d"):

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

  程序段的输出结果是

  A.**3

   ##4

   **5

  B.##3

   **4

   ##5

  C.##3

   **4##5

   .

  D.**3##4

   **5

32、以下fun函数返回数组中最大值的下标:

  #include<stdio.h>

  intfun(int*s,intn)

  {inti,k;

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

  if(s[i]>s[k])______;

  return(k);

  }

  在横线处应填入的内容是______。

  A.++k  B.i=k  C.k++  D.k=i

33、有以下程序:

  #include<stdio.h>

  structtt

  {intx;structtt*y;}s[3]={1,0,2,0,3,0};

  main()

  {structtt*p=s+1;

  p->y=s;

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

  p=p->y;

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

  }

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

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

34、若有定义语句:

  intb=2;

  则表达式(b<<2)/(3||b)的值是______。

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

35、有以下程序:

  #include<stdio.h>

  main()

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

  r=&q;

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

  }

  执行后的输出结果是______。

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

36、数据库技术的根本目标是要解决数据的______。

  A.存储问题  B.共享问题

  C.安全问题  D.保护问题

37、有以下程序:

  matin()

  { char*s[]={"one","two","three"},*p;

   p=s[1];

   printf("%c,%s\n",*(p+1),s[o]);

  }

  执行后的输出结果是______。

  A.n,two  B.t,one  C.w,one  D.o,two

38、下列关于C语言数据文件的叙述中正确的是______。

  A.文件由ASCII码字符序列组成,C语言只能读写文本文件

  B.文件由二进制数据序列组成,C语言只能读写二进制文件

  C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

  D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

39、已知某程序中有声明“inta[4],j;”及语句“for(j=0;j<4;j++)p[j]=a+j;”,则标识符P正确的声明形式应为______。

  A.intp[4];  B.int*p[4];  C.int**p[4];  D.int(*p)[4];

40、有以下程序:

  #include<stdio.h>

  main()

  {

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

  charflag;

  flag=b>=2&&c<=3;

  switch(a)

  {

  case1:

switch(flag)

  {

  case0:

printf("**");break;

  case1:

printf("%%");break;

  }

  case0:

switch(c)

  {

  case1:

printf("$$");break;

  case2:

printf("&&");break;

  default:

printf("##");

  }

  }

  printf("\n");

  }

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

  A.**$$  B.%##  C.%&&  D.**##

 

二、程序填空题

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

把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:

字符串的长度大于等于2)。

  例如,形参s所指的字符串为:

abcdefgh,执行结果为:

ahcbedgf。

  注意:

部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在fun()函数的横线上填入所编写的若干表达式或语句。

  试题程序:

  #include<stdio.h>

  voidfun(char*s)

  {

  inti,n,k;

  charc;

  n=0;

  for(i=0;s[i]!

='\0';i++)

  n++;

  if(n%2==0)

  k=n-______;

  else

  k=n-______;

  c=s[k];

  for(i=k-2;i>=1;i=i-2)

  s[i+2]=s[i];

  s[1]=______;

  }

  voidmain()

  {

  chars[80]="abcdefgh";

  printf("\nTheoriginalstringis:

%s\n",s);

  fun(s);

  printf("\nTheresultis:

%s\n",s);

  }

 

三、程序修改题

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

将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。

例如:

把三个串“abe”、“CD”、“EF”连接起来,结果是“abcCDEF”。

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

  注意:

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

  [试题源程序]

  #include<stdio.h>

  #include<string.h>

  voidfun(charstr[][10],intm,char*pt)

  {

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

  Intk,q,i;

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

  {q=strlen(str[k]);

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

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

  pt[i]=str[k,i];

  pt+=q;

  pt[0]=0;

  }

  }

  main()

  {intm,h;

  chars[10][10],p[120];

  printf("Pleaseenterm:

");

  scanf("%d",&m);gets(s[0]);

  printf("Pleaseenter%dstring:

",m);

  for(h=0;h<m;h++)gets(s[h]);

  fun(s,m,p);

  printf("Theresultis:

%s",p);

  }

 

四、程序设计题

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

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

除了字符串前导的*号之外,将串中其它*号全部删除。

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

函数fun中给出的语句仅供参考。

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

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

****ABCDEFG。

  注意:

部分源程序在文件PROG1.C文件中。

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

  #include<stdio.h>

  voidfun(char*a)

  {

  /*以下代码仅供参考*/

  inti=0,k;

  while(a[i]=='*')i++;

  k=i;

  while(a[i]!

='\0')/*以下程序段实现非*字符前移*/

  {

  }

  a[k]='\0';

  }

  main()

  {chars[81];voidNONO();

  printf(*Enterastring:

\n");gets(s);

  fun(s);

  printf("Thestringafter

  deleted:

\n");puts(s);

  NONO();

  }

  voidNONO().

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

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1