c语言第二章习题及详解.docx
《c语言第二章习题及详解.docx》由会员分享,可在线阅读,更多相关《c语言第二章习题及详解.docx(5页珍藏版)》请在冰豆网上搜索。
c语言第二章习题及详解
2、第二章
1、设整型变量a的值为2,下列表达式值为1的是__。
(A)
A)a%3B)a/3=0C)--aD)a++
2.设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是__。
(B)
A)a=5++操作数只能是变量B)a=b=c++C)a=%2D)b=a+1=2左边只能是单个变量,即变量1=变量2=。
。
。
3.下列式中,最终运算结果的数据类型不是单精度的表达式是__。
(A)
A)(int)(3+3.0)B)1e-3fen:
n必须为整数C)(float)(3)D)(int)3.0+3.0
4.字符串”ab\x41\\34cd\102y”的长度是_A_。
\xhh表示ASCII码:
例\x41,41是16进制的。
字符串含有’\0’。
’\102’也表示ASCII码,但102是8进制的,长度为10,储存空间占11个字节。
A)10B)12C)14D)18
5、变量是在程序运行过程中可改变的它的三要素是类型、名称、数值
6.以下选项中合法的常量是?
D
A)’Internet’B)E_3变量C)02xD)0xfeL
7.以下选项中合法的赋值表达式是?
C
A)d=8+a+f=d+6同2DB)d=(a+8)++同2A
C)d=(8+e,e++,d+9)D)d=7+e++=d+7
8.main()
{intx=5,y=3;
floatf;
f=x/y;表示为整形
printf(“f=%f\n”,f);
}
则程序的输出结果是?
f=1.000000
9.设整型变量x,y,z均为2,表达式(x++)+(y++)+(z++)的值是_A先使用值再加加_。
A)6B)7C)8D)9
10.设inta=3,b=5;floatx=7.5,y=3.5;则表达式(float)a+b/2+(int)x%(int)y;的值是6.0__。
*11.执行语句:
inta;a=‘1’+1.5;后,正确的叙述是_D_。
A)a的值是字符‘3’B)a的值是浮点型
C)不允许字符型和浮点型相加
D)a的值是字符’1’的ASCII码值加上1
12.设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是_B_。
A)均为2个字节TC与VC不一样B)0~65535
C)-32768~32767D)-256至255
13.执行下列语句后,运行结果为C__。
先i++再i++最后+
main()
{inti=3,j;
j=++i+i++;
printf(“%d\n”,j);
}
A)6B)7C)8D)9
14.执行下列语句后,运行结果为6;y=1;z=6.000000______。
main()
{
intx=4,y;
floatk=4,z;
clrscr();
printf("%d\n",--x*--x*--x);
x=4;
y=--x*--x*--x;
printf("y=%d\n",y);
z=--k*--k*--k;
printf("z=%f\n",z);}
x为浮点型:
从左向右计算。
--i优先于*
x为整型:
在输出函数中,从左向右计算;在输出函数外,先连续减,然后乘积。
15.若a为int类型,且其值为5,则执行表达式a+=a-=a*a后,a的值为_C_。
自右至左a=a-a^2=-20a=a+a=-40
A)-5B)-40C)-15D)不确定
16.如果x,y,i和j都是int型变量,则表达式x=(i=1,j=6,y=8)的值为_8_。
17、main()不懂看课件
{intx=0,z,y=z=-1;i--优先于-
x=x---z-y;
printf("x=%d\n",x);
}输出结果是:
1
main()
{intx=0,z,y=z=-1;
x=--x-z-y;
printf("x=%d\n",x);
}输出结果是:
1
main()
{intx=0,z,y=z=-1;
x=-y-z+--x;
printf("x=%d\n",x);
}输出结果是:
1
main()
{intx=0,z,y=z=-1;
x+=--x-z-y;自右向左
printf("x=%d\n",x);
}输出结果是:
0
main()
*{intx=0,z,y=z=-1;
x+=z---y;自右向左
printf("x=%d\n",x);
}输出结果是:
x=0x=0+(-1--1)=0
main()
{intx=0,z,y=z=-1;/*x*=-y-z---x;*/
x=-y-z---x;/*x+=-y-z---x;*/
printf("x=%d\n",x);
}输出结果是:
x=2
18.
main
{intx=3,y=0;
y=++x*--x;/*x=++x*x--;*/自右向左即:
--x=2++x=3y=3*3=9
printf(“y=%d,x=%d\n”,y,x);
}输出结果是:
y=9x=3
19.若a=3,b=3,c=5;则
⑴c+b++*a*++b的值是53
⑵a++*a+b+c*a*++b的值是73自右至左
⑶a*a+++b*++a的值是28
⑷printf(“%d,%d\n”,a,a++)
的输出结果是43
⑸printf(“%d,%d\n”,a,++a)
的输出结果是44
⑹printf(“%d,%d\n”,++a,a)
的输出结果是43
*⑺printf(“%d,%d\n”,a++,a)
的输出结果是33右结合性
19、main()
{intx=3;
x+=--x+x++;
printf(“x=%i\n”,x);
}x=7
main()
{inta=9;
a+=a-=a+a;
printf(“%d\n”,a);
}此程序执行后的结果是:
?
-18
main()
{inta=5;
a*=a/=a++;
printf(“%d\n”,a);
}此程序执行后的结果是:
?
2
main()
{
intx=4,y;
floatk=4,z;
clrscr();
printf("%d\n",--x*--x*--x);
x=4;
y=++x*--x*--x;
printf("y=%d\n",y);
z=++k+--k*--k;
printf("z=%f,k=%f\n",z,k);
}输出结果:
6
y=27
z=9.000000,k=3.000000
【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】