2015高考C语言题 联系客服

发布时间 : 星期六 文章2015高考C语言题更新完毕开始阅读4131080cbb4cf7ec4afed0ce

=======(答案3)======= n=sort(a,n);

第2题 (30.0分) 题号:576 难度:中 第1章 /*------------------------------------------------------- 【程序改错】

---------------------------------------------------------

题目:函数unsigned delbits(unsigned x,unsigned p,unsigned n) 把非负整数x从左端第p(p>1)位开始的n位删除,形成新的数 返回。

例如:若x为12345,p为3,n为2,形成新的数为125。 若x为12345,p为6,n为2,形成新的数为12345。 若x为12345,p为3,n为4,形成新的数为12。

请改正程序中的错误,使它能得出正确的结果。

--------------------------------------------------------- 注意:不得增行或删行,也不得更改程序的结构。

--------------------------------------------------------*/

#include

unsigned delbits(unsigned x,unsigned p,unsigned n) {

int a[10],i,j,k; i=0; while(x) {

/*******************FOUND*******************/ a[i]=x; x/=10; } k=i;

for(i=0;i

a[i]+=a[k-i-1];

a[k-i-1]=a[i]-a[k-i-1]; a[i]=a[i]-a[k-i-1]; } j=p-1;

/*******************FOUND*******************/ for(i=p+n;i<=k-1;i++)

{

a[j]=a[i]; j++; } k=j;

for(i=0;i

/*******************FOUND*******************/ x+=a[i]*10; return x; }

int main() {

unsigned x,p,n;

printf(\ scanf(\

printf(\ scanf(\

printf(\ scanf(\ x=delbits(x,p,n);

printf(\ return 0; } 答案:

=======(答案1)======= a[i++]= x; =========或========= a[i]=x,i++; =========或========= a[i]=x,++i; =========或========= a[i]=x,i=i+1; =========或========= a[i]=x,i=1+i; =========或========= a[i]=x,i+=1; =========或========= a[i]=x;i++; =========或========= a[i]=x;++i; =========或========= a[i]=x;i=i+1;

=========或========= a[i]=x;i=1+i; =========或========= a[i]=x;i+=1;

=======(答案2)======= for(i=p+n-1;i<=k-1;i++) =========或========= for(i=p-1+n;i<=k-1;i++)

=======(答案3)======= x=x*10+a[i];

=========或========= x=10*x+a[i];

=========或========= x=a[i]+x*10;

=========或========= x=a[i]+10*x;

第3题 (30.0分) 题号:577 难度:中 第1章 /*------------------------------------------------------- 【程序改错】

---------------------------------------------------------

题目:void move(int a[],int n,int m)函数将n个元素的一维 数组a循环左移m个位置,

void change(int a[],int n,int b[][N])函数将数组a按 行存入二维数组b,然后将b按列重新存入数组a。

例如:数组a的元素为1,2,3,4,5,6,7,8,9,10,11,12,调用move函 数将a循环左移3个位置后,a的元素为

4,5,6,7,8,9,10,11,12,1,2,3,调用change函数后,a的元 素为4,8,12,5,9,1,6,10,2,7,11,3。

请改正程序中的错误,使它能得出正确的结果。

--------------------------------------------------------- 注意:不得增行或删行,也不得更改程序的结构。

--------------------------------------------------------*/ #include #define M 3 #define N 4

void move(int a[],int n,int m)

{

int i,t; while(m) {

t=a[0];

for(i=0;i

/*******************FOUND*******************/ a[i]=a[i+m]; a[n-1]=t; m--; } }

void change(int a[],int n,int b[][N]) {

int i,j;

for(i=0;i

/*******************FOUND*******************/ b[i/M][i-i/N]=a[i]; for(i=0;i

/*******************FOUND*******************/ a[j*M+i]=b[i][j]; }

int main() {

int a[M*N]={1,2,3,4,5,6,7,8,9,10,11,12}; int b[M][N],i,j,m;

printf(\ for(i=0;i

printf(\ for(i=0;i

printf(\ for(i=0;i

printf(\ printf(\ }

printf(\