山东大学历年C语言题库
选择题(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
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
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 D.(x-y)*(x-y)<100
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. 以下叙述正确的是 (