二级C语言笔试模拟116.docx

上传人:b****6 文档编号:6257542 上传时间:2023-01-04 格式:DOCX 页数:16 大小:21.36KB
下载 相关 举报
二级C语言笔试模拟116.docx_第1页
第1页 / 共16页
二级C语言笔试模拟116.docx_第2页
第2页 / 共16页
二级C语言笔试模拟116.docx_第3页
第3页 / 共16页
二级C语言笔试模拟116.docx_第4页
第4页 / 共16页
二级C语言笔试模拟116.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

二级C语言笔试模拟116.docx

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

二级C语言笔试模拟116.docx

二级C语言笔试模拟116

二级C语言笔试模拟116

一、选择题

下列各题A、B、C、D四个选项中,只有一个选项是正确的。

1、从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动______个元素。

  A.n-i  B.n-i+1  C.n-i-1  D.i

2、从顺序存储的循环队列中删除一个元素时,是______。

  A.先移动队首指针,后取出元素

  B.先取出元素,后移动队首指针

  C.先移动队尾指针,后取出元素

  D.先取出元素,后移动队尾指针

3、假定在一棵二叉树中,双分支结点数为15个,单分支结点数为32个,则叶结点数为______个。

  A.15  B.16  C.17  D.47

4、在以下术语中,与数据的逻辑结构无关的是______。

  A.线性结构  B.链式结构  C.树型结构  D.网状结构

5、软件工程的结构化生命周期方法,通常是将软件生命周期划分为计划、开发和运行3个时期,下列选项中的______工作应属于软件开发期的内容。

①需求分析  ②可行性研究  ③总体设计  ④问题定义

  A.①和②  B.①和③  C.①、②和④  D.全部

6、数据管理技术随着计算机技术的发展而发展。

数据库阶段具有许多特点,但下面列出的特点中,______不是数据库阶段的特点。

  A.数据结构化 B.数据面向应用程序 C.数据共享性高 D.数据具有较高的独立性

7、下列描述中,错误的一条是______。

  A.已知a=3、b=2、c=l,则表达式(a>b)气的值为1

  B.C语言的表达式能构成语句

  C.表达式(x1=3*5,x1*4),x1+5的值为20

  D.表达式x1=(b=4)+(c=6)的值为6

8、执行下列语句后的输出结果为______。

enum{x1=3,b=4,C,d,e}data;

printf("%d",data=d);

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

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

  A.输入项可以是一个实型常量,例如:

  scanf("%f",3.5);

  B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:

  scanf("a=%d,b=%d");

  C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:

  scanf("%4.2f",&d);

  D.当输入数据时,必须指明变量地址,例如:

  scanf("%f",&f);

10、设x、y、t均为int型变量,执行以下语句后,y的值为______。

x=y=3;t=++x||++y;

  A.不定值  B.4  C.3  D.1

11、假定所有变量均已正确说明,以下程序段运行后,x的值是______。

a=b=c=0;x=35;

if(!

a) x--;

elseif(b);if(c)x=3;

elsex=4;

  A.34  B.4  C.35  D.3

12、在执行以下程序时,为了使输出结果为:

t=4,则给a和b输入的值应满足的条件是______。

main ()

{ ints,t,a,b;

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

 s=1, t=1;

 if(a>0)s=s+1;

 if(a>b)t=s+1;

 elseif(a==b) t=5;

 elset=2*s;

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

}

  A.a>b  B.a<b<0  C.0<a<b  D.0>a>b

13、当执行以下程序段时,______。

x=-1;

do{ x=x*x;}while (!

x);

  A.循环体将执行1次  B.循环体将执行2次

  C.循环体将执行无限次  D.系统将提示有语法错误

14、以下程序的输出结果是______。

main()

{ inti,j,x=0;

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

 { x++;

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

    { if(j%2) continue;

      x++;

    }

   x++;

 }

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

}

  A.x=4  B.x=8  C.x=6  D.x=12

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

  A.do…while语句构成的循环不能用其他语句构成的循环来代替

  B.do…while语句构成的循环只能用break语句退出

  C.用do…while语句构成的循环,在while后的表达式为非零时结束循环

  D.用do…while语句构成的循环,在while后的表达式为零时结束循环

16、以下程序段的while循环执行的次数是______。

intk=0;

while(k=1)k++;

  A.无限次  B.有语法错,不能执行

  C.一次也不执行  D.执行1次

17、以下程序执行后,sum的值是______。

main()

{ inti, sum;

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

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

}

  A.15  B.14  C.不确定  D.0

18、下列程序语句中,不正确的是______。

A.maia()

 {floata,b,c;

  scanf("%f,%f",&a,&b);

  c=add(a,b);

  ……

 }

 intadd(floatx,floaty)

 {……}

B.main()

 {floata,b,c;

  scanf("%f,%f",&a,&b);

  c=add(a,b);

  ……

 }

 floatadd(floatx,floaty)

 {……}

