1. 利用指针变量,求一维数组的最大值。
#include""
main()
int a[10]=;
int i, *p, max;
p=a;max=*p++;
for(i=1;i<10;i++,p++)
if(max<*p) max=*p;
printf("max=%d",max);
2. 利用指针变量和函数,把一维字符数组的内容逆序存放。
#include""
#include""
#define m 80
rever(char *q)
int length, k;
char *p;
length=strlen(q);
for(p=q+length-1;q
main()
char str[m];
printf("enter a string which is less than 80 characters:");
scanf("%s",str);
rever(str);
printf("revers string is:%s",str);
3.p117 ,例题7-23, 计算m中取n的组合数的程序。
#include""
long function1(long, long );函数的原型声明*/
long function2(long );函数的原型声明*/
main()
long m,c,n;
printf("please enter m and n:");
scanf("%ld%ld",&m,&n); long类型数据用%ld输入*/
c=function1(m,n);
printf("c(%ld%ld)=%ld",m,n,c);
long function1(long m,long n)
long a,c;
a=function2(m);
c=function2(n);
c=a/c;
a=function2(m-n);
c=c/a;
return c;
long function2(long n)
long k=1;
int i;
for(i=1;i<=n;i++)
k=k*i;
return k;
4.利用指针变量,把一维字符数组s中的字符串拷贝到一维字符数组p中。
#include ""
main()
char s1[20],s2[20],*p1=s1,*p2=s2;
printf(“input string”);
scanf("%s",s1);
for( ;p1!=’0’; p1++,p2++)
p2=*p1;
*p2='\0';
printf("%s",s2);
第10周上机作业:
1. 编写程序,将两个字符串连接起来,不要使用strcat函数.
#include""
main()
char str1[50],str2[20];
int i,j;
printf("enter string no.1:");
scanf("%s",str1);
printf("enter string no.2:");
scanf("%s",str2);
i=j=0;
while(str1[i]!=0')
i++;while((str1[i]=str2[j])!0')
printf("string no.1->%s",str1);
*编写程序,完成求5行5列矩阵的外围元素之和*/
#include""
main()
int a[5][5]=,
int i,j,sum=0;
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
if(i==0||j==0||i==4||j==4)
sum=sum+a[i][j];
printf("sum=%d",sum);
*编写一个求 x 立方的函数, 并在主函数中调用该函数*/
#include""
float cube(float x)
return (x*x*x);
main()
float x,y;
printf("please input x:");
scanf("%f",&x);
y=cube(x);
printf("the cube of %6.2f is %6.2f",x,y);
4.求方阵的转置.
main( )
int a[3][3]=,
int i,j,t;
for( i=0; i<2; i++)
for( j=i+1; j<3; j++)
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
for(i=0; i<3; i++)
*编写一个求两个数中最大数的函数, 并在主函数中调用该函数*/
#include""
int max(int a,int b)
int m;
if(a>b) m=a;
else m=b;
return m;
main()
int i,j,max;
printf("input two integers:");
scanf("%d%d",&i,&j);
max=max(i,j);
printf("max=%d",max);
11周上机作业, 教材 p 123,编程习题 1,2,3,4,6,7 .
1. p123第一题,用函数实现:找出5*5数组主对角线上元素最小值。
#include""
int min(int a[5])
int min,i,j;
min=a[0][0];
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
if(i==j)
return(min);
main()
int a[5][5],i,j;
printf("输入5*5数组的值:");
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
scanf("%d",&a[i][j]);
printf("该5*5数组主对角线的最小值为:")
printf("%d",min(a));
*p123第二题,用递归函数求x的n次方*/
#include""
float poww(int x,int n)/*用递归函数求x的n次方*/
float s;
if(x==0)
else if(n==0)
s=1;else if(n>0)
s=x*poww(x,n-1);
else s=1.0/(x*poww(x,abs(n)-1));
return s;
main()
int x,n;
float f;
printf("输入x和n的值:");
scanf("%d%d",&x,&n);
f=poww(x,n);/主函数调用上面的函数*/
printf("%d的%d次方=%f",x,n,f);
3. 在整型数组中检索给定的值, 若找到输出该位置。
#include""
int lookup(int a,int m)
int i,k=-1;
for(i=0;i<4;i++)
if(m==a[i])
k=i;break;}
return k;
main()
int a[4],m;
int i,x;
printf("输入数组的值:");
for(i=0;i<4;i++)
scanf("%d",&a[i]);
printf("输入要检索的m的值:");
scanf("%d",&m);
x=lookup(a,m);
if(x==-1) printf("not found");
else printf("在数组中的位置是%d",x);
4。利用全局变量, 通过函数求数组中的正数平均值和负数的平均值。
#include<>
float p**e=0,n**e=0;
void s**er(int a,int n)
int i,sum1=0,sum2=0,nu1=0,nu2=0;
for(i=0;i
if(nu1!=0) p**e=(float)sum1/nu1;
if(nu2!=0) n**e=(float)sum2/nu2;
main()
int a[8],i;
printf("input 8 numbers:");
for(i=0;i<8;i++)
scanf("%d",&a[i]);
C语言上机作业
1 将下列程序进行调试,并在作业本上写上运行结果 main int a 1 if a 2 1 printf d is oushu a elseprintf d is jishu a 解答 本例题中你可以这样写 运行结果是 1 is jishu 作业 将上面程序进行修改,将a 1改成a 你的学号,例如...
C语言上机作业
c语言程序设计上机作业11 指针上机作业02 要求 把下列各题填空。直接把答案填写在相应的位置,然后保存此word文件,上传。1 以下程序的输出结果是 include main char p abcdefgh r long q q long p q r char q printf s r 2 下面程...
C语言作业与上机
作业与上机。1.以下程序的功能是计算并输出 计算精度要求 当时,停止累加。include main float s 1,t int n 1 t 1.0 2 while t 1e 6 printf f s 模仿上述程序,输入一个实数x,计算并输出 计算精度要求 当时,停止累加。2.以下程序的功能是运用...