习  题  三
3.1  选择题
1)下列运算符中优先级按从高到低依次排列的是  D   
    A&& ||    B||  &&  !    C&&  !  ||    D!  &&  ||
2)下面表达式值为0的是  C 
    A3%5    B3/5.0    C3>5    D3<5
3)关于if语句后面一对括号中的表达式,叙述正确的是 D   
    A.只能用关系表达式    B.只能用逻辑表达式
    C.只能用关系表达式或逻辑表达式    D.可以使用任意合法的表达式
4)对switch后括号内的表达式,叙述正确的是  C   
    A.只能是数字        B.可以是浮点数
    C.只能是整型数据或字符型数据    D.以上叙述都不对
5iX=2iY=3ch='a'表达式iZ=(iX||iY)&&(ch>'A')的值是  D   
    Atrue    Bfalse    C0    D1
6)表达式(6!=8&&('A'<'a')的值是  B   
A .true    B1    C0    D.非0
(7)  int k = x>y? (x>z?x:z) : (y>z?y:z)  语句的目的是:  A 
A  求 x, y, z 最大值        B. 求 x, y, z 最小值
C  求 x, y, z 中间值      D 求 x, y, z 平均值
8有如下程序段
int a=14,b=15,x;
char c=’A’;
x=(a&&b)&&(c<’B’);
执行该程序段后,x的值为( D  )
A ture B false C 0D 1
(9) 以下程序的输出结果是( B  )
main()
{
int a=0,i=1;
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
printf("%d\n",a);
}
A 3      B 8C10D 2
3.2  填空题
1)下面程序的输出结果是  2       
#include "stdio.h"
main()
{int i,j;
i=j=2;
if(i= =1)
    if(i==2)
printf("%d",i=i+j);
    else
printf("%d",i=i–j);
  printf("%d",i);
2)下面程序的输出结果是
  iX=3
  iX>3
iX unknow
#include "stdio.h"
main()
{int iX=3;
    switch(iX)
    {    case 1:
        case 2:printf("iX<3\n");
        case 3:printf("iX=3\n");
        case 4:
        case 5:printf("iX>3\n");
        default:printf("iX unknow\n");
    }
}
3)以下程序的运行结果是iM=3iN=4iT=3
#include "stdio.h"
main()
{int iM,iN,iT,iA=2,iB=3;
iM=(++iA==--iB)?––iA:++iB;
iN=++iA;
iT=iB;
printf("iM=%d,iN=%d,iT=%d\n",iM,iN,iT);
}
4)下面程序的输出结果是 x
#include "stdio.h"
main()
{char chT='w',chA='m',chB='d',chC='x',chM;
chM=(chT>chA)?chT:chA;
chM=(chM>chB)?chM:chB
chM=(chM>chC)?chM:chC;
printf("c%",chM);
}
5)下面程序的功能是判断一个三位数是否为水仙花数,填空使程序完整。所谓水仙花数就是该数各位上数字的立方之和等于该数。
#include "stdio.h"
main()
{ int iNum,iH,iT,iS,iSum;
  printf("please input a integer(100-999)");
    scanf("%d",&iNum);
    iS=iNum%10;    /*取得个位上的数*/
iT=iNum/10%10 ;    /*取得十位上的数*/
    iH=iNum/100;    /*取得百位上的数*/
    if(iS*iS*iS+iT*iT*iT+iH*iH*iH==iNum )
          printf("%d是水仙花数。\n",iNum);
    else
          printf("%d不是水仙花数。\n",iNum);
}
3.3  编程题
1)从键盘输入一个年份值,判断是否闰年。设iYear为某一年份,iYear为闰年的条件为:iYear可以被4整除且不可以被100整除,或者iYear可以被400整除。
#include "Stdio.h"
#include "Conio.h"
int main(void)
{
/* 此处添加你自己的代码 */
  int iYear;
  printf("please input the year:");
  scanf("%d",&iYear);
  if(iYear%400==0||(iYear%4==0&&iYear%100!=0))
    printf("%d is leap",iYear);
  else
    printf("%d is not leap",iYear);
  getch();
  return 0;
}
2)从键盘输入三个整数,按由小到大的顺序输出。
#include "stdio.h"
main()
{int i,j,k,max;
scanf("%d%d%d",&i,&j,&k);
  max=i>j?i:j;
  max=max>k?max:k;
printf("max=%d",max);
  getch();
}
3)假设星期一至星期五每工作一小时的工资是20元,星期六和星期日每工作一小时的工资是平时的3倍,其中工资的4.5%是税金。试编一程序从键盘输入星期序号(1234567,分别表示星期一至星期天)和工作小时数,计算该日的工资及应交税金。
#include "Stdio.h"
#include "Conio.h"
int main(void)
{
/* 此处添加你自己的代码 */
  int iWeek,iHours ;
  float fSalary,fTaxes;
  printf("please input the week number(1-7):");
  scanf("%d",&iWeek);
  printf("please input the work hours(1-12):");
  scanf("%d",&iHours);
  switch(iWeek){
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      fSalary=20*iHours;
      fTaxes=fSalary*0.045;
      break;
    case 6:
    case 7:
      fSalary=3*20*iHours;
      fTaxes=fSalary*0.045;
      break;
  }运算符优先级按从高到低排列
  printf("the salary is %f ,the taxes is %f",fSalary,fTaxes);
  getch();
  return 0;
}
4)从键盘输入三角形的三条边长,判断是否构成三角形,如能则求出三角形的周长和面积并输出;如不能,输出不能构成三角形的信息。
构成三角形的条件为:三角形任意两边的和大于第三边时,构成三角形。
面积计算公式为:fArea=
其中,f1,f2,f3是三角形的三条边长,fTemp=(f1+f2+f3)/2。计算一个数的平方根可用函数float sqrt(float f),该函数是数学库函数,需要在程序的开头加上#include <math.h>
#include "Conio.h"
#include "math.h"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。