栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

明解C语言第五章习题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

明解C语言第五章习题

解析目录
  • 数组
    • 练习5-1:从头顺次为数组中的元素赋值0 1 2 3 4
    • 练习5-2:从头顺次为数组中的元素赋值5 4 3 2 1
    • 练习5-3:对5-5修改使从头开始使用5 4 3 2 1 修改
    • 练习5-4:修改5-6,将数组a中的元素按照倒序复制到数组b中
    • 练习5-5:对5-8修改,改为定义式宏来定义元素个数
    • 练习5-6:假设a是double型,b是int型,a=b=1.5; 求a,b?
    • 练习5-7:利用对象宏式来说明元素个数
    • 练习5-8:逆向显示5-12分布图
    • 练习5-9:显示5-8的图
  • 多维数组
    • 练习5-10:求3行4列矩阵和4行3列的矩阵。
    • 练习5-11 输入6名同学2门课程的分数,显示平均分和总分。
    • 练习5-12:改写5-13的程序,将两次考试成绩分别储存在三维数组tensu中

数组 练习5-1:从头顺次为数组中的元素赋值0 1 2 3 4
#include
int main()
{
	int i;
	int v[5];
	for (i = 0; i < 5; i++)
	{
		v[i] = i;
	}
	for (i = 0; i < 5; i++)
	{
		printf("v[%d]=%dn", i, v[i]);
	}
	return 0;
}
练习5-2:从头顺次为数组中的元素赋值5 4 3 2 1
#include
int main()
{
	int i;
	int v[5];
	for (i = 0; i < 5; i++)
	{
		v[i] = 5-i;
	}
	for (i = 0; i < 5; i++)
	{
		printf("v[%d]=%dn", i, v[i]);
	}
	return 0;
}
练习5-3:对5-5修改使从头开始使用5 4 3 2 1 修改
#include
int main()
{
	int i;
	int v[5] = { 5,4,3,2,1 };
	for (i = 0; i < 5; i++)
	{
		printf("v[%d]=%dn", i, v[i]);
	}
	return 0;
}
练习5-4:修改5-6,将数组a中的元素按照倒序复制到数组b中
#include
int main()
{
	int i;
	int a[5] = { 1,2,3,4,5 };
	int b[5] = { 0 };
	for (i = 0; i < 5; i++)
	{
		b[4 - i] = a[i];
	}
	for (i = 0; i < 5; i++)
	{
		printf("a[%d]=%d  b[%d]=%dn", i, a[i], i, b[i]);
	}
	return 0;
}
练习5-5:对5-8修改,改为定义式宏来定义元素个数
#define NUMBER 7
#include
int main()
{
	int i;
	int x[NUMBER];
	for (i = 0; i < 7; i++)
	{
		printf("x[%d]:", i);
		scanf("%d", &x[i]);
	}
	for (i = 0; i < 3; i++)
	{
		int temp = x[i];
		x[i] = x[6 - i];
		x[6 - i] = temp;
	}
	for (i = 0; i < 7; i++)
	{
		printf("nx[%d]=%dn", i, x[i]);
	}
	return 0;
}
练习5-6:假设a是double型,b是int型,a=b=1.5; 求a,b?

答案:a=1;b=1

.

练习5-7:利用对象宏式来说明元素个数
#include 
#define NUMBER    80    
int main()
{
	int v[NUMBER];
	int num;
	int i;
	printf("数据个数:");
	scanf("%d", &num);
	for (i = 0; i < num; i++) 
	{
		printf("%d号:", i + 1);
		scanf("%d", &v[i]);
	}
	printf("{");
	for (i = 0; i < num - 1; i++) 
	{
		printf("%d, ", v[i]);
	}
	printf("%d", v[num - 1]);
	printf("}");
	return 0;
}
练习5-8:逆向显示5-12分布图
#include 

#define NUMBER    80        

