c语言二级填空答案.docx

上传人:b****6 文档编号:3973893 上传时间:2022-11-26 格式:DOCX 页数:104 大小:1.27MB
下载 相关 举报
c语言二级填空答案.docx_第1页
第1页 / 共104页
c语言二级填空答案.docx_第2页
第2页 / 共104页
c语言二级填空答案.docx_第3页
第3页 / 共104页
c语言二级填空答案.docx_第4页
第4页 / 共104页
c语言二级填空答案.docx_第5页
第5页 / 共104页
点击查看更多>>
下载资源
资源描述

c语言二级填空答案.docx

《c语言二级填空答案.docx》由会员分享,可在线阅读,更多相关《c语言二级填空答案.docx(104页珍藏版)》请在冰豆网上搜索。

c语言二级填空答案.docx

c语言二级填空答案

填空题

 

1

#include

#include

#defineN6

typedefstructnode{

intdata;

structnode*next;

}NODE;

voidfun(NODE*h)

{NODE*p,*q;intt;

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

p=__1__;h->next/*因为是带有头节点,头节点不存内容所

以,不取头节点*/

while(p){

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

q=__2__;p->next/*从p指向的下个节点开始比较*/

while(q){

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

if(p->data__3__q->data)>

{t=p->data;p->data=q->data;q->data=t;}

q=q->next;

}

p=p->next;

}

}

NODE*creatlist(inta[])

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

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

h->next=NULL;

for(i=0;i

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

q->data=a[i];

q->next=NULL;

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

else{p->next=q;p=q;}

}

returnh;

}

voidoutlist(NODE*h)

