二级题库(C语言)------ 第一套题

第一套题


1、要使用外存储器中的信息,应先将其调入(  )。

A、内存储器

B、控制器

C、运算器

D、微处理器

2、进程是(  )。

A、存放在内存中的程序

B、与程序等效的概念

C、一个系统软件

D、程序的执行过程

3、下列叙述中正确的是(  )。

A、循环队列是队列的一种顺序存储结构

B、循环队列是队列的一种链式存储结构

C、循环队列中的队尾指针一定大于队头指针

D、循环队列中的队尾指针一定小于队头指针

4、设栈与队列初始状态为空。将元素A,B,C,D,E,F,G,H依次轮流入栈和入队,然后依次轮流出栈和退队,则输出序列为(  )。

A、A,B,C,D,H,G,F,E

B、B,G,D,E,F,C,H,A

C、D,C,B,A,E,F,G,H

D、G,B,E,D,C,F,A,H

5、设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则按层次输出(从上到下,同一层从左到右)的序列为(  )。

A、ABCDEFGHIJ

B、DGHEBIJFCA

C、JIHGFEDCBA

D、GHIJDEFBCA

6、结构化程序的三种基本控制结构是(  )。

A、递归、堆栈和队列

B、调用、返回和转移

C、顺序、选择和重复

D、过程、子程序和函数

7、软件是(  )。

A、程序

B、计算机系统

C、程序和数据

D、程序、数据和文档的集合

8、在数据库中存储的是(  )。

A、数据模型

B、操作信息

C、数据的操作

D、数据以及数据之间的联系

9、在关系数据库设计中,关系模式是用来记录用户数据的(  )。

A、二维表

B、视图

C、属性

D、实体

10、在关系模式A(S,SN,D)和B(D,CN,NM)中,关系A的主键是S,关系B的主键是D,则属性D在关系A中称为(  )。

A、主键

B、外键

C、候选键

D、超键

11、下列叙述中错误的是(  )。

A、C程序可以由多个程序文件组成

B、一个C语言程序只能实现一种算法

C、C程序可以由一个或多个函数组成

D、一个C函数可以单独作为一个C程序文件存在

12、以下选项中,能用作数据常量的是(  )。

A、115L

B、0118

C、1.5e1.5

D、o115

13、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(  )。

A、大写字母

B、下划线

C、数字字符

D、连接符

14、设变量已正确定义并赋值,以下正确的表达式是(  )。

A、x=y+z+5,++y 

B、int(15.8%5)

C、x=y*5=x+z

D、x=25%5.0

15、设有定义:int x=2;,以下表达式中,值不为6的是(  )。

A、2*x,x+=2

B、x++,2*x

C、x*=(1+x)

D、x*=x+1

16、有以下程序:
#include <stdio.h>
main()
{ int x,y,z;
  x=y=1;
  z=x++,y++,++y;
  printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是(  )。

A、2,3,3

B、2,3,2

C、2,3,1

D、2,2,1

17、有以下程序:
#include <stdio.h>
main()
{  
  char c1,c2;
  c1='A'+'8'-'4';
  c2='A'+'8'-'5';
  printf( "%c,%d\n",c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是(  )。

A、E,68 

B、D,69

C、E,D

D、输出无定值

18、若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) :(y++)中的条件表达式(x-y) 等价的是(  )。

A、(x-y<0||x-y>0)

B、(x-y<0)

C、(x-y>0)

D、(x-y==0)

19、有以下程序:
#include <stdio.h>
main()
{  
  int x=1,y=0;
  if(!x)y++;
  else if(x==0)
      if(x)y+=2;
      else y+=3;
  printf("%d\n",y);
}
程序运行后的输出结果是(  )。

A、3

B、2

C、1

D、0

20、若有定义:float x=1.5;int a=1,b=3,c=2; 则正确的switch语句是(  )。

A、
switch(a+b)

{ case 1:printf("*\n");

case 2+1:printf("**\n");}

B、
switch((int)x);

{ case 1:printf("*\n");

case 2:printf("**\n");}

C、
switch(x)

{ case 1.0:printf("*\n");

case 2.0:printf("**\n");}

D、
switch(a+b)

{ case 1:printf("*\n");

case  c:printf("**\n");}

21、有以下程序:
#include <stdio.h>
main()
{  int y=9;
   for(;y>0;y--)
     if(y%3==0)printf("%d",--y);
}
程序的运行结果是(  )。

A、852

B、963

C、741

D、875421

22、有以下程序:
#include <stdio.h>
main()
{  
int i,j,m=1;
  for(i=1;i<3;i++)
  {for(j=3;j>0;j-- )
    { if(i*j>3) break;
      m*=i*j;}
  }
  printf("m=%d\n",m);
}
程序运行后的输出结果是(  )。

A、m=4

B、m=2

C、m=6 

D、m=5

23、有以下程序:
#include <stdio.h>
int fun(int x,int y)

  if (x!=y)  return ((x+y)/2);
  else return (x);
}
main()

  int a=4,b=5,c=6;
  printf("%d\n",fun(2*a,fun(b,c)));
}

A、6

B、3

C、8

D、12

24、有以下程序:
#include <stdio.h>
int add(int a,int b){ return (a+b);}
main()

 int k,(*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);

