当前位置:网站首页>明解C语言第五章习题
明解C语言第五章习题
2022-07-30 19:54:00 【子夜的星】
数组
练习5-1:从头顺次为数组中的元素赋值0 1 2 3 4
#include<stdio.h>
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]=%d\n", i, v[i]);
}
return 0;
}
练习5-2:从头顺次为数组中的元素赋值5 4 3 2 1
#include<stdio.h>
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]=%d\n", i, v[i]);
}
return 0;
}
练习5-3:对5-5修改使从头开始使用5 4 3 2 1 修改
#include<stdio.h>
int main()
{
int i;
int v[5] = {
5,4,3,2,1 };
for (i = 0; i < 5; i++)
{
printf("v[%d]=%d\n", i, v[i]);
}
return 0;
}
练习5-4:修改5-6,将数组a中的元素按照倒序复制到数组b中
#include<stdio.h>
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]=%d\n", i, a[i], i, b[i]);
}
return 0;
}
练习5-5:对5-8修改,改为定义式宏来定义元素个数
#define NUMBER 7
#include<stdio.h>
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]=%d\n", i, x[i]);
}
return 0;
}
练习5-6:假设a是double型,b是int型,a=b=1.5; 求a,b?
答案:a=1;b=1
.
练习5-7:利用对象宏式来说明元素个数
#include <stdio.h>
#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 <stdio.h>
#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++)
{
/* 不到100分 */
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++) /* 100分 */
putchar('*');
putchar('\n');
return 0;
}
练习5-9:显示5-8的图
#include <stdio.h>
#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<stdio.h>
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("%d\t", c[x][y]);
printf("\n");
}
return 0;
}
目前还是高中森一枚,没学过行列式 =.= 答案 为了题目的完整性,参考了网上的优秀答案
练习5-11 输入6名同学2门课程的分数,显示平均分和总分。
#include <stdio.h>
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("%6d\t", 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("%6d\t", 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("%6d\t", sum[i][j]);
}
putchar('\n');
puts("平均分");
for (i = 0; i < 6; i++)
{
for (j = 0; j < 1; j++)
printf("%.2f\t", (double)sum[i][j] / 2);
}
return 0;
}
练习5-12:改写5-13的程序,将两次考试成绩分别储存在三维数组tensu中
#include <stdio.h>
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;
}
边栏推荐
- 【私人系列】日常PHP遇到的各种稀奇古怪的问题
- 技术很牛逼,还需要“向上管理”吗?
- Brush questions record----string
- 推荐系统:概述【架构:用户/物品特征工程---->召回层---->排序层---->测试/评估】【冷启动问题、实时性问题】
- 从离线到实时对客,湖仓一体释放全量数据价值
- ELK log analysis system
- 多线程的互斥锁应用RAII机制
- Interviewer Ali: Describe to me the phenomenon of cache breakdown, and talk about your solution?
- 基于人脸的常见表情识别(2)——数据获取与整理
- MySQL分库分表
猜你喜欢
推荐系统:冷启动问题【用户冷启动、物品冷启动、系统冷启动】
Mac安装PHP开发环境
Download Win11 how to change the default path?Download Win11 change the default path method
PHP低代码开发平台 V5.0.7新版发布
MySQL slow query optimization
Download and installation of the latest version of MySQL 8.0 under Linux (detailed steps)
MySQL大总结
用jOOQ 3.17投射类型安全的嵌套表记录
Database indexes: indexes are not a panacea
并发与并行的区别
随机推荐
时间复杂度与空间复杂度
Typora设置标题自动标号
MySQL数据库 ---MySQL表的增删改查(进阶)
MySQL八股文背诵版
MySQL分组后取最大一条数据【最优解】
MindSpore:ImageFolderDataset数据读取问题
PostgreSQL 14.4如何安装使用
Linux下安装MySQL教程
Day31 LeetCode
SQLyog注释 添加 撤销 快捷键
win2003下FTP服务器如何搭建
Trial writing C language sanbang
Redisson 的分布式锁找不到?
The technology is very powerful, do you still need to "manage up"?
MySQL六脉神剑,SQL通关大总结
Database indexes: indexes are not a panacea
DCM 中间件家族迎来新成员
Is the iPhone really thirteen incense?The two generations of products are completely compared, perhaps the previous generation is more worth buying
MySQL分库分表
iPhone真是十三香?两代产品完全对比,或许上一代更值得买