二级C语言答案最新题库1.docx

上传人:b****6 文档编号:8607860 上传时间:2023-02-01 格式:DOCX 页数:176 大小:69.91KB
下载 相关 举报
二级C语言答案最新题库1.docx_第1页
第1页 / 共176页
二级C语言答案最新题库1.docx_第2页
第2页 / 共176页
二级C语言答案最新题库1.docx_第3页
第3页 / 共176页
二级C语言答案最新题库1.docx_第4页
第4页 / 共176页
二级C语言答案最新题库1.docx_第5页
第5页 / 共176页
点击查看更多>>
下载资源
资源描述

二级C语言答案最新题库1.docx

《二级C语言答案最新题库1.docx》由会员分享,可在线阅读,更多相关《二级C语言答案最新题库1.docx(176页珍藏版)》请在冰豆网上搜索。

二级C语言答案最新题库1.docx

二级C语言答案最新题库1

第1套

1.程序中,函数fun的功能是将不带头结点的单向链表逆置。

即若原链表中从头至尾结点数据域依次为:

2、4、6、8、10,逆置后,从头至尾结点数据域依次为:

10、8、6、4、2。

#include

#include

#defineN5

typedefstructnode{

intdata;

structnode*next;

}NODE;

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

__1__fun(NODE*h)

{NODE*p,*q,*r;

p=h;

if(p==NULL)

returnNULL;

q=p->next;

p->next=NULL;

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

while(__2__)

{r=q->next;

q->next=p;

p=q;

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

q=__3__;

}

returnp;

}

NODE*creatlist(inta[])

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

h=NULL;

for(i=0;i

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

q->data=a[i];

q->next=NULL;

if(h==NULL)h=p=q;

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

}

returnh;

}

voidoutlist(NODE*h)

{NODE*p;

p=h;

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]={2,4,6,8,10};

head=creatlist(a);

