A.浮点数在存储时存在舍入误差
B.程序设计时,不能直接对两个浮点型数据进行相等比较
C.将一个很小的浮点数和一个很大的浮点数进行相加,结果可能不正确 D.C语言中的浮点型变量有float和double两种
43.若ch为字符型变量,则不能使ch表示字符'B'的语句是__________。
A.ch=B; B.ch=66; C.ch='\\102'; D.ch='\\x42'; 44.以下程序运行后的输出结果是_________。
#include \int f(int x,int y) { return 2*x+y; } void main()
{ int a=3,b=2,t=0; t= f(b,a);
printf(\ A. 0 B. 5 C. 7 D. 8 45.以下程序运行后的输出结果是_________。
#include \void main() { char ch='a'; int x=5;
float s=2.5F;
printf(\A.1,2,4 B.1,4,4 C.1,4,8 D.a,5,2.5 (三)、编程题
1.已知长方形的长和宽分别为x和y,计算其周长和面积。
2.编写一个程序,其功能为:从键盘上输入两个整型数据,分别存放在整型变量a和b中,然后输出表达式a/b和a%b的值。
3.编写一个程序,其功能为:从键盘上输入一个浮点数,然后分别输出该数的整数部分和小数部分。
4.编写一个程序,其功能为:从键盘上输入一个小写字母,显示这个小写字母及它所对应的大写字母以及它们的ASCII码值。 提示:大写字母A~Z的ASCII码值为65~90,小写字母a~z的ASCII码值为97~122。可见,对应的大小写字母的ASCII码值相差32,所以大写字母转换成小写字母就是将其ASCII值加上32,小写字母转换成大写字母就是将其ASCII值减去32。
5.输入一个华氏温度F,根据公式c=5(F-32)/9计算输出对应的摄氏温度。要求:输入要有提示,输出要有说明。
第2章顺序结构
二、习题 (一)是非题
1.表达式1/4+2.75的值是3。
A.对 B.错
2.C语言中浮点型变量可以进行自增或自减操作。
A.对 B.错
3.如果整型变量a、b、c已经正确定义,那么c=b=a=012是一个正确的表达式。
A.对 B.错
4.算术运算符和赋值运算符的结合方向均由左自右。
A.对 B.错
5.在进行赋值转换时,变量的类型被自动转换为赋值号右边的表达式值的类型。
A.对 B.错
6.语句char c=\定义了字符型变量c,并将其初始化为A。
A.对 B.错
7.运算符“%”的操作数不允许为单精度和双精度浮点型,允许为字符型和整型。
A.对 B.错
8. 运算符++的优先级高于运算符+。
A.对 B.错
9.逗号运算符的求值顺序是从左到右的,逗号表达式的值为第一个表达式的值。
A.对 B.错
10.“=”运算符用于判断两个数是否相等。
A.对 B.错
11.C语言本身不提供输入输出语句,但可以通过输入输出函数来实现数据的输入输出。
A.对 B.错
12.在使用函数scanf输入数据时必须与函数参数指定的输入格式一致。
A.对 B.错
13.getchar()函数用于输入单个字符,putchar()函数用于输出单个字符。
A.对 B.错
14.123、029、-0xEFF均是合法的整型常量。
A.对 B.错 15.假定已有定义char c;,sizeof c中的sizeof是容量运算符,而sizeof(char)中由于使用了括号形式,称为容量函数。 A.对 B.错
16.假定已有整型变量x的定义,则(x+1)++是一个合法的表达式。
A.对 B.错
17.假定已有整型变量初始化语句int x=2;,那么表达式x++,x *=2+1的值为9。
A.对 B.错
18.假定已有变量定义语句:int m=3,n=2;,那么(float)(m/n)表达式的值是1.5。
A.对 B.错
19.C语言中,表达式1/2*2的值为0。
A.对 B.错
20.若scanf函数的格式说明中有一个空格,在输入时也一定要在对应位置输入一个空格。
A.对 B.错 (二)选择题
1.数字字符0的ASCII值为48,则以下程序运行后的输出结果是______。
#include
main()
{ char a='1',b='2';printf(\A.3,2 B.50,2 C.2,2 D.2,50
2.以下程序运行后的输出结果是______。 #include
{ int m=12,n=34;
printf(\ printf(\
A.12353514 B.12353513 C.12343514 D.12343513
3.若整型变量a、b、c、d中的值依次为1、2、3、4。则表达式a+b/d*c的值是______。 A.1 B.2.5 C.0.25 D.2
4.以下程序运行后的输出结果是______。 #include
{ int a,b,c;
a=10; b=20; c= a%b+a/b;
printf(\
A.10200 B.10 20 10 C.102011 D.10 20 1
5.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是______。 #include
{ int r; float s; scanf(\s=*p*r*r;
printf(\
A.注释语句书写位置错误B.存放圆半径的变量r不应该定义为整型
C.s=*p*r*r;语句中使用了非法变量 D.输出语句中格式描述符非法
6.设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是______。 A.k=k+=k B.-k++ C.k%int(f)D.f=k%m
7.设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是______。 A.a%b%c B.a/b/cC.a=b=c D.a,b,c
8.有以下程序段:int k=0,a=1,b=2,c=3; k=a+=b-=c;,执行该程序段后,k的值是______。 A.0 B.1 C.2 D.3
9.以下程序运行后的输出结果是______。
#include
{ char c; int n=100; float f=10; double x; x=f*=n/=(c=50);
printf(\A.2 20 B.2 20.000000 C.100 10 D.50 10.000000
10.已知字母A的ASCII码为65,则以下程序运行后的输出结果是 ______。
#include
a='A'+'5'-'3';b=a+'6'-'2'; printf(\
A.6771 B.67G C.CG D.C71
11.表达式3.6-5/2+1.2+5%2的值是______。 A.3.3 B.3.8 C.4.3 D.4.8
12.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是________。 A.++x,y=x-- B.x+1=yC.x=x+10=x+y D.double(x)/10 13.以下程序运行后的输出结果是________。 #include
{ int x,y,z; x=y=1;
z=x++,y++,++y;
printf(\A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1
14.以下选项中,值为1的表达式是________。 A.1-'0'B.1-'\\0' C. '1'-0 D. '\\0'-'0'
15.设有定义:intk=0;,以下选项的________与其他三个表达式的值不相同。 A.k++ B.k+=1 C.++k D.k+1
16.执行以下程序后的输出结果是________。
#include
printf(\
A.a=10 B.a=14 C.a=15 D.a=19
17.若变量均已正确定义并赋值,以下合法的C语言赋值语句是________。 A.x=y=5; B.x=n%2.5; C.x+n=i; D.x=5=4+1;
18.设变量已经正确定义并赋值,以下正确的表达式是________。 A.x=y*5=x+z B.int(15.8%5)C.x=y+z*5,++yD.x=25%5.0
19.以下不能正确表示代数式2ab/cd的C语言表达式是________。 A.2*a*b/c/d B.a*b/c/d*2 C.a/c/d*b*2 D.2*a*b/c*d
20.设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式________。 A.a=a-a+b B.a-a=b C.a=a-(a+b) D.a=-a+b
21.设有定义:int x=2;,以下表达式中,值不为6的是________。
A.x*=x+1 B.x++,2*x C.x*=(1+x) D.2*x,x+=2 22.表达式(int)((double)9/2)-(9)%2的值是________。 A.0 B.3 C.4 D.5
23.若有定义 intx=10;,则表达式x-=x+x的值为________。
A.-20 B.-10 C.0 D.10
24.若有定义double a=22;int i=0,k=18;,则以下有错的语句是________。
A.a=a++,i++; B.i=(a+k)/(k-i);C.i=a; D.i=!a; 25.以下程序运行后的结果是________。 #include
{ int a=2,b=2,c=2; printf(\A.0 B.1 C.2 D.3
26.若有定义int a;long b; double x,y;,则以下选项中正确的表达式是________。 A.a%(int)(x-y) B.a=b=x,y; C.(a*y)%b D.y=x+y=x 27.表达式a+=a-=a=9的值是________。 A.-9 B.0 C.9 D.18
28.若有定义int a=3,b=2,c=1;,以下选项中错误的赋值表达式是________。 A.a=(b=4)=3 B.a=b=c+1; C.a=(b=4)+c;D.a=1+(b=c=4); 29.若有定义int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为________。 A.1 B.1.9 C.2 D.2.4
30.以下程序运行后输出的结果是________。 #include
{ int a=0,b=0,c=0;
c=(a-=a-5);(a=b,b+=4);
printf(\A.0,4,5 B.4,4,5 C.4,4,4 D.0,0,0
31.设变量均已正确定义并且赋值,以下与其他三组输出结果不同的一组语句是________。 A.x++; printf(\C.++x; printf(\D.n=x++; printf(\32.以下程序运行后输出的结果是________。 #include
{inta=1,b=0; printf(\A.0,0 B.1,0 C.3,2 D.1,2
33.以下程序运行后输出的结果是________。 #include
main(){ int k=011; printf(\A.12 B.11 C.10 D.9 34.有以下程序:
#include
{ int m,n,p;
scanf(\printf(\
若想使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______。 A.m=123n=456p=789 B.123,456,789 C.m=123,n=456,p=789 D.123 456 789 35.以下程序运行后输出的结果是________。 #include