25、有以下程序:
#include <stdio.h>
main()

  int n,*p=NULL;
  *p=&n;
  printf("Input n:");scanf("%d",&p);
  printf("output n:");printf("%d\n",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是(  )

A、int  n,*p=NULL;

B、*p=&n;

C、scanf("%d",&p)

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

26、下列定义数组的语句中,正确的是(  )。

A、
#define  N  10

int  x[N];

B、
int  N=10;

int  x[N];

C、
int x[0..10];

D、
int x[ ];

27、有以下程序:
#include <stdio.h>
main()
{  int a[]={2,3,5,4},i;
   for(i=0;i<4;i++)
    switch(i%2)
    {
      case 0:switch(a[i]%2)
              {
                case 0:a[i]++;break;
                case 1:a[i]--;
              } break;
      case 1:a[i]=0;
    }
  for(i=0;i<4;i++) printf("%d ",a[i]);
  printf("\n");
}
程序运行后的输出结果是(  )。

A、0 3 0 4 

B、2 0 5 0 

C、3 3 4 4

D、3 0 4 0

28、有以下程序:
#include <stdio.h>
main()
{  
  int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
  for(i=0;i<3;i++)
    for(j=i;j<=i;j++) t+=b[i][b[j][i]];
  printf("%d\n",t);
}
程序运行后的输出结果是(  )。

A、3

B、4

C、1

D、9

29、以下语句中存在语法错误的是(  )。

A、char  ss[6][20]; ss[1]= "right?";

B、char  ss[][20]={ "right?"};

C、char  *ss[6]; ss[1]= "right?";

D、char  *ss[]={ "right?"};

30、以下不能将s所指字符串正确复制到t所指存储空间的是(  )

A、do{*t++=*s++;}while(*s );

B、for(i=0;t[i]=s[i];i++);

C、while(*t=*s){t++;s++}  

D、for(i=0,j=0;t[i++]=s[j++];);

31、有以下程序:
#include <stdio.h>
void swap(char *x,char *y)

  char t;
  t=*x;*x=*y;*y=t;
}
main()

  char s1[]="abc",*s2[]="123";
  swap(s1,s2); 
  printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是(  )。

A、321,cba

B、abc,123

C、123,abc

D、1bc,a23

32、有以下函数:
int fun(char *x,char *y)
{  
  int n=0;
  while((*x==*y)&&*x!='\0'){x++;y++;n++;
}
  return n;
}
函数的功能是(  )。

A、将y所指字符串赋给x所指存储空间

B、查找x和y所指字符串中是否有'\0'

C、统计x和y所指字符串中最前面连续相同的字符个数

D、统计x和y所指字符串中相同的字符个数

33、有以下程序:
#include <stdio.h>
int fun()
{  
  static int x=1;
  x*=2;
  return x;
}
main()
{  
  int i,s=1;
  for(i=1;i<=3;i++)s*=fun();
  printf("%d\n",s);
}
程序运行后的输出结果是(  )。

A、10

B、30

C、0

D、64

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

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

B、所在程序的全部范围

C、所在函数的全部范围

D、所在文件的全部范围

35、以下叙述中错误的是(  )。

A、可以通过typedef增加新的类型

B、可以用typedef将已存在的类型用一个新的名字来代表

C、用typedef定义新的类型名后,原有类型名仍有效

D、用typedef可以为各种类型起别名,但不能为变量起别名

36、有以下程序:
#include <stdio.h>
struct S
{int a,b;}data[2]={10,100,20,200};
main()

  struct S p=data[1];
  printf("%d\n",++(p.a));
}
程序运行后的输出结果是(  )。

A、10

B、11

C、20

D、21

37、有以下程序:
#include <stdio.h>
#define PT 3.5;
#define S(x) PT*x*x;
main()

  int a=1,b=2;   
  printf("%4.1f\n",S(a+b));  
}
程序运行后的输出结果是(  )。

A、7.5

B、31.5

C、程序有错无输出结果

D、14.0

38、有以下程序:
#include <stdio.h>
main()

  unsigned char a=2,b=4,c=5,d;
  d=a|b;d&=c;   
  printf("%d\n",d);     
}
程序运行后的输出结果是(  )。

A、3

B、4

C、5

D、6

39、有以下程序:
#include <stdio.h>
#include <stdlib.h> 
main()

  int *a,*b,*c;
  a=b=c=(int *)malloc(sizeof(int));
  *a=1;*b=2,*c=3;
  a=b;
  printf("%d,%d,%d\n",*a,*b,*c);
}
程序运行后的输出结果是(  )。

A、1,1,3

B、2,2,3

C、1,2,3 

D、3,3,3

40、以下叙述中正确的是(  )。

A、当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

B、打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C、在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D、C语言中的文件是流式文件,因此只能顺序存取数据

41、使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回,并将大于平均值的数放在形参y所指数组中,在主函数中输出。
例如,有10个正数:46、30、32、40、6、17、45、15、48、26,其平均值为30.500000。
主函数中输出:46 32 40 45 48。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件blank1.c中。
不得增行或删行,也不得更改程序的结构!

42、使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。

例如,若m=2000,则应输出0.000160。
请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件modi1.c中。
不要改动main函数,不得增行或删行,也不得更改程序的结构!

43、使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。

注意:部分源程序在文件prog1.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海棠弯弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值