二级C语言上机题库及笔试复习资料_第1页
二级C语言上机题库及笔试复习资料_第2页
二级C语言上机题库及笔试复习资料_第3页
二级C语言上机题库及笔试复习资料_第4页
二级C语言上机题库及笔试复习资料_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2011年3月份全国计算机等级考试二级C语言上机请在程序的下划线处填入正确的内容并把下划

题库线删除,使程序得出正确的结果。

二级C语言上机考试复习资料,共有50套题目注意:源程序存放在考生文件夹下的

BLANK1.C中。

一、程序填空题不得增行或删行,也不得更改程序的结

1、给定程序中,函数fun的功能是根据形参i构!

的值返回某个函数的值。当调用正确时,程序输出:#include<stdio.h>

x1=5.000000,x2=3.000000,#include<string.h>

xl*xl+xl*x2=40.000000#include<ctype.h>

请在程序的下划线处填入正确的内容并把F划voidfun(char*s)

线删除,使程序得出正确的结果。{intk[26]={0},n,i,max=0;charch;

注意:源程序存放在考生文件夹下的while(*s)

BLANK1.C中。{if(isalpha(*s)){

不得增行或删行,也不得更改程序的结/**********eund**********/

构!ch=tolower(_1_);

#include<stdio.h>n=ch-*a';

doublefl(doublex)/**********found**********/

{returnx*x;}k[n]+=_2_;

doublef2(doublex,doubley)}

{returnx*y;}s++;

/**********found**********//**********found**********/

_1_fun(inti,doublex,doubley)ifi(iTiax<k[n])max=_3_;

{if(i=l)}

/**********Cund**********/printfC'\nAftercount:\nH);

return_2_(x);fbr(i=O;i〈26;i++)

elseif(k[i]=max)printf(n\nletterV%c\*:%d

/**********und**********/times\n”,i+R,k[i]);

return_3_(x,y);)

}main()

