首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 软件水平考试 > 复习资料 > 软件设计师 > 正文

软考软件设计师课后练习题:第七章习题及解答

来源:考试吧Exam8.com) 2006-12-11 8:00:42 考试吧:中国教育培训第一门户 模拟考场

    7.3    程序分析题 
  
  1.阅读下列程序,写出运行结果。(字符0的ASCII码为十六进制的30) 
   main()
   { union { char c; char i[4]; } z;
   z.i[0]= 0x39;z.i[1]= 0x36;
   printf("%c \n", z.c);
   } 
        【解】共用型变量z有两个成分,一个是字符型的c,另一个是有4个字符的数组i。由于共用型的成分是覆盖存储,成分c的内容也是成分i的首元素。程序给Z的i成分的首元素置十六进制代码0x39,即十进制数57。数57是字符’9’的ASCII代码。用字符输出格式,输出该变量的值,将输出字符’9’ 。

        2.阅读下列程序,写出程序的运行结果。
    main () 
   { struct student
   { char name[10];
    float k1; 
    float k2;
    } a[2]={ {"zhang", 100,70} ,{"wang",70,80 } },* p=a;
int i;
    printf("\nname:%s total=%f",p ->name,p -> k1+p -> k2);
    printf("\nname:%s total=%f",a[l].name, a[1].k1+a[l].k2);
  } 
      【解】结构数组a 有两个元素,每个元素有三个成分:10个元素的字符数组和两个类型为float的成分k1、k2。结构指针变量p指向结构数组a的首元素。其中初始化使a的两个元素分别有值如下:
a[0].name="zhang",a[0].k1= 100.0,a[0].k2=70.0,
a[1].name="wang",
  a[l].k1=70.0, a[1].k2 =80.0。所以程序运行后输出:
   name:zhang total = 170.000000
   name: wang total= 150.000000

        3.阅读下列程序,写出程序的运行结果。
    main ( ) 
    { enum em { em1=3, em2=l, em3 };
    char * aa[] = {"AA","BB","CC","DD" };
    printf("%s%s%s\n",aa[em1],aa[em2], aa[em3] );
    }
      【解】由枚举类型测的定义知,枚举类型常量em1的值是3,枚举类型常量em2的值是1,枚举类型常量em3的值是2。所以程序运行后输出:
     DD BB CC
  
    7.4   程序设计题 
  
   1.用结构体存放下表中的数据,然后输出每人的姓名和实发工资( 基本工资+浮动工资-支出)。
      姓名   基本工资(元) 浮动工资(元)   支出(元) 
       Li     220.00       300.00         90.00
       Xia    370.00       180.00         60.00
       Wang   620.00       0.00           70.00
        【解】程序定义struct person结构类型,包含人的姓名(<20个字符)、基本工资、浮动工资和支出,用这个struct person结构类型定义数组。程序首先输入人数n(<100),再输入n人的信息,最后输出各人的姓名和实发金额。程序如下:
   # include 
   # include 
   # define N 100
  struct person {
  char name[20] ;
  float base;
  float ds;
  float pay;
  } person[N], *p;
  void main () 
  { int n;
  float d;
  char buf[120];
  printf("输入n(<%d)! \n",N);
  do {
  scanf("%d", &n);
  if(n>0 && n  printf("输入n不合理! 请重新输入! \n" );
  } while(1);
  printf("输入%d个人的姓名、基本工资、浮动工资和支出 \n",  n);
  for( p=person; p  scanf("%s", buf); strncpy( p -> name, buf, 19);
  scanf("%f", &d); p -> base=d;
  scanf("%f",&d); p -> ds=d;
  scanf("%f", &d ); p -> pay= d;
  } 
 for(p = person; p< person+n; p++) 
  printf("%s %.2f\n",p-> name,P->base+p->ds-P -> pay);
  }

       2.编一个程序,输入10个职工的编号、姓名、基本工资、职务工资,求出其中“基本工资十职务工资”最少的职工姓名并输出。
   【解】类似上一程序,直接给出程序如下:
  # include
  # define N 10
  struct person {
  char no[10];
  char name[20];
  float base1;
  float base2;
  } person[N], *p, *minp;
  void main () 
  { float d;
  char buf[120];
  printf("输入%d个人的编号、姓名、基本工资、职务工资 \n", N);
  for(p=person; p  scanf("%s", buf); strncpy(p -> no,buf,9);
  scanf("%s", buf); strncpy( p -> name, buf, 19);
  scanf("%f", &d);p -> base1 =d;
  scanf("%f",&d);p -> base2=d;
  }
  for(minp=p=person; p  if (p -> basel+p -> base2< minp -> basel+ minp -> base2)  minp =p;
  printf("基本工资与职务工资和最少的职工是%s \n",minp -> name);
  printf("他的基本工资与职务工资和是%.2f \n",minp -> basel+ minp -> base2);
  }

更多软考资料请访问:考试吧软件水平考试栏目

上一页  1 2 3 4 下一页
文章搜索
软件水平考试栏目导航
版权声明:如果软件水平考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本软件水平考试网内容,请注明出处。