学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页> 理学 > 自考“C语言程序设计”模拟试题十五

自考“C语言程序设计”模拟试题十五

2007年05月29日    来源:   字体:   打印
准考证

  一、填空与选择

  1.C语言从源程序的书写到上机运行输出结果要经过_______________四个步骤。

  2.C语言的表达式与语句的区别在于___________________________________.

  3.C语句_____________ (有、没有)输入、输出语句。

  4.结构化程序的编写有_______________________________三种程序结构。

  5.C语言中,变量的存储类别共有四种,即时___________________和寄存器型。

  6.表达式10/3*9%10/2的值是___________________.

  7.设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________.

  8.设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________.

  9.变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。____

  10.C语言调用函数中,参数的虚实结合是_________________

  A.传值              B.传址              C.不分

  11. 逻辑运算符“&&、||、!”中是短路运算符号是____________________

  12. C语言是由________________基本单位组成的。

  A.过程             B.语句                C.函数                D.程序

  13.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式__________

  A.算术表达式             B.逻辑表达式              C.关系表达式              D.字符表达式

  14.若进入TC集成环境后,运行(RUN)源程序系统提示包含文件(Include)或库文件(Lib) 无法定义时,应修改TC菜单中的哪一项中的哪个子菜单项?

  A.File\Change              B. File\Directory

  C. Option\Directories      D.TC系统出故障了,应重新安装TC环境。

  15.下面几种说法中哪个是正确的?_____________

  A.else语句需与它前面的if语句配对使用;

  B.else语句需与前面更接近它的if语句配对使用;

  C.else语句需与前面更接近它的,且没有和其它else语句配对的if语句配对;

  D.以上都正确。

  16.定义结构体的关键字是_______________

  A. union     B. enum     C.struct    D.typedef

  17.定义联合体的关键字是___________________

  18.链表的首指针能根据程序的需要进行移动读取链表中的某项内容,即链表可以没有首指针吗?

  A.当然可以   B.不可以   C.无所谓    D.更好不要移动首指针

  19.定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是____

  A. <类型标识符>  (*a)[3]

  B. <类型标识符>  *a[2]

  C. <类型标识符>  *a[3]

  D.以上写法都不对。

  20.有说明语句:char a[ ]=“this is a book”。请问该数组到底占了几个字节?_____

  A.11   B.12    C.14     D.15

  21.设整型变量a为5,使b不为2的表达式是___________

  A. b=a/2   B. b=6-(——a)   C. b=a%2    D.b=a>3?2:1

  22.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_________

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

  23.设A,B均为整型变量,下列表达式中不是赋值表达式的是__________

  A. A=b+3,b+5,——b     B. A=4*5;    C. A=++A-B       D.a=b=5

  24.执行语句“x=(a=3,b=a——)”后,x,a,b的值依次为_________

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

  25.下列对数组操作不正确的语句是_________

  A. int a[5];

  B.char b[ ]={‘h’,‘e’,‘l’,‘l’,‘o’};

  C. int a[ ]={2,3,4,5};

  D. char b[3 ][ ]={1,2,3,4,5,6};

  26.设A为存放短整型的一维数组,如果A的首地址为P,那么A 中第I个元素的地址为_______________

  A. P+I*2

  B. P+(I-1)*2

  C. P+(I-1)

  D. P+I

  27.如果X=5,执行语句X*=X+=X*3后,则X的值为__________

  A.100    B. 400    C. 450    D. 900

  28.下列常量中哪个是不合法的_________________

  A.2e32.6    B. 0.2e-5     C. “basic”    D. 0x4b00

  29.下列标识符错误的是_______

  A. x1y   B._123   C. 2ab    D. _ab

  30. c语言中int型数-8在内存中的存储形式为_____

  A.1111111111111000     B. 1000000000001000

  C. 0000000000001000    D. 1111111111110111

  二、读程序

  1.写出下列程序段的输出结果:

  main()

  {int x=5;

  int y=10;

  printf(“%d\n”,x++);

  printf(“%d\n”,++y); }

  2.写出下列程序的输出结果:

  main()

  {int x,y,z;

  x=y=z=-1;

  printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);

  ++y&&++x||++z;

  printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);

  x=y=z=-1;

  ++x||y++&&z;

  printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);}

  3.下面程序的输出结果是什么?

  #include “stdio.h”

  main()

  { int x=3;

  switch(x)

  { case 1:

  case 2:printf(“x<3\n”);

  case 3:printf(“x=3\n”);

  case 4:

  case 5:printf(“x>3\n”);

  default:printf(“x unknow\n”);   }   }

  4.标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)

  int p=1,q=5;

  float f1(int a)

  {int b,c;

  char ch;

  …    局部变量ch在此范围内有效

  }

  char c1;

  char f2(int x,int y)

  {int i,j;

  5.根据源程序,写出相应的数学表达式

  #include “stdio.h”

  main()

  {int x,y;

  scanf(“%d”,&x);

  if (x<0) y= -1;

  else if (x= = 0)

  y=0;

  else y=1;

  printf(“x=%d,y=%d\n”,x,y);   }

  6.分析下列程序所完成的功能。

  main()

  {int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;

  scanf(“%d,%d,%d”,pa,pb,pc);

  if (*pa>*pb)

  p=pa,pa=pb,pb=p;

  if (*pa>*pc)

  p=pa,pa=pc,pc=p;

  if (*pb>*pc)

  p=pb,pb=pc,pc=p;

  printf(“%d<=%d<=%d”,*pa,*pb,*pc);    }

  三、程序填空:(根据题意,将空缺的语句补上。)

  1.该程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。变量sum是存放累加值的。

  #include “stdio.h”

  main()

  {    ________________

  i=1,sum=0;

  for(; i<=10;)

  {sum+=i;

  _________ }

  printf(“%d\n”,sum);   }

  2.阅读函数,根据函数完成的主要功能,补充、完善主函数。

  float av(float a[],int n)

  {int i;float s;

  for (i=0,s=0;i<n;i++) s=s+a[i];

  return (s/n);   }

  main()

  {float a[10];

  _______________

  for (i=0;_________)

  scanf(“%f”______);

  printf(“%f”,av(a,10));}

  3.从键盘输入一些字符,逐个把它们送到磁盘文件TEXT.txt中,直到输入一个“$”为止。请将空缺地方补充完善。

  #include “stdio.h”

  main()

  {FILE *fp;

  char ch;

  if ((fp=fopen(“test.txt”,“w”))==NULL)

  {printf(“cannot open file\n”);

  ;

  }

  ;

  while(ch!=‘$’)

  { fputc(ch,fp);putchar(ch);

  ch=getchar();                       }

  _______________________;    }

  四、编程:

  1.输入一单精度二维数组a[4][3],计算该二维数组中的更大元素的值及其所在位置(行、列),并输出计算结果。

  2.个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩更高的学生信息,包括学号、性别、姓名和平均成绩。

新人有礼
关闭