清华大学出版社 C语言程序设计教程内容
如果对您有帮助,别忘了关注博主~
包含内容:选择结构,循环结构,数组,函数,结构体,共用体
一、函数
1.函数方法实现n个整数之和。
#include<stdio.h>
#include<string.h>
int main()
{
int n;
int sum(int n);
scanf("%d",&n);
printf("sum=%d\n",sum(n));
return 0;
}
int sum(int n)
{
int a[10],i,s=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
s=s+a[i];
return s;
}
2.函数方法实现n!
//递归方法
#include<stdio.h>
#include<string.h>
int main()
{
int n;
long fact(int n);
scanf("%d",&n);
printf("%d!=%d\n",n,fact(n));
return 0;
}
long fact(int n)
{
long res;
if(n==0||n==1)
res=1;
else
res=n*fact(n-1);
return(res);
}
//普通函数方法
#include<stdio.h>
int main()
{
int n;
long fact(int n);
scanf("%d",&n);
printf("%d!=%d\n",n,fact(n));
return 0;
}
long fact(int n)
{
long res=1;
int i;
for(i=1;i<=n;i++)
res=res*i;
return(res);
}
3.函数方法求1!+2!+......+n!
#include<stdio.h>
int main()
{
int n,i;
long s=0;
long fact(int n);
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s+fact(i);
printf("sum=%ld\n",s);
return 0;
}
long fact(int n)
{
long res=1;
int i;
for(i=1;i<=n;i++)
res=res*i;
return(res);
}
4.函数法求1+2+3+......+n
//函数方法实现1+2+3+...+n 递归方法
#include<stdio.h>
int main()
{
int n;
long sum(int n);
scanf("%d",&n);
printf("sum=%ld\n",sum(n));
return 0;
}
long sum(int n)
{
long s;
if(n==1)
s=1;
else
s=n+sum(n-1);
return(s); //return s;
}
//函数方法实现1+2+3+...+n 普通函数方法
#include<stdio.h>
int main()
{
int n;
long sum(int n);
scanf("%d",&n);
printf("sum=%ld\n",sum(n));
return 0;
}
long sum(int n)
{
long s=0;
int i;
for(i=1;i<=n;i++)
s=s+i;
return(s); //return s;
}
5.函数方法求X^n.
#include<stdio.h>
int main()
{
float x;
int n;
float mypow(float x,int n);
scanf("%f%d",&x,&n);
printf("%f\n",mypow(x,n));
return 0;
}
float mypow(float x,int n)
{
float y=1;
int i;
for(i=1;i<=n;i++)
y=y*x;
return y;
}
6.编写一个判断素数的函数
#include<stdio.h>
int main()
{
int n,k;
int prime(int n);
scanf("%d",&n);
k=prime(n);
if(k==1) printf("yes\n");
else printf("no\n");
return 0;
}
int prime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)break;
if(i>=n) return 1;
else return 0;
}
二、结构体,共用体
1.输入某班30位学生的姓名、数学和英语成绩,计算并输出每个学生的平均成绩
#include<stdio.h>
#include<stdlib.h>
struct student{
char name[10];
int math,eng;
float aver;
};
main()
{
struct student s[3];
int i;
float aver_m=0,aver_e=0;
for(i=0;i<3;i++)
{
scanf("%s%d%d",s[i].name,&s[i].math,&s[i].eng);
s[i].aver=(s[i].math+s[i].eng)/2.0;
printf("%s %.1f\n",s[i].name,s[i].aver);
}
system("pause");
}
2.共用体练习
#include<stdio.h>
#include<stdlib.h>
union un
{
int i;//4
char a[2];//2
};
main()
{
union un x;//4B
x.a[0]=10; //00001010
x.a[1]=1; // 00000001
printf("%d\n",x.i); //00000001 00001010 =256+ 8 +2=
system("pause");
}
//输出:266
三、总结
如果对您有帮助,别忘了关注博主~