c语言课后习题第7章函数

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习 题 7

7.1 已有变量定义和函数调用语句:int a=1,b=–5,c ;c=fun(a,b);fun 函数的作用是计算

两个数之差的绝对值,并将差值返回调用函数,请编写fun 函数。

Fun(int x,int y)

{ }

7.1 求两数之差绝对值

#include

fun(int x,int y)

{ return abs(x-y); }

main()

{ int a=1,b=-5,c;

c=fun(a,b);

printf("|%d-%d|=%d\n",a,b,c);

}

7.2 已有变量定义和函数调用语句:int x=57;isprime(x);函数isprime( );用来判断

一个整型数a 是否为素数,若是素数,函数返回1,否则返回0。请编写isprime 函数。 isprime(int a)

{ }

7.3 已有变量定义和函数调用语句int a ,b ;b=sum(a);函数sum()用以求∑=n

k k 1,和数作为

函数值返回。若a 的值为10,经函数sum 的计算后,b 的值是55。请编写sum 函数。 Sum(int n)

{ }

7.3 求∑k

#include

sum(int n)

{ int k,s=0;

for(k=1;k<=n;k++)

s=s+k;

return s;

}

main()

{ int a,b;

printf("Input a: "); scanf("%d",&a);

b=sum(a);

printf("%c(1,%d)=%d\n",228,a,b);

}

7.4 一函数,输入一行字符,将此字符串中最长的单词输出。

7.4 输出最长的单词,假设只包含字母和空格,单词间以空格分隔,空格个数不限#include

void fun(char a[])

{ int n,i,j,k=0,len[80],p;

char c[80][80],max[80];

n=strlen(a);

for(i=0;i

if(a[i]!=32) /*a[i]不为空格,说明单词开始了*/

{ j=0;

while(a[i]!=32) /*没有遇到下一个空格,说明单词没有结束*/

{ c[k][j]=a[i]; j++; i++; } /*将单词放入字符串c[k]*/

c[k][j]='\0'; /*人为加串尾标志*/

k++; /*k为下一个单词存入c的行号*/

}

for(i=0;i

len[i]=strlen(c[i]); /*求每行字符串的长度*/

p=0;

if(len[p]

/*找最长字符串的行号*/

printf("The word is : %s\n",c[p]);

}

main()

{ char a[80];

printf("Input a line string: "); gets(a);

fun(a);

}

7.5 一函数,输入一个十六进制数,输出相应的十进制数。

7.5 十六进制数转换成十进制数

#include

#include

int fun(char a[])

{ int i,n=0,m;

for(i=0;a[i];i++)

{ if(isalpha(a[i]))

/*如果a[i]是字母,求出相应的十进制数*/

switch(a[i])

{ case 'a':

case 'A': m=10; break;

case 'b':

case 'B': m=11; break;

case 'c':

case 'C': m=12; break;

case 'd':

case 'D': m=13; break;

case 'e':

case 'E': m=14; break;

case 'f':

case 'F': m=15; break;

default: printf("Input error!\n"); exit(0);

/*如果输入了不合法的字母,输出相应的信息*/ }

else if(isdigit(a[i])) /*如果a[i]是数字*/

m=a[i]-'0';

else { printf("Input error!\n"); exit(0); }

/*如果输入了不合法的字符,输出相应的信息*/ n=n*16+m; /*将十六进制数转换成十进制数*/ }

return n;

}

main()

{ char a[80]; int n;

printf("input: "); scanf("%s",a);

n=fun(a);

printf("output: %d\n",n);

}

7.6 给出年、月、日,计算该日是该年的第几天。#include

int fun(year,month,day)

{ int n=0,i;

n=n+day; /*累加当月的天数*/

for(i=month-1;i>0;i--) /*累加前面月份的天数*/

switch(i)

{ case 12: n=n+31;

case 11: n=n+30;

case 10: n=n+31;

case 9: n=n+30;

case 8: n=n+31;

case 7: n=n+31;

case 6: n=n+30;

case 5: n=n+31;

相关文档
最新文档