(这些编程是大一时候作业里面的,兴许对大一计算机专业的同学有一定的帮助)
1、输入10个实数到一维数组中,将数组中的最大值和最小值交换位置。(用数组实现)
#include
void main()
{
int a[10],i,j,amax,amin,t,x,y;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
amax=a[0];
for(i=1;i<10;i++)
if(a[i]>amax) {amax=a[i]; x=i;}
amin=a[0];
for(j=1;j<10;j++)
if(a[j]
t=amin;amin=amax;amax=t;
a[x]=amax;a[y]=amin;
for(i=0;i<10;i++)
printf("% d",a[i]);
}
2、输入5个数后,输出其中绝对值最小的数。要求定义带参数的宏,计算两个数中绝对值最小的数
#include
#include
#define min(a,b) (fabs((a))
void main()
{
int a[5],i,m;
scanf("%d",&a[0]);
m=a[0];
for(i=1;i<5;i++)
{ scanf("%d",&a[i]);
m=min(m,a[i]);
}
printf("%d",m);
}
3、输入10个数,按绝对值从小到大排序后输出。要求定义一个函数sort,完成绝对值从小到大排序(用指针实现,可以参考教材P188例子)
#include
#include
void sort(int *a,int n)
{
int i,j,k,t;
for(i=0;i
for(j=0;j
if(fabs(*(a+j))>fabs(*(a+j+1))){
t=*(a+j);
*(a+j)=*(a+j+1);
*(a+j+1)=t;
}
}
}
void main()
{
int b[10],i,n;
for(i=0;i<10;i++)
scanf("%d",&b[i]);
sort(b,10);
for(n=0;n<10;n++)
printf("%4d",b[n]);
}
4、输入n和x,n和x分别表示对数组前n个元素赋初值为x。要求定义一个函数value,完成对一维整型数组的n个元素进行赋值,具体赋值x
#include
void value(int *a,int n)
{
int i,x;
scanf("%d",&x);
for(i=0;i
*(a+i)=x;
}
void main(){
int b[10],n,i;
scanf("%d",&n);
value(b,n);
for(i=0;i
printf("%d ",b[i]);
}
5、编写函数void reverse(char* s);
将形参s所指向的字符串反转(如s指向字符串为”hello world”,反转后为”dlrow olleh”)。编写main函数,在main中调用reverse函数,并输出反转后的字符串。(去年期末考题)
#include
#include
void RevStr(char *str)
{
int len;
char *ptr;
len = strlen(str);
ptr = str + len - 1;
while(str != ptr)
{
char ch;
ch = *str;
*str = *ptr;
*ptr = ch;
str++;
if(str == ptr)
break;
else
ptr--;
}
}
int main()
{
char str[80];
gets(str);
RevStr(str);
printf("%s",str);
return 0;
}
6、定义一个函数,将一个字符串中的所有小写字母转换为相应的大写字母,其余字符不变
#include
void daxie(char *s)
{while(*s!='\0')
{
if(*s>='a'&&*s<='z')
*s-=32;
s++;
}
}
void main()
{
char str[80];
gets(str);
daxie(str);
puts(str);
}
7、定义一个函数,计算两个数的和与乘积(要求用指针实现)
#include
double he(double p,double q)
{ return q+p;
}
double ji(double p,double q)
{ return q*p;
}
void main()
{double x,y;
scanf("%lf%lf",&x,&y);
printf("%.1lf %.1lf",he(x,y),ji(x,y));
}
8、定义函数total(n)计算1+2+……+n,定义函数fact(n)计算n!( n!=1*2*……*n),函数total的返回值类型为int,函数fact的返回值类型为double;在main()中输入正整数n,计算并输出下列算式的值。该算式中,每一项的分子是累加和,分母是阶乘,要求调用函数total(n)计算1+2+……+n,调用函数fact(n)计算n!。
y=1+(1+2)/2!+(1+2+3)/3!+...+(1+2+...+n)/n!
#include
int total(int n)
{
int i;
int t=0;
for(i=1;i<=n;i++)
t+=i;
return t;
}
double fact(int n)
{
int i;
double s=1;
for(i=1;i<=n;i++)
s*=i;
return s;
}
void main()
{
int i,n;
double y=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
y+=total(i)/fact(i);
printf("%.3f",y);
}