一、选择题
1. 有如下程序:
程序运行后的输出结果是( )。
A.2,
B.2, 3,
C.3,
D.1,
答:A
【解析】在输出函数中,调用了函数。函数作用是定义一个静态变量对变量init 进行叠加形参data 的值,并将结果作为函数的返回值。在main ( )函数中,实参i=l传递给sum ( )函数的形参data ,因此输出为2。
2. 以下叙述中正确的是( )。
A.C 程序的基本组成单位是语句
B.C 程序中的每一行只能写一条语句
C. 简单C 语句必须以分号结束
D.C 语言必须在一行内写完
答:C
【解析】在C 语言中,每条语句必须以分号结束。A 项错误,C 程序的基本组成单位是函数;BD 两项错误,C 程序一行能写多条语句,也可以将一条语句分几行书写。
3. 有以下程序:
程序运行后的输出结果是( )。
A.2, 1
B.6, 1
C.6,0
D.2, 0
答:A
【解析】程序前面表达式等同于
a=2; 优先级低于程序执行过程为:c=241, c/100=2, 2%9=2, 得为真,非0值为真,0值为假,即(-1)为真,逻辑与表达式
得b=l。
4. 设有定义intx=2;,以下表达式中,值不为6的是( )。
A.x*=x+l
B.x++, 2*x
C.x*=(1+x)
D.2*x, x+=2
答:D
,此时为3, 然后做x*=3, 【解析】AC 两项,赋值运算优先级最低,所以先做x+1或(1+x)
即x=x*(x+l)=6;B 项,做x++运算后得到3, 然后做2*x运算得6, ;D 项,2*x虽然结果为4, 但此时x 的值仍为2, 所以最终为4。
5. 若有定义语句:inta=12; ,则执行语句:a+=a- =a*a; 后,a 的值是( )。
A.-264
B.552
C.144
D.264
答:A
【解析】赋值运算结合性为自右向左,a+=a-a*a相当于a=a-a*a,a=a+a; 自右向左计算过程为a=a-a*a=_132,a=a+a=-264。
6. 有以下程序:
程序运行后的输出结果是( )。
A.A
B.a
C.H
D.h
答:D
【解析】首先将H 赋给变量a ,问号前一个表达式成立,问号后面减去一个大写字母A 再加上小写字母a 实际是将原来的大写字母转换成小写字母,即H 转换成h ,再将结果赋给a 。
7. 若变量己正确定义并赋值,则错误的赋值语句是( )。
A.a=a+l;
B.a=sizeof(double );
C.a=dllc;
D.a+l=a;
答:D
【解析】赋值号的左边必须是一个代表某个存储单元的变量名,赋值号的右边必须是C 语言
中合法的表达式。赋值运算的功能是先求出右边表达式的值,然后把此值赋给赋值号左边的变量。
8. 若有定义语句则表达式的值为( )。
A.-20
B.-10
C.0
D.10
答:B
【解析】赋值表达式,首先计算右边表达式,然后在进行赋值。先做
结果为
-10, 赋值给X 。
9. 若有以下程序
则程序的输出结果是( )。
A.H9
B. 表达式不合法输出无定值
C.
D.
答:A
【解析】当字符参与数学运算时,替换成其在ACSII 码表中对应的数值,
则
在printf 函数中,cl 以字符的形式输出,得到结
结果为20, 再做