安徽大学C语言实验平台作业答案 下载本文

int i;gets(str1); for(i=0;str1[i];i++) {

str2[str1[i]]=1; }

for(i=0;i!=256;i++) if(str2[i]==1) printf(\putchar('\\n'); return 0; }

实验十二 C函数的基本操作

1. 编写函数:计算三角形的面积。已知三角形三条边长,公式为:

其中x、y、z为边长,c=(x+y+z)/2。

2. 编写函数:用来判断一个整数是否满足“用4除余1,用5除余3,用7除余4”,满足则返回1,不满足返回0,然后编写main函数,通过调用该函数显示出200~500之间满足该条件的数。 3. 编写函数isprime( ),用来判断一个整数a是否为素数。再编写main函数,通过调用该函数打印出100~300之间所有的素数,要求一行打印10个。

4. 编写函数:判断一个整数是否为水仙花数,并编写主程序调用该函数求出所有的水仙花数。

5. 用迭代法求。迭代公式为:

迭代到为止 ,为方程的近似解。

6. 所谓完数就是它所有因子的和等于其自身自然数,如6=1+2+3,6就是一个完数。编写两个函数:函数factor(n)用来判断n是否是完数,函数PriFac(n)用来显示完数n的所有因子,在主函数中调用这两个函数,显示1~30000间的所有完数。

7. 以下函数p的功能是用递归方法计算x的n阶勒让德多项式的值。已有调用语句p(n,x);请编写p函数。递归公式如下:(此题为选做)

float p(int n, int x) { } 1.

#include #include int main(void)

{ double a, b, c, p, s; printf(\请输入a, b和c:\ scanf(\ p = (a + b + c) / 2;

s = sqrt(p * (p - a) * (p - b) * (p -c)); printf(\此三角形的面积为:%lf\\n\ return 0; } 2.

#include void fun(int m,int n) {

while(m<=n) {

if(m%4==1&&m%5==3&&m%7==4) {printf(\m++; } }

void main() {

fun(200,500); } 3.

#include int isprime(int x) {int y;

for(y=x-1;y>=1;y--) {

if(x%y==0)

{return y; break;} } } main() {int i,j=0,m; for(i=100;i<=300;i++) {m=isprime(i); if(m==1)

{printf(\j++; if(j==0) printf(\} } } 4.

#include fun(int x) {int a,b,c;

for(x=100;x<1000;x++) { a=(x/100); b=(x/10); c=x;

if( x==a*a*a+b*b*b+c*c*c) printf(\

} } main()

{int y; fun(y); } 5.

#include #include void main(void)

{ double a, b, c, d, e; printf(\ scanf(\ e = pow(a, 1.0/3);

do { c = b * 2/3 + a / (3 * b * b); d = c - b; b = c; } while((d <= -0.00001) || (d >= 0.00001)); printf(\6.

#include int factor(int n);

void prifac(int n); int w[10],k; main() {

int m,n;

for(n=2;n<=3000;n++) }

int factor(int n) {int s,i; k=-1; s=n;

for(i=1;i

void prifac(int n) {int i;

printf(\是完数\\n\}

{m=factor(n); if(m==1)prifac(n); }

实验十三 C函数调用中的数据传递

1. 编程实现:在主程序main( )中输入2个整数,通过调用函数将两者的值互换(要求分别用地址传递方式、全局外部变量传递方式编程)。

2. 编写函数:功能是删除字符串s中的所有数字字符。 3. 编写函数:功能是返回字符串s中的指定字符c的出现次数。

4. 在main函数中,定义一个含N个元素的数组,其中N是符号常量,然后编写下列各子函数完成相应的功能:

(1)编写函数sr:为该数组各元素赋值(要求调用随机函数为各数组元素赋值)。

(2)编写函数sc:打印该数组各元素,要求每行打印m个数,其中m作为形参传递。

(3)编写函数js:求该数组元素的最大值和最小值,最大值和最小值通过参数传递返回主调函数。

(4)编写函数px:实现对数组的排序。

各个函数编写完成后,请编写main函数,并在main中分别调用以上四个函数,以验证各子函数的功能。 1.

#include void swap(int *,int *); main() { int a,b;

printf(\scanf(\swap(&a,&b);

printf(\交换后:a=%d,b=%d\\n\}

void swap(int *p1,int *p2) { int t;

t=*p1,*p1=*p2,*p2=t; } 2.

#include int x,y; void Swap(); void main() {

printf(\scanf( \Swap(x,y);

printf(\}

void Swap() { int temp; temp=x; x=y; y=temp; return; } 3.

#include

void fun(char c[80], char x[1]) {int i = 0; int bit = 0;