明解C语言(第3版)入门篇 - 第六章练习题解

文章目录

  • 前言
    • 1.练习6-1
    • 2.练习6-2
    • 3.练习6-3
    • 4.练习6-4
    • 5.练习6-5
    • 6.练习6-6
    • 7.练习6-7
    • 8.练习6-8
    • 9.练习6-9
    • 10.练习6-10
    • 11.练习6-11
    • 12.练习6-12
    • 13.练习6-13
    • 14.练习6-14
    • 15.练习6-15

前言

本文章主要为本人在看明解C语言(第3版)入门篇的过程中对于书上的练习题的要求代码的实现。

1.练习6-1

具体代码的实现如下所示:

#include <stdio.h>int min(int a , int b)
{return (a<b) ? a :b ;
}int main(void)
{int a ,b;puts("请输入需要比大小的两位数。\n");printf("a = "); scanf("%d",&a);printf("b = "); scanf("%d",&b);printf("两整数中较小的数为:%d\n",min(a,b));return 0;
}

2.练习6-2

具体代码的实现如下所示:

#include <stdio.h>int min(int a,int b,int c)
{int min=a;if(b<min) min=b;if(c<min) min=c;return min;
}int main(void)
{int a,b,c;puts("请输入需要对比的三位整数。\n");printf("a="); scanf("%d",&a);printf("b="); scanf("%d",&b);printf("c="); scanf("%d",&c);printf("最小值为:%d\n",min(a,b,c));return 0;
}

3.练习6-3

具体代码的实现如下所示:

#include <stdio.h>int cube(int x)
{return x*x*x;
}int main(void)
{int x;printf("请输入需要立方计算的数:");scanf("%d",&x);printf("结果为:%d\n",cube(x));return 0;
}

4.练习6-4

具体代码的实现如下所示:

#include <stdio.h>int sqr(int x)
{return x*x;
}int biquadratic(int a)
{return sqr(a)*sqr(a);
}int main(void)
{int x;puts("请输入需要进行运算的数字。\n");printf("x="); scanf("%d",&x);printf("%d的四次幂是:%d\n",x,biquadratic(x));return 0;
}

5.练习6-5

具体代码的实现如下所示:

#include <stdio.h>int sumup(int n)
{int i;int sum=0;for(i=1;i<n+1;i++){sum+=i;}return sum;
}int main(void)
{int x;printf("请输入需计算的整数和:\t");scanf("%d",&x);printf("sum = %d",sumup(x));return 0;
}

6.练习6-6

具体代码的实现如下所示:

#include <stdio.h>
#include <Windows.h>void alert (int n){for(int i=0;i<n;i++){putchar('\a');Sleep(1000);//Windows:参数-时间,单位-毫秒,1000即为1秒}
}int main(){int num;printf("请输入需要发出的响铃数:");scanf("%d",&num);alert(num);return 0;
}

7.练习6-7

具体代码的实现如下所示:

#include <stdio.h>void hello(void)
{printf("你好。\n");
}int main(void)
{hello();return 0;
}

8.练习6-8

具体代码的实现如下所示:

#include <stdio.h>#define NUMBER 7int ary[NUMBER];int min_of(int v[],int n)
{int min = v[0];for(int i=0;i<n;i++){if(v[i]<min)min=v[i];}return min;
}int main()
{extern int ary[];printf("请输入%d个元素的整型数组:",NUMBER);for(int i=0;i<NUMBER;i++){printf("ary[%d]:",i+1);scanf("%d",&ary[i]);putchar('\n');}printf("整型数组中最小值为:%d",min_of(ary,NUMBER));return 0;
}

9.练习6-9

具体代码的实现如下所示:

#include <stdio.h>
#define NUMBER 7int num[NUMBER];void rev_intary(int v[],int n)
{int temp;int k;if(n%2!=0)k=(n-1)/2;elsek=n/2+1;for(int j=0;j<k;j++){temp=v[j];v[j]=v[n-j-1];v[n-j-1]=temp;}
}int main(void)
{extern int num[];printf("请输入元素个数为%d的整型数组:\n",NUMBER);for(int i=0;i<NUMBER;i++){printf("num[%d]:",i+1); scanf("%d",&num[i]);putchar('\n');}rev_intary(num,NUMBER);printf("整型数组进行倒序排列后为:\n");for(int j=0;j<NUMBER;j++){printf("num[%d]:%d\n",j+1,num[j]);putchar('\n');}return 0;
}