main(){chars[81];

{doublexl=5,x2=3,r;printf("\nEnterastring:\n\nH);gets(s);

r=fiin(1,x1,x2);fun(s);

r+=fun(2,xl,x2);

printf(M\nx1=%f,x2=%f,x1*x1+x1*x2=%f\n\nu,x1,3、给定程序中,函数fim的功能是:将NXN矩

x2,r);阵主对角线元素中的值与反向对角线对应位置上元

}素中的值进行交换。例如,若N=3,有下列矩阵:

123

2、给定程序中,函数fun的功能是:找出形参s所456

指字符串中出现频率最高的字母(不区分大小写),789交换后为:

并统计出其出现的次数。321

例如,形参s所指的字符串为:abcAbsmaxless,456

程序执行后的输出结果为:987

letter'a':3times请在程序的下划线处填入正确的内容并把下划

letter's':3times线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的注意:源程序存放在考生文件夹下的

BLANK1.C中。BLANK1.C中。

不得增行或删行,也不得更改程序的结不得增行或删行,也不得更改程序的结

构!构!

#include<stdio.h>#include<stdio.h>

#defineN4intfun(intx)

/********************/{intn,si,s2,s3,t;

voidfun(int___1___,intn)/**********eund**********/

{inti,s;n=_1_;

/**********Cun(j**********/t=100;

for(_2_;i++)/**********nd**********/

{s=t[i][i];while(t<=_2_)

t[i][i]=t[i][n-i-l];{sl=t%10;s2=(t/10)%10;s3=t/100;

/**********qund**********/if(sl+s2+s3=15)

t[i][n-l-i]=_3_;{printfC%d】);

)n++;

main()

int_3_;

t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,)

10},i,j;returnn;

printf("\nTheoriginalanay:\n");}

fbr(i=O;i<N;i++)main()

{for(j=O;j<N;j++)printf("%d",t[i][j]);{intx="l;

printf("\n");while(x>999||x<0)

}{printf{nPleaseinput(0<x<=999):");

fun(t,N);scanf(n%dn,&x);}

printf("\nTheresultis:\n");printfif"\nTheresultis:%d\nM,fun(x));

fbr(i=O;i<N;i++))

{fbr(j=O;j<N;j++)printf("%d",t[i][j]);5、函数Em的功能是:把形参a所指数组中的

printf("\n");最小值放在元素a[0]中,接着把形参a所指数组中

的最大值放在a[l]元素中;再把a所指数组元素中

}的次小值放在a[2]中,把a所指数组元素中的次大

4、给定程序中,函数fun的功能是:找出100值放在a[3];其余以此类推。例如:若a所指数组

至x(xW999)之间各位上的数字之和为15的所有中的数据最初排列为:9、1、4、2、3、6、5、8、7;

整数,然后输出;符合条件的整数个数作为函数值则按规则移动后,数据排列为:1、9、2、8、3、7、

返回。4、6、5。形参n中存放a所指数组中数据的个数。

例如,当n值为500时,各位数字之和为15的注意:规定fun函数中的max存放当前所找的

整数有:159、168、177、186、195、249、258、267、最大值,px存放当前所找最大值的下标。

276、285、294、339、348、357、366、375、384、请在程序的下划线处填入正确的内容并把F划

393、429、438、447、456、465、474、483、492。线删除,使程序得出正确的结果。

共有26个。注意:源程序存放在考生文件夹下的

请在程序的下划线处填入正确的内容并把下划BLANK1.C中。

线删除,使程序得出正确的结果。不得增行或删行,也不得更改程序的结

构!线删除,使程序得出正确的结果。

#include<stdio.h>注意:源程序存放在考生文件夹下的

#defineN9BLANK1.C中。

voidfiin(inta[],intn)不得增行或删行,也不得更改程序的结

{intij,max,min,px,pn,t;构!

for(i=0;i<n-l;i+=2)#include<stdio.h>

voidfun(char*s,char*p)

/**********Sund**********/{inti,j,n,x,t;

max=min=1;n=0;

px=pn=i;for(i=0;s[i]!='\0';i++)n++;

fbr(j=i+l;j<n;j-H-){for(i=l;i<n-2;i=i+2){

/**********命und**********//**********Cund**********/

if(max<2_)―1—;

{max=a[j];px=j;}/**********eund**********/

/**********3und**********/for(j=_2_+2;j<n;j=j+2)

if(min>_3_)if(s[t]>sU])t=j;

{min=a[j];pn=j;}if(t!=i)

{x=s[i];s[i]=s[t];s[t]=x;}

if(pn!=i)

{t=a[i];a[i]=min;a[pn]=t;for(i=lj=0;i<n;i=i+2,j++)p[j]=s[i];

if(px=i)px=pn;/**********found**********/

}PU]=一3一;

if(px!=i+1)}

{t=a[i+l];a[i+l]=max;a[px]=t;}main()

{chars[80]="baawrskjghzlicda",p[50];

)printf("\nTheoriginalstringis:%s\n",s);

main()ftin(s,p);

{intb[N]={91,4,2,3,658,7},i;printf("\nTheresultis:%s\n",p);

printf(n\nTheoriginaldata:\n");}

for(i=0;i<N;i++)printf(H%4d”,b[i]);7、给定程序中,函数fun的功能是:将形参n

printfC'n”);中,各位上为偶数的数取出,并按原来从高位到低

fiin(b,N);位的顺序组成•个新的数,并作为函数值返回。

printff\nThedataaftermoving:\nn);例如,从主函数输入一个整数:27638496,函

for(i=0;i<N;i++)printf(M%4d",b[i]);数返回值为:26846。

printf(M\nH);请在程序的下划线处填入正确的内容并把下划

}线删除,使程序得出正确的结果。

6、给定程序中,函数fim的功能是:对形参s注意:源程序存放在考生文件夹下的

所指字符串中下标为奇数的字符按ASCII码大小递BLANK1.C中。

增排序,并将排序后下标为奇数的字符取出,存入不得增行或删行,也不得更改程序的结

形参p所指字符数组中,形成一个新串。构!

例如,形参s所指的字符串为:#include<stdio.h>

baawrskjghzlicda,执行后p所指字符数组中的字符unsignedlongfun(unsignedlongn)

串应为:aachjlsw«{unsignedlongx=0,s,i;intt;

请在程序的卜划线处填入正确的内容并把F划s=n;

fbr(p=l;p<=_1_;p-H-)

fbr(i=O;i<M;i-H-)

{temp=a[i][0];

while(_2_)/**********Cun(j**********/

{t=s%10;forG=0;j<_2_;j++)a[i]U]=a[i]D+l];

if(t%2==0){/**********3und**********/

/********************/a[i][N-l]=_3_;

x=x+t*i;i=_3_;}

}}

s=s/10;main()

}{int

returnx;x[M][N]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}

}printf("Thearraybeforemoving:\n\nn);

main()fbr(i=O;i<M;i-H-)

{unsignedlongn="l;{fbr(j=O;j<N;j++)printf(n%3dn,x[i]|j]);

while(n>99999999||n<0)printff'n");

{printf("Pleaseinput(0<n<l00000000):");}

scanf(-%ld”,&n);}fun(x,2);

printf(n\nTheresultis:%ld\nH,fun(n));printf("Thearrayaftermoving:\n\n");

}for(i=0;i<M;i++)

8、给定程序中,函数firn的功能是:将a所指{fora=O;j<N;j++)printf("%3d",x[i][j]);

3X5矩阵中第k列的元素左移到第0列,第k列以printf("\n");

后的每列元素行依次左移,原来左边的各列依次绕}

