10.1 输入3个整数,按由小到大的顺序输出。

解:程序如下:(xt10-1.c)

#include

main()

{ intn1,n2,n3;

int *p1,*p2,*p3;

printf("Input three integers n1,n2,n3: ");

scanf("%d,%d,%d",&n1,&n2,&n3);

p1=&n1;

p2=&n2;

p3=&n3;

if(n1>n2) swap(p1,p2);

if(n1>n3) swap(p1,p3);

if(n2>n3) swap(p2,p3);

printf("Now, the order is: %d,%d,%d\n",n1,n2,n3);

}

swap(int *p1,int *p2)

{ int p;

p=*p1;*p1=*p2;*p2=p;

}

运行结果如下:

Input three integers n1,n2,n3: 34,21,25↙

Now, the order is: 21,25,34

10.2输入3个字符串,按由小到大的顺序输出。

解:程序如下:(xt10-2.c)

#include

#include

main()

{ char*str1[20],*str2[20],*str3[20];

char swap();

printf("Input three line:\n");

gets(str1);

gets(str2);

gets(str3);

if(strcmp(str1,str2)>0) swap(str1,str2);

if(strcmp(str1,str3)>0) swap(str1,str3);

if(strcmp(str2,str3)>0) swap(str2,str3);

printf("Now, the order is:\n");

printf("%s\n%s\n%s\n",str1,str2,str3);

}

char swap (char *p1,char*p2)/*交换两个字符串*/

{ char*p[20];

strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p);

}

运行结果如下:

Input three lines:

I study very hard.↙

C language is very interesting.↙

He is a professor.↙

Now, the order is:

C language is very interesting.

He is a professor.

I study very hard.

10.3 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。

解:输入输出函数的N-S图见图10.1。。

序如下:(xt10-3.c)

#include

main()

{ intnumber[10];

input(number);

max_min_value(number);

output(number);

}

input(int number[10])

{ inti;

printf("Input 10 numbers: ");

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

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

}

max_min_value(int array[10])

