c语言编程题及答案汇总,C语言编程题及参考答案解析.doc

1请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。

int fun (int a[ ][M])

{

int i,j,max=a[0][0];

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

for(j=0;j

if(max

max=a[i][j];

return max;

}

2编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。

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

double fun( double eps)

{

double s=1.0,s1=1.0;

int n=1;

while(s1>=eps)  /*当某项大于精度要求时,继续求下一项*/

{ s1=s1]s=s+s1;  /*求和*/

n++;

}

return 2]

3编写函数fun,其功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

void fun(int *a,int *n)

{

int i,j=0;

for(i=1;i

if((i%7==0||i%11==0)&&i%77!=0)

a[j++]=i;

*n=j;  /*传回满足条件的数的个数*/

}

4规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。

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

void fun(char *a)

{

int i,j=0;

for(i=0;a[i]!=′\0′;i++)

if(a[i]!=′*′)

a[j++]=a[i];  /*若不是要删除的字符′*′则留下*/

a[j]=′\0′;  /*最后加上字符串结束符′\0′*/

}

5编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。

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

FirstString--

SecondString

程序输出:

FirstString--SecondString

void fun(char p1[],char p2[])

{

int i,j;

for(i=0;p1[i]!=′\0′;i++); /*求出的i为p1字符串的总长度,包括结束标记符*/

for(j=0;p2[j]!=′\0′;j++)

p1[i++]=p2[j];  /*将p2字符串连在p1字符串后面*/

p1[i]=′\0′;  /*在字符串最后加上结束标记符*/

}

6某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。

例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。

void fun(STREC *a)

{

int i;

a->ave=0.0;

for(i=0;i

a->ave=a->ave+a->s[i];

/*求各门成绩的总和*/

a->ave=a->ave/N;  /*求平均分*/

}

7 N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。

例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。

double fun(STREC *h)

{

double av=0.0;

STREC *p=h->next;  /*p直接指向"头结点"的下一个结点,即第一个成绩*/

while(p!=NULL)

{ av=av+p->s;  /*求总分数*/

p=p->next;

}

return av/N;  /*返回平均值*/

}

8编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。

例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。

void fun(int m, int *k, int xx[])

{

int i,j,n=0;

for(i=4;i

{ for(j=2;j

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值