C语言程序设计试题十五
《C语言程序设计》试题十五
一、填空与选择
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”的值是_________________basic语言if语句
8.  设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________
9.  变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。
_________________________________________________________________
10C语言调用函数中,参数的虚实结合是_________________
        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菜单中的哪一项中的哪个子菜单项?
        AFile\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.设整型变量a5,使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.设AB均为整型变量,下列表达式中不是赋值表达式的是__________
        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.下列常量中哪个是不合法的_________________
        A2e32.6          B. 0.2e-5            C. “basic”            D. 0x4b00
29.下列标识符错误的是_______
        A. x1y      B._123                C. 2ab                  D. _ab
30. c语言中int型数-8在内存中的存储形式为_____
 
二、读程序
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);    }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。