关键词不能为空

当前您在: 主页 > 英语 >

2017下半年程序员考试真题及答案-下午卷

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-20 12:58
tags:

-

2021年2月20日发(作者:yada)


2017


下半年程序员考试真题及答案


-


下午卷



试题一


< /p>


阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。

< p>


【说明】




对于大于


1


的正整数


n



(x+1)n


可展开为



下面流程图的作用是计算


(x+1)n

< p>
展开后的各项系数



i=0,1,....,n< /p>


)并依次存放在数



A[0...n]< /p>


中。方法是依次计算


k=2


< p>
3



..



n



(x


+1)k


的展开系数并存入数组


A


,在此


过程中,对任一确定的


k


,利用关系式


,按照


i


递减的顺序逐步计算并

将结果存储在数组


A


中。其中,



1




例如, 计算


(x+1)3


的过程如下:




都为


1


,因此可 直接设置


A[0]



A[k]


的值


先计算


(x+1)2 (



k=2)


的各项系数,然后计算< /p>


(x+1)3(



k=3)


的各项系数。



K=2


时, 需要计算


已有,因此将


k=3


时,< /p>


需要计算


再计算



【问题


1




【流程图】



(




,并存入

< br>A[0]



A[1]



A[2]


,其中


A[0]


A[1]


的值



(A[0])


相加得到




先计算出


(



的值并存入


A[1]



< p>
)


得到并存入


A[2]



(即


A[1]


)和

< br>,



得到


)

并存入


A[1]





注:循环开始框内应给出循环控制变量的初值和终值,默认递 增值为


1




格式为:循环控制变量


=


初值,终值,递增值。





1


2



n



1



2



A[k]



3



k-1



1



-1



4



A[i]+A[i-1]



5< /p>



A[i]




1




3< /p>



空为填写循环初值终值和递增值,


题目 中给出的格式为循环控制变量


=


初值,


终值,


递增值。按照题意,实质为求杨辉三角。如下图:




计算方式为从第


2

< br>行计算迭代到计算第


3


行,再根据第

3


行值求取第


4


行,直到计算到第


n


行。所以第一空填


2



n



1



而对于每行的求取,第


1


项结果一直为


1


,最大项一直是

< p>
1


,可以直接赋值,所以第二空填


A[k]




然后从倒数第二项开始计算,依次往前计算。



所以第三空的填


k-1



1< /p>



-1


。因为:



,故有


A[i]=A[i]+A[i-1]

< br>。


(注意


A[i]+A[i-1]


保留的


k-1


行的结果)






试题二



阅读以下说明和代码,填补代 码中的空缺,将解答填入答题纸的对应栏内。



【说明】




n


个元素进行简单选择排序的基本方法是:


第一趟从第


1


个元素开始,



n< /p>


个元素中


选出最小者,


将其交换至第一个 位置,


第二趟从第


2


个元素开始,


在剩下的


n-1


个元素中选


出最小者,


将其交换至第二个位置,


依此类推,第


i


趟从


n-i+1


个元素中选出最小元素,将


其交换至第


i


个位置,通过


n-1


趟选择最终得到非递减排序的有序序列。




【问题


1




【代码】



#include


void selectSort(int data[ ],int n)


//



data [0]~data[n-1]


中的


n


个 整数按非递减有序的方式进行排列



