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

第二套题


 

 

1、在计算机中,运算器的基本功能是(  )。

A、进行算术和逻辑运算

B、存储各种控制信息

C、保持各种控制状态

D、控制机器各个部件协调一致地工作

2、理论上计算机虚拟内存最大容量取决于(  )。

A、磁盘空间的大小

B、物理内存的大小

C、计算机地址位数

D、数据存放的实际地址

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

A、循环链表中有一个表头结点

B、循环链表的存储空间是连续的

C、循环链表的表头指针与循环链表中最后一个结点的指针均指向表头结点

D、循环链表实现了空表与非空表运算的统一

4、设栈的存储空间为S(1:50),初始状态为top=51。现经过一系列正常的入栈与退栈操作后,top=50,则栈中的元素个数为(  )。

A、0

B、1

C、50

D、49

5、某二叉树共有399个结点,其中有199个度为2的结点,则该二叉树中的叶子结点数为(  )。

A、不存在这样的二叉树

B、198

C、199

D、200

6、下面对“对象”概念描述错误的是(  )。

A、对象不具有封装性

B、对象是属性和方法的封装体

C、对象间的通信是靠消息传递

D、一个对象是其对应类的实例

7、软件应首先满足用户的(  )。

A、性能需求

B、功能需求

C、可扩展性

D、纠错能力

8、数据库管理系统的基本功能不包括(  )。

A、数据库定义

B、数据库的建立和维护

C、数据库访问

D、数据库和网络中其他系统的通信

9、关系数据库规范化的目的是为了解决关系数据库中的(  )。

A、数据操作复杂的问题

B、查询速度低的问题

C、插入、删除异常及数据冗余问题

D、数据安全性和完整性保障的问题

10、由关系R1和R2得到关系R3的操作是(  )。

A、等值连接

B、并

C、笛卡尔积

D、交

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

A、使用三种基本结构构成的程序只能解决简单问题

B、结构化程序由顺序、分支、循环三种基本结构组成

C、C语言是一种结构化程序设计语言

D、结构化程序设计提倡模块化的设计方法

12、以下四个程序中,完全正确的是(  )。

A、
#include  <stdio.h>

main();

{/*/ programming /*/

printf("programming!\n");}

B、
#include  <stdio.h>

main()

{/* programming */

printf("programming!\n");}

C、
#include  <stdio.h>

main()

{/*/* programming */*/

printf("programming!\n");}

D、
include  <stdio.h>

main()

{/* programming */

printf("programming!\n");}

13、C源程序中不能表示的数制是(  )。

A、十六进制

B、八进制

C、十进制

D、二进制

14、以下选项中,能用作用户标识符的是(  )。

A、_0_

B、8_8

C、void

D、unsigned

15、若有定义语句:int x=10;,则表达式x-=x+x的值为(  )。

A、0

B、-20

C、-10 

D、10

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

A、1,2

B、1,0

C、3,2

D、0,0

17、有以下程序:
#include <stdio.h>
main()
{  
  int a1,a2;char c1,c2;
  scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
  printf("%d,%c,%d,%c",a1,c1,a2,c2);
}
若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b  则正确的输入格式是(以下□代表空格,<CR>代表回车)(  )。

A、12□a34□b<CR>

B、12□a□34□b<CR>

C、12,a,34,b<CR>

D、12a34b<CR>

18、若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是(  )。

A、a<>b+c

B、ch=getchar()

C、a==b+c

D、a++

19、有以下程序段:
  #include <stdio.h>
  int a,b,c;
  a=10;b=50;c=30;
  if(a>b)a=b,b=c;c=a;
  printf("a=%d b=%d c=%d\n",a,b,c);
程序的输出结果是(  )。

A、a=10 b=50 c=30

B、a=10 b=50 c=10

C、a=10 b=30 c=10

D、a=50 b=30 c=50

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

A、在switch语句中,不一定使用break语句

B、在switch语句中必须使用default

C、break语句必须与switch语句中的case配对使用

D、break语句只能用于switch语句

21、以下不构成无限循环的语句或语句组是(  )。

A、
n=0;

do { ++n;} while (n<=0);

B、
n=0;

while (1) {  n++;}

C、
n=10; 

while (n);{ n--;}

D、
for(n=0,i=1;;i++) n+=i;

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

A、7

B、5

C、3

D、9

23、有以下程序:
#include <stdio.h>
int f(int x,int y)
{ return((y-x)*x);}
main()
{ int a=3,b=4,c=5,d;
  d=f(f(a,b),f(a,c));
  printf("%d\n",d);
}
程序运行后的输出结果是(  )。

A、7

B、10

C、8

D、9

24、若有定义语句:double a,*p=&a;以下叙述中错误的是(  )。

A、定义语句中的*号是一个间址运算符

B、定义语句中的*号是一个说明符

C、定义语句中的p只能存放double类型变量的地址

D、定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p

25、若有定义语句:double x,y,*px,*py;执行了px=&x; py=&y;之后,正确的输入语句是(  )。

A、scanf("%lf %le",px,py);

B、scanf("%f %f" &x,&y);

C、scanf("%f %f",x,y);

D、scanf("%lf %lf",x,y);

26、以下定义数组的语句中错误的是(  )。

A、int  num[][3]={ {1,2},3,4,5,6 };