10.练习6-10

具体代码的实现如下所示:

#include <stdio.h>
#define NUMBER 7int num1[NUMBER];
int num2[NUMBER];void intary_rcpy(int v1[],const int v2[],int n)
{int k;if(n%2!=0)//k=(n+1)/2;k=(n-1)/2;elsek=n/2+1;for(int j=0;j<k+1;j++){v1[j]=v2[n-j-1];v1[n-j-1]=v2[j];}
}int main(void)
{extern int num1[];extern int num2[];printf("请输入元素个数为%d的整型数组:\n",NUMBER);for(int i=0;i<NUMBER;i++){printf("num[%d]:",i+1); scanf("%d",&num2[i]);putchar('\n');}intary_rcpy(num1,num2,NUMBER);printf("整型数组进行倒序排列后为:\n");for(int j=0;j<NUMBER;j++){printf("num[%d]:%d\n",j+1,num1[j]);putchar('\n');}return 0;
}

11.练习6-11

具体代码的实现如下所示:

#include <stdio.h>
#define NUMBER 7
#define FAILED -1int vx[NUMBER];
int dx[NUMBER];
int j;int search_idx(const int v[],int idx[],int key,int n)
{int i;for(i=0,j=0;i<n;i++){if(v[i]==key){idx[j]=i;j++;}}if(j==0)return FAILED;elsereturn j;
}int main(void)
{int ikey,num;printf("请输入%d个元素数组的值:\n",NUMBER);for(int i=0;i<NUMBER;i++){printf("vx[%d]:",i);scanf("%d",&vx[i]);putchar('\n');}printf("请输入需要查询的元素值ikey=");scanf("%d",&ikey);putchar('\n');num=search_idx(vx,dx,ikey,NUMBER);if(num==FAILED)printf("\a查找失败!\n");else{printf("元素值为%d在数组中的个数为%d\n",ikey,j);/*for(int k=0;k<j;k++)printf("在第%d个元素\n",dx[k]+1);*/printf("元素值在数组的位置为dx[%d]={",j-1);for(int k=0;k<j;k++){printf("%d",dx[k]);if(k<j-1)putchar(',');}printf("}\n");}return 0;
}

12.练习6-12

具体代码的实现如下所示:

#include <stdio.h>
#define A 4
#define B 3int j1[A][B]={0};
int j2[B][A]={0};
int j3[A][A]={0};void input1(int x,int y,int v[][B])
{printf("请输入矩阵a的内容,a为%d*%d矩阵。\n",x,y);for(int i=0;i<x;i++){for(int j=0;j<y;j++){printf("a[%d][%d]:",i,j);scanf("%d",&v[i][j]);}putchar('\n');}
}void input2(int x,int y,int v[][A])
{printf("请输入矩阵b的内容,b为%d*%d矩阵。\n",x,y);for(int i=0;i<x;i++){for(int j=0;j<y;j++){printf("b[%d][%d]:",i,j);scanf("%d",&v[i][j]);}putchar('\n');}
}void mat_mul(const int a[A][B],const int b[B][A],int c[A][A])
{int temp;for(int i=0;i<A;i++){for(int k=0;k<A;k++){int sum=0;for(int j=0;j<B;j++){temp=a[i][j]*b[j][k];sum=sum+temp;}c[i][k]=sum;}}
}void mat_print(const int v[][A])
{printf("矩阵a与矩阵b的乘积矩阵c如下所示,c为%d*%d矩阵。\n",A,A);for(int k=0;k<A;k++){for(int w=0;w<A;w++)printf("%4d",v[k][w]);putchar('\n');}
}int main(void)
{input1(A,B,j1);input2(B,A,j2);mat_mul(j1,j2,j3);mat_print(j3);return 0;
}

13.练习6-13

具体代码的实现如下所示:

