您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 2012年9月二级C语言上机试题五栏
第01套:通讯录中记录每位学生的编号、姓名和电话号码。【微答案】(1)STYPE(2)FILE(3)fp【微答案】(1)for(i=0;isl;i++)(2)t[2*sl]='\0';【微答案】voidfun(inta,intb,long*c){*c=b%10+(a%10)*10+(b/10)*100+(a/10)*1000;}第02套:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中【微答案】(1)*fw(2)str(3)str【微答案】(1)voidfun(longs,long*t)(2)sl=sl*10;【微答案】intfun(STREC*a,STREC*b){inti,j=0,min=a[0].s;for(i=0;iN;i++)if(mina[i].s)min=a[i].s;for(i=0;iN;i++)if(min==a[i].s)b[j++]=a[i];returnj;}第03套:将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。【微答案】(1)fp(2)fclose(fp)(3)fname【微答案】(1)for(i=j+1;in;i++)(2)p=i;【微答案】voidfun(inta,intb,long*c){*c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000;}第04套:将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回为0。【微答案】(1)r(2)fs(3)ft【微答案】(1)if(d%2==0)(2)s/=10;【微答案】voidfun(char*s,chart[]){inti,j=0;for(i=0;s[i]!='\0';i++)if(i%2==0&&s[i]%2==0)t[j++]=s[i];t[j]='\0';}※第05套:给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。【微答案】(1)x(2)p(3)s【答】(1)longk=1;(2)num/=10;【微答案】floatfun(float*a,intn){inti;floatav=0.0;for(i=0;in;i++)av=av+a[i];return(av/n);}第06套:在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。【微答案】(1)next(2)t-data(3)t【微答案】(1)voidfun(char*a)(2)printf(%c,*a);【微答案】char*fun(char*s,char*t){inti,j;for(i=0;s[i]!='\0';i++);for(j=0;t[j]!='\0';j++);if(i=j)returnt;elsereturns;}第07套:链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个【微答案】(1)q(2)next(3)next【微答案】(1)p=j;(2)p=i;【微答案】voidfun(intm,int*a,int*n){inti,j=0;for(i=1;i=m;i++)if(i%7==0||i%11==0)a[j++]=i;*n=j;}第08套:查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。【微答案】(1)NULL(2)n(3)head,ch【微答案】(1)for(i=0,t=0;p[i];i++)(2)c[t]='\0';【微答案】voidfun(char*ss){inti;for(i=0;ss[i]!='\0';i++)if(i%2==1&&ss[i]='a'&&ss[i]='z')ss[i]=ss[i]-32;}第09套:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。【微答案】(1)*n(2)next(3)head【答案】(1)a=NULL;(2)if(*r==*p)【微答案】voidfun(inta,intb,long*c){*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;}第10套:计算出带有头结点的单向链表中各结点数据域中值之和作为函数值返回。【微答案】(1)data(2)next(3)head【微答案】(1)while(*r)(2)*a=*r;a++;r++;【微答案】voidfun(char*s,chart[]){inti,j=0,k=strlen(s);for(i=1;ik;i=i+2)t[j++]=s[i];t[j]='\0';}第11套:人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。【微答案】(1)STU(2)std[i].num(3)std[i]【微答案】(1)if(*r==*p){r++;p++;}(2)if(*r=='\0')【微答案】voidfun(char*s,chart[]){inti=0;for(;*s!='\0';s++)if(*s%2==1)t[i++]=*s;t[i]='\0';}第12套:人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,同时由函数值返回满足指定条件的人数。【答案】(1)std[i].year(2)std[i](3)n【微答案】(1)IsPrime(intn)(2)if(!(n%i))【微答案】fun(STUa[],STU*s){inti;*s=a[0];for(i=0;iN;i++)if(s-sa[i].s)*s=a[i];}第13套:给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。【微答案】(1)STU(2)score[i](3)&std【微答案】(1)if(k1)(2)elseif(k==0)。【微答案】voidfun(inta[][N],intn){inti,j;for(i=0;iN;i++)for(j=0;j=i;j++)a[i][j]=a[i][j]*n;}第14套:给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。【微答案】(1)std[](2)PERSON(3)std给定程序MODI1.C中函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。【微答案】(1)intk,q,i;(2)pt[i]=str[k][i];【微答案】voidfun(inta[][N]){inti,j;for(i=0;iN;i++)for(j=0;j=i;j++)a[i][j]=0;}第15套:给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。【微答案】(1)std[0](2)std[i].age(3)max.name【微答案】(1)voidfun(int*a,int*b)(2)t=*b;*b=*a;*a=t;【微答案】voidfun(inttt[M][N],intpp[N]){inti,j,max;for(j=0;jN;j++){max=tt[0][j];for(i=0;iM;i++)if(tt[i][j]max)max=tt[i][j];pp[j]=max;}}第16套:程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。【微答案】(1)tt(2)tt.score[i](3)std【微答案】(1)voidfun(int*a,intn)(2)m=i;【微答案】unsignedfun(unsignedw){intn=1,j,s=1;unsignedt;t=w;while(t=10){t=t/10;n++;}for(j=1;jn;j++)s=s*10;returnw%s;}第17套:给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长N。【微答案】(1)i+1(2)k=j(3)t【微答案】(1)voidfun(char*str,charch)(2)if(*str!=ch)(3)str[1]=0;【微答案】voidfun(char*s){charch;inti,m,n;i=0;m=n=strlen(s)-1;while(i(n+1)/2){ch=s[i];s[i]=s[m];s[m]=ch;i++;m--;}}第18套:给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长N。【微答案】(1)k(2)len(3)ss[i][j]【微案】(1)result*=n--;(2)returnresult;【微答案】voidfun(chars[],intc){inti=0;char*p;p=s;while(*p){if(*p!=c){s[i]=*p;i++;}p++;}s[i]='\0';}第19套:函数fun的功能是求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,【微答案】(1)ss[i](2)n+j(3)1【答案】(1)if(*p=='')(2)*(p-1)=toupper(*(p-1));【微答案】voidfun(char*s,intnum){charch;inti,j;for(i=1;i6;i++)for(j=i+1;j6;j++){if(*(s+i)*(s+j)){ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;}}}第20套:给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长N【微答案】(1)[N](2)len(3)*n=len【微答案】(1)t+=1.0/i;(2)returnt;【微答案】intfun(char*str,char*substr){inti,j=0;for(i=0;str[i+1]!='\0';i++)if(str[i]==substr[0]&&str[i+1]==substr[1])j++;returnj;}第21套:函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大写英文字母;若ch中是大写英文字母,则转换成对应的小写英文字母;若是其它字符则保持不变;并将转换后的结果作为函数值返回。【微答案】(1)&&(2)'A'(3)ch【微答案】(1)voidfun(int*a)(2)a[j]=a[j-1];【微答案】intfun(intn){ints=0,i;for(i=2;i=n-1;i++)if(n%i==0)s+=i;returns;}第22套:函数fun的功能是:计算的前n项之和。若x=2.5,n=15时,函数值为:1.917914。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。【微答案】(1)1.0(2)-1(3)t【微答案】(1)for(i=1;i=3;i++)(2)if(k=0&&k=6)【微答案】doublefun(intn){doublet,sn=1.0;inti,j;for(i
本文标题:2012年9月二级C语言上机试题五栏
链接地址:https://www.777doc.com/doc-3031944 .html