B、int  num[2][4]={ {1,2},{3,4},{5,6} };

C、int  num[]={ 1,2,3,4,5,6 };

D、int  num[][4]={1,2,3,4,5,6};

27、有以下程序:
#include <stdio.h>
void fun(int a,int b)
{
  int t;
  t=a;a=b;b=t;
}
main()
{  
  int c[10]={1,2,3,4,5,6,7,8,9,0},i;
  for(i=0;i<10;i+=2) fun(c[i],c[i+1]);
  for(i=0;i<10;i++) printf("%d,",c[i]);
  printf("\n");
}
程序的运行结果是(  )。

A、1,2,3,4,5,6,7,8,9,0,

B、2,1,4,3,6,5,8,7,0,9,

C、0,9,8,7,6,5,4,3,2,1,

D、0,1,2,3,4,5,6,7,8,9,

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

  int x[3][2]={0},i;
  for(i=0;i<3;i++) scanf("%d",x[i]);
  printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
}
若运行时输入:2 4 6<回车>,则输出结果为(  )。

A、2  0  4 

B、2  0  0

C、2  4  0

D、2  4  6

29、有以下程序段:
  #include <stdio.h>
  int j;float y;char name[50];
  scanf("%2d%3f%s",&j,&y,name);
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为(  )。

A、566.0

B、55566.0

C、7777.0

D、566777.0

30、下列语句组中,正确的是(  )。

A、char *s;s="Olympic";

B、char s[7];s="Olympic";

C、char *s;s={"Olympic"};

D、char s[7];s={"Olympic"};

31、有以下函数:
int fun(char *s)

  char *t=s;
  while(*t++);
  t--;
  return(t-s);
}
该函数的功能是(  )

A、计算s所指字符串的长度

B、比较两个字符串的大小

C、 计算s所指字符串占用内存字节的个数

D、 将s所指字符串复制到字符串t中

32、有以下程序(注:字符a的ASCII码值为97) :
#include <stdio.h>
main()
{  
  char *s={"abc"};
  do
  {printf("%d",*s%10);++s;}
  while(*s);
}
程序运行后的输出结果是(  )。

A、789

B、abc

C、7890 

D、979899

33、设有如下函数定义:
#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

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

A、9

B、8

C、7

D、10

35、设有定义:
struct complex
{ int real,unreal;} data1={1,8},data2;
则以下赋值语句中错误的是(  )。

A、data2=(2,6);

B、data2=data1;

C、data2.real=data1.real;

D、data2.real=data1.unreal;

36、有以下程序:
#include <stdio.h>
struct S{int n;int a[20];};
void f(struct S *p)

  int i,j,t;
  for(i=0;i<p->n-1;i++)
   for(j=i+1;j<p->n;j++)
     if(p->a[i]>p->a[j])  
         {t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}
}   
main()

   int i;struct S s={10,{2,3,1,6,8,7,5,4,10,9}};
   f(&s);
   for(i=0;i<s.n;i++) printf("%d,",s.a[i]);
}
程序运行后的输出结果是(  )。

A、2,3,1,6,8,7,5,4,10,9,

B、10,9,8,7,6,5,4,3,2,1,

C、1,2,3,4,5,6,7,8,9,10,

D、10,9,8,7,6,1,2,3,4,5,

37、有以下程序:
#include <stdio.h>
#include <string.h>
typedef struct{ char name[9];char sex;int score[2];}STU;
STU f(STU a)
{  
  STU b={"Zhao",'m',85,90};
  int i;
  strcpy( a.name,b.name );
  a.sex=b.sex;
  for(i=0;i<2;i++) a.score[i]=b.score[i];
  return a; 
}
main()
{  
STU c={ "Qian",'f',95,92 },d;
  d=f(c);
  printf("%s,%c,%d,%d,",d.name,d.sex,d.score[0],d.score[1]);
  printf("%s,%c,%d,%d\n",c.name,c.sex,c.score[0],c.score[1]);
}
程序运行后的输出结果是(  )。

A、Zhao,m,85,90, Qian,f,95,92

B、Zhao,m,85,90, Zhao,m,85,90

C、Qian,f,95,92,Qian,f,95,92

D、Qian,f,95,92,Zhao,m,85,90

38、以下关于宏的叙述中正确的是(  )。

A、宏替换没有数据类型限制

B、宏定义必须位于源程序中所有语句之前

C、宏名必须用大写字母表示

D、宏调用比函数调用耗费时间

39、设有以下语句:
int a=1,b=2,c;
c=a^(b<<2);
执行后,c的值为(  )。

A、7

B、9

C、8

D、6

40、有以下程序:
#include <stdio.h>
main()
{  
  FILE *fp;int a[10]={1,2,3},i,n;
  fp=fopen("d1.dat","w");
  for(i=0;i<3;i++) fprintf(fp,"%d",a[i]);
  fprintf(fp,"\n");
  fclose(fp);
  fp=fopen("d1.dat","r");
  fscanf(fp,"%d",&n);
  fclose(fp);
  printf("%d\n",n);
}
程序的运行结果是(  )。

A、321

B、12300  

C、1

D、123

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

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

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

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

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

43、使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][N],int m),该函数的功能是使数组右上半三角元素中的值乘以m。
例如,若m的值为2,a数组中的值为:

则返回主程序后a数组中的值应为:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

海棠弯弯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值