a=(--x= =y++)?--x:++y;b=x++;c=y; A.a=9,b=9,c=9 B.a=8,b=8,c=10 C.a=9,b=10,c=9 D.a=1,b=11,c=10 8.有定义int a=9;,语句“a+=a– =a+a;”执行后,变量的值是( )。 A.18 B.9 C.–18 D.–9 9.设x和y均为int型变量,则语句“x+=y;y=x–y;x– =y;”的功能是( )。 A.把x和y按从小到大排列 B.把x和y按从大到小排列 C.无确定结果 D.交换x和y中的值 10.有定义double x=1,y;,表达式“y=x+3/2”的值是( )。
A.1 B.2 C.2.0 D.2.5 11.设有定义int x;double y;,则下列表达式中结果为整型的是( )。
A. (int)y+x B.(int)x+y C.int(y+x) D.(double)x+y 12.设有整型变量x,下列说法中,错误的是( )。
A.“5.0”不是表达式 B.“x”是表达式 C.“!x”是表达式 D.“sqrt(x)”是表达式
解:(1)D (2)B (3)B (4)D (5)B (6)D (7)B (8)C (9)D (10)C (11)A (12)A 四、填空题。
1.设float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4 值为 。 解:2.5
2.设int x=2,y=3;,执行语句“x*=x+y”后x的值为 。 解:10
3.设int x=17,y=5;,执行语句“x%=x–y”后x的值为 。 解:5
6
4.设 int a=6,b=4,c=2;,表达式 !(a-b)+c-1&&b-c/2 的值为 。 解:1
5.设 int a=2,b=4,x,y;,表达式!(x=a)||(y=b)&&!(2-3.5) 的值为 。 解:0
6.判断变量a、b是否绝对值相等而符号相反的逻辑表达式为 。 解:a==-b
7.判断变量a、b中必有且只有一个为0的逻辑表达式为 。 解:a*b==0&&a+b!=0
8.设int m=2,n=2,a=1,b=2,c=3;执行语句d=(m=a==b)&&(n=b>c);后,m和n的值分别为 。
解:m为0,n为2 9.设int a=2;,表达式“a%2!=0”的值为 。 解:0
10.设char c='y';,表达式“c>='a'&&c<='z'|| c>='A'&&c<='Z'”的值为 。 解:1
x+2
11.写出与代数式 (x+2)e 对应的C表达式 。 解:(x+2)*exp(x+2)
12.设int a=2;执行语句a=3*5,a*4;后a的值为 。 解:15 五、写出下列程序的输出结果。
1.
#include void main() {
unsigned k,n;
scanf(\输入数据为:69 k=n*10+n/10;
printf(\}
解:n=69 k=96 2.
#include void main() {
int x=2,y=3; x*=y+4;
printf(\x/=y=5;
printf(\x-=y%2;
printf(\} 解:14,3
7
2,5 1,5
3.
#include void main() {
int a, b; a=8; b=7;
a=(a-- ==b++)? a%3 : a/3; printf(\}
解:a=2 b=8 六、程序填空题。
1.以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。例如输入1 2 3,输出a=2 b=3 c=1。 #include void main()
{ int a,b,c, ① ;
printf(“Enter a,b,c:”); scanf(“%d%d%d”, ② ); ③ ; a=b; b=c; ④ ;
printf(“a=%d b=%d c=%d\\n”,a,b,c); }
解:① t ② &a,&b,&c ③ t=a ④ c=t
2.以下程序不借助任何变量把a、b中的值进行交换。 #include void main() { int a,b;
printf(“Input a,b:”); scanf(“%d%d”, ① );
a+= ② ; b=a- ③ ; a- = ④ ; printf(“a=%d b=%d\\n”,a,b); }
解:① &a,&b ② b ③ b ④ b 七、编程题。
1.输入3个字符后,按各字符ASCII码从小到大的顺序输出这些字符。 解:#include void main()
{ char c1,c2,c3,t,min,mid,max;
c1=getchar(); c2=getchar(); c3=getchar(); min=(t=c18
max=(t=c1>c2?c1:c2)>c3?t:c3; mid=c1+c2+c3-min-max; putchar(min); putchar(mid); putchar(max);
}
2.输入两点坐标(x1,y1)、(x2,y2),计算并输出两点间的距离。 解:#include
#include void main() {
double x1,y1,x2,y2,d;
printf(“请输入两点坐标 (x1,y1),(x2,y2)\\n”); scanf(“(%lf,%lf),(%lf,%lf)”,&x1,&y1,&x2,&y2); d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); printf(“两点间距离=%f\\n”,d); }
3.编写程序,计算球体积并输出它的值。要求输入半径值,计算结果保留三位小数。 解:#include #include #define PI 3.1415926 void main() { double r,gv;
printf(“请输入半径值:\\n”); scanf(“%lf”,&r); gv=4.0/3*PI*pow(r,3);
printf(“半径为%f的球的体积为:%.3f\\n”,r,gv);
}
4.输入三角形的底和高,求三角形面积。
解:#include #define PI 3.14159 void main() {
double a,h,s;
printf(“请输入三角形的底,高\\n”); scanf(“%lf,%lf”,&a,&h); s=a*h/2;
printf(“三角形面积=%f\\n”,s);
}
5.编写程序,输入一个实数后输出该数的绝对值。
解:#include void main() {
double x,y;
9