C语言第二章习题复习课程.docx
《C语言第二章习题复习课程.docx》由会员分享,可在线阅读,更多相关《C语言第二章习题复习课程.docx(11页珍藏版)》请在冰豆网上搜索。
C语言第二章习题复习课程
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.若有定义intx,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
main()
{inta;
a=(int)1.99*3;
printf("%d\n",a);
}
程序的运行结果是()
A)3
B)5
C)6
D)结果不确定
6.请选出合法的C语言赋值语句:
()
A)a=b=58B)i++;
C)a=58,b=58D)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)5B)14C)8D)输出项不合法,无正常输出
9.请选出以下语句的输出结果:
()
printf("%d\n",strlen("\xffff"));
A)1B)2C)3D)5
10.有如下程序段,其输出结果是什么:
(表示输出回车符)()
main()
{inta=1,b=3,c=5;
if(c=a+b)
printf("yes\n");
elseprintf("no\n");}
A)yesB)noC)yes\nD)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=cA)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.若有定义语句:
intx=10;,则表达式x-=x+x的值为( )
A)0
B)-20
C)-10
D)10
17.有以下程序
#include
main()
{intc,d;
c=10^3;
d=10+3;
printf("%d,%d\n",c,d);
}
程序运行后的输出结果是()
A)13,13
B)9,13
C)10,13
D)103,13
18.若有定义:
inta=7;floatx=2.5,y=4.7;则表达式:
x+a%3*(int)(x+y)%2/4的值是:
()
A)2.500000
B)2.7500000
C)3.500000
D)0.000000
19.已知x=43,ch=’A’,y=0,则表达式(x>=y&&ch<’B’&&!
y)的值是:
()
A)0
B)语法错误
C)1
D)”假”
20.若有以下定义和语句:
Inta,b;
printf(“%d”,(a=2)&&(b=-2));
则输出的结果是()
A)无输出B)结果不确定C)1D)-1
21.以下语句的输出结果是()
inta=2,b=3;
printf(a>b?
”***a=%d”:
”###b=%d”,a,b);
A)输出结果格式错误B)***a=2
C)###b=2D)###b=3
22.下列运算符中,结合方向为自左向右的是()
(A)?
:
(B),(C)+=(D)++
23.设x、y、z均为int型变量,则执行以下语句后,x、y、z的值为()
x=1;y=0;z=2;y++&&++z||++x;
A)2、1、3B)2、0、3C)2、1、3D)2、1、2
24.若有以下定义和语句:
inty=10;
y+=y-=y-y;
则y的值是()
A)10B)20C)30D)40
25.下列表达式中,不满足”当x的值为偶数时值为真,为奇数时值为假”的要求的是()
A)x%2==0B)!
x%2!
=0
C)(x/2*2-x)==0D)!
(x%2)==0
26.以下能正确定义整型变量a,b和c并为其赋初值1的语句是()
A)inta=b=c=1;B)inta,b,c=1;C)a=b=c=1;D)inta=1,b=1,c=1;
27.字符串"\t\065\xff\n"中的字符数(不算’\0’)为()
A)5B)14C)8D)4
28.若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为()
A)floatB)intC)char(字符型)D)double
29.在C语言中,运算对象必须是整型数的运算符是()
A)%B)/C)%和\D)**
30.以下选项中,当x为大于1的奇数时,值为0的表达式是()
A)x%2==11为真,0为假B)x/2C)x%2!
=0D)x%2==0
31.有以下程序
main()
{
chara='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是()
A)b,bB)b,cC)a,bD)a,c
32.写出下面程序的值.
#include
voidmain()
{
inta=10,b=4;
printf("%d\n",a%=(b%=3));
}
A)0B)1C)10D)2
注连续赋值操作从右向左进行
33.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是()
A.‟a‟&&‟b‟B.a<=bC.a||b+c&&b-cD.!
((a
c||1)
34.请选出可用作C语言用户标识符的一组标识符:
A)voidB)a3_b3C)ForD)2a
define_123-abcDO
WORDIFCasesizeof
35.若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是:
A)1B)2
C)2.0D)2.5
36.有如下程序
main()
{inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);
}
运行该程序的输出结果是:
A)34B)42C)43D)33
37.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是:
A)c=b=a;B)(a=c)‖(b=c);
C)(a=c)&&(b=c);D)a=c=b;
38.在以下一组运算符中,优先级最高的运算符是:
A)<=B)=
C)%D)&&
39.有以下程序
#include
main()
{inta,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是:
A)2,1B)3,2C)4,3D)2,-1
40.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为:
A)a<>0B)!
a
C)a=0D)a
41、以下选项中,能用作数值常量的是________。
(A)o115(B)0118(C)115L(D)1.5e1.5
42、下列叙述中错误的是_______。
(A)一个C语言程序只能实现一种算法
(B)一个C函数可以单独作为一个C程序文件存在
(C)C程序可以由一个或多个函数组成
(D)C程序可以由多个程序文件组成
43、设变量已正确定义并赋值,以下正确的表达式是_______。
(A)int(15.8%5)(B)x=y+z+5,++y(C)x=25%5.0(D)x=y*5=x+z
44、以下叙述中错误的是_____________。
(A)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
(B)C语言源程序经编译后生成后缀为.obj的目标程序
(C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
(D)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
45、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是___________。
(A)大写字母(B)下划线(C)数字字符(D)连接符
46、以下选项中,合法的一组C语言数值常量是__________。
(A)0x8A10,0003.e5(B).1774e1.50abc(C)028.5e-3-0xf(D)12.0Xa234.5e07、
47以下选项中不合法的标识符是__________。
(A)print(B)FOR(C)&&a(D)_00
48、若有定义:
doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是
(A)i=(a+k)<=(i+k);(B)a=a++,i++;(C)i=a%11;(D)i=!
a;
49、设有定义:
intx=2;,以下表达式中,值不为6的是
(A)x*=(1+x)(B)x*=x+1(C)x++,2*x(D)2*x,x+=2
50、有以下程序
#include
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);}
程序运行后的输出结果是
(A)2,3,3(B)2,2,1(C)2,3,2(D)2,3,1
填空题
1。
函数体由符号____开始,用符号____结束。
函数体的前面是____部分,其后是____部分。
2。
C语言中的标识符可分为____、____、和预定义标识符三类。