{NODE*p;

p=h->next;

if(p==NULL)printf("ThelistisNULL!

\n");

else

{printf("\nHead");

do

{printf("->%d",p->data);p=p->next;}

while(p!

=NULL);

printf("->End\n");

}

}

main()

{NODE*head;

inta[N]={0,10,4,2,8,6};

head=creatlist(a);

printf("\nTheoriginallist:

\n");

outlist(head);

fun(head);

printf("\nThelistaftersorting:

\n");

outlist(head);

}

 

2

#include

#defineM3

#defineN4

voidfun(int(*a)[N])

{inti=0,j,find=0,rmax,c,k;

while((i

find))

{rmax=a[i][0];c=0;

for(j=1;j

if(rmax

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

rmax=a[i][j];c=__1__;}j/*下面看出c作为列号,所以c=j*/

find=1;k=0;

while(k

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

if(k!

=i&&a[k][c]<=rmax)find=__2__;0/*find作为标志,值只能是1or0,此处之前find=1,所以现在改变为0*/

k++;

}

if(find)printf("find:

a[%d][%d]=%d\n",i,c,a[i][c]);

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

__3__;i++;/*补充完while大循环,若无i++,则循环不能结束*/

}

if(!

find)printf("notfound!

\n");

}

main()

{intx[M][N],i,j;

printf("Enternumberforarray:

\n");

for(i=0;i

for(j=0;j

printf("Thearray:

\n");

for(i=0;i

{for(j=0;j

printf("\n\n");

}

fun(x);

}

 

3

#include

#include

#defineM5

#defineN20

intfun(char(*ss)[N],int*n)

{inti,k=0,len=N;

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

for(i=0;i<___1___;i++)N/*i是行,所以小于M*/

{len=strlen(ss[i]);

if(i==0)*n=len;

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

if(len___2___*n)>/**n来存放大的长度,谁比它大,它就要谁*/

{*n=len;

k=i;

}

}

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

return(___3___);k/*k是最长的字符串的下标*/

}

main()

{charss[M][N]={"shanghai","guangzhou","beijing","tianjing","chongqing"};

intn,k,i;

printf("\nTheoriginalstringsare:

\n");

for(i=0;i

k=fun(ss,&n);

printf("\nThelengthofshorteststringis:

%d\n",n);

printf("\nTheshorteststringis:

%s\n",ss[k]);

}

 

4

#include

voidfun(char*s,char*p)

{inti,j,n,x,t;

n=0;

for(i=0;s[i]!

='\0';i++)n++;

for(i=1;i

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

___1___;t=i/*设置t为i所在位置*/

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

for(j=___2___+2;j

if(s[t]>s[j])t=j;

if(t!

=i)

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

}

for(i=1,j=0;i

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

p[j]=___3___;‘\0’/*字符串最后补’\0’作为结束*/

}

main()

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

printf("\nTheoriginalstringis:

%s\n",s);

fun(s,p);

printf("\nTheresultis:

%s\n",p);

}

 

5

#include

voidfun(char*s,int*t)

{inti,n;

n=0;

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

for(i=0;___1___!

=0;i++)s[i]/*下标指向的内容不是0的话,继续循环*/

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

if(s[i]>='0'&&s[i]<=___2___)n++;‘9’/*s[i]的范围是‘0’到‘9’*/

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

___3___;*t=n/*循环结束*t取n的值*/

}

main()

{chars[80]="abcdef35adgh3kjsdf7";

intt;

printf("\nTheoriginalstringis:

%s\n",s);

fun(s,&t);

printf("\nTheresultis:

%d\n",t);

}

6

#include

unsignedlongfun(unsignedlongn)

{unsignedlongx=0;intt;

while(n)

{t=n%10;

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

if(t%2==__1__)0/*t%2==0说明t是偶数*/

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

x=__2__+t;x*10/*让x进位到10位,让t为个位数,比如3和2组成一个数3*10+2正好是32,*/

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

n=__3__;n/10/*n/10让n变小一位,通过循环将n所有的数都拿出来*/

}

returnx;

}

main()

{unsignedlongn=-1;

while(n>99999999||n<0)

{printf("Pleaseinput(0

");scanf("%ld",&n);}

printf("\nTheresultis:

%ld\n",fun(n));

}

 

7

#include

#defineN9

intfun(inta[],intn)

{inti,j;

j=0;

for(i=0;i

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

if(a[i]%2==___1___)1/*奇数判断*/

{

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

a[j]=a[i];___2___;j++/*a[j]赋值后j++*/

}

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

return___3___;j/*j作为下标,可以用来计个数*/

}

main()

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

printf("\nTheoriginaldata:

\n");

for(i=0;i

printf("\n");

n=fun(b,N);

printf("\nThenumberofodd:

%d\n",n);

printf("\nTheoddnumber:

\n");

for(i=0;i

printf("\n");

}

8

#include

#include

#include

intfun(char*s)

{char*lp,*rp;

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

lp=__1__;s/.*lp指向字符串最开头正好是s所指向的位置*/

rp=s+strlen(s)-1;

while((toupper(*lp)==toupper(*rp))&&(lp

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

lp++;rp__2__;}--/*lp++rp--lp向后移动rp向前移动*/

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

if(lp

elsereturn1;

}

main()

{chars[81];

printf("Enterastring:

");scanf("%s",s);

if(fun(s))printf("\n\"%s\"isaPalindrome.\n\n",s);

elseprintf("\n\"%s\"isn'taPalindrome.\n\n",s);

}

 

9

#include

#include

voidfun(int*a,intn)

{inti;

for(i=0;i

{

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

if(___1___==0)i%5/*每行输出几个数,就和几求余*/

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

printf("___2___");\n/*每五个输出换行*/

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

printf("%d",___3___);a[i]/*输出数据*/

}

}

main()

{inta[100]={0},i,n;

n=22;

for(i=0;i

fun(a,n);

printf("\n");

}

10

#include

intfun(intx)

{intn,s1,s2,s3,t;

n=0;

t=100;

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

while(t<=__1__){999/*t的范围是0---999*/

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

s1=t%10;s2=(__2__)%10;s3=t/100;t/10/*个位数是t%10十位数是t/10%10百位数是t/100*/

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

if(s1+s2+s3==__3__)x/*各位数字之和是输入的x的值*/

{printf("%d",t);

n++;

}

t++;

}

returnn;

}

main()

{intx=-1;

while(x<0)

{printf("Pleaseinput(x>0):

");scanf("%d",&x);}

printf("\nTheresultis:

%d\n",fun(x));

}

 

11

#include

doublefun(intn)

{inti,k;doubles,t;

s=0;

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

k=__1__;1/*根据第一项定k的初值为1*/

for(i=1;i<=n;i++){

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

t=__2__;2*i/*t*t做分子可以得出t=2*i*/

s=s+k*(2*i-1)*(2*i+1)/(t*t);

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

k=k*__3__;(-1)/*k每次乘以-1每项变正负号*/

}

returns;

}

main()

{intn=-1;

while(n<0)

{printf("Pleaseinput(n>0):

");scanf("%d",&n);}

printf("\nTheresultis:

%f\n",fun(n));

}

 

12

#include

#include

#defineN80

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

{intlen,i,j=0;

len=strlen(s);

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

if(n>=len)strcpy(__1__);t,s/*将s复制给t*/

else{

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

for(i=len-n;i<=len-1;i++)t[j++]=__2__;s[i]/*根据条件将s的内容给t*/

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

t[j]=__3__;‘\0’/*字符串最后加’\0’结束*/

}

}

main()

{chars[N],t[N];intn;

printf("Enterastring:

");gets(s);

printf("Entern:

");scanf("%d",&n);

fun(s,n,t);

printf("Thestringt:

");puts(t);

}

 

13.

#include

intfun(char*s,char*t)

{intn=0;

while(*s)

{if(*s<97){

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

*(t+n)=__1__;n++;}*s/*如果*s小于97将*s放入t所指向的数组中*/

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

__2__;s++/*s指针后移配合while循环*/

}

*(t+n)=0;

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

return__3__;n/*返回t所指向数组中的数据个数*/

}

main()

{chars[81],t[81];intn;

printf("\nEnterastring:

\n");gets(s);

n=fun(s,t);

printf("\nThereare%dletterwhichASCIIcodeislessthan97:

%s\n",n,t);

}

 

14

#include

voidfun(char*s,inta,doublef)

{

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

__1__fp;FILE*/*定义文件指针格式,这个必须记住(必须的)*/

charch;

fp=fopen("file1.txt","w");

fprintf(fp,"%s%d%f\n",s,a,f);

fclose(fp);

fp=fopen("file1.txt","r");

printf("\nTheresult:

\n\n");

ch=fgetc(fp);

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

while(!

feof(__2__)){fp/*feof()函数是判断文件是否结束,如果结束,返回0,函数的参数是判断的文件的文件指针*/

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

putchar(__3__);ch=fgetc(fp);}ch/*输出ch*/

putchar('\n');

fclose(fp);

}

main()

{chara[10]="Hello!

";intb=12345;

doublec=98.76;

fun(a,b,c);

}

 

15

#include

#defineM3

#defineN5

voidfun(int(*a)[N],intk)

{inti,j,p,temp;

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

for(p=1;p<=__1__;p++)k/*这个地方的条件判断必须看下面循环体的作用是什么,通过程序我们可以看出,循环体的作用是将最后一列放到开头,也就是左移一列。

那么我们要左移k次,所以条件是p<=k(注意,p=1开始的)*/

for(i=0;i

{temp=a[i][0];

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

for(j=0;j<__2__;j++)a[i][j]=a[i][j+1];N-1/*j

*/

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

a[i][N-1]=__3__;temp/*注意temp内存放的是第一个内容,在以后完成之后,我们将其放到每行的最后*/

}

}

main()

{intx[M][N]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}},i,j;

printf("Thearraybeforemoving:

\n\n");

for(i=0;i

{for(j=0;j

printf("\n");

}

fun(x,2);

printf("Thearrayaftermoving:

\n\n");

for(i=0;i

{for(j=0;j

printf("\n");

}

}

 

16

#include

#defineN9

voidfun(inta[],intn)

{inti,j,max,min,px,pn,t;

for(i=0;i

{

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

max=min=___1___;a[i]/*设置循环maxmin的值都为a[i]以

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

当前位置:首页 > 高中教育 > 小学教育

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

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