计算机机试资料.docx
《计算机机试资料.docx》由会员分享,可在线阅读,更多相关《计算机机试资料.docx(25页珍藏版)》请在冰豆网上搜索。
计算机机试资料
类型一:
调整一个数的个、十、百、千位
1.请编写函数fun,其功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12,调用该函数后c=4152。
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);
填空:
STYPEFILEFp
改错:
for(i=0;i<=sl;i++)把s后字母改为小写L
t[2*sl]='\0';
2.请编写函数fun,其功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
例如,当a=45,b=12,调用该函数后c=1524。
*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);
填空:
*fwstrstr
改错:
voidfun(longs,long*t)
sl=sl*10;
3.请编写函数fun,其功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12,调用该函数后c=2514。
*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);
填空:
fpfclose(fp)fname
改错:
for(i=j+1;i<=n-1;i++)
p=i;
4.请编写函数fun,其功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12,调用该函数后c=5142。
*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);
填空:
"r"fsft
改错:
if(d%2==0)
s/=10;
5.请编写函数fun,其功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。
例如,当a=45,b=12,调用该函数后c=5241。
*c=(a%10)*1000+(b%10)*100+(a/10)*10+(b/10);
填空:
kN-1temp
改错:
fun(inta[][M],intm)
a[j][k]=(k+1)*(j+1);
6.请编写函数fun,其功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12,调用该函数后c=2415。
*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;
填空:
structstudent*a->score[i]a
改错:
char*fun(char(*sq)[M])
returnsp;
7.请编写函数fun,其功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。
例如,当a=45,b=12,调用该函数后c=1425。
*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);
填空:
0xt++
改错:
inti,s1;s后面是小写的L
t[i]=s[sl-i-1];
8.请编写函数fun,其功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。
例如,当a=45,b=12,调用该函数后c=4251。
*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);
填空:
1si*10
改错:
intfun(intn,intxx[][M])
printf("%d",xx[i][j]);
类型二:
与*号有关的操作
9.请编写函数fun,它的功能是:
将字符串中的前导*号全部删除,中间和尾部的*号不删除。
删除前导*号
intj=0;char*p=a;
while(*p=='*')p++;
while(*p){a[j++]=*p;p++;}
a[j]=0;
填空:
[N]t[i][j]t[j][i]
改错:
#defineFU(m,n)((m)/(n))
return(value);
10.请编写函数fun,它的功能是:
除了尾部的*号之外,将字符串中其他*号全部删除。
形参p已指向字符串中最后的一个字母。
除尾部*号,其余*删除
char*q=a;intj=0;
while(*q&&q
='*')a[j++]=*q;q++;}
while(*p)a[j++]=*p++;a[j]=0;
填空:
t[][N]i=0;i改错:
intfun(inta[],intm)
elseif(m>a[mid])
11.请编写函数fun,它的功能是:
除了字符串前导和尾部的*号之外,将串中其他*号全部删除。
只删除中间*号
intj=0;char*q=a;
while(*q&&qwhile(*h&&*p&&h
{if(*h!
='*')a[j++]=*h;h++;}
while(*p)a[j++]=*p++;
a[j]=0;
填空:
sum=0t[i][i]1
改错:
doubler;
while(fabs(m-n)>0.001)
12.请编写函数fun,它的功能是:
删除字符串中所有的*号。
删除串中所有*号
intj=0;char*p=a;
while(*p)
{if(*p!
='*')a[j++]=*p;p++;}
a[j]=0;
填空:
1j++j
改错:
t=a;a=b;b=t;
return(b);
13.请编写函数fun,它的功能是:
将字符串尾部的*号全部删除,前面和中间的*号不删除。
删除串尾*号
char*p=a;
while(*p)p++;p--;
while(*p=='*')p--;
p++;
*p=0;
填空:
NI-1
改错:
a2=k/10;
returni;
14.请编写函数fun,它的功能是:
除了字符串前导的*号之外,将串中其他*号全部删除。
除前导*外其他删除*
inti=0,k;
while(a[i]=='*')i++;
k=i;
while(a[i]!
='\0'){if(a[i]!
='*')a[k++]=a[i];i++;}
a[k]='\0';
填空:
Nkss[i]
改错:
intk=0;
while(*p||*q)
15.请编写函数fun,它的功能是:
只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。
删除前导和尾部*
char*p=a;intj=0,len=0;
while(*p){p++;len++;}
while(j填空:
Nsubstr0
改错:
fun(intx,inty,intz)
returnj;
16.请编写函数fun,它的功能是:
使字符串中尾部的*号不得多于n个
串尾部*号不多于n个
char*p=a;intj=0;
while(*p)p++;p--;
while(*p=='*')p--;p++;
while(j填空:
a[i]%2a[j]j
改错:
fun(intn)
if(n==1)
17.请编写函数fun,它的功能是:
使字符串的前导*号不得多于n个
前导*不多于n个
inti=0,j,k=0;
while(a[k]=='*')k++;
if(k>n)
{i=n;j=k;
for(;a[j]!
=0;j++)a[i++]=a[j];
a[i]=0;}
填空:
MN0
改错:
t=1;
return(2*s);
18.请编写函数fun,它的功能是:
将字符串中的前导*号全部移到字符串的尾部。
串前*移至串尾
char*p,*q;intn=0;p=a;
while(*p=='*'){n++;p++;}
q=a;
while(*p){*q=*p;p++;q++;}
for(;n>0;n--)*q++='*';
*q='\0';
填空:
ab.namescore[i]
改错:
s[j++]=s[i];
s[j]=0;
19.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址
(用****作为结束输入的标志)。
inti,k=0,maxlen;
maxlen=strlen(a[k]);
for(i=1;i{if(strlen(a[i])>maxlen)
{maxlen=strlen(a[i]);k=i;}}
*max=a[k];
填空:
[N]ii+1
改错:
aa[i]=m%k;
printf("%d",aa[i-1]);
类型三:
与下标或ASCII码有关
20.请编写一个函数fun,它的功能是:
将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
下标奇数位置子母改大写
inti;
for(i=1;i{
if(ss[i]>='a'&&ss[i]<='z')ss[i]-=32;
}
填空:
kNa[k][i]
改错:
for(i=strlen(t)-1;i;i--)
if(t[j]>t[j+1])
21.请编写—个函数voidfun(char*ss),其功能是:
将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
下标奇数位置子母改大写
char*p=ss;inti=0;
while(*p){
if((i%2)&&(*p>='a'&&*p<='z'))*p-=32;
p++;i++;}
returnss;
填空:
NULLnhead,ch
改错:
for(i=0,t=0;p[i];i++)
c[t]='\0';
22.请编写函数fun,其功能是:
将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
下标为偶数字符删除
inti,j=0;
for(i=1;i