C.floatadd()

 maia()

 {floata,b,c;

  scanf("%f,%f",&a,&b);

  c=add(a,b);

  ……

 }

 floatadd(floatx,floaty)

 {……}

D.floatadd(floatx,floaty)

 {……}

 main()

 { floata,b,c;

   scanf("%f,%f",&a,&b);

   c=add(a,b);

   ……

 }

19、关于return语句,正确的说法是______。

  A.在主函数和其他函数中均可出现

  B.必须在每个函数中出现

  C.可以在同一个函数中出现多次

  D.只能在除主函数之外的函数中出现一次

20、下列叙述中,正确的一条是______。

  A.putchar函数可以输出一个字符串

  B.在printf("%c",c)函数中,两个c是一样的

  C.语句printf("%d%%",1)的输出结果为1%

  D.用scar函数输入数据时可以规定精度,例如scanf("%7.2f",&a)

21、设有以下说明和定义:

typedefunion

{ longi;intk[5];charc;}DATE;

structdate

{ intcat;DATEcow;doubledog; }too;

DATEmax;

则下列语句的执行结果是______。

printf("%d",sizeof (structdate) +sizeof(max));

  A.26  B.30  C.18  D.8

22、以下程序运行后,输出结果是______。

#include<stdio.h>

ss (char *s)

{ char*p=s;

 while(*.p)p++;

 return(p-s);

}

main()

