中南大学网络教育课程考试(专科)复习题及参考答案
C语言程序设计》
一、选择题
1.以下不是C语言的特点的是(    )
A.C语言简洁、紧凑                  B.能够编制出功能复杂的程序
C. C语言可以直接对硬件进行操作    DC语言移植性好
2. 以下不正确的C语言标识符是(    )
AABC          Babc        Ca_bc          Dab.c
3.一个c程序的执行是从(  ).
Amain(    )函数开始,直到main(    )函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
Dmain(    )函数开始,直到最后一个函数结束
4.以下不正确的语句(设有int p,q)(    )
AP*3;  B.p/=q;  C.p十=3;  Dp&&=q
5.下列四组选项中,均不是C语言关键字的选项是(    ).
Adefine    B.getc      C.include    D.while   
if          char        sanf        go
type          printf      case        pow
6.下面四个选项中,均是合法整形常量的选项是(  ).
A.160            B.-0xcdf        C.-01        D.-0x48a
  -0xffff            01a          986,012        2e5
      011                0xe            0668        0x
7. 下面四个选项中,均是不合法浮点数的选项是(  ).
  A.160.            B.123          C.-.18        D.-e3
0.12            2e4.2            123e4      0.234
      e3                .e5              0.0          1e3
8. 若有代数式3ae/bc,则不正确的C语言表达式是(  )
  A.a/b/c*e*3                        B.3*a*e/b/c
        C.3*a*e/b*c                        D.a*e/c/b*3
9. 若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++sUM++++numsum的值为(  ).
A.7          B.8        C.9                D.10
10.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是(  )
    A.2.500000        B.2.750000        C.3.500000        D.0.000000
11.    sizeof(float)(  )
A.一个双精度型表达式            B. 一个整型表达式
    C.一种函数调用                    D. 一个不合法的表达式
12. int n3;n十十的结果是(    )
    Ac十十程序设计语言.2        B.3      C.4      D.5
13. 设有说明: char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为(  )
    A.float            B.char            C.int            D.double.
14. x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是(  ).
A. scanf(%d%d1x,%1e,&x,&y,&z);
B. scanf(%2d*%d%1f,&x,&y,&z);
C. scanf(%x%*d%o,&x,&Y);
D. scanf(%x%o%6.2f, &x,&y,&z);
15. 以下说法正确的是(  ).
A. 输入项可以为一个实型常量,如scanf(%f,3.5)
B. 只有格式控制,没有输入项,也能进行正确输入,如scanf(a=%d,b=%d);
C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%4.2f,&f);
D. 当输入数据时,必须指明变量的地址,如scanf(%f,&f);
16. 以下程序的执行结果是(  )
#include<stdio.h>
main()
{
int sum,pad;
sum=pad=5;
pad=sum++;
pad++;
++pad;
printf("%d\n",pad);
}
A.7        B.6              C.5                    D.4
17. 巳知字母AASCII码是65,以下程序的执行结果是(  )
#include<stdio.h>
main()
{
char c1='A',C2='Y';
printf("%d,%d\n",c1,c2);
A.A,Y        B.65,65          C.65,90              D.65,89
18. 为了避免嵌套的if-else语句的二义性,c语言规定else总是与(  )组成配对关系。
A.缩排位置相同的if
B.在其之前末配对的if
C.在其之前未配对的最近的if
D.同一行上的if
19. 逻辑运算符两侧运算对象的数据类型(  ).
A.能是01
B.只能是0或非0正数
C.只能是整型或字符型数据
      D.可以是任何类型的数据
20. xyzint型变量,且x3y4z5,则下面表达式中值为0的是(  ).
A.’x’&&’y’
B.x<=y
C. x||y+z&&y-z
D.!((xy)&&!z ||1)
21. 若希望当A的值为奇数时,表达式的值为A的值为偶数时,表达式的值为。则以下不能满足要求的表达式是(  ).
A.A2==1    B.!(A2==0)    C.!(A2)    D.A2
22. 以下不正确的if语句形式是(  ).
A.if(xy&&x!=y);
B.if(x==y)x十=y
C.if(x ! y)scanf(“%d”,&x) e1se scanf(”%d,&y);
D.if(xy){x十十;y十十;}
23. 以下if语句语法正确的是(  ).
A.if(x0)
    printf(“%f“,x)
    else printf(“%f”,-x);
B.if(x0)
{xx+y;printf(%f,x);}
else printf(%f,-x)
C.if(x0)
{xx+y;printf(%f,x);}
else printf(%f,-x)
D.if(x0)
{xx+y;printf(%f,x);}
else printf(%f,-x)
else printf(%f,-x);
24. 阅读以下程序
main()
{int a=5,b=0,c=0;
if(a=b+c) printf(***\n);
else    printf($$$\n);
}
以上程序 (  ).
A.语法有错不能通过编译                      B.可以通过编译但不能通过连接
C.输出***                                    D.输出$$$
25. 以下程序运行结果是(  ).
main()
{int a=100,x=10,y=20,ok1=5,ok2=0;
if (x<y)
    if (y!=10)
    If(!ok1)
          a=1;
      else
          if(ok2)  a=10;
  a=-1;
printf(%d\n,a);
}
A.1          B.0              c.-1                  D.不确定
26. 执行以下程序段后,变量a,b,c得值分别是(  ).
int x=10,y=9;
int a,b,c;
a=(--x==y++)? –x: ++y;
b=x++;
c=y;
A.a=9,b=9,c=9                  B.a=8,b=8,c=10
C.a=9,b=10,c=9                D.a=1,b=11,c=10
27. w,x,y,z,m均为int型变量,则执行下面语句后的m值是(  ).
w=1;  x=2;  y=3;  z=4;
m=(w<x)? w:x;
m=(m<y)? m:y;
m=(m<z)? m:z;
A.1            B.2              C.3                D.4
28. 语句while(!e);中的条件!e等价于(    )
    A.e==0      B.e!1          C.e!0            D.~e
29. 下面有关for循环的正确描述是(  )
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判定表达式
C.for循环中,不能用break语句跳出循环体
D.for循环体语句中,可以包含多条语句,但要用花括号括起来
30. C语言中whiledo-while循环的主要区别是(  ).
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
31.以下程序段(  ).
x=-1;  do{x=x*x;}  while(! x);
A.是死循环                B.循环执行二次
C. 循环执行二次          D.有语法错误
32. 下面程序的运行结果是(  ).
#include <stdio.h>
main()
{int y=10;
do{y--;}while(--y);

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