选择题(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.3 B.5 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.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 ( C ) 。
A.abs(x-y)<10 B.x-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小时内删除。
发表评论