{ char*a="abded";

 inti;

 i=ss((A);

 print ("%d\n",i);

}

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

23、若有说明:

long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是______。

  A.*p=&a;scanf("%ld",p);  B.p=(long*)malloc(8);scanf("%ld",p);

  C.scanf("%ld",p=&a);  D.scanf("%ld",&a);

24、以下程序的输出结果是______。

main()

{ charch[3][4]={"123","456","78"},*p[3];inti;

 for(i=0;i<3;i++) p[i]=ch[i];

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

}

  A.123456780  B.123456780  C.12345678  D.147

25、以下程序的输出结果是______。

#include

main()

{ char*p1,*p2,str[50]="ABCDEFG";

 p1="abcd";p2="efgh";

 strcpy(str+1,p2+1);strcpy(str+3,p1+3);

 printf("%s",str);

}

  A.AfgdEFG  B.Abfhd  C.Afghd  D.Afgd

26、以下程序的输出结果是______。

main()

{ charw[][10]={"ABCD","EFGH","IJKL","MNOP"),k;

  for(k=1;k<3;k++) printf("%s\n",w[k]);

}

A.ABCD

FGH

KL

M

B.ABCD

EFG

IJ

C.EFG

JK

O

D.EFGH

UKL

27、若输入173253,则以下程序的运行结果为______。

main()

{ unsigneda;

 intn1,n2;

 scanf("%o",&a);

 printf("%o",getbits(a,4,8));

}

getbits(value,n1,n2)

unsignedvalue;

int n1,n2;

{ unsignedz;

 z=~0;

 z=(z>>n1)&(z<<(16-n2));

 z=value&z;

 z=z>>(16-n2);

 return(z);

}

  A.173253  B.6  C.8  D.173

28、若有以下定义,则正确的switch语句是______。

float x;int a,b;

A.switch(x)

 {case1.0:

printf("*\n");

  csse2.0:

printf("**\n");

 }

B.switch(x)

 {case1,2:

printf("*\n");

  case3:

printf("**\n");

 }

C.switch(a+b)

 {case1:

printf("\n");

  case1+2:

printf("**\n");

 }

D.switch(a+b);

 {case1:

printf("*\n");

  case2:

printf("**\n");

 }

29、当a=1、b=3、c=5、d=4时,执行下面一段程序后,x的值为______。

if (a<b)

 if (c<d) x=1;

 else

if (a<c)

if (b<d)  x=2;

else    x=3;

else    x=6;

else    x=7;

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

30、若a、b、c1、c2、x、y均是整型变量,则正确的switch语句是______。

A.swich(a+b);

 { case1:

y=a+b;break;

   case0:

y=a-b;break;

 } case3:

y=b-a,break;

B.switch(a*a+b*b)

 { case3:

   case1:

y=a+b;break;

 }

C.switcha

 { casec1:

y=a-b;break;

   casec2:

x=a*d;break;

   default:

x=a+b;

 }

D.switch(a-b)

 { default:

y=a*b;break;

   case3:

case4:

x=a+b;break;

   case10:

case11:

y=a-b;break;

 }

二、填空题

请将每一个空的正确答案写在序号为【1】~【15】的横线上。

注意:

以命令关键字填空的必须拼写完整。

1、在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 【1】 个前驱结点;最后一个结点没有后继结点,其余每个结点有且只有 【2】 个后继结点。

2、若对长度为90的线性表进行分块查找,其中每块子表长度为9。

如果在索引表查找过程中进行顺序查找,那么平均查找长度为 【3】 。

3、若有以下定义语句,则不移动指针p,并且通过指针p引用值为98的数组元素的表达式是 【4】 。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

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

struct stud

{ charnum[6];

 ints[4];

 doubleave;

} a,*p;

5、如果输入'1'、'2'、'3'、'4',则以下程序的运行结果为 【6】 。

#include<stdio.h>

main()

{ charc;

 inti,k;

 k=0;

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

 { while

(1)

   { c=getchar();

    if(c>='0'&&c<='9') break;

   }

   k=k*10+c-'0';

 }

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

}

6、若输入12、3、2、5、7,则以下程序的运行结果为 【7】 。

intmax,min;

voidmax_min_value();

main()

{ inti,number[5];

  printf("输入5个整数;\n");

 for(i=0;i<5;i++) scanf("%d",&number[i]);

 maxminvalue(number,5);

 printf("max=%d,min=%d\n",max,min);

 getch();

}

 voidmax_min_value(array,n)

 intarray[],n;

 { int*p;

   max=min=*array;

   for(p=array+1;p<array+n;p++)

   if(*p>max)max=*p;

   elseif(*p<min)min=*p;

}

7、以下程序的运行结果为 【8】 。

#defineFORMAT"%u,%u"

main()

{ inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

 printf("\n");

 printf(FORMAT,**a,*a[0]);

 printf(FORMAT,*(a[0]+1),*&a[0][1]);

 printf(FORMAT,a[1][0],*(*(a+1)+0));

}

8、若输入21、23、34、11、2、6,则以下程序的运行结果 【9】 。

main()

{ inti;

 char+p,num[6];

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

 scanf("%d,",&num[i]);

 scanf("%d",&num[5]);

 p=&num[0];

 sort(p,6);

 for(i=0;i<5;i++) printf("%d,",num[i]);

 printf("%d\n",num[5]);

}

sort(p,m)

char*p;

intm;

{ inti;

 charchange,*p1,*p2;

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

 { p1=p+i;

   p2=p+(m-1-i);

   change=*p1;

   *p1=*p2;

   *p2=change;

 }

}

9、若输入Ihaveatest.#,则以下程序的运行结果为 【10】 。

#include<stdio.h>

main()

{ FILE*fp;

 charstr[100],filename[10];

  int i=0;

 if ((fp=fopen("test","w"))==NULL)

 { printf("can not open the file!

\n");

   exit(0);

 }

 getchar();

 gets(str);

 while(str[i]!

='#')

 { if (str[i]>='a'&& str[i]<='z')

   str[i]=str[i]-32;

   fputc(str[i],fp);

   i++;

 }

 fclose(fp);

 fp=fopen("test","r");

 fgets(str,strlen(str)+1,fp);

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

 fclose(fp);

}

10、当先后输入1、3、4、12、23时,屏幕上出现 【11】 ;再输入12时,则屏幕上出现 【12】 。

#include <stdio.h>

#define N 5

main()

{ int i,j,number,top,bott,min,loca,a[N],flag;

  char c;

  printf("Please input 5 numbers (a[i]>a[i-1])\n");

  scanf("%d",&a[0]);

  i=1;

  while (i<N)

  { scanf("%d",&a[i]);

   if (a[i]>=a[i-1)) i++;

  }

  printf("\n");

  for (i=0;i<N;i++) printf("%d",a[i]);

  printf("\n");

  flag=1;

  while (flag)

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

   loca=0;

   top=0;

   bott=N-1;

   if ((number<a[0])||(number>a[N-1])) loca=-1;

   while ((loca==0) && (top<=bott))

   { min=(bott+top)/2;

     if(number==a[min])

      { loca=min;

        printf("%d is the %dth number\n",number,loca+1);

      }

     else if (number<a[min]) bott=min-1;

     else top=min+1;

   }

   if (loca==0||loca==-1) printf("%d is not in the list.\n",number);

   c=getchar();

   if (c=='N'||c=='n') flag=0;

  }

}

11、求任意一个数(用16位二进制码表示)的补码。

main()

{

  unsignedinta;

   【13】 ;

  scanf("%o",&a);

  printf("%o\n",getbits(a));

}

unsigned int getbits(value)

unsignedintvalue;

{

  unsignedintz;

  z= 【14】 ;

  if (z==0100000)

   【15】 ;

  else

  z=value;

  return(z);

}

答案:

一、选择题

1、A  2、A  3、B  4、B  5、B  6、B  7、D  8、A  9、D  10、C  11、B  12、C  13、A  14、B  15、D  16、A  17、C  18、B  19、C  20、C  21、B  22、D  23、A  24、C  25、D  26、D  27、B  28、C  29、B  30、D  

二、填空题

1、[1]1  [2]1  2、10.5  3、*(p+5)  4、22  5、k=1234  6、max=12,min=2  7、1,1  3,3  9,9  8、6,2,11,34,23,21  9、IHAVEATEST.  10、[11]1 3 4 12 23  [12]12isthe4thnumber.  11、[13]unsignedintgetbits()  [14]value&0100000  [15]z=~value+1  

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

当前位置:首页 > 表格模板 > 合同协议

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

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