{ int*max,*min,*p,*array_end;

array_end=array+10;

max=min=array;

for(p=array+1;p

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

else if(*p

*p=array[0]; array[0]=*min; *min=*p;

*p=array[9];array[9]=*max;*max=*p;

return;

}

output(int array[10])

{ int*p;

printf("Now, they are: ");

for(p=array;p<=array+9;p++)

printf("%d ",*p);

}

运行结果如下:

Input 10 numbers: 32 24 56 78 1 98 36 44 29 6↙

Now, they are: 1 24 56 78 32 6 36 44 29 98

10.4 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数,见图10.3。写一函数实现以上功能,在主函数中输入n个整数,并输出调整后的n个数。

解:程序如下:(xt10-4.c)

#include

main()

{ intnumber[20],n,m,i;

void move(int array[20],int n,int m);

printf("How many numbers? ");/* 共有多少个数 */

scanf("%d",&n);

printf("Input %d numbers: \n",n);/* 输入n个数 */

for(i=0;i

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

printf("How many place you want to move? "); /* 后移多少个位置 */

scanf("%d",&m);

move(number,n,m);/* 调用move 函数 */

printf("Now, they are: \n");

for(i=0;i

printf("%d",number[i]);

}

void move(int array[20],int n,int m)/* 循环后移-次的函数 */

{ int*p,array_end;

array_end=*(array+n-1);

for(p=array+n-1;p>array;p--)

*p=*(p-1);

*array=array_end;

m--;

if(m>0) move(array,n,m);/* 递归调用,当循环次数m减至0 */

/* 时,停止调用 */

}

运行结果:

How many numbers? 8↙

Input 8 numbers:

1243656782711↙

How many place you want to move? 4↙

Now, they are:

8271112436567

10.5 有n个人围成一圈,顺序排号。从第一个人开始报数(从l到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

解:

:(xt10-5.c)

#include

main()

{ int i,k,m,n,num[50],*p;

printf("Input number of person: n=");

scanf("%d",&n);

p=num;

for(i=0;i

*(p+i)=i+1;/*以l至n为序给每个人编号*/

i=0;/* i为每次循环时的计数变量*/

k=0;/* k为按1、2、3报数时的计数变量 */

m=0;/* m为退出人数 */

while(m/* 当退出人数比n-1少时(即未退出人数大于1时)执行循环体 */

{ if(*(p+i)!=0) k++;

if(k==3)/* 对退出的人的编号置为0 */

{ *(p+i)=0;

k=0;

m++;

}

i++;

if(i==n) i=0;/* 报数到尾后, i恢复为0 */

}

while(*p==0) p++;

printf("The last one is NO.%d\n",*p);

}

运行结果:

Input number of person: n=8↙

The last one is NO.7

''

10.6 写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

解:程序如下:(xt10-6.c)

#include

main()

{ intlen;

char *str[20];

int length(char *p);

printf("Input string: ");

scanf("%s",str);

len=length(str);

printf("The length of string is %d.\n",len);

}

int length(char *p)/* 求字符中长度函数 */

{ intn;

n=0;

while(*p!='\0')

{ n++;

p++;

}

return(n);

}

运行结果:

Input string: China↙

The length of string is 5.

10.7 有一字符串,包含n个字符。写一个函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。

解:程序如下:(xt10-7.c)

#include

#include

main()

{ intm;

char *str1[20],*str2[20];

void copystr(char *p1,char *p2,int m);

printf("Input string: ");

gets(str1);

printf("Which character that begin to copy? ");

scanf("%d",&m);

if(strlen(str1)

printf("Input error!");

else

{ copystr(str1,str2,m);

printf("resut: %s\n",str2);

}

}

void copystr(char *p1,char *p2,int m)/* 字符串部分复制函数 */

{ intn;

n=0;

while(n

{ n++;

p1++;

}

while(*p1!='\0')

{ *p2=*p1;

p1++;

p2++;

}

*p2='\0';

}

运行结果:

Input string: reading-room↙

Which character that begin to copy? 9↙

result: room

10.8 输入一行文字,找出其中大写字母、小写字母、空格、数字及其他字符各有多少。

解:程序如下:(xt10-8.c)

#include

main()

{ intupper=0,lower=0,digit=0,space=0,other=0,i=0;

char *p,s[80];

printf("Input string: ");

while((s[i]=getchar())!='\n') i++;

p=&s[0];

while(*p!='\n')

{ if(('A'<=*p)&&(*p<='Z')) upper++;

else if(('a'<=*p)&&(*p<='z')) lower++;

else if(*p==' ')space++;

else if(('0'<=*p)&&(*p<='9')) digit++;

elseother++;

p++;

}

printf("upperer case:%d\n",upper);

printf("lowerer case:%d\n",lower);

printf("digit:%d\n",digit);

printf("space:%d\n",space);

printf("other:%d\n",other);

}

运行结果:

Input string: Today is 2000/1/1↙

upperer case:1

lowerer case:6

digit:6

space:2

other:2

10.9 写一个函数,将一个3×3的矩阵转置。

解:程序如下:(xt10-9.c)

#include

main()

{ inta[3][3],*p,i;

void move(int *pointer);

printf("Input matrix: \n");

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

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

p=&a[0][0];

move(p);

printf("Now,matrix: \n");

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

printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);

}

voidmove(int *pointer)

{ inti,j,t;

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

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

{ t=*(pointer+3*i+j);

*(pointer+3*i+j)=*(pointer+3*j+i);

*(pointer+3*j+i)=t;

}

}

运行结果:

Input matrix:

l 2 3↙

4 5 6↙

7 8 9↙

Now,matrix:

1 4 7

2 5 8

3 6 9

l0.l0 将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从

左到右、从上到下的顺序 ,依次从小到大存放),写一个函数实现之,并用main数调用。

解:程序如下:(xt10-10.c)

#include

main()

{ inta[5][5],*p,i,j;

void change(int *p);

printf("Input matrix:\n");

for(i=0;i<5;i++)/*输入矩阵*/

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

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

p=&a[0][0];/*使p指向0行0列元素*/

change(p);/*调用函数, 实现交换*/

printf("Now, matrix: \n");

for(i=0;i<5;i++)/*输出已交换的矩阵*/

{ for(j=0;j<5;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

void change(int *p)/*交换函数*/

{ inti,j,temp;

int *pmax,*pmin;

pmax=p;

pmin=p;

for(i=0;i<5;i++)/*找最大值和最小值的地址,并赋给pmax,pmin*/

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

{ if(*pmax

if(*pmin>*(p+5*i+j)) pmin=p+5*i+j;

}

temp=*(p+12);/*将最大值换给中心元素*/

*(p+12)=*pmax;

*pmax=temp;

temp=*p;/*将最小值换给左上角元素*/

*p=*pmin;

*pmin=temp;

pmin=p+1;

for(i=0;i<5;i++)/*找第二最小值的地址赋给pmin*/

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

if(((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j)))pmin=p+5*i+j;

temp=*pmin;/*将第二最小值换给右上角元素*/

*pmin=*(p+4);

*(p+4)=temp;

pmin=p+1;

for(i=0;i<5;i++)/*找第三最小值的地址赋给pmin*/

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

if(((p+5*i+j)!=(p+4))&&((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j)))

pmin=p+5*i+j;/*将第三最小值换给左下角元素*/

temp=*pmin;

*pmin=*(p+20);

*(p+20)=temp;

pmin=p+1;

for(i=0;i<5;i++)/*找第四最小值的地址赋给pmin*/

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

if(((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&((p+5*i+j)!=

(p+20))&&(*pmin>*(p+5*i+j)))pmin=p+5*i+j;

temp=*pmin;/*将第四最小值换给右下角元素*/

*pmin=*(p+24);

*(p+24)=temp;

}

运行结果:

Input matrix:

35 34 33 32 31↙

3O 29 28 27 26↙

25 24 23 22 21↙

15 14 13 12 ll↙

Now, matrix:

11 34 33 32 12

30 29 28 27 26

25 24 35 22 21

20 l9 18 17 16

13 23 15 31 14

10.11在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后在主函数输出这10个已排好的字符串。

解:程序如下:(xt10-11.c)

#include

#include

main()

{ voidsort(char s[10][6]);

int i;

char str[10][6];

printf("Input 10 strings:\n");

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

scanf("%s",str[i]);

sort(str);

printf("Now, the sequence is:\n");

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

printf("%s\n",str[i]);

}

voidsort(char s[10][6])

{ inti,j;

char *p,temp[10];

p=temp;

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

for(j=0;j<9-i;j++)

if(strcmp(s[j],s[j+1])>0 )

{ strcpy(p,s[j]);

strcpy(s[j],s[+j+1]);

strcpy(s[j+1],p);

}

}

运行结果:

Input 10 strings:

China↙

Japan↙

Korea↙

Egypt↙

Nepal↙

Burma↙

Ghana↙

Sudan↙

Italy↙

Libya↙

Now, the sequence is:

Burma

China

Egypt

Ghana

Italy

Japan

Korea

Libya

Nepal

Sudan

c语言5版第10章答案,第10章 指 针 参考答案 c语言(1)相关推荐

  1. 简单线性回归截距假设检验_第10章 简单线性回归分析思考与练习参考答案

    第10章 简单线性回归分析 思考与练习参考答案 一.最佳选择题 1.如果两样本的相关系数r1?r2,样本量n1?n2,那么( D ). A. 回归系数b1?b2 B.回归系数b1?b2 C. 回归系数 ...

  2. c语言程序设计教程韩立毛答案,c语言程序设计教程201X韩立毛徐秀芳书后练习题参考答案...

    c语言程序设计教程201X韩立毛徐秀芳书后练习题参考答案 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我 ...

  3. 计算机病毒考试及答案,计算机病毒类考试题目以及参考答案.doc

    计算机病毒类考试题目以及参考答案 计算机病毒类考试题目以及参考答案 计算机病毒类考试题目以及参考答案 计算机病毒类考试题目以及参考答案 ※ 木马的信息反馈机制收集的信息中最重要的是_________. ...

  4. 简单线性回归截距假设检验_第10章 简单线性回归分析思考与练习参考答案.doc...

    简单线性回归分析 思考与练习参考答案 最佳选择题 1.如果两样本的相关系数,样本量,那么( D ). A. 回归系数 B.回归系数 C. 回归系数 D.统计量 E. 以上均错 2.如果相关系数=1,则 ...

  5. 计算机控制技术第二版答案于微波,微波技术基础课后参考答案(田加胜版)

    <微波技术基础课后参考答案(田加胜版)>由会员分享,可在线阅读,更多相关<微波技术基础课后参考答案(田加胜版)(10页珍藏版)>请在装配图网上搜索. 1.微波技术基础课后习题答 ...

  6. 华理c语言设计网上作业,华东理工大学第一学年第二学期网上作业参考答案C语言设计1...

    华东理工大学第一学年第二学期网上作业参考答案 考生答题情况 作业名称:2012年春季C语言设计(专)课程网上作业1 出 卷 人:SA 题号:1 题型:单选题(请在以下几个选项中选择唯一正确答案) 本题 ...

  7. 计算机科学基础第二版答案,浙江大学计算机科学基础课后习题参考答案new-PXY.doc...

    浙江大学计算机科学基础课后习题参考答案new-PXY 第一章课后习题参考答案 一.填空题 处理.处理 黑盒.程序 输入设备.运算器.存储器.控制器.输出设备 运算器.控制器.中央处理器 存储器.数据 ...

  8. 计算机英语第三版答案 司爱侠,计算机专业英语教程(第3版)宋德福_司爱侠_练习参考答案...

    计算机专业英语教程(第3版)练习参考答案 宋德福 司爱侠 Unit 1 [Ex 1] 1..F 2.T 3.T 4.F 5.T 6.T 7.T 8.T 9.T 10.F [Ex 2] 1.input, ...

  9. 昆明理工大学知道计算机答案,昆明理工大学 计算机基础教材参考答案(1-6章)

    计算机基础教材参考答案 大学计算机基础教材参考答案 第1章 信息社会与计算技术 参考答案 1. 判断题 (1)错 (6)错 (11)对 2. 选择题 (1)C (6)A (11)A (2)错 (7)对 ...

最新文章

  1. ca开头的车是什么牌子_动车与高铁的区别是什么?很少人知道!让我来告诉你吧...
  2. JTree用法及JTree使用经验总结转
  3. Go 语言开发第一天,我的学习之路从这里开始
  4. Oracle存储过程及调用
  5. win7、offcie 2010是否激活查看方法
  6. 冒充中科大少年班校友被打脸!AI 公司创始人被扒清华硕士和斯坦福博士均造假...
  7. axis1 创建service服务端 , axis1 客户端
  8. Mac好用的图片压缩软件——JPG Compress 2 for Mac
  9. 提权学习:提权拿服务器方法总结-超细(补充节点0x02)
  10. 快压卸载后,右键打开压缩文件时还是有快压,方案:删除注册表相关项
  11. 毕业半年,帅地人生的第一个一百万
  12. fedora linux搜狗输入法,Linux_Fedora20 32位系统中安装搜狗拼音输入法图文教程,搜狗输入法在windows系统中是非 - phpStudy...
  13. 第15周-两个二阶二维矩阵相乘
  14. acwing每日一题-战舰
  15. 皮蛋拌豆腐引发的——沟通管理的思考(丁仿)
  16. 《Java语言程序设计与数据结构》编程练习答案(第七章)(一)
  17. java程序笑脸怎么打_Java程序运行后出现一张笑脸,鼠标点击一次则变成哭脸,再点击一次又变成笑脸,依次轮换。...
  18. 快手二面:a==1 a==2 a==3 是 true 还是 false?
  19. (转)HBase WAL简介
  20. CSP 2017-12

热门文章

  1. ElasticSearch可视化工具Dejavu安装使用
  2. 上机环境是什么意思_380元入手RX580满血显卡,跑分17万,还要什么自行车
  3. centos7 docker删除端口映射_centos7安装docker,结合docker安装mysql,学习简单使用
  4. SqlServer用SQL语句将查出的数据直接插入到另一个张的表中
  5. 计算机程序的构造和解释 python_SICP Python 描述 第三章 计算机程序的构造和解释 3.1 引言...
  6. php 循环大数组 卡死,PHP 大数组循环问题_PHP教程
  7. php for 脚本,php for循环脚本。
  8. java 跳转虚拟目录_java tomcat虚拟目录的深入了解
  9. python日期迭代_计算敏捷项目中迭代时间安排(Python3版)
  10. html5鼠标下拉浮窗固定,【前端技术】vue-floating-menu可拖拽吸附的浮窗菜单