- 2022-04-09 发布 |
- 37.5 KB |
- 6页



申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
04级C语言答案
吉林大学计算机学院2004级《高级语言程序设计》试题(A)参考答案及评分标准一、(20分)主函数PAD------------------------------------------------------------------------------5分程序------------------------------------------------------------------------------5分素数判断函数PAD------------------------------------------------------------------------------5分程序------------------------------------------------------------------------------5分n<10main结束打印u,vn=0;u=3;v=u+2u为素数&&v为素数&&(v-u)==2n++u++;v++;for(j=m/2;j>=2;j--)prime(intm)结束returnfalsem%j==0returntrue/*PROGRAMwriteprime*/#include"stdio.h"boolprime(intm){intj;for(j=m/2;j>=2;j--)if(m%j==0)returnfalse;returntrue;}intu,v,n;voidmain(){n=0;u=3;v=u+2;while(n<10){if(prime(u)&&prime(v)&&(v-u)==2){printf("%5d%5dn",u,v);n++;第6页共6页n}u++;v++;}}第6页共6页一、(20分)多项式保存的数据结构-------------------------------------------------------------4分PAD图每个循环(2个)----------------------------------------------------------4分程序每个循环(2个)-----------------------------------------------------------4分结束ph(taa,intx)(a[0][i])>0rs=0;i=0freturnrstmp=a[1][i]i++;a[0][i]==0for(j=1;j<=a[0][i];j++)tmp=tmp*xrs=rs+tmprs=rs+a[1][i]typedeffloatta[2][20];//假设多项式最多不超过20项,以0次幂结束。//数组第一行保存幂次,第二行对应元素保存相应幂次的系数。voidph(taa,intx){floatrs,i,j,tmp;rs=0;i=0;while(a[0][i]>0){tmp=a[1][i];for(j=1;j<=a[0][i];j++)tmp=tmp*x;rs=rs+tmp;i++;}if(a[0][i]==0)rs=rs+a[1][i];returnrs;}第6页共6页二、(20分)PAD图和程序每个循环(2个)--------------------------------------------------------------5分分支判断---------------------------------------------------------------------6分第6页共6页n返回语句---------------------------------------------------------------------4分for(i=0;i<10;i++)boolmatrix(inta[10][10])结束returnfalsea[i][j]!=a[j][i]returntruefor(j=0;j<10;j++)boolmatrix(inta[10][10]){inti,j;for(i=0;i<10;i++)for(j=0;j<10;j++)if(a[i][j]!=a[j][i])returnfalse;returntrue;}第6页共6页一、(15分)PAD图和程序函数声明----------------------------------------------------------------------------------------3分每个条件分支(3个)----------------------------------------------------------------------4分结束return1n==0n==1return2*xreturn2*x*h(x,n-1)-2*(n-1)*h(x,n-2);floath(floatx,intn)floath(floatx;intn){if(n==0)return1;elseif(n==1)return2*x;elsereturn2*x*h(x,n-1)-2*(n-1)*h(x,n-2);}第6页共6页二、(15分)巴克斯范式:------------------------------------------------------------------------------------------10分第6页共6页nS→字母|(S,S)字母→A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|zPAD图和程序-----------------------------------------------------------------------------------------5分scanf(“%s”,str)结束“illegal”se(&p)&&*p==’ ’“legal”mainp=str;‘A’≤**st≤’Z’(*st)++returntrueboolse(char**st)(**st)==’(’(*st)++v=se(st)(**st)!=’,’returnfalse(*st)++u=se(st)(**st)!=’)’returnfalse(*st)++returnu&&vreturnfalse结束#include"stdio.h"boolse(char**str){char**st=str;boolu,v;if('A'<=**st&&**st<='Z'){(*st)++;returntrue;}if(**st=='('){(*st)++;v=se(st);if(**st!=','){returnfalse;}else{(*st)++;u=se(st);if(**st!=')'){第6页共6页nreturnfalse;}else{(*st)++;returnu&&v;}}}returnfalse;}voidmain(){char*st="((A,B),C)";char*p=st;if(se(&p)&&*p==' ')printf("legaln");elseprintf("illegaln");}第6页共6页一、(10分)PAD图--------------------------------------------------------------------------------------------------3分程序结构体定义-------------------------------------------------------------------------------------------3分冒泡算法----------------------------------------------------------------------------------------------3分指针操作----------------------------------------------------------------------------------------------1分itemType*bubble(itemType*base)结束whileflagp!=NULLflag=falsep0->data大于p->data交换p0,pflag=trueflag=true申请哨兵变量r0r0->next=baseq=r0;p0=q->next;p=p0->next;q,p0,p依次向链尾串一项rs=r0->nextfree(r0)returnrs第6页共6页ntypedefstructitem{intdata;structitem*next;}itemType;itemType*bubble(itemType*base){itemType*r0,*p0,*p,*q,*rs;r0=(itemType*)malloc(sizeof(itemType));r0->next=base;r0->data=MIN;boolflag=true;while(flag){q=r0;p0=r0->next;p=p0->next;flag=false;while(p!=NULL){if(p0->data>p->data){q->next=p;p0->next=p->next;p->next=p0;flag=true;}q=q->next;p0=q->next;p=p0->next;}}rs=r0->next;free(r0);returnrs第6页共6页查看更多