到右边。}

例如,有下列矩阵:9、给定程序中,函数fim的功能是:判断形参

12345s所指字符串是否是"回文"(Palindrome),若是,函

12345数返回值为1;不是,函数返回值为0。"回文"是正

12345读和反读都一样的字符串(不区分大小写字母)。21

若k为2,程序执行结果为例如,LEVEL和Level是"回文",而LEVLEV

34512不是"回文"。

34512请在程序的下划线处填入正确的内容并把下划

34512线删除,使程序得出正确的结果。

请在程序的下划线处填入正确的内容并把下划注意:源程序存放在考生文件夹下的

线删除,使程序得出正确的结果。BLANK1.C中。

注意:源程序存放在考生文件夹下的不得增行或删行,也不得更改程序的结

BLANK1.C中。构!

不得增行或删行,也不得更改程序的结#include<stdio.h>

构!#include<string.h>

#include<stdio.h>#include<ctype.h>

#defineM3intfun(char*s)

#defineN5{char*lp,*rp;

voidfun(int(*a)[N],intk)/**********^ound**********/

{inti,j,p,temp;

q)=s+strlen(s)-l;

while((toupper(*lp)=toupper(*rp))&&(lp<rp)){print"'Enterastring:M);gets(s);

prints"Entern:n);scanff%d”,&n);

]p++;rp_2_;}fun(s,n,t);

/**********仿und**********/printfC'Thestringt:”);puts(t);

ifUpVrp)_3_;}

elsereturn1;11、给定程序中,函数fun的功能是:将形参n

)中,各位上为偶数的数取出,并按原来从高位到低

main()位相反的顺序组成一个新的数,并作为函数值返回。

{chars[81];例如,输入一个整数:27638496,函数返回值

printf(nEntcrastring:”);scanfif'%sM,s);为:64862。

if(fun(s))printfl(n\n\',%s\"isaPalindrome.\n\n",s);请在程序的下划线处填入正确的内容并把下划

elseprintR"\n\"%s\"isn'taPalindrome.\n\n",s);线删除,使程序得出正确的结果。

}注意:源程序存放在考生文件夹下的

10、给定程序中,函数fun的功能是:把形参sBLANK1.C中。

所指字符串中最右边的n个字符复制到形参t所指不得增行或删行,也不得更改程序的结

字符数组中,形成一个新串。若s所指字符串的长构!

度小于n,则将整个字符串复制到形参t所指字符数#include<stdio.h>

组中。unsignedlongfun(unsignedlongn)

