明解C语言 入门篇 第六章答案
练习6-1
/*
求两个整数中的最小值
*/ #include <stdio.h> /*--- 返回三个整数中的最小值 ---*/
int min2(int a, int b)
{
int min = a; if (b < min) min = b; return min;
} int main(void)
{
int a, b, c; puts("请输入两个整数。");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b); printf("最小值是%d。\n", min2(a, b)); return ;
}
练习6-2
/*
求三个整数中的最小值
*/ #include <stdio.h> /*--- 返回三个整数中的最小值 ---*/
int min3(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("请输入三个整数。");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("整数c:"); scanf("%d", &c); printf("最小值是%d。\n", min3(a, b, c)); return ;
}
练习6-3
#include <stdio.h>
int cub(int x) {
return x * x * x; //求一个数的立方
}
int main(void) {
int x;
printf("请输入一个数:");
scanf("%d", &x);
printf("它的立方是%d",cub(x));
return ;
}
练习6-4
#include <stdio.h>
int sqr(int x) {
return x * x ; //求一个数的平方
}
int main(void) {
int x;
printf("请输入一个数:");
scanf("%d", &x);
printf("它的四次幂是%d", sqr(sqr(x)));
return ;
}
练习6-5
#include <stdio.h>
int sumup(int n) {
int sum = ;
while (n-->)
{
sum += n;
}
return sum;
}
int main(void) {
int x;
printf("请输入一个数:");
scanf("%d", &x);
printf("从1到%d之间所有整数的和是%d",x, sumup(x));
return ;
}
练习6-6
#include <stdio.h>
void alert(int n) {
while (n-- > )
{
putchar('\a');
}
}
int main() {
int x;
printf("请输入要发出响铃的次数:");
scanf("%d", &x);
alert (x);
}
练习6-7
#include <stdio.h>
void hello(void) {
puts("你好。");
}
int main() {
hello();
}
练习6-8
/*
计算英语最低分
*/ #include <stdio.h> #define NUMBER 5 /* 学生人数 */ /*--- 返回元素个数为n的数组v中的最小值 ---*/
int min_of(const int v[], int n)
{
int i;
int min = v[]; for (i = ; i < n; i++)
if (v[i] < min)
min = v[i];
return min;
} int main(void)
{
int i;
int eng[NUMBER]; int min_e; printf("请输入%d名学生的分数。\n", NUMBER);
for (i = ; i < NUMBER; i++) {
printf("[%d]英语:", i + ); scanf("%d", &eng[i]); }
min_e = min_of(eng, NUMBER); /* 英语的最低分 */ printf("英语的最低分=%d\n", min_e); return ;
}
练习6-9
/*
对数组的全部元素进行倒序排列
*/ #include <stdio.h>
#define number 7 void rev_intary(int v[], int n)
{ int i;
for (i = ; i < n/ - ; i++) { /* 对数组元素进行倒序排列 */
int temp = v[i];
v[i] = v[n - - i];
v[n- - i] = temp;
}
} int main() {
int i;
int x[number];
for (i = ; i < number; i++) { /* 输入元素的值 */
printf("x[%d] : ", i);
scanf("%d", &x[i]);
} rev_intary(x, number); puts("倒序排列了。");
for (i = ; i < number; i++) /* 显示元素的值 */
printf("x[%d] = %d\n", i, x[i]); return ; }
练习6-10
/*
对数组的全部元素进行倒序排列
*/ #include <stdio.h>
#define number 7 void intary_rcpy(int v1[], const int v2[], int n)
{ int i;
for (i = ; i < n; i++) {
v1[i] = v2[n - i - ];
} } int main() {
int i;
int x[number];
int y[number];
for (i = ; i < number; i++) { /* 输入元素的值 */
printf("x[%d] : ", i);
scanf("%d", &x[i]);
} intary_rcpy(y, x, number); puts("倒序排列了。");
for (i = ; i < number; i++) /* 显示元素的值 */
printf("y[%d] = %d\n", i, y[i]); return ; }
练习6-11
#include <stdio.h>
#define number 5 int search_idx(const int v[], int idx[], int key, int n) { int i;
int x = ;
for (i = ; i < n; i++) {
if (v[i] == key)
x++;
idx[x] = v[i];
}
return x;
} int main() {
int v[number];
int y[number + ]; int i;
int key;
printf("要查找的值是:");
scanf("%d", &key);
for (i = ; i < number; i++) {
printf("v[%d]=", i);
scanf("%d", &v[i]);
}
int x = search_idx(v, y, key, number);
printf("有%d个相同的元素", x);
}
练习6-12
#include<stdio.h>
void mat_mul(const int a[][], const int b[][], int c[][]) {
int i, j, k;
for (i = ; i < ; i++) { //计算矩阵c的值
for (j = ; j < ; j++) {
c[i][j] = ;
for (k = ; k < ; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
}
int main()
{
int a[][];
int b[][];
int i, j, k, x, y, c[][];
printf("输入4*3 个数 以空格隔开:\n");
for (i = ; i < ; i++)
for (k = ; k < ; k++)
scanf("%d", &a[i][k]);
printf("输入3*4 个数 以空格隔开:\n");
for (i = ; i < ; i++)
for (k = ; k < ; k++)
scanf("%d", &b[i][k]);
mat_mul(a, b, c);
for (x = ; x < ; x++)
{
for (y = ; y < ; y++)
printf("%d\t", c[x][y]);
printf("\n");
}
return ;
}
练习6-13
/*
求4名学生在两次考试中3课程的总分并显示(函数版)
*/ #include <stdio.h> /*--- 将4行3列矩阵a和b的和存储在c中 ---*/
void mat_add(const int a[][], const int b[][], int c[][][])
{
int x, y, z; for (x = ; x < ; x++)
for (y = ; y < ; y++)
for (z = ; z < ; z++) {
c[x][y][z] = a[y][z] + b[y][z];
}
} /*--- 显示4行3列矩阵m ---*/
void mat_print(const int m[][])
{
int i, j; for (i = ; i < ; i++) {
for (j = ; j < ; j++)
printf("%4d", m[i][j]);
putchar('\n');
}
} int main(void)
{
int tensu1[][] = { {, , }, {, , }, {, , }, {, , } };
int tensu2[][] = { {, , }, {, , }, {, , }, {, , } };
int sum[][][]; /* 总分 */ mat_add(tensu1, tensu2, sum); /* 求两次考试中成绩的总和 */ puts("第一次考试的分数"); mat_print(tensu1); /* 显示第一次考试的分数 */
puts("第二次考试的分数"); mat_print(tensu2); /* 显示第二次考试的分数 */
puts("总分"); mat_print(sum); /* 显示总分 */ return ;
}
练习6-14
#include <stdio.h>
#define number 4 int main() {
int i;
static double x[number];
for (i = ; i < number; i++) {
printf("v[%d]=%.1f", i, x[i]);
putchar('\n');
}
}
练习6-15
#include <stdio.h>
void put_count() {
static i = ;
printf("put-count:第%d次", i++);
putchar('\n');
}
int main() {
int i;
for (i = ; i < ; i++) {
put_count();
}
}
明解C语言 入门篇 第六章答案的更多相关文章
- 明解C语言 入门篇 第五章答案
练习5-1 /* 依次把1.2.3.4.5 赋值给数组的每个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; ]; ...
- 明解C语言 入门篇 第四章答案
练习4-1 #include <stdio.h> int main(void) { int no; int x; do{ printf("请输入一个整数:"); sca ...
- 明解C语言 入门篇 第三章答案
练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整 ...
- 明解C语言 入门篇 第十三章答案
练习13-1 /* 打开与关闭文件 */ #include <stdio.h> int main(void) { ]; FILE* fp; printf("请输入你要打开的文件& ...
- 明解C语言 入门篇 第十一章答案
练习11-1 /* 用指针实现的字符串的改写 */ #include <stdio.h> int main(void) { "; printf("p = \" ...
- 明解C语言 入门篇 第七章答案
练习7-1 #include <stdio.h> int main() { int n; printf(,, ); //此行显示结果为 4 3 6 因为1的字节就是为4,而-1的字节也是4 ...
- 明解C语言 中级篇 第四章答案
练习4-1 /* 珠玑妙算 */ #include <time.h> #include <ctype.h> #include <stdio.h> #include ...
- 明解C语言 中级篇 第三章答案
练习3-1 /* 猜拳游戏(其四:分割函数/显示成绩)*/ #include <time.h> #include <stdio.h> #include <stdlib.h ...
- 明解C语言 入门篇 第二章答案
练习2-1 #include <stdio.h> int main() { int x; int y; int percent; puts("请输入两个整数"); pr ...
随机推荐
- 死磕Synchronized底层实现,面试你还怕什么?
关于synchronized的底层实现,网上有很多文章了.但是很多文章要么作者根本没看代码,仅仅是根据网上其他文章总结.照搬而成,难免有些错误:要么很多点都是一笔带过,对于为什么这样实现没有一个说法, ...
- Java生鲜电商平台-电商促销业务分析设计与系统架构
Java生鲜电商平台-电商促销业务分析设计与系统架构 说明:Java开源生鲜电商平台-电商促销业务分析设计与系统架构,列举的是常见的促销场景与源代码下载 左侧为享受促销的资格,常见为这三种: 首单 大 ...
- Java基础—实现多线程的三种方法
Java虚拟机(JVM,是运行所有Java程序的抽象计算机,是Java语言的运行环境)允许应用程序并发地运行多个线程.在Java语言中,多线程的实现一般有以下三种方法: 1.实现Runnable接口, ...
- 腾讯WeTest亮相—腾讯全球数字生态大会现场
2019年5月21-23日腾讯全球数字生态大会在云南昆明滇池国际会展中心顺利召开. 此次大会上万人到场参与,大会由主峰会.分论坛.数字生态专题展会以及腾讯数字生态人物颁奖盛典四大板块构成.作为腾讯战略 ...
- webpack4 打包静态资源
demo 代码点此,开始之前,先做点准备工作. 准备工作 准备一个空文件夹,然后执行下列命令: npm init -y npm i -D webpack webpack-cli 然后创建一个 dist ...
- 从webkit内核简单看css样式和css规则优先级(权重)
目录 webkit中样式相关类及类间关系 样式规则匹配 权重(优先级)计算 权重相同时的覆盖原则 webkit中样式相关类及类间关系 资料来源: <webkit技术内幕> 结构相关类: 1 ...
- ios基础视频
http://wenku.baidu.com/course/view/1ce3571252d380eb62946d8c?cid=502
- rhel7学习第一天
今天是在线学习刘遄老师<Linux就该这么学>的第一天,对Linux的发展和优越性有了进一步的了解.
- Delphi-基础(例程、例程返回值)
一.例程:Delphi中独有的称呼,例程是将具体某个功能的代码进行封装表现形式: 1.过程 2.函数 过程和函数的区别在于有没有返回值二.例程的作用 1.可以解决命名冲突问题 2.提高代码的重复使用率 ...
- SQL之单表与多表查询
DML语句使用 source 路径 :把SQL脚本导入到数据库中 查询语句类型:[简单查询|多表查询|子查询] 投影:select 字段名,字段名 from 表名 where ...