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

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

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

    6.输入一个字符串,将其中的所有大写字母改为小写字母,而所有小写字母全部改为大写字母,然后输出。
    【解】程序先输入字符率,然后顺序考察输入字符串中的字符,当发现是大写字母时,将它改写成对应的小写字母,而当它是小写字母时,就将它改写成对应的大写字母。若变量ch中的字符是大写字母,则与它对应的小写字母的表达式可以写成ch- ’A’+’a’ ;类似地,若变量ch中的字符是小写字母,则与它对应的大写字母的表达式可以写成ch-’a’+’A’ 。完整程序如下:
      # include 
      # define N 200
        main()
       { char s[N] ;
         int i;
        printf(" Enter string! \n");
        scanf ("%s" ,s);
       for(i=0; s[i]!=’\0’;i++)
       if(s[i] >=’A’&&s[i] <=’Z’ )
      s[i]=s[i] -’x’+’a’ ;
      else if(s[i] >=’a’&& s[i] <=’z’) 
      s[i]= s[i]-’a’ +’A’ ;
      printf("s=%s\n", s);
      }

    7.设某班50名学生的三科成绩表如下:
     课程一    课程二     课程三
          ...        ...        ...
    试编一个程序,输入这50个学生的三科成绩,计算并输出每科成绩的平均分。
    【解】程序定义一个50行3列的二维数组,用于存储全班学生的成绩。程序顺序输入各个学生的三科成绩,然后按列的顺序,累计各科总分,并计算平均分。完整程序如下:
     # include
     # define N 50
     # define M 3
      main()
     {int score[N][M], i,j,t;
     double a[M];
     printf("Enter scores!\n");
     for(i=0;i< N; i++)
     for(j=0;j     scanf("%d",&t);score[i][j]=t;
      }
     for(j=0;j     for(j=0;j< M;j++){ 
     for(i=0;i< N; i++)
     a[j]+= score[i][j];
    a[j]/= N;
    }
     for(j=0;j      printf("课程%d的平均分是%.2f\n", j+1,a[j]);
     }

    8.编一个程序,输入一个整型数据,输出每位数字,其间用远号分隔。例如,输入整数为2345,则输出应为: 2, 3, 4, 5。
     【解】程序的主要工作是从输入整数分拆出它的十进制整数的各位数字,将分拆出来的各位数字存于数组中,然后将这些数字自高位到低位的顺序逐位输出。要将一个整数按十进制数的要求分拆,需用一个循环,每次循环求出被分拆数除以10的余数的办法来求出它的个位,每分拆出一位就将被分拆的数除以10。循环过程直至被分拆的数为0结束。完整程序如下:
      # include 
       main()
      {int a[20],i,base=10;
       int n;
       printf("Enter a number! \n");
       scanf("%d", &n);/*整数输入*/
        i=0;/*对n进行分拆,各位数字自低位到高位存于数组 a*/
       do{
      a[i++]=n% base;
      n/= base;
      } while(n) ;
    for(i--;i>=0;i--)/*自高位到低位输出*/
       printf("%d%c",a[i], i? ’,’ :’\n’);
         }

    9.编一个程序,输入一个字符串,将其中所有的大写英文字母的代码+3,小写英文字母的代码-3。然后输出加密后的字符串。
    【解】程序的主要工作是输入字符串,并顺序考察输入字符率中的字符,分别对其中大小写英文字母完成问题要求的更改,而跳过不是英文字母的字符。完整程序如下:
      # include 
      # define N 200
        main()
       {char s[N]; int i;
        printf("Enter string! \n");
        scanf("%s", s);
        for(i=0;s[i] !=’\0’; i++)
       if(s[i] >=’A’ && s[i]=’Z’)
       s[i]=3;
       else if(s[i]=’a’&& s[i]=’z’ ) 
       s[i]=3;
       printf("s=%s\n",s);
       }

    10.编一个程序,将按第9题中加密的字符率(从键盘输入)解密后输出。
    【解】本问题编写的程序是完成上一程序的逆操作。同样是顺序考察输入字符串,对满足要求的字符作恢复更改。要求是当字符减3后是大写英文字母时,则对其作减3处理的替换;当字符加3后是小写英文字母时,则对它作加3的处理。如此做法是有错误的,程序未考虑原
先不是英文字母,而未被加3或减3处理,但对它减3或加3后是英文字母时,将被下面的程序转换成英文字母。所以下面的程序不是完成上题程序的逆操作。但没有简单的办法能避免这个错误。完整程序如下:
      # include 
      # define N 200
      main()
     {char s[N]; int i;
       printf("Enter string!\n");
       scanf("%s",s);
       for(i=0;s[i] !=’\0’;i++)
       if(s[i]-3>=’A’&&s[i]-3<=’Z’)
       s[i]-=3;
       else if(s[i]+3>=’a’ && s[i]+3<= ’Z’)
       s[i]+=3;
        printf("s=%s\n",s);
        }

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

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