例如,形参s所指的字符串为:abcdefgh,n的值{unsignedlongx=0;intt;

为5,程序执行后t所指字符数组中的字符串应为:while(n)

defgho{t=n%10;

请在程序的下划线处填入正确的内容并把下划/**********3und**********/

线删除,使程序得出正确的结果。if(t%2=_l_)

注意:源程序存放在考生文件夹下的/**********eund**********/

BLANK1.C中。x=_2_+t;

不得增行或删行,也不得更改程序的结/**********Cun(j**********/

构!n=_3_;

#include<stdio.h>)

#include<string.h>returnx;

#defineN80)

voidfun(char*s,intn,char*t)main()

{intlen,ij=0;{unsignedlongn=-l;

len=strlen(s);while(n>99999999||n<0)

/**********d**********/{printfi(nPleaseinput(0<n<100000000):");

if(n>=len)strcpy(_1_);scanf(,*%ld,,,&n);}

else(printf("\nTheresultis:%ld\nM,fun(n));

/**********found**********/}

for(i=len-n;i<=len-l;i++)t[j-H-]=_2_;12、给定程序中,函数fun的功能是:有NXN

/**********必und**********/矩阵,以主对角线为对称线,对称元素相加并将结

果存放在左下三角元素中,右上三角元素置为0。

例如,若N=3,有下列矩阵:

}123

main()456

{chars[N],t[N];int789计算结果为

100def35adh3kjsdf7o执行结果为:defadhkjsdf3537o

650请在程序的下划线处填入正确的内容并把下划

10149线删除,使程序得出正确的结果。

请在程序的下划线处填入正确的内容并把下划注意:源程序存放在考生文件夹下的

线删除,使程序得出正确的结果。BLANK1.C中。

注意:源程序存放在考生文件夹下的不得增行或删行,也不得更改程序的结

BLANK1.C中。构!

不得增行或删行,也不得更改程序的结#include<stdio.h>

构!voidfun(char*s)

#includc<stdio.h>{inti,j=0,k=0;chartl[80],t2[80];

#defineN4for(i=0;s[i]!='\0';i++)

if(s[i]>='0'&&s[i]<='9')

voidfun(int(*t)___1___)

{inti,j;

for(i=l;i<N;i++)t2[j]=s[i];_l_

{for(j=O;j<i;j++)}

elsetl[k++]=s[i];

t2U]=0;tl[k]=O;

_2_=t[i]U]+tU][i];

/**********仿und**********/for(i=0;i<k;i++)___2___;

/**********found**********/

for(i=0;i<3_;i++)s[k+i]=t2[i];

}

main()

{chars[80]="def35adh3kjsdf7";

intprintf("\nTheoriginalstringis:%s\n",s);

t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,fiin(s);

10},ij;print心nTheresultis:%s\n",s);

printfifH\nTheoriginalarray:\nM);)

fbr(i=O;i<N;i++)14、给定程序中,函数fun的功能是计算下式

{for(j=O;j<N;j++)printff%2dH,t[i][j]);例如:若形参e的值为le-3,函数的返回值为

printf(,,\nM);0.551690o

请在程序的下划线处填入正确的内容并把下划

fun(t);线删除,使程序得出正确的结果。

printf("\nTheresultis:\n");注意:源程序存放在考生文件夹下的

fbr(i=O;i<N;i++)BLANK1.C中。

{fbr(j=O;j<N;j++)printf("%2d",t[i][j]);不得增行或删行,也不得更改程序的结

printf("\n");构!

#include<stdio.h>

doublefun(doublee)

13、给定程序中,函数fUn的功能是:将s所指{inti,k;doubles,t,x;

字符串中的所有数字字符移到所有非数字字符之s=0;k=l;i=2;

后,并保持数字字符串和非数字字符串原有的先后/**********nd**********/

次序。例如,形参s所指的字符串为:x=1/4;

q->data=t;}

while(x_2_e)q=q->next;

{s=s+k*x;}

k=k*(-1);p=p->next;

t=2*i;

/**********8und**********/

x=3_/(t*t);NODE*creatlist(inta[])

i++;{NODE*h,*p,*q;inti;

)h=(NODE*)malloc(sizeof(NODE));

returns;h->next=NULL;

)fbr(i=O;i<N;i++)

main(){q=(NODE*)malloc(sizeof(NODE));

{doublee=le-3;q->data=a[i];

printf(n\nTheresultis:%f\n",fun(e));q->next=NULL;

}if(h->next==NULL)h->next=p=q;

15、给定程序中,函数fun的功能是将带头节点else{p->next=q;p=q;}

的单向链表结点数据域中的数据从小到大排序。即}

若原链表结点数据域从头至尾的数据为:10、4、2、returnh;

8、6,排序后链表结点数据域从头至尾的数据为:2、}

4^6、8^10ovoidoutlist(NODE*h)

请在程序的下划线处填入正确的内容并把下划{NODE*p;

线删除,使程序得出正确的结果。p=h->next;

注意:源程序存放在考生文件夹下的if(p=NULL)printf(nThelistisNULL!\nM);

BLANK1.C中。else

不得增行或删行,也不得更改程序的结{printf(n\nHead");

构!do

#include<stdio.h>{printf(,,->%d",p->data);p=p->next;}

#include<stdlib.h>while(p!=NULL);

#defineN6printfC'->End\nH);

typedefstructnode{)

intdata;}

structnode*next;main()

}NODE;{NODE*head;

voidfun(NODE*h)inta[N]={0,10,4,2,8,6};

{NODE*p,*q;intt;head=creatlist(a);

printf("\nTheoriginallist:\nM);

p=_1_;outlist(head);

while(p){fun(head);

/**********£QUQ^**********/printf("\nThelistaftersorting:\n");

q=_2_;outlist(head);

while(q){}

/**********d**********,16、给定程序中,函数fun的功能是:将形参s

if(p->data_3_q->data)所指字符串中的数字字符转换成对应的数值,计算

{t=p->data;p->data=q->data;出这些数值的累加和作为函数值返InI。

例如,形参s所指的字符串为:abs5defl26jkm8,j=0;

程序执行后的输出结果为:22。for(i=0;i<n;i++)

请在程序的下划线处填入正确的内容并把下划/**********found**********/

线删除,使程序得出正确的结果。if(a[i]%2==_1_)

注意:源程序存放在考生文件夹下的

BLANK1.C中。/**********Cun(j**********/

不得增行或删行,也不得更改程序的结a[j]=a[i];_2_:

构!

#include<stdio.h>/**********治und**********/

#includc<string.h>return___3___;

#include<ctype.h>}

intfiin(char*s)main()

{intsum=O;{intb[N]={9,l,4,2,3,6,5,8,7},i,n;

while(*s){printf("\nTheoriginaldata:\n");

/**********^Qy^^1**********/for(i=0;i<N;i++)printf("%4d",b[i]);

if(isdigit(*s))sum+=*s-_1_printff'n”);

/**********found**********/n=fiin(b,N);

2printf("\nThenumberofodd:%d\n",n);

printf("\nTheoddnumber:\nH);

/**********仿und**********/for(i=0;i<n;i-H-)printf(H%4d",b[i]);

return_3_;printC);

}}

main()18、给定程序中,函数fun的功能是:计算下

{chars[81];intn;式前n项的和作为函数值返回。

printf(n\nEnterastring:\n\nn);gets(s);例如,当形参n的值为10时,函数返回:

n=fiin(s);9.612558o

printf(n\nTheresultis:%d\n\n",n);请在程序的下划线处填入正确的内容并把下划

)线删除,使程序得出正确的结果。

17、函数fiin的功能是:把形参a所指数组中注意:源程序存放在考生文件夹下的

的奇数按原顺序依次存放到a[0]、a[l]>a[2]、……BLANK1.C中。

中,把偶数从数组中删除,奇数个数通过函数值返不得增行或删行,也不得更改程序的结

回。例如:若a所指数组中的数据最初排列为:9、构!

1、4、2、3、6、5、8、7,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论