西北农林科技大学c语言题库,西北农林科技大学C语言上机实习4答案.doc

西北农林科技大学C语言上机实习4答案.doc

实习四答案1、 字符串连接/* r 4-1 两串字符连接 */由键盘任意输入两串字符,不用库函数strcat,连接将两串字符。输入 两串字符 输出 连接将两串字符 输入样例 abc def 输出样例 abcdef includestdio.h includestring.h void mainvoid unsigned int i,j; char soustr80,desstr80; printfplease enter soustr; getssoustr; /* 输入原串 */ printfplease enter desstr; getsdesstr; /* 输入目的串 */ i strlensoustr; /* 取目的串尾部位置 */ forj0; jstrlensoustr; j,i soustri desstrj; /* 将原串依次接入目的串尾部 */ putssoustr; 2、 简单加密程序/* r 4-2 字符加密 */由键盘任意输入一串字符,对其进行加密,加密原则为如果为字母,将其循环右移2个字母,其他字符保持不变。 输入 一串字符 输出 加密后的字符串 输入样例 abl2CDxyz 输出样例 cdl2EFzab 提示 1. 可用gets和puts输入输出字符串。2. 利用ASCII码运算进行加密。3. 循环右移的含义是将a-z,AZ各看成一个环进行移动,即y右移2个字母后为a,z右移2个字母后为b;Y右移2个字母后为A,Z右移2个字母后为B。 includestdio.h includestring.h void mainvoid unsigned int j; char soustr80,secstr80; printfplease enter soustr; getssoustr; /* 输入原串 */ forj0; jstrlensoustr; j ifsoustrjA soustrjZ secstrj soustrj-A226A; /*计算大写字母密文*/else ifsoustrja soustrjz secstrj soustrj-a226a; /*计算小写字母密文*/else secstrj soustrj; /* 其它字符不变 */ putssecstr; 3、 矩阵对角线元素求和/* r 4-3 主和辅对角线上元素之和 */输入一个55的数组,分别求其主对角线和辅对角线上元素之和。 输入 55的数组 输出 主对角线和辅对角线上元素之和 输入样例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 输出样例 65 65 主对角线为从矩阵的左上角至右下角的连线,在数组中即指行列下标相同的元素,辅对角线为从矩阵的右上角至左下角的连线,这些元素的下标之间也可用相应的表达式表达。 includestdio.h includestring.h void mainvoid int i,j; int a55; int sum10,sum20; printfplease enter soustr; fori0; i5; i forj0; j5; j scanfd,aij; /* 输入数组 */ fori0; i5; i sum1 sum1aii; /* 主对角线 */ sum2 sum2ai4-i; /* 辅对角线 */ printfd dn,sum1,sum2; 4、 数据顺序调整/* r 4-4 将最大数调到最前面,最小数调到最后面 */由键盘任意输入10个数,将最大数调到最前面,最小数调到最后面。 输入 任意10个数 输出 数据调整后的10个数。输入样例 0 1 2 3 4 5 6 7 8 9 输出样例 9 1 2 3 4 5 6 7 8 0 提示 定义四个变量d1、d2、x1、x2,分别存放最大数、最小数及它们的位置; 在循环开始前,将第一个元素作为参考,将其值分别存入d1、x1,将其下标分别存入d2、x2; 在循环中将其它元素逐一与d1比较,若比d1大,将其存入d1,并将其下标存入d2;否则将其与x1比较,若比x1小,将其存入x1,并将其下标存入x2; 结束循环后,将d2所示位置的数与第一个数交换,将x2所示位置的数与最后一个数交换,然后输出数组所有元素即可。 includestdio.hincludestring.hvoid mainvoid int i,a10,temp; int kmax0,kmin0; printfplease enter ; fori0; i10; i /* 输入数组 */ scanfd,ai; fori0; i10; i ifaiakmax kmax i; /* 找最大数位置 */ else ifaiakmin kmin i; /* 找最小数位置 */ ifkmax 9 kmin 0 temp a0; a0 akmax; akmax temp; /* 与最前面的数交换 */ else temp a0; a0 akmax; akmax temp; /* 与最前面的数交换 */ temp a9; a9 akmin; akmin temp; /* 与最后面的数交换 */ fori0; i9; i printfd ,ai; /* 输出数组 */ printfdn,ai;5、 字符个数统计/* r 4-5 统计大写字母、小写字母、数字及其它字符的个数 */由键盘输入任意一串字符串,将其存入一个字符数组,统计其中的大写字母、小写字母、数字以及其他字符的个数。 输入 任意一串字符串 输出 大写字母、小写字母、数字以及其他字符的个数。 输入样例 abcdefg123456ABCDEFG 输出样例 7 7 6 includestdio.hincludestring.hvoid mainvoid unsigned int i; int cap0,low0,dig0,oth0; /* 定义并初始化 */ char str80; printfplease enter str; getsstr; /* 输入原串 */ fori0; istrlenstr; i ifstriA striZ cap; /* 统计大写字母 */ else ifstria striz low; /* 统计小写字母 */ else ifstri0 stri9 dig; /* 统计数字 */ else oth; /* 统计其它字符 */ printfd d d dn,cap,low,dig,oth;6、 学生成绩计算/* r 4-6 求每一个学生的总成绩和平均成绩 */已知10个学生的5门课程的成绩,将其存入一个二维数组,求每一个学生的总成绩和每一个学生的平均成绩。 输入 10个学生的5门课程的成绩 输出 每一个学生的总成绩和每一个学生的平均成绩 输入样例 90.5 80 70 89 84.691.5 81 71 88 84.792.5 82 72 87 84.893.5 83 73 86 84.994.5 84 74 85 84.095.5 85 75 84 84.196.5 86 76 83 84.297.5 87 77 82 84.398.5 88 78 81 84.499.5 89 79 80 84.5 输出样例 414.100006 82.820000416.200012 83.240005418.299988 83.659996420.399994 84.080002421.500000 84.300003423.600006 84.720001425.700012 85.139999427.799988 85.559998429.899994 85.979996432.000000 86.400002 includestdio.hvoid mainvoid int i,j; float score1050.0f; float allsco10,avesco10; fori0; i10; i forj0; j5; j scanff,scoreij; /* 输入学生的成绩 */ fori0; i10; i allscoi 0; /* 总成绩清零 */ forj0; j5; j allscoi allscoiscoreij; /* 累加总成绩 */ avescoi allscoi/5; /* 计算平均成绩 */ fori0; i10; i printff fn,allscoi,avescoi;/* 输出成绩 */7、 姓名排序/* r 4-7 姓名排序 */由键盘任意输入10个学生的姓名(以拼音形式),将它们按照ASC码的顺序从小到大排序。 输入 10个学生的姓名(以拼音形式) 输出 按照ASC码的顺序从小到大排序 输入样例 zhangziangzaangzbangzcangzdangzeangzfangzgangzhang 输出样例 zaangzbangzcangzdangzeangzfangzgangzhangzhangziangincludestdio.hincludestring.hvoid mainvoid int i,j,k; char name1080,temp80; printfplease enter ; fori0; i10; i getsnamei; /* 输入姓名数组 */ fori0; i9; i /* 排序 */ k i; forji1; j10; j ifstrcmpnamek,namej0 k j; ifki strcpytemp,namei; strcpynamei,namek; strcpynamek,temp; /* 交换 */ fori0; i10; i putsnamei; /* 输出姓名数组 */8、 输出杨辉三角形/* r 4-8 打印杨辉三角形 */编程实现n阶n10杨辉三角形的输出,n6时,杨辉三角形如下所示11 1 1 2 11 3 3 11 4 6 4 11 5 10 10 5 1 输入 杨辉三角形的阶数n。 输出 n阶杨辉三角形。 输入样例 6输出样例 11 1 1 2 11 3 3 11 4 6 4 11 5 10 10 5 1 提示 杨辉三角形的特点第一列和对角线上的元素值均为1,即ai0aii1;其余位置元素的值上一行本列元素值上一行前一列元素值,如第三行第二列2就是第二行第一列第二行第二列,计算公式为aijai-1j-1 ai-1j。 应先对第一列和对角线元素赋值,然后再为其它元素赋值。 includestdio.hvoid mainvoid int i,j; int a66; fori0; i6; i aii 1; /* 主对角线为1 */ ai0 1; /* 第1列为1 */ fori2; i6; i forj1; ji; j aij ai-1j-1ai-1j; /* 计算 */ fori0; i6; i forj0; ji; j printfd ,aij; /* 输出 */ printfn; /* 换行 */ 或者include stdio.hinclude stdlib.hinclude string.hint main int n,i,j; int a2020; printfplease one number; scanfd,n; fori0;in;i aii1; ai01; fori2;in;i forj1;ji;j aijai-1j-1ai-1j; fori0;in;i forj0;ji;j printfd ,aij; printfn; return 0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、抽象类与操作符重载 定义表示形状的抽象类及相应的派生类,并实现相关操作符重载。 (1)定义表示形状的抽象类Shape: 添加公有成员函数double Area(),用于计算形状面积;定义为纯虚函数; 添加公有成员函数void Show(),用于显示形状信息,定义为纯虚函数; 定义虚的析构函数; 重载比较操作符:==、>和<,用于比较两个形状面积的大小关系,返回值类型为bool,可以定义为成员函数或友元函数。 、、、、、、 2、虚函数 利用虚函数实现多态: (1)设计Person类,要求具有用于表示姓名的保护数据成员:string szName; 实现信息打印的公有成员函数:void Print()。其中,Print函数设计为虚函数,输出的信息格式为:“Person 姓名”。 、、、、、、 3、操作符重载 定义有理数类(分母不为0的分数,分子分母均为整数)Rational,实现相应操作符的重载。 (1)定义私有数据成员:分子int iUp; 分母 int iDown。 (2)定义私有成员函数:void Reduce() 和 int Gcd(int l, int r),分别用于有理数的约简和求两个整数的最大公约数。其中,在约简时需要求取分子与分母的最大公约数。 、、、、、、 4、记录文件的读写操作 源数据文件(文本格式)中包含有每个学生的记录:ID(身份识别号)、 Gender(性别)、 Birthday(生日)和EnrollmentDate(入学时间),字段之间以半角逗号分隔,记录之间以换行符分隔。要求从源数据文件中读取学生记录并删除重复记录,然后根据ID大小对所有记录按从小到大排序,将排序后的记录保存到目标文件中并同时输出到屏幕上。 、、、、、、 5、简单文本文件的读写 、、、、、
### 回答1: MOOC(大规模开放在线课程)是一种通过互联网开设的大规模在线学习课程,数据库原理与应用则是MOOC课程中的一个重要内容。西北农林科技大学应该是指该课程的开设机构。 数据库原理与应用是一门涉及数据库基本原理和数据库管理系统的课程。数据库是用于存储、管理和组织数据的软件系统,它在信息社会中起着非常重要的作用。这门课程主要包括数据库设计原理、关系数据库理论和操作、SQL语言以及常见的数据库管理系统如MySQL、Oracle等的使用。 数据库设计原理是这门课程的基础。它教授学生如何根据不同的需求设计合理的数据库结构和关系模式,如何进行关系规范化等。 关系数据库理论和操作是课程的核心内容之一。学生将学习关系模型、实体关系图、关系代数和SQL语言等,并通过实际操作掌握数据库的增删改查等常用操作。 SQL语言是数据库领域中最重要的编程语言之一,也是学习和使用数据库的基础。学生将学习SQL语法,掌握常见的SQL语句的编写和优化技巧,以及数据库索引和视图的使用。 此外,课程还会介绍一些常见的数据库管理系统,如MySQL、Oracle等,让学生了解不同的数据库管理系统的特点和使用方法。 学习数据库原理与应用有助于培养学生的数据库设计和管理能力,为他们未来在数据库行业或相关领域的工作打下坚实的基础。该课程的结业考试将考察学生对数据库原理和操作的理解和运用能力。 综上所述,数据库原理与应用课程的内容涉及数据库基本原理、关系数据库理论和操作、SQL语言、数据库管理系统等,并通过实际操作和考试来评估学生的学习成果。 ### 回答2: mooc数据库原理与应用是一门针对大规模在线开放课程 (MOOC) 的数据库知识和应用的课程。在这门课程中,我们将学习数据库的原理、架构和设计,以及数据库在MOOC平台上的应用。 首先,数据库是一种用于组织和存储大量数据的系统。它可以有效地管理数据,提供高效的数据检索和处理功能。课程中,我们将学习数据库的结构和组织方式,包括关系型数据库和非关系型数据库。我们还将深入了解数据库的基本概念,如数据模型、表、字段和索引等。 其次,在MOOC平台上,数据库扮演着重要的角色。MOOC平台需要存储和管理大量的学生信息、课程资源和学习数据。数据库可以为平台提供高效的数据存储和查询功能,使得平台能够快速地响应用户的请求,并提供个性化的学习体验。 在这门课程中,我们还将学习如何使用数据库进行数据分析和数据挖掘。通过分析学生的学习数据,我们可以了解学生的学习情况,提供个性化的学习建议。此外,数据库还可以用于课程评估和学习成果的分析,帮助教师和平台改进课程设计和教学策略。 总之,MOOC数据库原理与应用课程将帮助我们深入了解数据库的原理和应用,以及它在MOOC平台中的重要作用。通过学习这门课程,我们将能够更好地理解和应用数据库,为MOOC平台的发展和优化提供有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值