2018上半年程序員考試下午真題(二)

程序員 責(zé)任編輯:胡媛 2018-05-31

添加老師微信

備考咨詢

加我微信

摘要:2018上半年程序員考試已結(jié)束,小編為大家整理了2018上半年程序員考試下午真題供考生們參考,以下為第二部分。

● 閱讀以下C代碼,回答問題1至問題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。

【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("Cent\n");

case 5: printf("Nicke1\n");break;

case 10: printf("Dime\n");

case 25: printf("Quarter\n");

}

}

【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分)

對(duì)于【C代碼1】,寫出下面的函數(shù)調(diào)用后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)寫出函數(shù)調(diào)用為foo(1)的輸出結(jié)果;

(2)寫出函數(shù)調(diào)用為foo(5)的輸出結(jié)果

(3)寫出函數(shù)調(diào)用為foo(10)的輸出結(jié)果;

(4)寫出函數(shù)調(diào)用為foo(25)的輸出結(jié)果。

【問題3)(6分)

(1)簡要說明【C代碼3】中的函數(shù)get Sum()的功能;

(2)程序員小王將函數(shù)get Sum改寫后得到下面的函數(shù)get Sum_v2(即用for語句來描述循環(huán))。請(qǐng)問,get Sum_v2的功能是否與【C代碼3】的get Sum完全相同,若不同請(qǐng)說明原因。

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),將解答寫入答題紙的對(duì)應(yīng)欄內(nèi)。

【說明】

下面的C代碼在輸入的100個(gè)英文單詞中找出最小單詞和最大單詞。約定每個(gè)單詞是僅由英文字母構(gòu)成的字符串,且都不超過20個(gè)字符。單詞詞的大小按照字典序定義。例如,單詞“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);//將大寫字母轉(zhuǎn)換為小寫字母

int usr_strcpy(har*s1,char*s2);   //比較字符串s1和s2,相等時(shí)返回0,

//s1大則返回正整數(shù),s1小則返回負(fù)整數(shù)

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));//輸入一個(gè)單詞存入word

if(is Valid(word)){

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

num Word++;

if(    (2)   >0) //調(diào)用usr_strcpy比較單詞

usr_strcpy(max Word,word);//用max Word記下最大單詞

else

if(  (3)   <0) //調(diào)用usr_strcpy比較單詞

usr_strcpy(min Word,word);  //用min Word記下最小單詞

}

}

printf("max Word=%s min Word=%s\n",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)

{  //按字典序比較兩個(gè)英文單詞,若s1表示的單詞大,則返回正整數(shù),

//若s1表示的單詞小,則返回負(fù)整數(shù);否則返回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表示的字符串復(fù)制給s1

for(;(6);)

*s1++=*s2++;

*s1='\0';

}


>>>>>>2018上半年程序員下午真題匯總

>>>>>>查看更多程序員考試歷年真題

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢?cè)诰€老師!