C.a>10&&a<15 D.!
(a<=10)&&!
(a>=15)
3.在以下一组运算符中,优先级最高的是 。
A.<= B.= C.% D.&&
4.设a,b,c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是 。
A.’a’&&’b’ B.a<=b C.c||+c&&b-c D.!
((a
c||1)
5.在C语言的if语句中,用作判断的表达式为 。
A.关系表达式 B.逻辑表达式 C.算术表达式 D.任意表达式
6.在以下运算符中,优先级最高的运算符是 。
A.<= B./ C.!
= D.&&
7.假设所有变量均为整型,表达式(a=2,b=5,a>b?
a++:
b++,a+b)的值是:
。
A.7 B.8 C.9 D.2
8.在C语言中,能代表逻辑值"真"的是 。
A.true B.大于0的数 C.非0整数 D.非0的数
9.在以下运算符中,优先级最高的运算符是 。
A.!
B.= C.+ D. ||
10.逻辑运算符两侧运算对象的数据类型 。
A.只能是0或1 B.只能是0或非0正数
C.只能是整型或字符型数据 D.可以是任何类型的数据
11.当执行以下程序段时,供选择的答案是___________。
x=-1;do{ x=x*x; } while(!
x);
A. 循环体将执行一次 B.循环体将执行两次
C.循环体将执行无限次 D.系统提示有语法错误
12.执行语句:
for(i=1;i++<4;);后,变量i的值,供选择的答案是___________。
A. 3 B.4 C.5 D.不定
13.以下for循环是:
for(x=0,y=0;(y!
=123)&&(x<4);x++);
A. 无限循环 B.循环次数不变 C.执行4次 D.执行3次
14.若i,j已定义为int类型,则以下程序段中
for(i=5;i;i--)
for(j=0;j<4;j++){…}
内循环体的总的执行次数,供选择的答案是___________。
A. 20 B.24 C.25 D.30
15.执行下列程序段后,变量i的正确结果,供选择的答案是___________。
inti=10,j=0;
do{ switch(i)
{ case9 :
i++;
case10:
i++;
case11:
i++;
defaut :
i++;
}
}while(j);
A.10 B.11 C.12 D.13
16.若a,b均为int型变量,且a=100,则关于循环语句
for(b=100;a!
=b;++a,b++)printf(“---“);
的正确说法,供选择的答案是___________。
A. 循环体只执行一次, B.是死循环,
C.循环体一次也不执行, D.输出---.
17.以下不正确的描述,供选择的答案是___________。
A. 用while和do-while循环时,循环变量初绐化的操作应在循环语句之前完成;
B. while循环是先判断表达式,后执行循环语句;
C. do-while和for循环均是先执行循环体语句,后判断表达式;
D. for,while和do-while循环中的循环体均可以由空语句构成.
18.C语言中while和do-while循环的主要区别是
A.do-while的循环体至少无条件循环一次.
B.while的循环控制条件比do-while严格.
C.do-while允许从外部转到循环体内.
D.do-while的循环体不能是复合语句.
19.在下列选项中,没有构成死循环的程序段,供选择的答案是___________。
A.int i=100; B.for(;;);
while
(1)
{i=i%100+1;
if(i>100)break;
}
C. int k=1000; D. int s=36;
do{++k;}while(k>=10000); while(s);--s;
20.以下程序的输出结果是:
。
#include “stdio.h”
main()
{ inti;
for(i=1;i<=5;i++)
{if(i%2) printf(“*”);
elsecontinue;
printf(“#”);
}
printf(“$\n”);
}
A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$
21.以下程序执行 次
#include“stdio.h”
#defineN2
#defineMN+1
#defineNUM(M+1)*M/2
main()
{inti,n=0;
for(i=1;i<=NUM;i++){n++;printf(“%d”,n);}
printf(“\n”);
}
A.5 B.6 C.8 D.9
二、填空题:
1.表示条件:
102.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 。
3.为表示关系x³y³z,应使用C语言表达式是 。
4.表达式:
10!
=9的值是 。
5.能正确表示a³10或a£0的关系表达式是 。
6.若已知a=10,b=20,则表达式!
a
7.为了避免嵌套的条件语句if-else的二义性,C语言规定:
else与 匹配。
8.C语言用 表示逻辑“真”值。
9.当a=3,b=2,c=1时,表达式f=a>b>c的值是 。
10.设y为int型变量,请写出描述“y是奇数”的表达式 。
11.设x,y,z为int型变量,请写出描述“x或y中有一个小于z”的表达式 。
12.已知a=7.5,b=2,c=3.6,表达式a>b&&c>a||a
c>b的值是 。
13.while(x)表示while(x )。
14.break语句表示 。
15.while
(1){…}表示 。
16.执行for(i=1,s=0;i<=100;i++){s+=i;}后,s的值为 。
17.程序:
i=1;s=0;
do{s=s+i;
i++;}while(i<=100);
用for语句改写上面的程序段为 。
18.程序段:
for(i=1;i<=2;i++)
{scanf(“%d,%d”,&x,&y);
if(x>y){t=x;x=y;y=-t;}
printf(“%d %d”,x,y);
}
执行该程序段时,若键盘输入5,4回车及1,2回车,则输出结果为 。
19.执行下列语句:
for(i=1,s=0;i<=2;i++)
for(j=1;j<=3;j++)
{s=s+i+j;}
后,s的值为 。
20.执行下列语句:
scanf(“%c”,&ch);
while(ch!
=’#’)
{printf(“%c”,ch+1); scanf(“%c”,&ch); }
要使得输出结果为cdef,则输入为 。
21.以下程序当键盘输入12345-1<回车>时,运行结果是:
#include“stdio.h”
main()
{ intk=0,n;
do{scanf(%d”,&n);k+=n;}while(n!
=-1);
printf(“k=%dn=%d\n”,k,n);
}
22.下列程序段的运行结果是:
for(i=4;i<=1;i--)
for(j=1;j<=i;j++)putchar(‘#’);
23.下列程序段要求从键盘输入字符,当输入字母为Y时,循环停止,填空.
while(_______!
=’Y’){......}
三、判断题:
1.下面程序 main()
{intx=3,y=0,z=0;
if(x=y+z)
printf(“****”);
else
printf(“####”);
}
执行该程序后输出为####。
( )
2.若K是int型变量,且有下面的程序段:
k=-3
if(k<=0)printf(“####”)
else printf(“&&&&”);
上面程序段的输出结果是####。
( )
3.设x和y都是int型变量,则以下语句:
x+=y;y=x-y;x-=y;的功能是交换x和y的值。
( )
4.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为0。
( )
5.C语言中无逻辑变量,也无逻辑表达式。
( )
6.do{……}while(0);程序块至少会执行一次.( )
7.语句for(i=0;i=10;i++){---};至多循环10次.( )
8.求一批整数中的最大,最小数分别是多少的程序如下:
( )
#include “stdio.h”
main()
{int n,i,max,min,p;
scanf(“%d%d”,&n,&p);
for(i=1,max=p,min=p; i {scanf(“%d”,&p);
if(p>max) max=p;
if(p }
printf(“max=%d,min=%d”,max,min);
}
9.for(;;)表示无限循环.( )
10.下面的循环不能正常结束.( )
for(s=0,i=1;i<=10;){ s=s+i; i++;}
11.continue语句是终止整个循环的执行.( )
12.对for(表达式1;;表达式3;)可理解为for(表达式1;1;表达式3;)( )
13.下列程序段执行循环二次 ( )
x=-1; do{x=x*x;}while(!
x);
14.下列程序段能计算s=10!
的值 ( )
i=1;s=1;
do{s=s*i;i++;}while(i<=10);
15.下列程序段将输出3和0 ( )
intx=3;
do{printf(“%d\n”,x-=2);}while(!
--x));
四、程序阅读题:
1.以下程序输出的结果是 。
main()
{int m=5;
if(m++>5)
printf(“%d\n”,m);
else
printf(“%d\n”,m--);
}
2.请读程序:
#include
#include
main()
{floatx,y,z;
scanf(“%f%f”,&x,&y);
z=x/y;
while
(1)
{if(fabs(z)>1.0)
{x=y;y=z;z=x/y;}
elsebreak;
}
printf(“%f\n”,y);
}
若运行时从键盘上输入3.6 2.4<回车>,则输出结果为 。
3.以下程序的运行结果是 。
main()
{intx=1,y=1,z=1;
y=y+z;x=x+y;
printf(“%d,”,xy:
x);
printf(“%d,”,xx++:
y++);
printf(“%d,%d”,x,y);
}
4.以下程序的运行结果是 。
main()
{ intx,y,z;
x=3;y=z=4;
printf(“%d,”,(x>=y>=x)?
1:
0);
printf(“%d\n”,z>=y&&y>=x);
}
5.下列程序的输出结果为
main()
{ ints=7;
do{s-=2;}while(s==0);
printf(“s=%d\n”,s);
}
6.下列程序段的输出结果为
#include“stdio.h”
main()
{ ints=0,k;
for(k=7;k>=0;k--)
switch(k)
{ case1:
case4:
case7:
s++;break;
case2:
case3:
case6:
break;
case0:
case5:
s+=2;break;
}
printf(“s=%d\n”,s);
}
7.下列程序的输出结果为
main()
{ inti,j;
for(i=4;i>=1;i--)
{ printf(“*”);
for(j=1;j<=4-i;j++)printf(“*”);
printf(“\n”);
}
}
8.下列程序的运行结果为
main()
{ inti,j,sum,m,n=4;
sum=0;
for(i=1;i<=n;i++)
{ m=1;
for(j=1;j<=i;j++)m=m*j;
sum=sum+m;
}
printf(“sum=%d\n”,sum);
}
9.阅读下列程序:
#include “stdio.h”
main()
{ char ch;
while((ch=getchar())!
=’\n’)
{if(ch>=’A’&&ch<=’Z’) ch=ch+32;
elseif(ch>=’a’&&ch<=’z’) ch=ch-32;
printf(“%c”,ch);
}
printf(“\n”);
}
执行时,如果从键盘上输入:
ABCdef<回车>,则运行结果是 。
10.阅读下列程序:
#include “stdio.h”
main()
{int y=10;
do{y--;}while(--y);
printf(“%d\n”,y--);
}
该程序的运行结果是 。
11.阅读下列程序:
#include “stdio.h”
main()
{int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;x++;}
x++;
}
printf(“x=%d\n”,x);
}
该程序的运行结果是 。
12.阅读下列程序:
#include “stdio.h”
main()
{int v1=0,v2=0; char ch;
while((ch=getchar())!
=’#’)
switch(ch)
{case ‘a’:
case ‘h’:
default:
v1++;
case ‘o’:
v2++;
}
printf(“%d,%d\n”,v1,v2);
}
在执行以上程序时,如果从键盘上输入:
china#<回车>,则运行结果是 。
五、程序填空题:
1.完成下面给出的部分程序,函数所表示的数学函数关系是:
0 (x<0)
y = -1(x=0)
1 (x>0)
main()
{intx,y;