一、单选题
1、若有x=1,y=2,z=3,则表达式(x<y?x:y)==z的值是( )。
A.2 B.3 C.1 D.0
答案:D
2、设整型变量a为5,使b不为2的表达式是( )。
A.b = 6-(--a) B.b = a/2 C. b=a>3?2:1 D.b=a%2
答案:D
3、下列语句不具有赋值功能的是( )
A.a+b B.a++ C.a*=b D.x=1
答案:A
4、在C语言中,要求参加运算的数必须是整数的运算符是( )。
A.% B.= C.* D./
5、以下能正确定义整型变量a、b、c并为其赋初值5的语句是( )
A.int a=5,b=5,c=5;
B.int a,b, c=5;
C.a=b=c=5;
D.int a=b=c=5;
二、判断题
1、在C语言中,所有算术运算符的优先级都相同。(×)
2、'b'和"b"是不同的两种常量。(√)
解析:前者是字符,后者是字符串。
3、一般情况下,目数越多,优先级越高。(×)
三、填空题
1、表达式10!=9 的值是( )。
答案:1或true
2、当a=3,b=2,c=1时,表达式f=a>b>c的值是( )
答案:0
四、程序题
1、输入直角坐标系中点P的坐标(x,y),若P点落在图中的阴影区域内,输出阴影部分面积,否则输出数据0。
参考代码:
#include "iostream"
#define PI 3.14
using namespace std;
int main()
{
double x,y,s,d;
cout<<"请输入x,y的值"<<endl;
cin>>x>>y;
d=sqrt(x*x+y*y);
s=(d>2&&d<4?PI*4*4-PI*2*2:0);
cout<<"s="<<s<<endl;
system ("pause");
return 0;
}
解析:注意define语句的运用。也可以将计算s的语句以if语句的形式来写。
2、任意输入3个整数数据,输出它们中最小的一个数。
参考代码:
#include "iostream"
using namespace std;
int main()
{
int a,b,c,min;
cout<<"请输入三个整数数据:"<<endl;
cin>>a>>b>>c;
min=(a<b?a:b);
min=(min<c?min:c);
cout<<"最小的数是:"<<min<<endl;
system ("pause");
return 0;
}
解析:此处运用了A?B:C的形式,还有另外一种写法就是两两比较。
3、将"fly"译成密码"iob"。编码规律:将字母a变成字母d,即变成其后的第3个字母,x变成a,y变成b, z变成c。
#include "iostream"
using namespace std;
int main()
{
char a,b,c;
cout<<"请输入三个字母:"<<endl;
cin>>a>>b>>c;
a=a=='x'?'a':a=='y'?'b':a=='z'?'c':a+3;
b=b=='x'?'a':b=='y'?'b':b=='z'?'c':b+3;
c=c=='x'?'a':c=='y'?'b':c=='z'?'c':c+3;
cout<<a<<b<<c<<endl;
system ("pause");
return 0;
}
解析:这块代码需要注意的地方就是x,y,z三个字母与其他字母的不同之处,需要单独讨论。利用好ASCII码与字母的对应关系可以适当简化代码的复杂程度。
也可以利用if语句,如:
if (a==x||a==y||a==z)
{
if(a==x)
{
a=a;
}
……
}
else
{
a=a+3;
}