2011年计算机等级考试二级C语言上机题库1115含答案.docVIP

  • 20
  • 0
  • 约3.64千字
  • 约 10页
  • 2018-06-24 发布于湖北
  • 举报

2011年计算机等级考试二级C语言上机题库1115含答案.doc

2011年计算机等级考试二级C语言上机题库1115含答案

第十一套 1程序填空 给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2、。 第1处 p=h-next; 第2处 if (p==0) return; 第3处 p=q; q=r; 2.程序修改 给定MODI1.Cfun函数的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。 # include stdio.h # include string.h #define N 80 int fun(char *s, char *t) {int n; char *p,*r; n=0; while (*s) { p=s; /*******found******/ r=t; while (*r) if(*r==*p){r++;p++;} else break; /*******found******/ if(*r==0) n++; s++; } return n; } 3程序设计 请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串,函数fun中给出的语句供供参考。 void fun (char a[M][N]),char *b) {int i;*b=0; for(i=0;iM;i++)strcat(b,a[i]); } 第十二套 1程序填空 给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第1处 NODE * fun (NODE *h) 第2处 r=q-next; 第3处 q=r; 2程序修改 给定程序MODI1.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。 #includestdio.h #includestring.h #define N 80 void fun(char *s,char t[]) {int i,j=0; for(i=0;istrlen(s);i++) /*******found******/ if(i%2|| s[i]%2==0) t[j++]=s[i]; /*******found******/ t[j]=’\0’; } 3程序设计 请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。函数fun中给出的语句仅供参考。 #include stdio.h void fun (int (*s)[10],int *b, int *n, int mm, int nn) { int i,j,np=0; for(i=0;inn;i++) for(j=0;jmm;j++) { b[np]=s[j][i]; np=i*mm+j+1; } *n=np; } 第十三套 1程序填空 给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序,即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第1处 p = h-next; 第2处 q=p-next; 第3处 if(p-data=q-data)) 2程序修改 给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。 fun ( NODE *h) { int max=-1; NODE *p; /*******found******/ p=h-next; while(p) { if (p-datamax) max=p-data; /*******found******/ p=p-next; } return max; } 3程序设计 请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中。一维数组中数据的个数存放在形参n所指的存储单元中。 void fun( int (*s)[10],int *b, int *n, int mm, int nn) { int i,j,k; for(i=0;imm;i++) for(j=0;jnn;j++) { k=i*nn+j;

文档评论(0)

1亿VIP精品文档

相关文档