1.选择题
(1)两次运行以下程序时,如果从键盘上分别输入6和4,则输出结果是 。
#include <stdio.h>
main()
{
int x;
scanf("%d",&x);
if(x++>5) printf("%d",x);
else printf("%d\n",x--);
}
A.7和5 B.6和3
C.7和4 D.6和4
(2)若k是int型变量,则以下程序片段的输出结果是 。
k=-3;
if(k<=0) printf("####");
else printf("&&&&");
A.#### B.&&&&
C.####&&&& D.有语法错误,无输出结果
(3)若执行以下程序时,从键盘上输入2.0<CR>,则输出结果是 。
#include <stdio.h>
main()
{
float x,y;
scanf("%f",&x);
if(x<0.0) y=0.0;
else if((x<5.0)&&(x!=2.0))
y=1.0/(x+2.0);
else if(x<10.0) y=1.0/x;
else y=10.0;
printf("%f\n",y);
}
A.0.000000 B.0.250000
C.0.500000 D.1.000000
(4)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:
switch(y)
{
case 0: a++; break;
case 1: b++; break;
}
case 2:
a++;
b++;
break;
}
printf("a=%d,b=%d\n",a,b);
}
A.a=2, b=1 B.a=1, b=1
C.a=1, b=0 D.a=2, b=2
(5)若执行下以下程序时,从键盘上输入3和4,则输出结果是 。
#include <stdio.h>
main()
{
int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b) s=b;
s=s*s;
printf("%d\n",s);
}
A.14 B.16 C.18 D.20
(6)关于以下程序,说法正确的是 。
#include <stdio.h>
main()
{
int x=3,y=0,z=0;
if(x=y+z) printf("* * * *");
else printf("# # # #");
}
A.有语法错误不能通过编译
B.输出* * * *
C.可以通过编译,但是不能通过连接,因而不能运行
D.输出# # # #
(7)若执行以下程序时,从键盘上输入5,则输出结果是 。
#include <stdio.h>
main()
{
int x;
scanf("%d",&x);
if(x++>5) printf("%d\n",x);
else printf("%d\n",x--);
}
A.7 B.6 C.5 D.4
(8)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int x=100,a=10,b=20,ok1=5,ok2=0;
if(a<b)
if(b!=15)
if(!ok1)
x=1;
else
if(ok2)x=10;
x=-1;
printf("%d\n",x);
}
A.-1 B.0
C.1 D.不确定的值
(9)若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 。
A.a<>0 B.!a C.a=0 D.a
(10)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int a=-1,b=4,k;
k=(++a<0) && !(b--<=0);
printf("%d%d%d\n",k,a,b);
}
A.104 B.103 C.003 D.004
(11)表达式10!=9的值是 。
A.true B.非0值 C.0 D.1
(12)能正确表示a≥10或a≤0的关系表达式是 。
A.a>=10 or a<=0 B.a>=10 | a<=0
C.a>=10 || a<=0 D.a>=10 || a<=0
(13)设a为整型变量, 不能正确表达数学关系10<a<15。
A.!(a<=10)||!(a>=15) B.a>10&&a<15
C.!(a<=10||a>=15) D.!(a<=10)&&!(a>=15)
(14)若有以下定义:
float x; int a,b;
则正确的switch语句是 。
A.switch(x) B.switch(x)
{ {
case1.0: printf("*\n"); case1,2: printf("*\n");
case2.0: printf("**\n"); case3: printf("**\n");
} }
C.switch (a+b) D.switch (a+b);
{ {
case 1: printf("\n"); case 1:printf("*\n");
case 1+2: printf("**\n"); case 2:printf("**\n");
} }
(15)设所有变量均已正确说明,以下程序片段运行后,x的值是 。
a=b=c=0;
x=35;
if(!a) x--;
else if(b);
if(c) x=3;
else x=4;
A.34 B.4 C.35 D.3
(16)能正确表示关系x<=y<=z的C语言表达式是 。
A.(x<=y)&&(y<=z) B.(x<=y)and(y<=z)
C.(x<=y<=z) D.(x<=y)&(y<=z)
(17)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int m=5;
if(m++>5) printf("%d\n",m);
esle printf("%d\n",m--);
}
A.7 B.6 C.5 D.4
(18)当a=1,b=3,c=5,d=5时,执行以下程序片段后,x的值为 。
if(a<b)
if(c<d) x=1;
else
if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
A.1 B.2 C.3 D.6
(19)设有如下定义:int x=l,y=-1;,则语句printf("%d\n",(x--&++y));的输出结果是
。
A.1 B.0 C.-1 D.2
(20)当c的值不为0时,以下选项中,能正确将c的值赋给变量a、b的是 。
A.c=b=a; B.(a=c) || (b=c) ;
C.(a=c) &&(b=c); D.a=c=b;
(21)语句printf("%d \n",12 &012);的输出结果是 。
A.12 B.8 C.6 D.012
(22)能正确表示a和b同时为正或同时为负的逻辑表达式是 。
A.(a>=0‖b>=0)&&(a<0‖b<0) B.(a>=0&&b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0) D.a*b>0
(23)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int a=-1,b=1,k;
if((++a<0) && !(b--<=0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);
}
A.-1 1 B.0 1 C.1 0 D.0 0
(24)与语句y=(x>0?1:x<0?-1:0);的功能相同的if语句是 。
A.if(x>0) y=1; B.if(x)
else if(x<0) y=-1; if(x>0) y=1;
else y=0; else if(x<0) y=-1;
else y=0;
C.y=-1 D.y=0;
if(x) if(x>=0)
if(x>0) y=1; if(x>0) y=1;
else if(x==0) y=0; else y=-1;
else y=-1;
(25)若有定义语句float w;int a, b;,则正确的switch语句是 。
A.switch(w) B.switch(a);
{ case 1.0: printf("*\n"); { case 1 printf("*\n");
case 2.0: printf("**\n"); case 2 printf("**\n");
} }
C.switch(b) D.switch(a+b);
{ case 1: printf("*\n"); { case 1: printf("*\n");
default: printf("\n"); case 2: printf("**\n");
case 1+2: printf("**\n"); default: printf("\n");
} }
(26)能正确表示逻辑关系a≥=10或a≤0的C语言表达式是 。
A.a>=10 or a<=0 B.a>=0|a<=10
C.a>=10 &&a<=0 D.a>=10‖a<=0
(27)以下程序的输出结果 。
#include <stdio.h>
main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++; b++;
}
printf("a=%d,b=%d\n",a,b);
}
A.a=2,b=1 B.a=1,b=1
C.a=1,b=0 D.a=2,b=2
(28)以下程序的输出结果是 。
#include <stdio.h>
main()
{
float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
printf("%f\n",y);
}
A.0.000000 B.0.250000 C.0.500000 D.1.000000
(29)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int a=2,b=-1,c=2;
if(a<b)
if(b<0) c=0;
else c++;
printf("%d\n",c);
}
A.0 B.1 C.2 D.3
(30)执行以下程序片段后,x的值为 。
int a=14,b=15,x;
char c='A';
x=(a&&b)&&(c<'B');
A.ture B.false C.0 D.1
(31)设x、y、t均为int型变量,则执行语句x=y=3; t=++x||++y;后,y的值为 。
A.不定值 B.4 C.3 D.1
(32)若执行以下程序时,从键盘上输入9,则输出结果是 。
#include <stdio.h>
main()
{
int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
}
A.11 B.10 C.9 D.8
(33)若a、b、c1、c2、x、y均为整型变量,则正确的switch语句是 。
A.swich(a+b); B.switch(a*a+b*b)
{ {
case 1: y=a+b; break; case 3:
case 0: y=a-b; break; case 1: y=a+b; break;
} case 3: y=b-a; break;
}
C.switch(a-b) D.switch a
{ {
default: y=a*b; break; case c1: y=a-b; break;
case 3: case 4: x=a+b; break; case c2: x=a*d; break;
case 7: case 9: y=a-b; break; default:x=a+b;
} }
(34)若变量c为char型,能正确判断出c为小写字母的表达式是 。
A.'a'<=c<= 'z' B.(c>= 'a')||(c<= 'z')
C.('a'<=c)and ('z'>=c) D.(c>= 'a')&&(c<= 'z')
(35)设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则运算逻辑表达式(m=a>b)&&(n=c>d)后,n的值为 。
A.0 B.1 C.2 D.3
(36)若执行以下程序时,从键盘上输人5,则输出结果是 。
#include <stdio.h>
main()
{
int x;
scanf("%d",&x);
if(x--<5) printf("%d",x);
else printf("%d",x++);
}
A.3 B.4 C.5 D.6
(37)设w、x、y、z、m均为int型变量,以下程序片段运行后,m的值是 。
w=1; x=2; y=3; z=4;
m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;
A.4 B.3 C.2 D.2
(38)整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是
。
A.x || y B.x | y C.x & y D.x ^ y
(39)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):b);
}
A.5 B.4 C.6 D.不确定
(40)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A.1 B.0 C.非0值 D.-1
(41)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
A.0 B.1 C.2 D.3
(42)设已有定义语句int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是 。
A.6 B.0 C.2 D.1
(43)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int a=15,b=21,m=0;
switch(a%3)
{
case 0: m++; break;
case 1: m++;
switch(b%2)
{
default: m++;
case 0: m++; break;
}
}
printf("%d\n",m);
}
A.1 B.2 C.3 D.4
2.上机操作题
(1)编写一个程序,输入三个整数,按由大到小的顺序输出这三个数。
(2)编写一个程序,要求用户输入运算数和四则运算符,输出计算结果。
(3)编写一个程序,求三个整数中的最大值。
(4)利用如下函数编写一个程序,要求输入一个x值,输出y值。