选择题(30分)(第一部分分10分,第二部分12分,第三部分8分)
第一部分:简单类题目( 50个题目,从中选择10,每题1分)
1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为(C)
  A.4    B.16    C.32   D.522
2.以下程序的输出结果(B)  。
main(  )
  {  int  x1=3, x2=0, x3=0;
  if  (x1=x2+x3)
          printf("* * * *");
  else  printf("# # # #");
}
A.输出:* * * *        B.输出:# # # #
C.存在语法错误        D.无输出结果
3.下面四个选项中,均是合法转义字符的选项是(A)。
A.'\''  '\\'  '\n'      B.'\'  '\017'  '\"'
C.'\018'  '\f'  'xab'    D.'\\0'  '\101'  'xlf'
4.若有说明:int a=1,b=2,c=3,d=4;则表达式a<b?a:c<d?c:d的值是(D)
A、4    B、3      C、2        D、1
5.设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是 (D)。
A. i&&j            B.i<=j
C.i||j+k&&j-k          D.!((i<j)&&!k||1)
6.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是(C)  。
A.num%2= =1      B. !(num%2= =0)    C.!(num%2)    D.num%2
7.有以下程序
main()
{ int m=3,n=4,x;
  x=-m++;
  x=x+8/++n;
printf(“%d\n”,x);
}
程序运行后的输出结果是  ( D )    。
A  B  C-1    D-2
8.若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是    ( C )  。
A.a=9+b+c=a+9    B.a=9+b;c=a+9;
C.a=(9+b,b++)    D.a=9+b++=a+7
9.若有以下定义,若int m=7,n=12,则能得到值为3的表达式是 ( D )    。
A.n%=(m%=5)        B.n%=(m-m%5)
C.n%=m-m%5          D.(n%=m)-(m%=5)
10.以下能正确定义整型变量x、y和z并为其赋初值5的语句是  ( C )    。
A.int x=y=z=5;        B.int x,y,z=5;
C.int x=5,y=5,z=5;    D.x=5,y=5,z=5;
11.若xy代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是    ( C )
Aabs(x-y)<10              Bx-y>-10&&x-y<10
C(x-y)<-10||!(y-x)>10    D(x-y)*(x-y)<100
scanf输入整型数组
12. 设 int a=12,则执行完语句 a+=a-=a*a,a的值是 ( D )      。
A 552     B 264       C 144       D -264
13  以下叙述不正确的是 ( D )
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
14 下关于运算符优先顺序的描述中正确的是 (  C  )。
A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B)逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
15  下列程序的输出结果是 ( C )
main( )
{ int a=7,b=5; 
printf("%d\n",b=b/a);
}
A 5    B 1    C 0    D不确定值
16  printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B)
A) 从左起输出该字串,右补空格
B) 按原字符长从左向右全部输出
C) 右对齐输出该字串,左补空格
D) 输出错误信息
17. 以下叙述正确的是 ( C  )
A. 在C程序中,main函数必须位于程序的最前面
B. C程序的每行中只能写一条语句
C. C语言本身没有输入输出语句
D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
18. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是  ( B  )
A. 7        B. 8        C. 6        D. 2
19. 下面不正确的字符串常量是  ( A )   
A. 'abc'        B. "1212"        C. "0"        D. ""
20. 已知各变量的类型说明如下:
int i=8,k,a,b;
unsigned  long  w=5;
double  x=1.42,y=5.2;
则以下符合C语言语法的表达式是  ( A )
A.  a+=a-=(b= 4)*(a=3)        B. a=a*3=2
C.  x%(-3)                    D. y=f1oat(i)
21. 若有说明语句:char c='\72'则变量c描述正确的是 ( A )
A. 包含1个字符          B. 包含2个字符
C. 包含3个字符          D. 说明不合法,c的值不确定
22. 已有定义int x; f1oat  y;且执行scanf("%3d%f",&x,&y);语句,若输入12345  78(回车),则x 的值为 (  B  )
A. 12345        B. 123        C. 45        D. 345
23. 能正确表示"当x 的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是( C )
A. (x>=1) && (x<=10) && (x>=200) && (x<=210)
B. (x>=1) || (x<=10) || (x>=200) || (x<=210)
c. (x>=1) && (x<=10) || (x>=200) && (x<=210)
D. (x>=1) || (x<=10) && (x>=200) || (x<=210)
24.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是 (A)
  A. 0  B. 1  C. 2    D. 3
25.在if(x)语句中的x与下面条件表达式等价的是(A)
A) x!=0    B) x==1    C)  x!=1    D)  x==0
26、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为(A)
A、D    B、E      C、一个不确定的值    D、C
27. 已知x=3、y=2,则表达式 x*=y+8的值为 (  C  )
A)3    B)2    C)30    D)10
28. 设x为int型变量,则执行以下语句后,x的值为 ( B  )。
x=10;x+=x- =x-x;
A)10    B)20    C)40    D)30
29 若有以下类型说明语句:char a; int b;
  float c; double d; 则表达式a*b+d-c的结果类型为 (  D )
  A.float    B.char    C.int    D.double
30 若二维数组a有m列,则在a[i][j]前的元素个数为    ( B )
A)    j*m+i            B)    i*m+j
C)    i*m+j-1        D)    i*m+j+1
31 对for(表达式1;;表达式3)可理解为    (  B )
A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
32 以下描述不正确的是 (  C  )。
A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成
B.while循环是先判断表达式,后执行循环语句
C.do-while 和for循环均是先执行循环语句,后判断表达式
D.for、while 和do-while循环中的循环体均可以由空语句构成
33.下列程序段的运行结果是 ( C  )
int n=0;  while(n++<=3);    printf(%d,n);
A  3              B  4                C  5          D 有语法错误
34.  设int a=3,b=4,c=5;,下列表达式的值不为1的是 ( A )。
A)a+b>c&&b==c        B)a||b+c&&b-c     
C)!(a>b)&&!c||1        D)!(a+b)+c-1&&b+c/2
35. 有以下程序:
#include <stdio.h>
void main ( )
{
    int a=1,b=2,m=0,n=0,k;
    k=(n=b>a)||(m=a<b);
    printf ("%d,%d\n",k,m);
}
程序运行后的输出结果是  (  C )。
A)0,0      B)0,1      C)1,0      D)1,1
36、以下能正确进行字符串赋值操作的是 (  D  )
A、char s[5]={"ABCDE"};
B、char s[5]={'A', 'B', 'C', 'D', 'E'};
C、char *s;  *s="ABCDE";

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