C语言程序设计》模拟试卷
(考试时间120分钟)
一、选择题
1. c语言中字符型(char)数据在内存中的形式存储是(      )。
    A)原码    B)补码    c)反码    D)ASCII码
2. c语言中,长整型1ong数据在内存中的存储形式是(    )。
    A)ASCII码    E)原码    C)反码    D)补码
3. c语言的运算符按运算对象的数目可以分为(      )。
  A)单目运算符一种            B)单目和双目运算符
  C)单目、双目和三目运算符    D)单目、双目、三目和四目运算符
4. 运算符有优先级,在c语言中关于运算符优先级的正确叙述是(    )。
    A)逻辑运算符高于算术运算符,算术运算符高于关系运算符
    B)算术运算符高于关系运算符,关系运算符高于逻辑运算符
    c)算术运算符高于逻辑运算符,逻辑运算符高于关系运算符
    D)关系运算符高于逻辑运算符,逻辑运算符高于算术运算符
5. c语言并不是非常严格的算法语言,在以下关于c语言的不严格的叙述中,错误的说法是(      )。
A) 大写字母和小写字母的意义相同
B)有些不同类型的变量可以在一个表达式中运算
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同场合可以有不同的含义
6. 在c语言中,错误的int类型的常数是(      )。
A)  32768      B)  0        C)  037        D)0xAF
7. 设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围定(    )
A)0至255      B)0至65535      C)—32768至32767      D)—256至255
8. 以下(      )是错误的转义字符。
A)’\\’        B)’\’ ’          c)’\81’        D)’\0’
9. 已知:char  w;int x;float y;double z 则表达式w*x+z-y结果的类型是(      ).
A)float          B)char            c)int            D)double
10. sizeoff(double)是(      )
A)函数调用    B) double型表达式  C) int型表达式  D)非法表达式
11. 已知:char ch=’A’;则下列表达式值是(      )。
    Ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;
A)  A              B)a              C)  Z      D) z
12. 选出使变量i的运行结果为4的表达式(      )。
A)  int  i:0,  j=0:        B)  int  i=1,  j=0
    (i=3,(j++)+i);                j=i=((i=3)*2);
C)  int  i=0,  j=1;          D)  int  i=1,  j=1
    (j==1)?(i=1):(i=4);          i+=j+=2;
13. 已知:int w=3,x=10,z=7;则执行下面语句后的结果为(      )
    printf  (”%d”,  x>10?x+100:x-10 );
    printf  (”%d”, w++||z++);
    printf(“%d”,! w>z);
    printf(“%d”,w&&z);
A)  0111      B)  11111      C)  0101          D)0100
14. 执行以下语句后的输出结果为(      )
    enum  weekday  {sun, mon=3,tue,wed,thu};
    enum  weekday  workday;
    workday=wed  ;
    printf(”%d\n”,workday);
A)5          B)3          c)4        D)编译时出错
15. 若有定义:enum weekday {mon,tue,wed,thu,fri}workday; 则错误的语句是(    )。
A) workday= (enum  weekday)3;    B)workday=  (enum  weekdoy) (4-2)
C) workday=3 ;                  D) workday=thu;
16. 以下正确的描述为(      )。
enum c++A)每个c语言程序必须在开头用预处理命令:#include<stdio.h>
B)预处理命令必须位于c源程序的首都
C)在C语言中预处理命令都以”#”开头
D)c语言的预处理命令只能实现宏定义和条件编译的功能       
17. 以下有关宏替换叙述中,错误的是(      )。
A)宏替换不占用运行时间      B)宏名无类型
C)宏替换只是字符替换        D)宏名必须用大写字母表示
18. c语言对嵌套if语句的规定是:el se总是与(      )配对。
A)其之前最近的if            B)第一个if
C)缩进位置相同的if          D)其之前最近的且尚未配对的if
19. 为了判断两个字符串s1和s2是否相等,应当使用(      )。
A)  if(s1= =s2)                B)  if  (s1=s2)
C)  if(strcpy(s1,s2))            D)if(strcmp(sl,s2)==0
20. 下列关于switch语句和break语句的结论中,正确的是(      )
A)break语句是switch语句的一部分
B)在switch语句中可以根据需要使用或不使用break语句
C)在switch语句中必须使用break语句
D) 在switch语句中不能使用break语句
21. 以下错误的描述是(      )。
A)break语句不能用于循环语句和switch语句外的任何其它语句
B)在switch语句中使用break语句或continue语句的作用相同
C)在循环语句中使用continue语句是为了结柬本次循环,而不是终止整个循环
D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环
22. 以下错误的描述是(    )。
A)使用while和do_while循环时,循环变量初始化的操作应在循环语句之前完成
B)while循环是先判断表达式,后执行循环体语句
c)do_while和for循环均是先执行循环体语句,后判断表达式
D)for、while和do—while循环中的循环体均可以由空语句构成
23. 若int i=10:执行下列程序后,变量i的正确结果是(      )。
    switch  (i) 
{  case  9:  i+1;
      case  10:  i+=1;
      case  11:  i+=1;
      default:  i+=1;
}
A)10        B)11        c)12          D)13
24. 以下不是死循环的语句为(      )。
A) for(;;x+=i);
B) while(x=1)  {x++;}
C) for(i=10;;i- -)sum+=i;
D) for (;(c=getchar())!=’\n’;)  printf( “%c”,c);
25. c语言程序由函数组成。它的 (      )。
A) 主函数必须在其它函数之前,函数内可以嵌套定义函数
B) 主函数可以在其它函数之后,函数内不可以嵌套定义函数
C) 主函数必须在其它函数之前,函数内不可以嵌套定义函数
D) 主函数必须在其它函数之后,函数内可以嵌套定义函数
26. 一个c语言程序的基本组成单位是 (      )
A)主程序        B)子程序        C) 函数        D)过程
27. 一个c语言程序总是从 (      )开始执行。
A)主过程      B)主函数        C) 第一个函数    D)第一行
28. 以下说法中正确的是——。
A) c语言程序总是从第一个定义的函数开始执行
B) 在c语言程序中,要调用的函数必须在main()函数中定义
C) c语言程序总是从main()函数开始执行
D) c语言程序中的main()函数必须放在程序的开始部分
29. 若有以下说明,则数值为4的表达式是(    )
            int  a[l2]={1,2,3,4,5,6,7,8,9,10,11,l 2};
            char  c=’a’,d,g;
A) a[g-c]      B) a[4]      C)  a[’d’-‘c’]        D)a[‘d’-c]
30. 以下程序的输出结果是(    )
  main( )
    {    int    n[2]={0}, i, j,k=2;
        for (i=0;i<k;i++) 
for (j=0;j<k;j++) n[j]=n[i]+1;  printf(“%d\n”,n[k] );
    }
A) 不确定的值    B) 3      C) 2                    D)1
31. 以下程序的输出结果是(    )
main( )
{  int a[ ]={2,4,6,8,10}, y=1,x,*p;
    p=&a[1];
    for (x=0;x<3;x++)  y+=*(p+x);
    printf(“%d\n”,y);
}
A) 17          B) 18            C) 19            D) 20

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