printf("\nTheoriginallist:

\n");

outlist(head);

head=fun(head);

printf("\nThelistafterinverting:

\n");

outlist(head);

}

答案:

(1)NODE*

(2)q(3)r

2..给定程序MODI1.C中函数fun的功能是:

将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。

#include

#include

#defineN80

voidfun(char*s,chart[])

{inti,j=0;

for(i=0;i

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

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

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

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

t[i]='\0';

}

main()

{chars[N],t[N];

printf("\nPleaseenterstrings:

");gets(s);

fun(s,t);

printf("\nTheresultis:

%s\n",t);

}

答案:

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

(2)t[j]=’\0’;

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

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

#include

voidfun(int(*s)[10],int*b,int*n,intmm,intnn)

{

 

}

main()

{intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;

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

printf("Thematrix:

\n");

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

{for(j=0;j<4;j++)printf("%3d",w[i][j]);

printf("\n");

}

fun(w,a,&n,3,4);

printf("TheAarray:

\n");

for(i=0;i

NONO();

}

NONO()

{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/

FILE*rf,*wf;inti,j,k;

intw[10][10],a[100],n=0,mm,nn;

rf=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

for(k=0;k<5;k++){

fscanf(rf,"%d%d",&mm,&nn);

for(i=0;i

for(j=0;j

fun(w,a,&n,mm,nn);

for(i=0;i

}

fclose(rf);fclose(wf);

}

答案:

voidfun(int(*s)[10],int*b,int*n,intmm,intnn)

IntI,j,k=0;

for(j=0;j

for(i=0;i

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

*n=k;

}

第2套

1.通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。

函数fun的功能是形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。

例如:

b所指变量t中的学号、姓名和3门课的成绩依次是:

10002、“ZhangQi”、93、85、87,修改后输出t中的数据应为:

10004、“LiiJie”、93、85、87。

#include

structstudent{

longsno;

charname[10];

floatscore[3];

};

voidfun(structstudent*b)

{

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

b__1__=10004;

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

strcpy(b__2__,"LiJie");

}

main()

{structstudentt={10002,"ZhangQi",93,85,87};

inti;

printf("\n\nTheoriginaldata:

\n");

printf("\nNo:

%ldName:

%s\nScores:

",t.sno,t.name);

for(i=0;i<3;i++)printf("%6.2f",t.score[i]);

printf("\n");

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

fun(__3__);

printf("\nThedataaftermodified:

\n");

printf("\nNo:

%ldName:

%s\nScores:

",t.sno,t.name);

for(i=0;i<3;i++)printf("%6.2f",t.score[i]);

printf("\n");

答案:

1)->sno

(2)->name(3)&t

2.给定程序MODI1.C中函数fun的功能是:

应用递归算法求形参a的平方根。

#include

#include

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

doublefun(doublea,dounlex0)

{doublex1,y;

x1=(x0+a/x0)/2.0;

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

if(fabs(x1-xo)>0.00001)

y=fun(a,x1);

elsey=x1;

returny;

}

main()

{doublex;

printf("Enterx:

");scanf("%lf",&x);

printf("Thesquarerootof%lfis%lf\n",x,fun(x,1.0));

}

答案:

(1)doublefun(doublea,doublex0)

(2)if(fabs(x1-x0)>0.00001)

3.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中。

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

把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。

#include

#defineN12

typedefstruct

{charnum[10];

doubles;

}STREC;

doublefun(STREC*a,STREC*b,int*n)

{

 

}

main()

{STRECs[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},

{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},

{"GA09",60},{"GA11",79},{"GA12",73},{"GA10",90}};

STRECh[N],t;FILE*out;

inti,j,n;doubleave;

ave=fun(s,h,&n);

printf("The%dstudentdatawhichishigherthan%7.3f:

\n",n,ave);

for(i=0;i

printf("%s%4.1f\n",h[i].num,h[i].s);

printf("\n");

out=fopen("c:

\\test\\out.dat","w");

fprintf(out,"%d\n%7.3f\n",n,ave);

for(i=0;i

for(j=i+1;j

if(h[i].s

for(i=0;i

fprintf(out,"%4.1f\n",h[i].s);

fclose(out);

}

答案:

doublefun(STREC*a,STREC*b,int*n)

{

inti,j;

doubleave,sum=0.0;

*n=0;

for(i=0;i

{

sum+=a[i].s;

}

ave=sum/N;

for(i=0,j=0;i

{

if(a[i].s>=ave)

{

b[j]=a[i];

j++;

(*n)++;

}

i++;

}

returnave;

}

第3套

1.程序中,函数fun的功能是计算下式,并把计算结果作为函数值返回。

#include

doublefun(doublee)

{inti;doubles,x;

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

s=0;i=__1__;

x=1.0;

while(x>e){

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

__2__;

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

x=(2.0*i-1)/((__3__)*(2.0*i));

s=s+x;

}

returns;

}

main()

{doublee=1e-3;

printf("\nTheresultis:

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

}

答案:

(1)0

(2)i++(3)2.*i

2.给定程序MODI1.C中函数fun的功能是:

将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。

#include

#include

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

voidfun(chars,chart)

{

inti,d;

d=strlen(s);

for(i=0;i

for(i=0;i

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

t[2*d-1]='\0';

}

main()

{

chars[100],t[100];

printf("\nPleaseenterstringS:

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

fun(s,t);

printf("\nTheresultis:

%s\n",t);

}

答案:

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

(2)t[2*d]=’\0’;

3.函数fun的功能是:

将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所以字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。

#include

#include

voidfun(char*s,chart[])

{

 

}

main()

{

chars[100],t[100];voidNONO();

printf("\nPleaseenterstringS:

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

fun(s,t);

printf("\nTheresultis:

%s\n",t);

NONO();

}

voidNONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

chars[100],t[100];

FILE*rf,*wf;

inti;

rf=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

for(i=0;i<10;i++){

fscanf(rf,"%s",s);

fun(s,t);

fprintf(wf,"%s\n",t);

}

fclose(rf);

fclose(wf);

}

答案:

52.voidfun(char*s,chart[])

{

inti=0,j=0;

while(s[i])

{

if((i%2!

=0)&&(s[i]%2!

=0))

{

t[j]=s[i];

j++;

}

i++;

}

t[j]=0;

}

第4套

1.程序中,函数fun的功能是:

将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。

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

def35adh3kjsdf7。

执行结果为:

defadhkjsdf3537。

#include

voidfun(char*s)

{inti,j=0,k=0;chart1[80],t2[80];

for(i=0;s[i]!

='\0';i++)

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

{

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

t2[j]=s[i];___1___;

}

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

t2[j]=0;t1[k]=0;

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

for(i=0;i

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

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

}

main()

{chars[80]="ba3a54j7sd567sdffs";

printf("\nTheoriginalstringis:

%s\n",s);

fun(s);

printf("\nTheresultis:

%s\n",s);

}

答案:

(1)j++

(2)s[i]=t1[i](3)j

2..给定程序MODI1.C中函数fun的功能是:

用冒泡法对6个字符串按由小到大的顺序进行排序。

#include

#include

#defineMAXLINE20

fun(char*pstr[6])

{inti,j;

char*p;

for(i=0;i<5;i++){

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

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

{

if(strcmp(*(pstr+i),*(pstr+j))>0)

{

p=*(pstr+i);

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

*(pstr+i)=pstr+j;

*(pstr+j)=p;

}

}

}

}

main()

{inti;

char*pstr[6],str[6][MAXLINE];

for(i=0;i<6;i++)pstr[i]=str[i];

printf("\nEnter6string(1stringateachline):

\n");

for(i=0;i<6;i++)scanf("%s",pstr[i]);

fun(pstr);

printf("Thestringsaftersorting:

\n");

for(i=0;i<6;i++)printf("%s\n",pstr[i]);

}

答案:

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

(2)*(pstr+i)=*(pstr+j);

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

求出ss所指字符串中指定字符的个数,并返回此值。

#include

#include

#defineM81

intfun(char*ss,charc)

{

 

}

main()

{chara[M],ch;

voidNONO();

printf("\nPleaseenterastring:

");gets(a);

printf("\nPleaseenterachar:

");ch=getchar();

printf("\nThenumberofthecharis:

%d\n",fun(a,ch));

NONO();

}

voidNONO()

{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/

inti;

FILE*rf,*wf;

chara[M],b[M],ch;

rf=fopen("c:

\\test\\in.dat","r");

wf=fopen("c:

\\test\\out.dat","w");

for(i=0;i<10;i++){

fscanf(rf,"%s",a);

fscanf(rf,"%s",b);

ch=*b;

fprintf(wf,"%c=%d\n",ch,fun(a,ch));

}

fclose(rf);

fclose(wf);

}

答案:

53.intfun(char*ss,charc)

{

intn=0,i=0;

while(ss[i])

{

if(ss[i]==c)

{

n++;

}

i++;

}

returnn;

}

第5套

1.程序中,函数fun的功能是:

有NxN矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。

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

123

456

789

计算结果为

100

650

10149

#include

#defineN4

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

voidfun(int(*t)___1___)

{inti,j;

for(i=1;i

{for(j=0;j

{

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

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

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

___3___=0;

}

}

}

main()

{intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;

printf("\nTheoriginalarray:

\n");

for(i=0;i

{for(j=0;j

printf("\n");

}

fun(t);

printf("\nTheresultis:

\n");

for(i=0;i

{for(j=0;j

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

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

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

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