#include <stdio.h>
#define A 4
#define B 3
#define C 2int tensu1[A][B]={0};
int tensu2[A][B]={0};
int tensu3[][A][B]={0};void mat_scanf(int n,int x,int y,int v[][B])
{printf("请输第%d次考试的分数,tensu%d为%d*%d矩阵。\n",n,n,x,y);for(int i=0;i<x;i++){for(int j=0;j<y;j++){printf("tensu%d[%d][%d]:",n,i,j);scanf("%d",&v[i][j]);}putchar('\n');}
}void mat_com(const int v1[][B],const int v2[][B],int v3[][A][B])
{for(int i=0;i<C;i++){for(int j=0;j<A;j++){for(int k=0;k<B;k++){printf("i=%d\n",i);if(i<C-1)v3[i][j][k]=v1[j][k];elsev3[i][j][k]=v2[j][k];}}}
}void mat_print(const int v[][A][B])
{printf("两次的考试分数存于三维数组tensu3中,如下所示。\n");for(int i=0;i<C;i++){for(int j=0;j<A;j++){for(int k=0;k<B;k++)printf("%4d",v[i][j][k]);}putchar('\n');}
}int main(void)
{int n=1;mat_scanf(n,A,B,tensu1);mat_scanf(n+1,A,B,tensu2);mat_com(tensu1,tensu2,tensu3);mat_print(tensu3);return 0;
}

14.练习6-14

具体代码的实现如下所示:

#include <stdio.h>
#define NUMBER 7void mat_fun(const double v[],int n)
{for(int i=0;i<n;i++)printf("test[%d]=%.1f\n",i,v[i]);
}int main(void)
{static double test[NUMBER];mat_fun(test,NUMBER);return 0;
}

15.练习6-15

具体代码的实现如下所示:

#include <stdio.h>void put_count(int n)
{printf("put_count:第%d次\n",n+1);
}int main(void)
{int num;printf("请输入需要调用put_count函数的次数。\n");scanf("%d",&num);for(int i=0;i<num;i++)put_count(i);return 0;
}

明解C语言(第3版)入门篇 - 第六章练习题解相关推荐

  1. 智慧树\知到——程序设计基础(C语言)入门篇第六章到第十章测试答案

    目录 第六章测试 第七章测试 第八章测试 第九章测试 第十章测试 第六章测试 第1部分 总题数: 10 1 [判断题] (10分) 有下列程序段,程序段运行后的输出结果##2##3##4##5(    ...

  2. 破解完全入门篇 第六章--爆破软件

    第六章--爆破软件 爆破其实很简单,最起码比你能一下把你家的牙膏给全挤出来要容易多了.你只要先到大街上买几根雷管,然后放到你的显示器上再点着就OK了(不难吧,记的点着后跑远点儿) 爆破的原理我也说过了 ...

  3. 明解C语言入门篇_第9章_字符串的基本知识

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  4. 明解C语言入门篇_第8章_动手编写各种程序吧

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  5. 明解C语言入门篇_第6章_函数

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  6. 明解C语言入门篇_第12章_结构体

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  7. 明解C语言入门篇_第10章_指针

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  8. 明解C语言入门篇_第4章_程序的循环控制

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  9. 明解C语言入门篇_第13章_文件处理

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  10. 明解C语言入门篇_第7章_基本数据类型

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

最新文章

  1. 资源过于敏澸,8h删!这波福利....请笑纳。。
  2. SSD201 / SSD202D 在86盒智能网关的应用分享
  3. Linux基础监控小工具nmon
  4. JS事件、对象基础篇
  5. VS2013 异常处理
  6. 电脑小米手机,小米手机和电脑无线连接方法
  7. 嵌入式系统开发笔记10:CJ/T-188 水表协议解析2
  8. 黑莓android系统,黑莓Passport的手机系统是什么?能升级安卓5.0吗?
  9. DBCO-PEG4-alcohol CAS:1416711-60-8 二苯基环辛炔-四聚乙二醇-乙醇
  10. 面向对象进阶 三大特性
  11. pycharm汉化教程
  12. 探悉 Excel 中不为人所知的技巧
  13. AD19设置元件属性
  14. 从安装到连接,教你如何连上Mysql数据库
  15. Java学习-标准描述类的写法
  16. np.arange()用法,Python numpy.arange()用法
  17. LSTM 无法预测股票价格
  18. 2020学期学习计划
  19. pq grid 及 一些基本方法
  20. 时间戳转化成年月日时分秒格式

热门文章

  1. 阿里巴巴面试题- - -Java体系最新面试题(2022内部资料)
  2. 饿了么微信小程序抓取
  3. matlab中[d1_sj_d1],Matlab中竖曲线计算程序
  4. Python常用中文分词库:jieba
  5. 智慧交通之智能红绿灯调控系统分析
  6. js页面跳转并传值问题
  7. C++ Beep函数播放歌曲《千本樱》
  8. 30多份软件测试报告模板(标准版)!一份优秀测试报告模板流程
  9. CTFHub | HG泄露
  10. Django 开发的个人博客源码分享