登录   |   注册
    准考证打印   论文投票   报考指南   论文辅导   软考培训   郑重申明  
您现在的位置:  首页 > 软考学苑 > 程序员 > 下午应用技术 >> 正文
正文
2018上半年程序员考试下午真题(二)【尚大教育】
来源: 作者: 时间;2018-06-13 15:12:03 点击数: 尚大软考交流群:376154208
  ● 阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。  【C代码1】  float adjust Salary(int service_year,int age,float salary){  if(service_year<=5){  if(age>30)  salary*=1.2;  }  else  salary*=2.0;  return salary;  }  【C代码2】  void foo(int coin){  switch (coin){  case 1:
<尚大教育,教育至上,人才为大:sdedu.cc>

  ● 阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。

  【C代码1】

  float adjust Salary(int service_year,int age,float salary){

  if(service_year<=5){

  if(age>30)

  salary*=1.2;

  }

  else

  salary*=2.0;

  return salary;

  }

  【C代码2】

  void foo(int coin){

  switch (coin){

  case 1: printf("Centn");

  case 5: printf("Nicke1n");break;

  case 10: printf("Dimen");

  case 25: printf("Quartern");

  }

  }

  【C代码3】

  int get Sum(int n)

  {

  Int t,i=0,sum=0;

  while(i<n){

  scanf( "%d",&t);

  if(t<0)

  continue;

  sum+=t

  i++;

  }

  return sum;

  }

  【问题1】(3分)

  对于【C代码1】,写出下面的函数调用后x1、x2和x3的值。

  x1=adjust Salary(1,25,9000.0);

  x2=adjust Salary(8,32,7000.0);

  x3=adjust Salary(5,41,5000.0);

  【问题2】(6分)

  (1)写出函数调用为foo(1)的输出结果;

  (2)写出函数调用为foo(5)的输出结果

  (3)写出函数调用为foo(10)的输出结果;

  (4)写出函数调用为foo(25)的输出结果。

  【问题3)(6分)

  (1)简要说明【C代码3】中的函数get Sum()的功能;

  (2)程序员小王将函数get Sum改写后得到下面的函数get Sum_v2(即用for语句来描述循环)。请问,get Sum_v2的功能是否与【C代码3】的get Sum完全相同,若不同请说明原因。

  int get Sum_v2(int n)

  {

  int t,i=0,sum=0;

  for(i=0;1           scanf("%d",&t);

  if(t<0)

  continue;

  sum+=t;

  }

  return sum;

  }

  ● 阅读以下说明和C代码,填写代码中的空(1)~(6),将解答写入答题纸的对应栏内。

  【说明】

  下面的C代码在输入的100个英文单词中找出最小单词和最大单词。约定每个单词是仅由英文字母构成的字符串,且都不超过20个字符。单词词的大小按照字典序定义。例如,单词“entry”大于“enter"、“art”小于“ article”、“an”等于“An”。

  【C代码】

  #include <stdio.h>

  #define NUMBER 100

  int is Valid(const char*s1);      //若字符串s1仅包含英文字母则返回1,否则返回0

  char to Lower(char ch);        //将大写字母转换为小写字母

  int usr_strcpy(har*s1,char*s2);   //比较字符串s1和s2,相等时返回0,

  //s1大则返回正整数,s1小则返回负整数

  void usr_strcpy(char*s1,const char*s2);//字符串s2拷贝给s1

  int main__(4)__

  {   char word [32]:

  char max Word[32]="", min Word[32] ="";

  int num Word=0;

  while(num Word<NUMBER){

  scanf("%s",(1));        //输入一个单词存入word

  if(is Valid(word)){

  if(0==num Word){usr_strcpy(min Word,word):usr_strcpy(max Word,word);}

  num Word++;

  if(    (2)   >0)           //调用usr_strcpy比较单词

  usr_strcpy(max Word,word);//用max Word记下最大单词

  else

  if(  (3)   <0)         //调用usr_strcpy比较单词

  usr_strcpy(min Word,word);  //用min Word记下最小单词

  }

  }

  printf("max Word=%s min Word=%sn",max Word,min Word);

  return 0;

  }

  int is Valid(const char*s)

  {

  for(;*s;s++)

  if(!(*s>='a'&&*s<='z')&&!(*s>='A'&&*s<='Z'))

  return 0;

  return 1;

  }

  Char to Lower(char ch)

  {//若ch为大写字母则返回其小写形式,否则直接返回原字符

  if(ch>='A'&&ch<='Z')

  ch=(4)+'a';

  return ch;

  }

  Int usr_strcpy(char*s1,char*s2)

  {  //按字典序比较两个英文单词,若s1表示的单词大,则返回正整数,

  //若s1表示的单词小,则返回负整数;否则返回0

  for(;  (5)  ;){

  if(to Lower(*s1)==to Lower(*s2)) {s1++,s2++;}

  else

  break;

  }

  return(to Lower(*s1)-to Lower(*s2));

  }

  void usr_strcpy(char*s1,const char*s2)

  {   //将s2表示的字符串复制给s1

  for(;(6);)

  *s1++=*s2++;

  *s1='�';

  }

<尚大教育,教育至上,人才为大:sdedu.cc>
 
   各省软考办 
 
来顶一下
返回首页
返回首页
上一篇:返回列表
下一篇:2018上半年程序员考试下午真题(三)【尚大教育】
 相关文章
 
 
跟贴共
笔 名 :   验证码:
网友评论仅供其表达个人看法,并不表明尚大教育同意其观点或证实其描述
距离2023年05月27-28日软考考试还有
尚大软考交流群:376154208
软考各地考务机构
历年真题汇总




各省市软考报名简章