习题一
一.填空题
1.i 为 int 型变量,且初值是 3,有表达式 i++3,则
该表达式的值是
0 ,变量 i 的值是 4
2.i 为 int 型变量,且初值是 2,有表达式++i3, 则
该表达式的值是
0 ,变量 i 的值是 3
。
。
3.i 为 int 型变量,且初值是 3,有表达式 i=i+=i5,则
,变量 i 的值是 18
该表达式的值是
18
。
4.i 为 int 型变量,且初值是 3,有表达式 i=(a=5,b=10)+(i+=b, b+=a),
则该表达式的值是 25
,变量 i,a,b 的值分别是
25,5,15
。
5.i 为 int 型变量,且初值是 3,有表达式 i=(i+=i, i=i), i10, i%4,则
该表达式的值是 0 ,变量 i 的值是 36
6.说明变量为双精度的关键字是
double
。
。
7.在 Turbo C 中,整型数据的表示形式有
3
种。
二.选择题
1.若 a, b, c, d 都是 int 型变量且初值均为 10,不正确的赋值语句是(
C )。
A.a=b=c=d;
B.a=b++;
C.a+b++;
D.d=(a=b=125)c++;
2.若 a, b, c, d 都是 float 型变量且初值为 10.95,不正确的赋值语句是(
B)。
A.a=b=15;
B.d=int(a+c);
C.a=(int)(b+1);
D.++a;
3.若 a, b, c 均为 int 型变量且有值,要交换变量 a 和 b 的值,正确的语句组是(
C )。
A.c=a, a=b, b=c;
C.c=a; a=b; b=c ;
B.a=b; b=a;
D.c=a; b=a; a=c;
4.若 a, b 均为 int 型变量,x, y 均为 float 型变量,正确的输入函数是(
B )。
A.scanf("%d%f",&a,&b);
B.scanf("%d%f",&a,&x);
C.scanf("%d%d",a,b);
D.scanf("%f%f",x,y);
5.若 x, y 均为 double 型变量,正确的输入函数是(
C )。
A.scanf("%f%f",&x,&y);
B.scanf("%d%d",&x,&y);
C.scanf("%lf%lf",&x,&y);
D.scanf("%lf%lf",x,y);
6.若 x 为 char 型变量,y 为 int 型变量,x, y 均有值,正确的输出函数是(
A )。
A.printf("%c%c",x,y);
C.printf("%f%c",x,y);
B.printf("%c%s",x,y);
D.printf("%f%d",x,y);
7.若 x, y 均为 int 型变量且有值,要输出 x, y 的值,正确的输出函数是(
D
)。
A.printf("%d%d",&x,&y);
C.printf("%f%d",x,y);
B.printf("%f%f",x,y);
D.printf("%d%d",x,y);
8.x 为 int 型变量,且值为 2345,不正确的输出函数是( D
)。
A.printf("%d",x);
C.printf("%c",x) ;
B.printf("%3d",x);
D.printf("%s",x);
- 1 -
习题二
一.写出下列程序的运行结果
1.下面程序的运行结果是(
D )。
main( )
{int a, b;
a=23; b=87;
printf("%d%d\n",a,b);
}
A. 23
87
B.23,87
C. a=23
b=87
D.2387
2.下面程序的运行结果是( B
)。
main( )
{float x, y;
x=12.34; y=0.00045;
printf("%f,%f",x,y);
}
A.12.34,0.00045
C.12.34 0.00045
3.下面程序的运行结果是( A
)。
main( )
{int h=34, k=56;
printf("h=%d\nk=%d\n",h,k);
B.12.340000,0.000450
D.12.340000 0.000450
}
A. h=34
k=56
B.h=34
k=56
C.34
56
D. 34
56
4.下面程序的运行结果是(
B )。
main( )
{float x=12.34567, y=345.2354;
printf("x=%5.3 f, y=%5.3 f ",x,y);
}
A.12.346,345.235
B.x=12.346, y=345.235
C.12.345670,345.235000
D.x=12.34567, y=345.2354
5.下面程序的运行结果是(
C )。
main( )
{int s=3, w=5;
printf("%u, %u, %d, %d",s,w,s,w);
}
A.3,5,3,5
B.3 5 3 5
C.65533,5,3,5
D.65533,65531,3,5
- 2 -
习题二
6.运行下面程序时若从键盘输入:123 45 6789 输出结果是(
A
)。
main( )
{ int a, b, c;
scanf("%3d%3d%3d",&a,&b,&c);
printf("a=%d, b=%d, c =%d", a,b,c) ;
}
A.a=123, b=45, c=678
B.a=123 b=454 c=678
C.123, 45, 678
D.a=123, b=456, c=789
7.运行下面程序时若从键盘输入:123456789 输出结果是(
B )。
main( )
{int a, b, c;
scanf("%3d%3d%3d",&a,&b,&c);
printf("a=%d, b=%d, c=%d",a,b,c);
}
A.a=123, b=45, c=678
B.a=123, b=456, c=789
C.123, 456, 789
D.a=123 b=456 c=789
8.以下程序若 a=12, b=45, c=3467, 正确的数据输入方法是(
C )。
main( )
{int a, b, c;
scanf("a=%db=%dc=%d",&a,&b,&c);
printf("%d, %d, %d\n",a,b,c);
}
A.a=12 b=45c=3467
C.a=12b=45c=3467
二.填空题
1.C 语句的最后用
; 结束。
B.12 45 3467
D.a=12 b=45 c=3467
2.执行 printf("%d",045); 函数的结果是
37
。
3.执行 printf("%u\n",-0x2a); 函数的结果是
44
。
4.若 x 是整型,且 x = 1,执行 printf("%o\n", x ); 函数的结果是
177777
。
5.若一个 C 程序包含若干个函数,程序的执行总是从
main
函数开始。
- 3 -
习题三
1.设 a=1, b=2, c=3,写出下列关系表达式的值
(1)(a(a=c
0 。
0 。
1 。
1 。
2.设 a=1, b=2, c=3, d=4 写出下列逻辑表达式的值
(1)a && b && c
(2)a || !b || !c
(3)++a || b++ && ++c || d++
(4)(!(a+b)+c1)&& (b+c/2)
(5)a !=11 && b<4
1 。文档顶端
1 。
1 。
1 。
1 。
3.设 x=y=z=1,则执行逻辑表达式++x || ++y && ++z 后,x,y,z 的值分别为
-1,
0,0
。
4.设 x=y=z=1, 执行逻辑表达式++x && y || ++z 后,x, y, z 的值分别为
2,
0,1
。
5.设 a=1, b=2, c=3, d=4, x=1, y=1,则执行逻辑表达式(x=a>b) && (y=c>d)后,x,y
的值分别为
0,1
。
6.在以下一组运算符中,优先级最高的运算符是( B )
A.<=
B.=
7.以下程序的运行结果是
0,0,4
C.%
。
D.&&
main( )
{ int a=1, b=4, k;
k=(++a<0) && !(b<=0);
printf("%d,%d,%d\n",k,a,b);
}
8.在 C 中,下列哪一个表达式能正确表示 a 10 或 a 0( C )
A.a>=10 or a<=0
C.a>=10 || a<=0
B.a>=10 | a<=0
D.a>=10 && a<=0
9.若 a,b,c 均为 int 型变量,则执行以下语句后,a,b,c 的值分别为
2,1,1
。
a=b=c=1;
++a || ++b && ++c
- 4 -
习题三
10.给出下列程序的输出结果
(1) main( )
{int a, b, c;
a='E'; b='J'; c='W';
if (a>b)
if (a>c) printf("%c\n",a);
else printf("%c\n",c);
else if (b>c) printf("%c\n",b);
else printf("%c\n",c);
}
结果是:W
(2) main( )
{int x=100, a=10, b=20, OK1=5, OK2=0;
if (a5) printf("%d", x);
else printf("%d\n",x);
}
输入 6 时,结果是:7
输入 4 时,结果是:4
11.若有定义:float x; int a, b; 再有下面 4 个 switch 语句
A.switch(x)
{case 1.0: printf("\n");
case 2.0: printf("\n");}
B.switch(x)
{case 1,2: printf("\n";)
case
3: printf("\n");}
C.switch(a+b);
{case 1
: printf("\n");
case 1+2: printf("\n");}
D.switch(a+b)
{case 1: printf("\n");
case 2: printf("\n");}
正确的 switch 语句是( ),其它 switch 语句错在什么地方?
- 5 -
习题四
1.下面程序若在运行时从键盘输入 3.6 2.4 ,运行结果为( B )。
#include"math.h"
main( )
{float x,y,z;
scanf("%f%f",&x,&y);
z=x/y;
while (1)
{if (fabs(z)>1.0) {x=y; y=z; z=x/y;}
else break;
}
printf("%f\n",y);
}
A.1.500000
B.1.600000
C.2.000000
D.2.400000
2.下面程序的输出是( D )。
main( )
{int x=3,y=6,a=0;
while (x++!=(y=1))
{a+=1;
if (y
=0,xamax) amax=x;
if (
) amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
- 6 -
习题四
4.下面程序的输出是: 0 。
main( )
{int x=2;
while (x);
printf("%d\n",x);
}
5.下面程序的运行结果为: 16
。
main( )
{int i=0, sum=1;
do
{sum+=i++;}
while (i<6);
printf("%d\n",sum);
}
6.C 语句中,下列说法中正确的是( D )。
A.不能使用 do-while 语句构成的循环;
B.do-while 语句构成的循环必须用 break 语句才能退出;
C.do-while 语句构成的循环,当 while 语句中的表达式值为非零时结束循环;
D.do-while 语句构成的循环,当 while 语句中的表达式值为零时结束循环。
7.下面程序的输出结果是: 852
。
main( )
{int y=9;
for ( ; y>0; y)
if (y%3==0)
{printf("%d",y);
continue;
}
}
8.若 x 是 int 型变量,且有下面的程序段,其运行结果为(D )。
for (x=3; x<6; x++) printf((x%2)?("%d"):("##%d\n"),x);
A.3
##4
5
B. ##3
3
##5
C. ##2
4##5
D. 3##4
5
- 7 -
习题四
9.以下程序的运行结果是( A )。
main( )
{int i;
for (i=1;i<=5;i++)
{if (i%2) printf("");
else continue;
printf("#");
}
printf("$\n");
}
A.###$
B.###$
C.##$
D.##$
10.下面程序的功能是根据以下的公式,返回满足精度 eps 要求下的值,请填空。
11
3
2
main( )
3
7
1
3
2
5
3
7
1
3
2
5
1
3
2
5
4
9
{double s=0.0, t=1.0;
int n;
float eps;
scanf("%f",&eps);
for(
{s+=t;
;t>eps; n++)
t=nt/(2n+1);
}
printf("pi=%f\n",
);
}
- 8 -