C语言上机作业

发布 2022-09-05 09:48:28 阅读 1133

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.以下程序的功能是运用...