C语言第二章习题
1.以下叙述中错误的是( )。
A)  使用三种基本结构构成的程序只能解决简单问题
B)  结构化程序由顺序、分支、循环三种基本结构组成
C)  C语言是一种结构化程序设计语言
D)  结构化程序设计提倡模块化的设计方法
2.以下可以将任意一个两位整数n的个位数与十位数对换的表达式为()
A)  (n-n/10*10)*10+n/10
B)  n-n/10*10+n/10
C)  n/10+(n-n/10)
D)  (n-n/10)*10+(n/10)
3.以下叙述中错误的是
A)  算法正确的程序可以有零个输入
B)  算法正确的程序最终一定会结束
C)  算法正确的程序可以有零个输出
D)  算法正确的程序对于相同的输入一定有相同的结果
4.若有定义int  x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) :
(y++)中的条件表达式(x-y) 等价的是( )。
A)  (x-y<0||x-y>0)
B)  (x-y<0)
C)  (x-y>0)
D)  (x-y==0)
5.有以下程序
#include <stdio.h>
main()
{  int  a;
a = (int)1.99*3;
c语言程序总是从什么开始执行printf("%d\n", a);
}
程序的运行结果是()
A)  3
B)  5
C)  6
D)  结果不确定
6.请选出合法的C语言赋值语句:()
A) a=b=58                    B) i++;
C) a=58,b=58                  D) k=int(a+b)
7.假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表
示代数式 1/abc 的表达式是:()
A) 1/a*b*c
B) 1/(a*b*c)
C) 1/a/b/(float)c
D) 1.0/a/b/c
8.请选出以下语句的输出结果:()
printf("%d\n",strlen("\t\"\065\xff\n"));//srelen()为求字符串长度的函数,返回字节数。
A) 5      B) 14      C) 8        D) 输出项不合法,无正常输出
9.请选出以下语句的输出结果:()
printf("%d\n",strlen("\xffff"));
A) 1      B) 2      C) 3        D)5
10.有如下程序段,其输出结果是什么:(<CR>表示输出回车符)()
main( )
{int a=1,b=3,c=5;
if (c=a+b)
printf ("yes\n");
elseprintf("no\n"); }
A) yes<CR>  B) no<CR>  C)  yes\n    D) no\n
11. 以下说法中正确的是(    )
A)  C语言程序总是从第一个的函数开始执行
B)  在C语言程序中,要调用的函数必须在main()函数中定义
C)  C语言程序总是从main()函数开始执行
D)  C语言程序中的main()函数必须放在程序的开始部分
12.逻辑运算符两侧运算对象的数据类型()
A) 只能是0和1
B) 只能是0或非0正数
C) 只能是整型或字符型数据
D) 可以是任何类型的数据
13. 以下叙述中错误的是()
A)C语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行
D)赋值表达式末尾加分号就构成赋值语句
14.已知a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c<d)后n的值为()
A)  2
B)  0
C)  1
D) -1
15.设变量已正确定义并赋值,以下正确的表达式是( )
A)  x=y+z+5,++y
B)  int(15.8%5)
C)  x=y*5=x+z
D)  x=25%5.0
16.若有定义语句:int  x=10;,则表达式x-=x+x的值为( )
A)  0
B)  -20
C)  -10
D)  10
17.有以下程序