{


int i,j,k;


int temp;


for(i=0;i


for(k= i,j=i+1;



1



;



2


< br>) //k


表示


data[i]~data[n-1]< /p>


中最小元素的下标






if(data[j]



3




if(k!=i) {


//


将本趟找 出的最小元素与


data[i]


交换



temp=data[i];



4



;


data[k]=temp;


}


}


}



int main()


{


int arr[ ]={79,85,93,65,44,70,100,57};


int i,m;


m=sizeof(arr)/sizeof(int); //


计算数组元素的个数,用


m


表示




5



; / /


调用


selectSort


对数组< /p>


arr


进行非递减排序



for(



6



;i


按非递减顺序输出所有的数组元素


printf(“%d



t”,arr[i]);

< p>


printf(“



n” );




return 0;


}




1< /p>



j


或者


j <=n-1



2



j++



3



k=j



4



dat a[i]=data[k]



5


)< /p>


selectSort(arr,m)


此处


m


也可以填


8


或者

< br>sizeof(arr)/sizeof(int), arr


可以改成


&arr[0]



6



i=0



本题考查


C

程序设计基本技能及应用。


简单选择排序方法是设所排序序列的记录个数为


n



i



1,2,



,n-1,


从所 有


n-i+1


个记录(


Ri,Ri+1 ,



,Rn


)中找出排序码最小的记录 ,与第


i


个记录交换。执行


n-1


趟后就完成了记录序列的排序。




1


空应填


j


循环结束 条件,


j


应该运行至序列末尾。填


j< n


或者


j<=n-1





2


空填

< br>j


循环控制语句,


j


每次递增< /p>


1


,往后移动一个元素与


a[i]


进行比较。




3< /p>


空为自动保存最大元素的下标,


k=j





4


空为交 换两个元素,


temp


为临时变量,保存


data[i]


的值,使用


data[i]=data[k]


使


data[i]


为后面


n-i+1


个记录(


Ri,Ri+1,



,Rn


)中找出排序码最小的记录,再将


temp


赋给


data[k]

< br>。




5


空为调用


selectSort


对数组


arr


进行非递减排序,


selectSort


有两个参数,数组和排


序元素个数,为


select Sort(arr,m)





6


空进行元素遍历输出所有的数组元素,从下标为

0


开始,所以填


i=0







试题三



阅读以下代码和问题,回答问 题


1


至问题


3


,将解答填入答题纸的对应栏内。



【代码


1




typedef enum {A



B



C



D} EnumType;


EnumType f(int yr)


{


if(0 == yr%400) {


return A;


}


else if (!(yr%4)) {


if(0!=yr%100)





return B;


else




}


return D;


}



【代码


2




#include


int main()


{


int score;


scanf(



&score);



switch (score)



{






case 5: printf(


case 4: printf(



return C;




case 3: printf(


case 2:








}


case 1:


case 0: printf(


default: printf(


return 0;


}



【代码


3




#include


int main()


{


int i,j,k;


for(i=0; i<2; i++)




for(j=0; j<3;j++)


for( k=0; k<2;k++) {


if(i!=j&&j!=k)


printf(






}


ruturn 0;


}



【问题


1



(4



)


对于代码


1


,写出下面的函数调用后


x1



x2



x3



x4


的值。



x1 = f(1997);


x2 = f(2000);


x3 = f(2100);


x4 = f(2020);



x1=3;x2=0;x3=2;x4=1



第一个条件


0==yr%400



2000


满足 ,返回为


A


;其余都不满足,继续进行判断;

< br>


第二个条件




yr%4



1997


不满足,返回为


D


;其余满足 ,继续进行判断;



第三个条件


0< /p>



=yr%100


2020


满足,返回为


B



2100


不满足,返回为


C

< br>。



枚举类型中列出的每一个枚举符都对应着一个整数值 ,


枚举类型实际上是一个整型符号常量


的集合。当定义枚举类型 时,枚举符都已经被系统隐含地赋予了一个整型值,默认情况下,


第一个元素为


0


,第二个元素为


1


, 依此类推。所以相应的


A=0



B=1



C=2



D =3


,故返回为:


x1=3;x2=0;x3=2;x4=1< /p>




【问题


2< /p>




5


分)




1


)写出代码


2


进行时输入为


3

的输出结果;




2


)写出代码


2


进行时输入为


5


的输出结果。





1



Average




poor




Oops



Error



2



Excellent




Good





控制传递给与开关的值匹配的


case


语句。


switch


语句可以包括任意数目的


case


实例,


但是任何两个


case


语句都不能具有相同的值。


语句体从选定的语句开始执行,


直到


break


将控制传递到


case


体以外。< /p>


case


后面的常量表达式实际上只起语句标号作用


,


而不起条件


判断作用


,< /p>




只是开始执行处的入口标号

< p>


因此


,


一旦与

< p>
switch


后面圆括号中表达式的值


匹配


,


就从此标号处开始执行


,

< br>而且执行完一个


case


后面的语句后

< br>,


若没遇到


break


语句


,



自动进入


< /p>


下一个


case


继续执行


,


而不在判断是否与之匹配


,


直到遇到


break


语句才停止执行


,


退出


break


语句

< br>.


因此


,


若想执行一个


case


分之后立即跳出


switch


语句


,


就必须在此分支的

最后添加一个


break


语句。



【问题


3




6


分)



写出 代码


3


运行后的输出结果。




0 1 0


0 2 0


0 2 1


1 0 1


1 2 0


1 2 1



此题考察多重


for


循环再加上一个判定条件,


i

< p>
的取值为(


0



1




j


的取值为(< /p>


0



1



2




k

< p>
的取值为(


0



1



,只要按顺序找到


i



=j



j



=k


的组合即可。



-


-


-


-


-


-


-


-



本文更新与2021-02-20 12:58,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/668451.html

2017下半年程序员考试真题及答案-下午卷的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文