二级C语言答案最新题库1.docx
- 文档编号:9104636
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:207
- 大小:69.93KB
二级C语言答案最新题库1.docx
《二级C语言答案最新题库1.docx》由会员分享,可在线阅读,更多相关《二级C语言答案最新题库1.docx(207页珍藏版)》请在冰豆网上搜索。
二级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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 答案 最新 题库