c语言作业朱鸣华,大连理工大学C语言朱鸣华课编程作业

2012年版,内部收录各种朱鸣华要求的上机作业,是学弟学妹的理想参考~

http://doc.xuehai.net/view/d5847a8683d049649b66589d.html

1.

输入一行字符,将其中的字符从小到大排列后输出。使用冒泡排序。*/

// 不使用指针编程

#include "stdio.h"

#include "string.h"

void px(char c1[]先把最大的数挑到最后

{

int i,j,n;

char t;

n=strlen(c1);

for(i=0;i

for(j=1;j

if(c1[j-1]>c1[j])

{

t=c1[j-1];

c1[j-1]=c1[j];

c1[j]=t;

}

}

int main()

{

char s1[20];

gets(s1);

px(s1);

printf("%s",s1);

}

2.

输入一行字符,将其中的字符从小到大排列后输出。*/

// 使用指针编程。(选择法排序)

#include "stdio.h"

#include "string.h"

void px(char *p)

{

char *p1,*p2,temp;

for(; *p!='\0'; p++)

{

p1=p;

for(p2 = p ; *p2!='\0'; p2++)

{

if (*p1>*p2) p1=p2 ;

}

temp = *p;

*p = *p1;

*p1 = temp;

}

}

int main()

{

char s1[20];

gets(s1);

px(s1);

printf("%s",s1);

}

3.

用指针编写函数 : insert(s1,s2,f), 其功能是在字符串 s1 中的指定位置

f 处插入字符 串 s2. 插入后的字符串仍然放在s1中。*/

#include

#include

void insert(char *s1, char *s2, int n)

{

int n1 ,n2,i,j;

n1= strlen(s1);

n2 =strlen(s2);

if(n > n1 || n < 0)

{

printf("位置n错误!\n");

return ;

}

for(i=n1,j=n1+n2;i>=n; i--, j--)

s1[j]=s1[i];

for(i=n;*s2 != '\0'; i++)

s1[i]=*s2++;

s1[n1+n2] = '\0';

}

int main()

{

char s1[40] = {"I am going!"}, s2[20] = "not ";

insert(s1, s2, 5);

printf("%s\n", s1);

return 0;

}

4.

求二维数组每行的平均值。(使用指向数组的指针变量) */

#include "stdio.h"

float aev(int *p,int n)

{

int i;

float sum=0;

for(i=0;i

sum=sum+*(p+i);

return sum/n;

}

main()

{

int a[3][4],i,j,(*p)[4];

p=a;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

scanf("%d",*(a+i)+j);

for(i=0;i<3;i++)

printf("%f\n",aev(*(p+i),4));

}

5.

: 编写函数: output 和 input ,其功能分别与 gets 和 puts 相同,函数中用 getchar 和 putchar 读入和

输出字符。 */

#include "stdio.h"

void input(char s[])

{

char *p=s-1;

do

{

p++;

*p=getchar();

}while(*p!='\n');

*p='\0';

}

void output(char s[])

{

char *p=s;

for (;*p!='\0';p++)

putchar(*p);

printf("\n");

}

main()

{

char s[10];

printf("输入字符串:\n");

input(s);

printf("该字符串为:\n");

output(s);

}

6.

: 编写程序,输入10个整数,用指针法实现将最小的数与第1个数交换,最大的数

与最后一个数交换。*/

#include

int main ()

{

int a[10],i,t,*p=a,*min,*max;

printf("请输入数组a:\n");

for(i=0

;i<10;i++)

scanf("%d",&a[i]);

min=max=a;

for(;p

if(*p>*max) max=p;

t=a[9];a[9]=*max;*max=t;

for(p=a;p<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值