2. main()
{ int x=4,y=0,z; x*=3+2;
printf(\ x*=(y==(z=4));
printf(\ }
3. main()
{ int x,y,z; x=3; y=z=4;
printf(\ printf(\}
4. main()
{ int x=1,y=1,z=10; if(z<0)
if(y>0) x=3; else x=5;
printf(\if(z=y<0) x=3;
else if(y==0) x=5; else x=7;
printf(\printf(\ }
5. main()
{ char x=‘B’; switch(x)
{ case ‘A’: printf(“It is A.”); case ‘B’: printf(“It is B.”); case ‘C’: printf(“It is C.”); default: printf(“other.”); }
10
}
6. 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; case 3: a++;b++;
}
printf(\ } 三、 填空题 1. 若a=5,b=6,c=7,d=8,则表达式d=a/2&&b==c||!a的值为 2. 定义 int x=10,y,z;执行y=z=x;x=y==z后,变量x的值为 。 3. 分段函数:输入x,计算y值,输出y,其中:
x<0 y=2x+3 x=0,y=0
x>0,y=(x+7)/3 #include
int x,y;
scanf(\
if(x<0) (1) ; (2) y=0;
(3) y=(x+7)/3; printf(“%d”,y); } 4. 由键盘输入三个数,计算以这三个数为边长的三角形面积。 (1)
11
main() {
(2) ;
printf(\ scanf(\ if( (3) )
{ s=(a+b+c)*0.5;
s1=s*(s-a)*(s-b)*(s-c); s= (4) ;
printf(\ } (5)
printf(\ } 5. 有一方程ax2+bx+c=0,a,b,c的值由键盘输入,请编程序,打印出以下情况时方程的解。 (1) a=0,b≠0 (2) a=0,b=0,c=0 (3) a=0,b=0,c≠0 (4) a≠0,b2-4ac≥0 (5) a≠0,b2-4ac≤0 #include \main()
{ float a,b,c,d,pr,pi,x1,x2; scanf(\
printf(\ if(a==0)
{ if( (1) )
printf(\ else
if( (2) )printf(\ else printf(\ }
12
else
{ d=b*b-4*a*c; if( (3) )
{ x1=(-b+sqrt(d))/ (4) ; x2=(-b-sqrt(d))/ (5) ;
printf(\ } else
{ pr=-b/(2*a); (6) ;
printf(\ printf(\ } } } 6. 投票表决器:
– 输入Y、y,打印agree – 输入N、n,打印disagree – 输入其他,打印lose
main()
{
char c;
scanf(\
(1)
{
case ‘Y’: case ‘y’: printf(“agree”);
(2) ;
case ‘N’: case ‘n’: printf(“disagree”);
(3) ;
(4) :printf(“lose”); }
13
四、 编程 1. 写一程序求y值 (x值由键盘输入)。
?sin(x)?cos(x)?2 y??sin(x)?cos(x)?2?(x?0)(x?0)
2. 输入一个字符,判断它如果是小写字母输出其对应大写字母;
如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。 3. 有三个数a、b、c,由键盘输入,输出其中最大的数。 4. 输入一个数,判断它能否被 3或者被 5整除, 如至少能被这两个数中的一个整除则将此数打印出来,否则不打印,编出程序。 5. 读入1到7之间的某个数,输出表示一星期中相应的某一天的单词:Monday、 Tuesday等等,用switch语句做。 6. 给出一百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’,90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。 7. 有一函数
?40?15x?10?50??50?10(x?30)15 y???20?40?(x?45)30??60?10(x?75)?15?无意义?(0?x?15)(15?x?30)(30?x?45)(45?x?75)(75?x?90)(其它)
请编程序计算y的值(x的值由键盘输入)。
14