c语言.docx

上传人:b****0 文档编号:17398511 上传时间:2023-07-24 格式:DOCX 页数:17 大小:19.73KB
下载 相关 举报
c语言.docx_第1页
第1页 / 共17页
c语言.docx_第2页
第2页 / 共17页
c语言.docx_第3页
第3页 / 共17页
c语言.docx_第4页
第4页 / 共17页
c语言.docx_第5页
第5页 / 共17页
c语言.docx_第6页
第6页 / 共17页
c语言.docx_第7页
第7页 / 共17页
c语言.docx_第8页
第8页 / 共17页
c语言.docx_第9页
第9页 / 共17页
c语言.docx_第10页
第10页 / 共17页
c语言.docx_第11页
第11页 / 共17页
c语言.docx_第12页
第12页 / 共17页
c语言.docx_第13页
第13页 / 共17页
c语言.docx_第14页
第14页 / 共17页
c语言.docx_第15页
第15页 / 共17页
c语言.docx_第16页
第16页 / 共17页
c语言.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言.docx

《c语言.docx》由会员分享,可在线阅读,更多相关《c语言.docx(17页珍藏版)》请在冰点文库上搜索。

c语言.docx

c语言

2432999999010001

【编程】编写函数fun,其功能是:

根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

程序运行后,若输入精度0.0005,则程序应输出为3.14…。

【答案】

doubles=1.0,s1=1.0;

intn=1;

while(s1>=eps)  

{ s1=s1*n/(2*n+1);

s=s+s1;  

n++;

}

Return2*s

编程】规定输入的字符串中只包含字母和*号。

编写函数fun,其功能是:

删除字符串中所有的*号。

编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:

****A*BC*DEF*G*******,删除后字符串中的内容应当是:

ABCDEFG。

【答案】

inti,j=0;

for(i=0;a[i]!

=′\0′;i++)

 if(a[i]!

=′*′)

a[j++]=a[i];

a[j]=′\0′;

【编程】编写函数fun,其功能是:

实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。

例如,分别输入下面两个字符串:

FirstString—SecondString程序输出:

FirstString--SecondString

【答案】

inti,j;

for(i=0;p1[i]!

=′\0′;i++);

for(j=0;p2[j]!

=′\0′;j++)

p1[i++]=p2[j];

p1[i]=′\0′;

编程】N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,其功能是:

求出平均分,并由函数值返回。

例如,若学生的成绩是:

85 76 69 85 91 72 64 87,则平均分应当是:

78.625。

【答案】

doubleav=0.0;

STREC*p=h->next;

while(p!

=NULL)

