二级C语言考试机试满分原题.docx

上传人:b****6 文档编号:5368964 上传时间:2022-12-15 格式:DOCX 页数:25 大小:32.47KB
下载 相关 举报
二级C语言考试机试满分原题.docx_第1页
第1页 / 共25页
二级C语言考试机试满分原题.docx_第2页
第2页 / 共25页
二级C语言考试机试满分原题.docx_第3页
第3页 / 共25页
二级C语言考试机试满分原题.docx_第4页
第4页 / 共25页
二级C语言考试机试满分原题.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

二级C语言考试机试满分原题.docx

《二级C语言考试机试满分原题.docx》由会员分享,可在线阅读,更多相关《二级C语言考试机试满分原题.docx(25页珍藏版)》请在冰豆网上搜索。

二级C语言考试机试满分原题.docx

二级C语言考试机试满分原题

类型一:

调整一个数的个、十、百、千位

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&&q

while(*h&&*p&&h

{if(*h!

='*')a[j++]=*h;h++;}

while(*p)a[j++]=*p++;

a[j]=0;

sum=0

t[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;

1

j++

j

t=a;a=b;b=t;

return(b);

13.请编写函数fun,它的功能是:

将字符串尾部的*号全部删除,前面和中间的*号不删除。

删除串尾*号

char*p=a;

while(*p)p++;p--;

while(*p=='*')p--;

p++;

*p=0;

N

i

-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';

N

k

ss[i]

intk=0;

while(*p||*q)

15.请编写函数fun,它的功能是:

只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。

删除前导和尾部*

char*p=a;intj=0,len=0;

while(*p){p++;len++;}

while(j

N

substr

0

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]%2

a[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

t[j]=0;

data

next

head

while(*r)

*a=*r;a++;r++;

23.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。

除首尾外其余ASCII码降序

charch;inti,j;

for(i=1;i<6;i++)

for(j=i+1;j<6;j++)

{if(*(s+i)<*(s+j))

{ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;}}

ss[i]n+j1

if(*p=='')

*(p-1)=toupper(*(p-1));

24.请编写函数fun,其功能是:

将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

ASCII码值为偶数删除

inti,j=0;

for(i=0;i

if(s[i]%2)t[j++]=s[i];

t[j]=0;

STUstd[i].numstd[i]

r++;p++;

if(*r==0)

25.请编写函数fun,其功能是:

将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

ASCII值为奇数删除

inti,j=0;

for(i=0;i

t[j++]=s[i];

t[j]=0;

s[i]k'\0'

while(*w)

if(*r==*p)

26.请编写函数fun,其功能是:

将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除

除下标偶数同时ASCII码值偶数之外其余全部删除

inti,j=0;

for(i=0;i

if(s[i]%2==0)t[j++]=s[i];

t[j]=0;

*nnexthead

a=NULL;

if(*r==*p)

27.请编写函数fun,其功能是:

将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除

除下标奇数同时ASCII码也为奇数外其余字符删除

inti,j=0;

for(i=1;i

if(s[i]%2)t[j++]=s[i];

t[j]=0;

0i++2.0*i

voidfun(char*s,char*t)

t[2*d]=0;

28.请编写函数fun,其功能是:

将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。

将下标为偶数同时ASCII码为奇数删除

inti,j=0;

for(i=0;i

if(!

((i%2)==0&&(s[i]%2)))t[j++]=s[i];

t[j]=0;

jkp

while(i

if(*a)

类型四:

数组和矩阵操作

29.请编写函数fun,该函数的功能是:

移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。

下标0-p移到数组最后

inti,j=0,b[N];

for(i=p+1;i

for(i=0;i<=p;i++)b[j++]=w[i];

for(i=0;i

p->nextqp->next

while(*s)

s++;

30.请编写函数fun,该函数的功能是:

删去一维数组中所有相同的数,使之只剩一个。

删除一维数组相同的数

inti,j=1,k=a[0];

for(i=1;i

if(k!

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

a[j]=0;

returnj;

FILE*fclose(fp)fp

t=(STU*)calloc(sizeof(STU),m);

t[k]=b[j];

31.请编写一个函数fun,它的功能是:

找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。

找出一维数组最大值及其下标

inti;

*max=a[0];*d=0;

for(i=1;i

if(*max

12*i(-1)

k++;

if(m==k)

32.请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。

求数组最大元素及下标

inti,pos=0,max=*s;

for(i=1;i

{if(max<*(s+i))

{max=*(s+i);pos=i;}}

*k=pos;

n++0s++

t+=s[k];

*ave=ave;

33.请编写函数fun(inta[][N],intn),该函数的功能是:

使数组左下半三角元素中的值乘以n。

左下三角元素乘n

inti,j;

for(i=0;i

for(j=0;j<=i;j++)a[i][j]*=n;

STUscore[i]&std

if(k>0)

elseif(k==0)

34.请编写函数fun(inta[][N],intn),该函数的功能是:

使数组右上半三角元素中的值乘以m。

右上三角元素同乘m

inti,j;

for(i=0;i

for(j=i;j

*avix[j]

floatfun(intn)

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

35.请编写函数fun(inta[][N]),该函数的功能是:

使数组左下半三角元素中的值全部置成0。

左下三角元素置0

inti,j;

for(i=0;i

for(j=0;j<=i;j++)a[i][j]=0;

*stdPERSONstd

intk,q,i;

pt[i]=str[k][i];

36.请编一个函数求出二维数组每列中最小元素,并依次放入pp所指一维数组中。

二维数组每列最小元素

inti,j,min,k;

for(i=0;i

{min=tt[0][i];k=0;

for(j=1;j

if(min>tt[j][i]){min=tt[j][i];k=j;}

pp[i]=tt[k][i];}

*stdstd[i].agemax.name

voidfun(int*a,int*b)

t=*b;*b=*a;*a=t;

37.请编写一个函数fun,它的功能是:

求出—个2×M整型二维数组中最大元素的值,并将此值返回调用函数。

求二维数组中最大元素的值

inti,j,max=a[0][0];

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

for(j=0;j

if(max

returnmax;

3.0>2*i+1

doublefun(intn)

s=s+(double)a/b;

38.编写程序,实现矩阵(3行3列)的转置(即行列互换)。

矩阵转置

inti,j,arr[3][3];

memcpy(arr,array,9*sizeof(int));

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

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

array[i][j]=arr[j][i];

Nbreakn

sum=0;

scanf("%d",&a[i][j]);

39.请编写函数fun,该函数的功能是:

将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。

按列顺序334455334455

inti,j,np=0;

for(i=0;i

for(j=0;j

{b[np]=s[j][i];np=i*mm+j+1;}

*n=np;

NODE*nextr

if(i%2||s[i]%2==0)

t[j]=’\0’;

40.请编写函数fun,该函数的功能是:

将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中。

按行顺序3333333344444444

inti,j,k;

for(i=0;i

for(j=0;j

{k=i*nn+j;b[k]=s[i][j];}

*n=mm*nn;

h->nextp->next>

p=h->next;

p=p->next;

41.请编写函数fun,该函数的功能是:

将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

按列顺序wshwshwsh

inti,j,n=0;

for(i=0;i

for(j=0;j

{b[n]=s[j][i];n=i*M+j+1;}}

b[n]='\0';

FILE*fpch

s[j++]=s[i];

s[j]='\0';.

42.请编写函数fun,函数的功能是:

求出数组周边元素的平均值并作为函数值返回给主函数中的s。

数组周边元素的平均值

inti,j,n=0;doublesum=0;

for(i=0;i

sum+=w[0][i]+w[N-1][i];n+=2;}

for(i=1;i

{sum+=w[i][0]+w[i][N-1];n+=2;}

returnsum/n;

s/Nj++-1

#include

upfst(char*p)

43.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。

二维数组周边元素之和

inttot=0,i,j;

for(i=0;i

{tot+=a[0][i];tot+=a[M-1][i];}

for(i=1;i

{tot+=a[i][0];tot+=a[i][N-1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1