2015高考C语言题(3)

2019-03-03 20:46

=========或========= 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(\

for(i=0;i

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

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

=======(答案2)======= b[i/N][i%N]=a[i]; =========或========= b[i/N][i-i/N*N]=a[i];

=======(答案3)======= a[i*M+j]=b[j][i]; =========或========= a[M*i+j]=b[j][i]; =========或========= a[j+i*M]=b[j][i]; =========或========= a[j+M*i]=b[j][i];

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

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

题目:void add(char a[],char b[],char c[])函数将由'0','1' 组成的字符串a,b按二进制数加法规则相加,和仍以'0','1' 组成的字符串形式保存到字符串c中。

例如:字符串a为\字符串b为\调用add函数后字符串c 为\。

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

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

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

#include #include void reverse(char s[]) {

int i,len; char t;

/*******************FOUND*******************/ len=strlen(s-1); for(i=0;i

t=s[i];

s[i]=s[len-i-1]; s[len-i-1]=t; } }

void add(char a[],char b[],char c[]) {

int i,j,k,t,flag; i=strlen(a)-1; j=strlen(b)-1; k=flag=0;

while(i>=0||j>=0) {

if(i<0)

t=b[j]-48+flag; else if(j<0) t=a[i]-48+flag; else

t=a[i]-48+b[j]-48+flag;

/*******************FOUND*******************/ c[k]=t/2; k++; flag=0; if(t>1) flag=1; i--; j--; }

/*******************FOUND*******************/ if(flag==0) c[k++]='1'; c[k]='\\0';

reverse(c); }

int main() {

char a[50],b[50],c[51]; printf(\ scanf(\

printf(\ scanf(\ add(a,b,c);

printf(\ return 0; } 答案:

=======(答案1)======= len=strlen(s);

=======(答案2)======= c[k]=t%2+48;

=========或========= c[k]=48+t%2;

=========或========= c[k]=t%2+'0'; =========或========= c[k]='0'+t%2;

=======(答案3)======= if(flag)

=========或========= if(flag==1)

=========或========= if(flag!=0)

=========或========= if(t>1)

=========或========= if(t>=2)

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

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


2015高考C语言题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大道之行——文圣拳发展之路——卢飞宏

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: