全国计算机二级C语言考试.docx
《全国计算机二级C语言考试.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言考试.docx(79页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1、给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通 过函数值返回该结点在链表中所处的顺序号;若不存在 值为ch的结点,函数返回0值。请在程序的下划线处填入正确的内容并把下划线 删除,使程序得出正确的结果。#define N 8typedef struct 1st int data;struct list *next; SLIST;SLIST *creatlist(char *);void outlist(SLIST *);int fun( SLIST *h, char ch) SLIST *p; int n=0;p=h-next;/* * */w
2、hile(p!=1)n+;/*found*/if (p-data=ch) return 2;else p=p-next;return 0;main() SLIST *head; int k; char ch;char aN=m7p,gVal;wVxVrVd,); head=creatlist(a);outlist(head);printf(HEnter a letter:M);scanf(%c,&ch);/* * */k=fun(_3-);if (k=0)printf(nNot found !n);elseprintf(The sequence numberis : %dn,k);第1处:内容
3、为while(p!=0)第 2 处:内容为if (p-data=ch) return n;第 3 处:内容为k=fun(head,ch);2、给定程序modi.c中,函数fun的功能是:给定n个 实数,输出平均值,并统计在平均值以上(含平均值) 的实际个数。例如,n=8 时输入:193.199、195.673、195.757, 196.051、196.092、196.596、196.579, 196,763 所得平 均值为:195.838745,在平均值以上的实数个数应为:5请改正程序中的错误,使它能得出正确结果。#include #include #includewindows.hint f
4、un(float x,int n)/* * found * */int j,c=0;float xa=0.0;for(j=0;jn;j+)xa+=x|j/n;printf(,ave=%fn,xa);for(j=0;jxa)C+;return c;main()floatx 100=(193.199f,l 95.673f, 195.757f,l 96.051 f, 196.092f,l 96.596f, 196.579f, 196.763f;system(nclsn);printf(,%dn,fun(x,8);第 1 处:内容为 intj,c=0;floatxa=0.0;第 2 处:内容为if(x
5、j=xa)3、假定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:除了字符串前导和尾部的*号之外, 将串中其它*号全部删除。形参h一指向字符串中第一 个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为: *A*BC*DEF*G*,删除后,字符串中的内容 应当是:*abcdefg*。在编写函数时,不 得使用C语言提供的字符串函数。void fun(char *a,char *h,char *p)char b81,*x;int i=0,j=0;while (xh) bj=*x;x+;j+;while (hnext;whil
6、e(p) (*n)+;/* * */P=p-2;main() SLIST *head;int aN= 12,87,45,32,91,16,20,48), num;head=creatlist(a); outlist(head);/*nd 字*/fun(3, &num);printf(nnumber=%dnH,num);第1处:内容为K*n)=0;第2处:内容为p=p-next;第 3 处:内容为fun(head, &num);2、给定程序modi.c中,fun函数的功能是:将n个无 序整数从小到大排序。请改正程序中的错误,使它能得 出正确结果。fun(int n,int *a)inti,j,p
7、,t;for (j=O;jn-l;j+)P=j;/* */for (i=j+1 ;iai)/*found*/t=i;if (p!=j)t=ajj;aj=alpj;ap=t;)第 1 处:内容为for (i=j+l;i=eps) pi+=one;n+; up=up*n;down=down*(2*n+1);one=(double)up/(double)down; return pi*2; ) 第3题 1、给定程序中,函数fun的功能是:计算出带有头结 点的单向链表中各结点数据域之和作为函数值返回。请在程序的下划线处填入正确的内容并把下划线 删除,使程序得出正确的结果。#define N 8 typ
8、edef struct 1st int data;struct list *next; SLIST;SLIST *creatlist(int *); void outlist(SLIST *); int fun( SLIST *h) SLIST *p;int s=0;p=h-next; while(p) (/* *found * */ s+= p-1;/* *fou nd * */ p=p-2;) return s;) main() SLIST *head;int aN= 12,87,45,32,91,16,20,48);head=creatlist(a); outlist(head);pri
9、ntf(,nsum=%dnn, fun(3);elsereturn t;第1处:内容为s+=p-data;第2处:内容为p=p-next;笫 3 处:内容为printf(nsum=%dn, fun(head);2、给定程序modi.c中,函数fun的功能是:按顺序给 s所指数组中的元素赋予从2开始的偶数,然后再按顺 序时每五个元素求一个平均值,并将这些值依次存放在 W所指的数组中,若s所指数组中元素的个数不是5的 倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元 素进行处理,不对最后的4个元素求平均值。#define SIZE 20fun(double *s,double
10、 *w) int kj double aim;for (k=2,i=0;iSIZE;i+) si=k; k+=2; /* */sun=0.0;for(k=0,i=0;iSIZE;i+) sum+=si;/*found*/if(i+l%5=0)wk=sum/5;sum=0;k4-+;)return k;)第1处:内容为sum=0.0;第 2 处:内容为if(i+l)%5=0)3、请编写一个函数fun,它的功能是:比较两个字符 串的长度,(不得调用C语言提供的求字符串长度的函 数),函数返回较长的字符串。若两个字符串长度相同, 则返回第一个字符串。例如,输入 beijing shanghai (v
11、CR为 回车键)函数将返回shanghaiochar *fun (char *s, char *t)int first=0,second=0;char *p,*q;p=s;q=t;while(*p+!=0)first+;while(*q+!=1)second+;if(first=second) return $else if (firstsecond)return $)第4题1、人员的记录由编号和出生年、月、日组成,N名人 员的数据已在主函数中存入结构体数组std中,且编号 唯一。函数fun的功能是:找出指定编号人员的数据, 作为函数值返回,由主函数输出,若指定编号不存在, 返回数据中的编号为
12、空串。请在程序的下划线处填入正确的内容并把下划线 删除,使程序得出正确的结果。#include#include#define N 8typedef struct char num10;int year,month,day ;STU;/* *found * */1 fin(STU *std, (har *num) int i; STU a=*,9999,99,99);for (i=0; iN; i+)/* * found* */if( strcmp(2,num)=0 )/* *fQund* * */return (3);return a;)main()STUstdN= HllllM984,2,1
13、5,“222222”, 1983,9,21,“3 33333*1984,9,1,444444, 1983,7,15,“555555”, 1984, 9,28,“666666”983,1115,“777777”, 1983,6,22,“888888”984,8,19;STU p;char n10=666666n;p=fun(std,n);if(p.num0=0)printf(unNot found !nn);else printf(MnSucceed !n );printf(u%s%d-%d-%dn,p.num,p.year,p.month,p.day);)第 1 处:内容为STU in(STU
14、 *std, char *num)第 2 处:内容为if( strcmp(std.num,num)=O )第 3 处:内容为return (stdi)J2给定程序modi.c中,函数fun的功能是:从s所指字符串中,找出t所指子串的个数作为函数值返回。例如,当s所指字符串中的内容为:abcdabfab, t 所指字符串的内容为:“ab”,则函数返回整数3。#include #include #include #include int fun(char *s,char *t)int n; char *p,*r;n=0;while (*s) p=s;r=t;while (*r)/*found*/i
15、f(*r=*p) r+;p+ else break;/* * */ if(r=O) n+;s+; return n; main()char s100,t100; int m;system(HclsM);printf(nPlease enter string S:);scanf(,%s,s);printf(unPlease enter substringm=fun(s,t);printf(nnThe result is: m=%dn,m);)第 1 处:内容为if(*=*p)r+;p+;第2处:内容为if(*r=W)3、规定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:使字符串
16、最前面连续的*号不得多于 n个:若多于n个,则删除多余的*号;若少于或等于n 个,则什么也不做,字符串中间和尾部的*号不删除。例如,字符串中的内容为: *A*BC*DEF*G*,若 n 的值为 4,删除后,字 符串中的内容应当是:*A*BC*DEF*G*:若n的 值为8 ,则字符串中的内容仍为: *A*bc*DEF*G*。n的值在主函数中输入。在 编写函数时,不得使用C语言提供的字符串函数。 void fun(char *a,int n) char b81;int i=O,j=O,s=O,k;while (ai=*) s+;i+; if (sn) for (c=0;kn;k+)bU=*;j+;
17、)while (ai)b|j=ai;j+;i+;)如=、0; i=0;j=0;while (b|jl) ai=bj;i+;j+;ai=Vr;)第5题1、人员的记录由编号和出生年、月、日组成,N名人 员的数据已在主函数中存入结构体数组std中。函数fun 的功能是:找出指定出生年份的人员,将其数据放在形 参k所指的数组中,由主函数输出,同时由函数值返回 满足指定条件的人数。#include #define N 8typedef struct int num;int year,month,day ;STU;int in(STU *std, STU *k, ht year) int i,n=O;fo
18、r (i=0; iN; i+)/* * *found */if( 1=year)/*nd*/kn+= _2_;/*nd */return (3);)main()STUstdN= 1,1984,2,15,2J 983,9,21,3,1984,9,1,4,19 83,7,15),5,1985,9,28,6,1982,11,15,7,1982,6,22,8,1984,8,19 );STU kN;int i,n,year;printf(HEnter a year : ); scanf(%du,&year);n=fun(std,k,year);if(n=0)printf(nNo person was b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 语言 考试
限制150内