高考C语言题Word下载.docx
- 文档编号:21675972
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:36
- 大小:22.34KB
高考C语言题Word下载.docx
《高考C语言题Word下载.docx》由会员分享,可在线阅读,更多相关《高考C语言题Word下载.docx(36页珍藏版)》请在冰豆网上搜索。
sum=0;
for(i=0;
s[i];
i++)
/**************************SPACE*************************/
sum=sum*10+【】-'
0'
;
returnsum;
}
intmulti(chars[],chart[])
intmul;
mul=【】;
returnmul;
intmain()
chars1[]="
s2[]="
56"
intmst;
mst=multi(s1,s2);
printf("
%d\n"
mst);
return0;
答案:
=======(答案1)=======
s[i]
=========或=========
*(s+i)
=======(答案2)=======
change(s)*change(t)
change(t)*change(s)
第2题(20.0分)题号:
651难度:
函数voidcheck(longn,intc[])检测长整型正整数n是几
位数,同时找出最小的数字。
将位数和最小的数字存放在数
组c中。
例如n=1256044时,n是7位数,最小的数字是0。
#include<
voidcheck(longn,int【】)
intmin,p,k;
min=9;
p=0;
do{
k=n%10;
min=(min>
k)k:
min;
n/=10;
p++;
}while(n);
c[0]=p;
c[1]=min;
longn;
intc[2];
输入长整型正整数:
"
);
scanf("
%ld"
&
n);
check(n,c);
%ld是%d位数,最小数字是%d\n"
【】);
c[]
c[2]
n,c[0],c[1]
第3题(20.0分)题号:
652难度:
函数intconvert(inta,intnsys)将nsys(nsys<
10)进制数a,
转换成十进制数并返回。
---------------------------------------------------------*/
#defineN5
intconvert(inta,intnsys)
intt,p;
if(a<
nsys)
returna;
t=0;
p=1;
while(a!
=0)
{
t=t+a%10*p;
【】;
p*=nsys;
}
returnt;
inti,d;
intnum[N][2]={{704,8},{10011,2},{266,7},{3,5},{22110,3}};
i<
N;
d=convert(num[i][0],num[i][1]);
%d进制数的%d\t=十进制数的%d\n"
a/=10
a=a/10
num[i][1],num[i][0],d
第4题(20.0分)题号:
653难度:
函数voidrearr(inta[],intn)将已经升序排列的一维数
组a中的n个元素重新排列,重新排列的规则是:
将a数组中的最小元素放到a[0],最大元素放到a[1],
将次小元素放到a[2],次大元素放到a[3],...,
以此类推。
例如:
原a数组各元素为:
-11-703815162038
重新排列后a数组各元素为:
-1138-7200163158
#defineN9
voidrearr(inta[],intn)
intleft,right,i;
intb[N];
left=0;
right=N-1;
left<
right;
i+=2)
b[i]=a[left++];
b[i+1]=a[【】];
if(left==right)
b[i]=a[left];
a[i]=【】;
inti,a[N]={-11,-7,0,3,8,15,16,20,38};
rearr(a,N);
%3d"
a[i]);
\n"
right--
b[i]
第5题(20.0分)题号:
654难度:
函数voidchange(chars[],chart[])将s字符串中字母和数
字字符按以下规则转换,并将其保存在t中。
其他字符则不作
转换。
大写字母转换规则:
'
A'
->
z'
'
B'
y'
...,'
Z'
a'
小写字母转换规则:
数字字符转换规则:
9'
1'
8'
ctype.h>
voidchange(chars[],chart[])
inti;
++i)
if(isalpha(s[i]))
t[i]=(isupper(s[i])'
-s[i]+'
:
'
elseif(isdigit(s[i]))
t[i]='
else
t[i]=0;
chart[100]="
7984RHhSVVKBVZI,dRHSBLFTLLWOFXP!
chars[100];
%s\n"
s);
t[i]=s[i]
change(t,s)
二、程序改错共5题(共计150分)
第1题(30.0分)题号:
575难度:
【程序改错】
题目:
intsort(inta[],intn)函数将n个元素的数组a中互不相
同的元素按升序排列,重新存入数组a中,函数返回按升序
排列后互不相同元素的个数。
例如:
数组a中元素为6,2,7,5,4,3,4,6,5,4,调用sort函数后,
函数值为6,主函数中输出排序后的数组a元素为
2,3,4,5,6,7。
请改正程序中的错误,使它能得出正确的结果。
不得增行或删行,也不得更改程序的结构。
--------------------------------------------------------*/
intsort(inta[],intn)
inti,j,k,low,high,mid,t;
for(k=i=1;
n;
i++)
low=0;
high=k-1;
while(low<
=high)
mid=(low+high)/2;
if(a[mid]>
=a[i])high=mid-1;
elselow=mid+1;
if(low>
=k||a[low]!
=a[i])
{
/*******************FOUND*******************/
t=a[i]-1;
/*******************FOUND*******************/
for(j=k;
j>
=low;
j--)
a[j+1]=a[j];
a[low]=t;
k++;
returnk;
inta[]={6,2,7,5,4,3,4,6,5,4};
inti,n;
n=sizeof(a)/sizeof(int);
%d\t"
sort(a,n);
\nAftersorting:
t=a[i];
for(j=k-1;
=======(答案3)=======
n=sort(a,n);
第2题(30.0分)题号:
576难度:
函数unsigneddelbits(unsignedx,unsignedp,unsignedn)
把非负整数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。
unsigneddelbits(unsignedx,unsignedp,unsignedn)
inta[10],i,j,k;
i=0;
while(x)
a[i]=x%10;
x/=10;
k=i;
k/2;
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;
for(i=p+n;
=k-1;
a[j]=a[i];
j++;
k=j;
k;
x+=a[i]*10;
returnx;
unsignedx,p,n;
Inputx(unsignedint):
%u"
x);
Inputp(unsignedint):
p);
Inputn(unsignedint):
x=delbits(x,p,n);
Afterdeletingx=%u\n"
x);
a[i++]=x%10;
a[i]=x%10,i++;
a[i]=x%10,++i;
a[i]=x%10,i=i+1;
a[i]=x%10,i=1+i;
a[i]=x%10,i+=1;
a[i]=x%10;
i++;
++i;
i=i+1;
i=1+i;
i+=1;
for(i=p+n-1;
for(i=p-1+n;
x=x*10+a[i];
x=10*x+a[i];
x=a[i]+x*10;
x=a[i]+10*x;
第3题(30.0分)题号:
577难度:
voidmove(inta[],intn,intm)函数将n个元素的一维
数组a循环左移m个位置,
voidchange(inta[],intn,intb[][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。
#defineM3
#defineN4
voidmove(inta[],intn,intm)
inti,t;
while(m)
t=a[0];
n-1;
a[i]=a[i+m];
a[n-1]=t;
m--;
voidchange(inta[],intn,intb[][N])
inti,j;
b[i/M][i-i/N]=a[i];
for(j=0;
j<
M;
j++)
a[j*M+i]=b[i][j];
inta[M*N]={1,2,3,4,5,6,7,8,9,10,11,12};
intb[M][N],i,j,m;
Beforemoving\nArraya:
M*N;
%d"
\nInputm:
%d"
m);
move(a,M*N,m);
\nAftermoving\nArraya:
change(a,M*N,b);
\n\nAfterchanging\nArrayb:
i++){
%d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高考 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)