A)(X>79)&&(X<90)B)(X>79)!
=(X<90)C)7979)||(X<90)
9.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是。
A)if(a)s1;elses2;B)if(a==0)s2;elses1;
C)if(a!
=0)s1;elses2;D)if(a==0)s1;elses2;
10.假定所有变量均已正确定义,则下列程序段运行后y的值是。
inta=0,y=10;
if(a=0)y--;
elseif(a>0)y++;
elsey+=y;
A)20B)11C)9D)0
解析:
此类题目可以自行编写下述测试程序进行调试验证。
#include
voidmain(){
......
printf("y=%d\n",y) ;
}
11.假定所有变量均已正确定义,则下列程序段运行后x的值是。
a=b=c=0;x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A)34B)4C)35D)3
12.C语言对嵌套if语句的规定是:
else语句总是与配对。
A)其之前最近的ifB)第一个if
C)缩进位置相同的ifD)其之前最近的且尚未配对的if
13.在C语言语句中,用来决定分支流程的表达式是。
A)可用任意表达式 B)只能用逻辑表达式或关系表达式
C)只能用逻辑表达式 D)只能用关系表达式
14.C语言中用表示逻辑“真”。
A)trueB)整数值1C)非零整数值D)false
15.若k是int型变量,且有下面的程序段,输出结果是。
intk;k=-3;
if(k<=0)printf(“####”);
elseprintf(“&&&&”);
A)####B)&&&&C)####&&&&D)有语法错误,无输出结果
16.main()
{intx=0,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++;
case2:
a++;b++;}
printf(“a=%d,b=%d\n”,a,b);}
该程序的输出结果是。
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
17.以下程序的输出结果是:
()
main()
{intx=-10,y=1,z=1;
if(xif(y<0)z=0;
elsez=z+1;
printf(“%d\n”,z);
}
A)0B)1C)2D)3
18.以下程序段的输出结果是。
inta=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%2db=%2dc=%2d\n",a,b,c);
A)a=10b=50c=10B)a=10b=30c=10C)a=50b=30c=10D)a=50b=30c=50
19.若inti=10;执行下列程序后,变量i的正确结果是。
switch(i){case9:
i+=1;
case10:
i+=1;
case11:
i+=1;
default:
i+=1;
}
A)13B)12C)11D)10
二、阅读程序,写出运行结果
1.
#include
main()
{inta=1,b=3,c=5;
if(c==a+b)
printf("yes\n");
else
printf("no\n");
}
运行结果为:
no
2.
#include
main()
{inta=12,b=-34,c=56,min;
min=a;
if(min>b)min=b;
if(min>c)min=c;
printf("min=%d",min);
}
运行结果为:
min=-34
3.
#include
main()
{intx=2,y=-1,z=5;
if(xif(y<0)
z=0;
else
z=z+1;
printf(“%d\n”,z);
}
运行结果为:
5
4.
#include
main()
{inta=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%db=%dc=%d\n",a,b,c);
}
运行结果为:
a=10b=30c=10
5.
#include
main()
{floata,b,c,t;
a=3;b=7;c=1;
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
printf("%5.2f,%5.2f,%5.2f",a,b,c);
}
运行结果为:
1.00,3.00,7.00
6.
#include
main()
{inta=2;
floatnum=3.12,x;
if(num<4)
x=2*num*a;
printf("resultis%f\n",x);
}
运行结果为:
resultis12.
7.
#include
main()
{charc=’A’;
if((‘0’<=c)&&(c<=’9’))
printf(“YES”);
else
printf(“NO”);
}
运行结果为:
NO
8.
#include
main()
{floatc=3.0,d=4.0;
if(c>d)
c=5.0;
else
if(c==d)
c=6.0;
else
c=7.0;
printf(“%.1f\n”,c);
}
运行结果为:
7.0
9.
#include
main()
{inta=0,b=1,c=0,d=20;
if(a)
d=d-10;
else
if(!
b)
if(!
c)
d=15;
elsed=25;
printf("d=%d\n",d);
}
运行结果为:
d=20
10.
#include
main()
{inta=2,b=3,c=1;
if(a>b)
if(a>c)
printf(“%d\n”,a);
else
printf(“%d\n”,c);
printf(“over!
\n”);
}
运行结果为:
over!
11.
#include
main()
{intm;
scanf("%d",&m);
if(m>=0)
{if(m%2==0)
printf("%disapositiveeven\n",m);
else
printf("%disapositiveodd\n",m);
}
else
{if(m%2==0)
printf("%disanegativeeven\n",m);
else
printf("%disanegativeodd\n",m);
}
}
若键入-9,则运行结果为:
-9isanegativeodd
12.
#include
main()
{charch;
ch=getchar();
switch(ch)
{case‘A’:
printf(“%c”,’A’);
case‘B’:
printf(“%c”,’B’);
break;
default:
printf(“%s\n”,”other”);
}
}
当从键盘输入字母A时,运行结果为:
AB
13.
#include
main()
{inta=1,b=0;
scanf(“%d”,&a);
switch(a)
{case1:
b=1;break;
case2:
b=2;break;
default:
b=10;}
printf("%d",b);
}
若键盘输入5,运行结果为:
10
14.
#include
main()
{inti=0,j=0,k=6;
if((++i>0)||(++j>0))
k++;
printf("%d,%d,%d\n",i,j,k);
}
运行的结果为:
1,0,7
三、编程题
1、输入两个数,输出较大的数。
#include
intmain(){
inta,b;
printf(“Pleaseinputtwonumbers :
”) ;
scanf(“%d%d”,&a,&b);
if(a>b)
printf(“%d\n”,a) ;
else
printf(“%d\n”,b);
return0 ;
}
2、输入一个整数,判断其奇偶性。
#include
voidmain(){
intm;
scanf("%d",&m);
if(m%2==0)
printf("%disaeven\n",m);
else
printf("%disaodd\n",m);
}
3、输入一个字符,如果是大写英文字母,将其转换为小写字母并输出,如果不是,则原样输出。
#include
intmain(){
charc1;
c1=getchar();
if(c1>=’A’&&c1<=’Z’)
c1=c1+32;
putchar(c1);
return0;
}
4、输入三个数,按照从小到大的顺序输出。
#include
intmain(){
floata,b,c,t;
scanf(“%f%f%f”,&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%f,%f,%f",a,b,c);
}
5、函数y=f(x)表示如下,编程实现输入一个x值,输出y值。
2x+1(x<0)
y=0(x=0)
2x-1(x>0)
#include
voidmain()
{intx,y;
scanf(“%d”,&x);
if(x<0)
y=2*x+1;
if(x>0)
y=2*x-1;
if(x==0)
y=0;
printf(“%d”,y);
}
6、编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:
要求当输入每月上网小时数,显示该月总的上网费用。
#include
voidmain()
{inthour;
floatfee;
printf(“pleaseinputhour:
\n”);
scanf(“%d”,&hour);
if(hour<=10)
fee=30;
elseif(hour<=50)
fee=3*hour;
else
fee=hour*2.5;
printf(“Thetotalfeeis%f”,fee);
}
7、神州行用户无月租费,话费每分钟0.6元,全球通用户月租费50元,话费每分钟0.4元。
输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。
#include
voidmain()
{floatt,szx,qqt;
printf(“请输入您的通话时间:
”);
scanf(“%f,”,&t);
szx=0.6*t;
qqt=50+0.4*t;
if(szx>qqt)
printf(“建议使用全球通”);
else
printf(“建议使用神州行);
}
8、运输公司对用户计算运输费用。
路程(skm)越远,每吨·千米运费越低。
标准如下:
s<250没有折扣
250≤s<5002%折扣
500≤s<10005%折扣
1000≤s<20008%折扣
2000≤s<300010%折扣
3000≤s15%折扣
#include
intmain(){
doubles,w,p,cost,t;//s、w、p、t、cost分别表示路程、重量、单价、折扣、费用
printf("pleaseenterprice,weight,distance:
");
scanf("%lf%lf%lf",&p,&w,&s);
if(s<0||w<0||p<0)
printf(“输入错误!
”);
else{
if(s>=3000)
t=0.15;
elseif(s>=2000)
t=0.10;
elseif(s>=2000)
t=0.10;
elseif(s>=1000)
t=0.08;
elseif(s>=500)
t=0.05;
elseif(s>=250)
t=0.08;
else
t=0;
cost=p*w*s*(1-t);
printf(“cost=%10.2f\n”,cost);
}
return0;
}
9、要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为60分以下。
成绩的等级由键盘输入。
#include
intmain(){
chargrade;
scanf("%c",&grade);
printf("Yourscore:
");
switch(grade)
{case'A':
printf("85~100\n");break;
case'B':
printf("70~84\n");break;
case'C':
printf("60~69\n");break;
case'D':
printf("<60\n");break;
default:
printf("enterdataerror!
\n");
}
return0;
}