选择题(每题2分,共计100分)
1. 分析下面的C程序, 输出结果是()
#include<stdio.h>
void main()
{
    int num=0;
    while(num<=2){
        printf("%d ",num);
        num++;
            }
}
A. 1 2 3       
B. 0 1 2       
C. 2 3       
D. 1 2
2. 以下对二维数组a的正确说明是( )。
      A  int a[3][];                B  floatf a(3,4);
      C  double a[1][4];            D  float a(3)(4);
3. 要将20赋值到数组Num的第三个元素,正确的方法是()
A. Num[3]=20   
B. Num[2]=20   
C. Num[4]=20   
D. [3] Num=20
4. C语言中,已知字母AASCII码是65,则执行语句:char ch='A'+3; ch的值为(   
A. 不能确定   
B. 68       
C. C       
D. D
5. 以下描述中正确的是(  )。
    A、由于do-while循环中循环体语句只能是-条可执行语句,所以循环体内不能使用复合语句
    Bdo-while循环由do开始,while结束,while(表达式)后面不能写分号
    C、在do-while循环体中,-定要有能使while后表达式值变为零("")的操作
D、 do-while循环中,根据情况可以省略while
6. C语言中,要求运算数必须是整型的运算符是()
A /        B ++        C !=        D%
7. 以下程序段()
x= -1;
do
{
x=x*x;
}while(!x);
    A、是死循环      B、循环执行二次      C、循环执行-        D、有语法错误
8. C语言中,下列正确的字符型常量是(   
A. "f"       
B. '9'       
C.     #       
D. 365
9. C语言中,下面(    )是逻辑运算符中优先级最高的。
A. !   
B. &&       
C. ||       
D. |       
E. &
10. 以下述叙不正确的是()
A. 一个C源程序可以由一个或多个函数组成
B. 一个C源程序必须包含一个main函数
C. C程序的基本组成单位是函数
D. C程序中注释说明只能位于一条语句的后面
11. 为了避免在嵌套的条件语句If-else中产生二义性,C语言规定else子句,总是与( )配对。
    A、缩进位置相同的if              B、其之前最近的if
    C 之后最近的if                  D、同一行上的if
12. 下关于运算符优先顺序的描述中正确的是( )。
A、关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B、逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C、赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D、算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
13. 分析如下C语言代码片段,输出结果为(   
    int i=2,j;
      j=i++;
  printf(%d,%d,i,j);
A. 2,3   
B. 3,3 
C. 3,2     
D. 2,2
14. C语言中, ()不是循环语句.
A. while语句   
B. for语句 
C. switch语句 
D. dowhile语句
15. 以上C语言代码的输出是()
#include<stdio.h>     
void main()
{
  int i=0;
  for(;i<5;i++)
    printf(%d, ++i);
}
A. 012345       
B. 135       
C. 024       
D. 语法错误
16. C语言中,下列代码的输出结果是()
void main( )
{
    printf ("%1.0f\n", sqrt(4));
} 
A. 0       
B. 2       
C. 4       
D. 16
17. 已知ch是字符型变量,下面不正确的赋值语句是()
 A ch='a+b';      Bch='\0';          Cch='7'+'9';        Dch=5+9;
18. 以下能对一维数组a进行正确初始化的语句是()
A. int a[5]=(0,0,0,0,0)       
B. a[5]={}
C. int  a[5]={0};             
D. a={0,0,0,0,0};
19. 以下关于C语言函数中的return语句的说法,正确的是(   
A. return语句可以结束函数的运行
B. 在函数体中必须有return语句
C. 在无返回值的函数中不允许有return语句
D. 有返回值的函数中可以没有return语句
20. C语言中,逻辑运算符两侧运算对象的数据类型()。
  A、只能是01                        B、只能是0或非0正数
  C、只能是整型或字符型数据              D、可以是任何类型的数据
21. C语言程序中,下列打印语句不正确的是()
A. printf("d%",18);
B. printf("%d",1.89);
C. printf("%f",18);
D. printf("%c",'m');
22. C语言程序中,有ab两个整型变量,a的值为18b的值为19,下列表达式的值不为1的是(    [选两项]
A. b/a
B. a++
C. b%a
D. a<b
23. 以下初始化数组正确的有()【选两项】。
A. int a[5]={1,2,3,4,5,6};
B. int a[]={1,2,3,4,5,6};
C. int a[5]={1,2,3};
D. int a[5]=1;
24. 下列代码能够正确定义数组的是()
A. int a[];               
B. int[] a;
C. int a[5];           
D. int[5] a;
25. 在二维数组“int a4][3=1,2,0,4,0,6,7,8;”中,下列表达式不能得到0的是()【选两项】。
A. a[3][2]       
B. a[0][0]       
C. a[1][1]       
D. a[2][0]
26. 以下C语言程序的运行结果是()
int m=50,n=30;
if(m>n)
        printf("m");
        printf("m=%d",m);
    else
        printf("n");
        printf("n=%d",n);
A. mm=50                       
B. nn=30
C. mm=50 nn=30       
D. 语法错误不能运行
27. 以下正确声明point结构体数组的代码有()【选两项】。
struct point
{
        int x;
        int y;
};
A. struct point[5];   
B. struct point ps[5];
C. point ps[5];       
D. point[5] ps;
28. C语言中,以下scanf语句能够正常获取年龄的是()
    int age;
A. scanf("%d");                         
B. scanf("%d",age);
C. scanf("请输入年龄%d",age)           
D. scanf("%d",&age);
29. 以下C语言程序的运行结果是()
int count=1;
int sum=0;
while(count<5)
{
    if(count%2==0)
        continue;
    sum+=count;
}
printf("%d",sum);
A. 1   
B. 4   
C. 5   
D. 死循环
30. break语句的作用(   
A. 结束本次循环,进行下一次循环
B. break语句被执行且循环体中其后的其他语句都执行后,循环终止
C. break语句被执行后,循环体中其后的语句都将不被执行,循环直接终止
D. break语句和continue语句作用相同
31. 以下正确声明employee变量的代码有()【选两项】。
    已定义结构体
struct employee
{
        char id[8];
        char name[20];
        int age;
};
A. struct employee;   
B. struct employee em;
C. struct em;       
D. employee em;
32. while循环语句的特点是()
A. 先执行后判断
B. 不管条件是否成立,循环体至少被执行一次
C. while(表达式)后面不需要写分号,否则循环没有循环体
D. 循环体中可以有break语句,但不可以有continue语句
33. 设变量a是整型,f是实型,i是双精度型,则表达式while语句怎么输出10+'a'+i*f值的数据类型为(   
A. int       
B. float       
C. double     
D. 不确定
34. C语言中,  char型数据在内存中的存储形式是()
A. 补码       
B. 反码         
C. 原码         
D. ASCII
35. 设变量nf1oat类型,mint类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是()
A. n=(n*100+0.5)/100.0         
B. m=n*100+0.5 ,n= m/100.0
C. n=n*100+0.5/100.0         
D. n=(n/100+0.5)*100.0
36. 表达式18/4*sqrt(4.0)/8值的数据类型为()
A. int   
B. float 
C. double     
D. 不确定
37. C语言中,-int型数据在内存中占2个字节,unsigned  int型数据的取值范围为(   
A. 0255     
B. 032767     
C. 065535   
D. 02147483647
38. 设有说明:  char w; int  x;  f1oat  y; double  z;则表达式w* x+z-y值的数据类型为(   
A. float       
B. char         
C. int         
D. double
39. 若有以下定义,则能使值为3的表达式是(   
int  k= 7,x =12;
A. x%=(k%= 5)   
B. x%=(k-k%5)     
C. x%=k- k%5       
D. (x%=k)-(k%=5)
40. 设以下变量均为int类型,则值不等于7的表达式是()
A. (x= y= 6,  x+y,x+1)           
B. (x= y= 6,x+y,y+1)
C. (x= 6,x+1,y= 6,x+y)           
D. (y=6,y+l,x = y,x+1)
41. gets函数可以从终端输入一个()
A. 整型变量表达式值
B. 实型变量值
C. 字符串
D. 字符或字符型变量值
42. C语言中,下列()是合法的标识符。(选择两项)
A.     COUNT    B.    P234  C. 4x      D.    short   
43. 已有如下定义和输入语句 ,若要求a1,a2,c1,c2值分别为10,20,AB,当从第一列开始输入数据时,正确的数据输入方式是()
int  a1,a2;  char  c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

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