int main()
{
	int i, j;
	int num;                
	int tensu[NUMBER];        
	int bunpu[11] = { 0 };    
	printf("请输入学生人数:");
	scanf("%d", &num);
	printf("请输入%d 人的分数。n", num);
	for (i = 0; i < num; i++) 
	{
		printf("%2d号:", i + 1);
		scanf("%d", &tensu[i]);
		bunpu[tensu[i] / 10]++;
	}

	puts("n---分布图---");
	for (i = 0; i <= 9; i++)
	{                
		printf("%3d - %3d:", i * 10, i * 10 + 9);
		for (j = 0; j < bunpu[i]; j++)
			putchar('*');
		putchar('n');
	}
	printf("      100:");
	for (j = 0; j < bunpu[10]; j++)            
		putchar('*');
	putchar('n');
	return 0;
}
练习5-9:显示5-8的图
#include 
#define NUMBER 100 
int main()
{
	int i, j;
	int a[NUMBER];
	int dis[11];
	int b;
	printf("请输入学生人数:");
	scanf("%d", &b);
	for (i = 0; i < b; i++)
	{
		printf("%2d号:", i + 1);
		do
		{
			scanf("%d", &a[i]);
			if (a[i] < 0 || a[i]>100)
				printf("请输入0-100之间的数:");
		} while (a[i] < 0 || a[i]>100);

		dis[a[i] / 10]++;
	}
	int max = dis[0];
	for (i = 1; i < 11; i++)
	{
		if (dis[i] > max)
			max = dis[i];
	}
	for (; max > 0; max--)
	{
		for (j = 0; j < 11; j++)
		{
			if (dis[j] >= max)
				printf("   *");
			else
				printf("    ");
		}
		putchar('n');
	}
	putchar('n');
	for (i = 0; i < 45; i++)
	{
		printf("-");
	}
	putchar('n');
	for (i = 0; i < 11; i++)
	{
		printf("%4d", i * 10);
	}
	putchar('n');
	return 0;
}

我也是初学者,这题我也不太会,答案是借鉴网上的。

多维数组 练习5-10:求3行4列矩阵和4行3列的矩阵。
#include
int main()
{
	int a[4][3];
	int b[3][4];
	int i, j, k, x, y, c[4][4];
	printf("输入4*3 个数 以空格隔开:n");
	for (i = 0; i < 4; i++)
		for (k = 0; k < 3; k++)
			scanf("%d", &a[i][k]);
	printf("输入3*4 个数 以空格隔开:n");
	for (i = 0; i < 3; i++)
		for (k = 0; k < 4; k++)
			scanf("%d", &b[i][k]);
	for (i = 0; i < 4; i++) {    //计算矩阵c的值 
		for (j = 0; j < 4; j++) {
			c[i][j] = 0;
			for (k = 0; k < 3; k++) {
				c[i][j] += a[i][k] * b[k][j];
			}
		}
	}
	for (x = 0; x < 4; x++)
	{
		for (y = 0; y < 4; y++)
			printf("%dt", c[x][y]);
		printf("n");
	}
	return 0;
}

目前还是高中森一枚,没学过行列式 =.= 答案 为了题目的完整性,参考了网上的优秀答案

练习5-11 输入6名同学2门课程的分数,显示平均分和总分。
#include 

int main(void)
{
    int i, j;
    double x, y;
    x = y = 0;
    int tensu1[6][1];
    int tensu2[6][1];
    int sum[6][1];            
    puts("请依次输入语文和数学的成绩,用空格分隔");
    puts("输入分数:");
    puts("语文:");
    for (i = 0; i < 6; i++) {
        for (j = 0; j < 1; j++) {
            scanf("%d", &tensu1[i][j]);
        }
    }
    for (i = 0; i < 6; i++) {
        for (j = 0; j < 1; j++) {
            printf("%6dt", tensu1[i][j]);
            x += tensu1[i][j];
        }
    }
    putchar('n');
    printf("语文的总分是%.2f,平均分是:%.2f", x, x / 6);
    putchar('n');
    puts("数学:");
    for (i = 0; i < 6; i++) {
        for (j = 0; j < 1; j++) {
            scanf("%d", &tensu2[i][j]);
        }
    }
    for (i = 0; i < 6; i++) 
    {
        for (j = 0; j < 1; j++)
        {
            printf("%6dt", tensu2[i][j]);
            y += tensu2[i][j];
        }
    }
    putchar('n');
    printf("数学的总分是%.2f平均分是:%.2f", y, y / 6);
    
    for (i = 0; i < 6; i++)
    {
        for (j = 0; j < 1; j++)
            sum[i][j] = tensu1[i][j] + tensu2[i][j];
    }
    putchar('n');


    
    puts("总分");
    for (i = 0; i < 6; i++)
    {
        for (j = 0; j < 1; j++)
            printf("%6dt", sum[i][j]);

    }
    putchar('n');
    puts("平均分");
    for (i = 0; i < 6; i++) 
    {
        for (j = 0; j < 1; j++)
            printf("%.2ft", (double)sum[i][j] / 2);

    }
    return 0;
}
练习5-12:改写5-13的程序,将两次考试成绩分别储存在三维数组tensu中
#include 
int main(void)
{
	int x, y, z;
	int tensu[2][4][3] = { { {91, 63, 78}, {67, 72, 46},{89, 34, 53}, {32, 54, 34} } ,{ {97, 67, 82}, { 73, 43, 46 }, { 97, 56, 21 }, { 85, 46, 35 } } };
	for (x = 0; x < 2; x++) 
	{
		for (y = 0; y < 4; y++) 
		{
			for (z = 0; z < 3; z++) 
			{
				printf("%4d", tensu[x][y][z]);
			}
			printf("n");
		}
	}
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030180.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号