{ av=av+p->s;

p=p->next;

returnave/N;

【编程】编写函数fun,其功能是:

求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符为1,则输出3。

【答案】

inti=0;

for(;*ss!

=′\0′;ss++)

if(*ss==c)

i++;

returni;

【编程】学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:

把分数最高的学生数据放在b所指的数组中。

注意:

分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

【答案】

inti,j=0,max=a[0].s;

for(i=0;i

if(max

for(i=0;i

if(max==a[i].s)b[j++]=a[i];  

returnj;

【编程】规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

除了字符串前导的*号之外,将串中其它*号全部删除。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:

****A*BC*DEF*G*******,删除后,字符串中的内容应当是:

****ABCDEFG。

【答案】

inti=0;

char*p=a;

while(*p&&*p==′*′)

{

a[i]=*p;i++;p++;

}

while(*p)

{

if(*p!

=′*′)

{

   a[i]=*p;i++;

}

p++;

}

a[i]=′\0′;

【编程】编写函数voidfun(char*tt,intpp[]),统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组中。

例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:

33322110000000000000000000

【答案】

inti;

for(i=0;i<26;i++)

 pp[i]=0;

if(*tt>=′a′&&*tt<=′z′)

   pp[*tt-′a′]++;

【编程】规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:

****A*BC*DEF*G*******,删除后,字符串中的内容应当是:

****A*BC*DEF*G。

在编写函数时,不得使用C语言提供的字符串函数。

【答案】

while(*a!

=′\0′)

a++;

a--;

while(*a==′*′)

a--; 

*(a+1)=′\0′;

【编程】编写函数fun,其功能是:

比较字符串的长度,(不得使用C语言提供的求字符串长度的函数),函数返回较长的字符串。

若两个字符长度相同,则返回第一个字符串。

例如,输入beijingshanghai为回车键),函数将返回shanghai。

【答案】

inti,j;

for(i=0;s[i]!

=′\0′;i++);

for(j=0;t[j]!

=′\0′;j++);

if(i>=j) 

returns; 

else

returnt;

【编程】学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:

函数返回该学号的学生数据,指定的学号在主函数中输入。

若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。

(用于字符串比较的函数是strcmp)。

【答案】

inti;

STRECstr={"\0",-1};

 if(strcmp(a[i].num,b)==0)

str=a[i];

returnstr; 

【编程】规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

将字符串中的前导*号全部移到字符串的尾部。

例如,字符串中的内容为:

*******A*BC*DEF*G****,移动后,字符串中的内容应当是:

A*BC*DEF*G***********。

在编写函数时,不得使用C语言提供的字符串函数。

【答案】

inti=0,n=0;

char*p;

p=a;

while(*p==′*′)

{

n++;p++;

}

while(*p)

{

a[i]=*p;i++;p++;

}

while(n!

=0)

{

a[i]=′*′;i++;n--;

}

a[i]=′\0′;

编程】规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

只删除字符前导和尾部的*号,串中字母间的*号都不删除。

形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“A*BC*DEF*G”。

【答案】

inti,j=0;

for(i=h;i

a[j++]=a[i];

a[j]=′\0′;

【编程】假定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

除了尾部的*号之外,将字符中的其它的*号全部删除。

形参p已指向字符串中最后的一个字母。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是ABCDEFG*******。

【答案】

char*t=a;

for(;t<=p;t++)

if(*t!

=′*′)

   *(a++)=*t; 

for(;*t!

=′\0′;t++)

*(a++)=*t; 

*a=′\0′;  

【编程】学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:

按分数降序排列学生的记录,高分在前,低分在后。

【答案】

inti,j;

STRECt;

for(i=1;i

 for(j=0;j

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

【编程】N名学生的成绩已在主函数中放入一个带有头节点的链表结构中,h指向链表的头节点。

请编写函数fun,其功能是:

找出学生的最高分,并由函数值返回。

【答案】

doublemax=h->s;

while(h!

=NULL)  

{ if(maxs)max=h->s;

 h=h->next;

}

returnmax;

【编程】请编写函数fun,该函数的功能是:

将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

例如,若字符串数组中的M个字符串为

  “AAAA”,“BBBBBBB”,“CC”

  则合并后的字符串内容应该是AAAABBBBBBBCC

【答案】

inti,j,k=0;

for(i=0;i

for(j=0;a[i][j]!

=′\0′;j++)

b[k++]=a[i][j];

b[k]=′\0′;

【编程】请编写函数fun,函数的功能是:

移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。

例如,一维数组中的原始内容:

1,2,3,4,5,6,7,8,9,10;p的值为3.移动后,一维数组中的内容应为:

5,6,7,8,9,10,1,2,3,4。

【答案】

intx,j,ch;

for(x=0;x<=p;x++)

{ch=w[0];  

for(j=1;j

w[j-1]=w[j];  

}

w[n-1]=ch;

【编程】请编写函数fun,该函数的功能是:

删除一维数组中所有相同的数,使之只剩一个。

数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

  例如,若一维数组中的数据是:

  2223445666677899101010

  删除后,数组中的内容应该是:

  2345678910。

【答案】

inti,j=1;

for(i=1;i

if(a[j-1]!

=a[i])

    a[j++]=a[i];

returnj;

【编程】规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号;若少于或等n个,则不做处理,字符串中间和尾部的*号不删除。

  例如,字符串中的内容为:

*******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:

****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为:

*******A*BC*DEF*G****。

n的值在主函数中输入。

【答案】

inti=0,k=0;

char*p,*t;

p=t=a; 

while(*t==′*′)  

{k++;t++;}

if(k>n) 

{while(*p)

 {a[i]=*(p+k-n);

 i++;

 p++;

 }

 a[i]=′\0′;  

}

【编程】请编写函数fun,其功能是:

将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。

例如,若输入字符串"-1234",则函数把它转换为整数值-1234。

【答案】

longn=0;

intflag=1;

if(*p==′-′)  

elseif(*p==′+′) 

p++;

while(*p!

=′\0′)

{n=n*10+*p-′0′;  

p++;

}

returnn*flag;

【编程】编写函数fun,其功能是:

求Fibonacci数列中大于t的最小的数,结果由函数返回。

Fibonacci数列F(n)的定义为:

  F(0)=0,F

(1)=1

  F(n)=F(n-1)+F(n-2)

例如,当t=1000时,函数值为1597。

【答案】

intf0=0,f1=1,f;

do{

f=f0+f1;

f0=f1;f1=f;

}

while(f

returnf;

【编程】规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:

使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。

例如,字符串中的内容为:

****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应为:

****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:

****A*BC*DEF*G*******。

n的值在主函数中输入。

【答案】

inti=0,k=0;

char*p,*t;

p=t=a;

while(*t)

 t++;

t--;

while(*t==′*′)

{k++;t--;}

if(k>n)

{while(*p&&p

{a[i]=*p;

 i++;p++;

 }

 a[i]=′\0′;

}

【编程】编写函数fun,w是一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后n-1位的数作为函数值返回。

  例如,w值为5923,则函数返回923;若w值为923,则函数返回23。

【答案】

intn=1,j,s=1;

unsignedt;

t=w;

while(t>=10)

{

t=t/10;

n++;

}

for(j=1;j

s=s*10;

returnw%s;

【编程】编写函数fun,该函数的功能是:

从字符串中删除指定的字符。

同字母的大、小写按不同字符处理。

  例如,若程序执行时输入字符串为:

turbocandborlandc++

  从键盘上输入字符n,则输出为:

  turbocadborladc++

  如果输入的字符在字符串中不存在,则字符串照原样输出。

【答案】

inti=0;

char*p;

p=s;

while(*p)

{

if(*p!

=c)

{

   s[i]=*p;

   i++;

}

}

s[i]=′\0′;

编程】编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

例如,假定输入的字符串为asdasasdfgasdaszx67asdmklo,子字符串为as,则应当输出6。

【答案】

inti,j=0;

for(i=0;str[i+1]!

=′\0′;i++)

if(str[i]==substr[0]&&str[i+1]==substr[1])

j++;

returnj; 

【编程】请编写函数fun,其功能是:

统计一行字符串中单词的个数,作为函数值返回。

字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行开始没有空格。

【答案】

inti,j=0;

for(i=0;s[i]!

='\0';i++)

if(s[i]!

=''&&(s[i+1]==''||s[i+1]=='\0'))j++;

returnj;

【编程】编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。

【答案】

inti=0;

max=a[0];

for(i=0;i

if(strlen(max)

max=a[i];

returnmax;

【编程】请编写函数voidfun(intm,intk,intxx[]),该函数的功能是:

将大于整数m且紧靠m的k个素数存入所指定的数组中。

例如,若输入:

17,5,则应输出:

19,23,29,31,37。

【答案】

inti,j,n;

for(i=m+1,n=0;n

{

for(j=2;j

if(i%j==0)break;

if(j>=i)

xx[n++]=i;

}

【编程】请编写函数fun,函数的功能是:

移动字符串中的内容,移动的规则是把第1~m个字符,平移到字符串的最后,把m+1到最后的字符移到字符串的前部。

例如,字符串中原有的内容为:

ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:

DEFGHIJKABC。

【答案】

inti,j;

chart;

for(i=1;i<=m;i++)

{

t=w[0];

for(j=1;w[j]!

='\0';j++)

w[j-1]=w[j];

w[j-1]=t;

}

【编程】请编写函数fun,函数的功能是:

统计各年龄段的人数。

N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。

结果在主函数中输出。

【答案】

inti,j;

for(j=0;j

b[j]=0;

for(i=0;i

if(a[i]>=100)

b[10]++;

else

b[a[i]/10]++;

}

doublernd()

{

statict=29,c=217,m=1024,r=0;

r=(r*t+c)%m;

return((double)r/m);

请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。

可调用strlen函数求字符串的长度。

例如:

在键盘输入字符串2345210,函数返回长整型数2345210。

【答案】

inti,sum=0,len;

len=strlen(s);

for(i=0;i

{

sum=sum*10+*s-48;

s++;

}

returnsum;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2