浙大版《C语言程序设计(第4版)》题目集(一)

embedded/2024/11/17 16:14:07/

在这里插## 标题入图片描述

> 						大家好,我是程序员小羊!

✨博客主页: https://blog.csdn.net/m0_63815035?type=blog

💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识
📢博客专栏: https://blog.csdn.net/m0_63815035/category_11954877.html
📢欢迎点赞 👍 收藏 ⭐留言 📝
📢本文为学习笔记资料,如有侵权,请联系我删除,疏漏之处还请指正🙉
📢大厦之成,非一木之材也;大海之阔,非一流之归也✨

在这里插入图片描述

本文为《C语言程序设计(第4版)》是由苏小红、赵玲玲、孙志岗、王宇颖等编著,高等教育出版社于2019年8月出版的“十二五”普通高等教育本科国家级规划教材、国家级精品资源共享课和国家精品在线开放课程主讲教材、“高等学校本科计算机专业应用型人才培养研究”项目规划教材。该教材可作为高等学校各专业的C语言程序设计课程教材,也可作为从事计算机相关工作的科技人员、计算机爱好者及各类自学人员的参考书浙大版《C语言程序设计(第4版)》题目集,每次更新五题左右!!!如果有错误请指正

一、求m到n之和

本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。

函数接口定义:

int sum( int m, int n );

其中m和n是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。

裁判测试程序样例:

#include <stdio.h>int sum(int m, int n);int main()
{    int m, n;scanf("%d %d", &m, &n);printf("sum = %d\n", sum(m, n));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

-5 8

输出样例:

sum = 21

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

答案(代码)

#include <stdio.h>int sum(int m, int n);int main()
{    int m, n;scanf("%d %d", &m, &n);printf("sum = %d\n", sum(m, n));return 0;
}/* 你的代码将被嵌在这里 */int sum(int m,int n){int sum=0,i,temp; //用来存储值 printf("m=%d,n=%d",m,n);if(m>n){temp =m;m=n;n=temp;  //交换变量 } for(i=m;i<=n;i++){sum+=i;} return sum;
} 

二、练习5-2 找两个数中最大者

本题要求对两个整数a和b,输出其中较大的数。

函数接口定义:

int max( int a, int b );

其中a和b是用户传入的参数,函数返回的是两者中较大的数。
裁判测试程序样例:

#include <stdio.h>int max( int a, int b );int main()
{    int a, b;scanf("%d %d", &a, &b);printf("max = %d\n", max(a, b));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:
-5 8
输出样例:
max = 8

代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB

答案(代码)

#include <stdio.h>int max( int a, int b );int main()
{    int a, b;scanf("%d %d", &a, &b);printf("max = %d\n", max(a, b));return 0;
}
/* 你的代码将被嵌在这里 */
int max(int a,int b){if(a>b){return a;}else{return b;}
} 

第三题(字符金字塔)

在这里插入图片描述

答案(代码)

#include <stdio.h>void CharPyramid( int n, char ch );int main()
{    int n;char ch;scanf("%d %c", &n, &ch);	//n行数  ch样子 CharPyramid(n, ch);	 return 0;
}/* 请在这里填写答案 */void CharPyramid( int n, char ch){int i,j,k;for(i=1;i<=n;i++){for(j=1;j<=n-i;j++){printf(" ");}for(k=1;k<=i;k++){printf("%c ",ch);}printf("\n");}
}

四、符号函数

在这里插入图片描述

答案(代码)

#include <stdio.h>int sign( int x );int main()
{int x;scanf("%d", &x);printf("sign(%d) = %d\n", x, sign(x));return 0;
}/* 你的代码将被嵌在这里 */
int sign(int x){if(x>0){return 1;}else if(x==0){return 0;}else {return -1;}
} 

五、使用函数求奇数和

在这里插入图片描述

答案(代码)

#include <stdio.h>#define MAXN 10int even( int n );
int OddSum( int List[], int N );int main()
{    int List[MAXN], N, i;scanf("%d", &N);printf("Sum of ( ");for ( i=0; i<N; i++ ) {scanf("%d", &List[i]);if ( even(List[i])==0 )printf("%d ", List[i]);}printf(") = %d\n", OddSum(List, N));return 0;
}/* 你的代码将被嵌在这里 */
int even(int n){if(n%2==0){return 1;}else{return 0;}
}
int OddSum( int List[], int N ){int i,sum=0;for(i=0;i<=N;i++){if(List[i]%2!=0){sum+=List[i];}}return sum;
}

扩展(学习技巧)

学习C语言需要系统化的计划和有效的学习技巧,以便真正掌握这门底层强大的编程语言。以下是一些学习C语言的实用技巧,适用于从入门到进阶的学习过程。

1. 打牢基础,循序渐进

  • 掌握基本语法:从变量、数据类型、运算符、条件语句、循环等基础语法入手,确保理解每一个基本概念。
  • 记住常见关键字:学习C语言中的关键字(如intifwhile等),并掌握它们的使用方法和规则。
  • 实践为王:每学习一个概念,尽量动手写简单的代码来加深理解,如用for循环输出一个表格等小练习。

2. 多练习代码,培养编码思维

  • 编码能力来自于实践:多写小程序,例如计算器、简单排序、查找算法等。这种方式可以帮助你熟悉语法、逻辑和调试。
  • 利用在线练习平台:如LeetCode、Codeforces等网站,专注于编程题目练习,可以提升算法和编程能力。
  • 坚持每日编程:每天花一点时间编写和调试C代码,逐渐形成良好的编程习惯。

3. 深入理解指针

  • 指针是C语言的核心:理解指针和内存地址是学好C语言的关键。学习指针的基本用法、指针与数组的关系、指针函数等。
  • 动手实践:尝试自己用指针操作数组、字符串等复杂数据结构,掌握指针的灵活性和危险性。
  • 避免常见错误:注意空指针和野指针的检查与处理,确保程序的稳定性和安全性。

4. 多看、多学、多模仿

  • 阅读优秀的代码:阅读一些经典的开源项目代码,可以提高你的代码质量和对C语言的理解。
  • 模仿优秀代码:模仿并理解如何组织代码结构、如何优化和管理内存等,可以帮助你提升自己的编程技巧。
  • 反复调试和分析:对写过的代码进行调试,理解程序运行时的内存分配、变量的变化等细节。通过调试工具(如gdb)探索程序执行过程。

5. 掌握C标准库的使用

  • 学习常用的标准库函数:如<stdio.h>中的printfscanf<string.h>中的字符串处理函数,<stdlib.h>中的动态内存分配函数。
  • 深入理解每个函数的用法和参数:了解标准库函数的工作原理和常见的错误使用方式。

6. 学习数据结构与算法

  • 掌握基础数据结构:如数组、链表、栈、队列、树等。
  • 理解常用算法:如排序、搜索、递归等算法,并用C语言实现它们。
  • 分析算法效率:理解时间复杂度和空间复杂度,优化代码性能。

7. 进行项目实战

  • 动手实现小项目:从简单的文本编辑器、学生管理系统等小型项目入手,逐步构建自己的能力。
  • 逐步增加复杂性:随着技能的提升,尝试实现更复杂的项目,涉及文件操作、内存管理和系统调用等高级特性。

8. 学会调试和查错

  • 使用调试工具:学习使用gdb等调试工具,跟踪程序的执行流程,检查变量值和内存状态。
  • 编写测试用例:通过编写测试用例来验证代码的正确性,确保不同输入条件下代码都能正常运行。
  • 掌握常见的错误类型:如段错误、缓冲区溢出、内存泄漏等,避免重复犯错。

9. 学会阅读文档和参考资料

  • 阅读官方文档:学习如何查阅C标准文档、手册页(如man命令)。
  • 利用论坛和社区:在学习中遇到问题时,积极向论坛(如Stack Overflow)提问,与社区中的其他开发者交流经验。

10. 注重内存管理

  • 理解内存分配与释放:掌握malloccallocfree等动态内存管理函数的用法。
  • 避免内存泄漏:学会用工具如valgrind检测和修复内存泄漏问题。

11. 关注代码风格和规范

  • 遵循代码风格:保持良好的代码格式和风格,使用适当的缩进、注释和命名规范。
  • 编写易读和可维护的代码:代码不仅要实现功能,还需要易于阅读和维护。

12. 参与实际项目和开源社区

  • 参与开源项目:通过贡献代码或修复bug,积累实战经验和与团队合作的能力。
  • 利用版本控制工具:学习使用git等工具管理项目代码,掌握分支和版本管理。

结尾

学习C语言需要耐心、恒心和不断的练习。通过系统化地学习、解决问题、编写实际项目,你可以不断深化对C语言的理解,掌握它的核心技巧和精髓。

今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文

在这里插入图片描述


http://www.ppmy.cn/embedded/138289.html

相关文章

【电脑】解决DiskGenius调整分区大小时报错“文件使用的簇被标记为空闲或与其它文件有交叉”

【电脑】解决DiskGenius调整分区大小时报错“文件使用的簇被标记为空闲或与其它文件有交叉” 零、报错 在使用DiskGenius对磁盘分区进行调整时&#xff0c;DiskGenius检查出磁盘报错&#xff0c;报错信息&#xff1a;文件使用的簇被标记为空闲或与其它文件有交叉&#xff0c;…

机器学习—决定下一步做什么

现在已经看到了很多不同的学习算法&#xff0c;包括线性回归、逻辑回归甚至深度学习或神经网络。 关于如何构建机器学习系统的一些建议 假设你已经实现了正则化线性回归来预测房价&#xff0c;所以你有通常的学习算法的成本函数平方误差加上这个正则化项&#xff0c;但是如果…

HarmonyOS App 购物助手工具的开发与设计

文章目录 摘要引言功能需求分析技术方案与设计架构设计技术选型 代码示例Demo数据抓取模块数据存储模块历史价格查询和数据可视化模块完整界面布局和调用示例代码详解 QA环节总结参考资料 摘要 随着促销活动的增多&#xff0c;用户面临真假折扣的困惑&#xff0c;特别是在一些…

【MYSQL】分库分表

一、什么是分库分表 分库分表就是指在一个数据库在存储数据过大&#xff0c;或者一个表存储数据过多的情况下&#xff0c;为了提高数据存储的可持续性&#xff0c;查询数据的性能而进行的将单一库或者表分成多个库&#xff0c;表使用。 二、为什么要分库分表 分库分表其实是两…

uniapp中h5端如何引用本地json数据(json文件)

前言 uniapp读取本地json数据文件&#xff0c;有下面两种方式可以实现&#xff1a; 文件后缀为.json类型文件后缀为.js类型 这里展示后缀为.js类型的处理方式 1、在static中创建后缀为.js的文件存储json数据。 注意使用export导出 2、在要使用的页面导入 <template>…

windows系统开发环境使用docker打包Django程序部署至服务器Ubuntu系统中

正常创建开发Django项目即可&#xff0c;推荐使用虚拟环境开发 &#xff08;virtualenv&#xff09; 在Ubuntu安装docker 在windows系统安装docker 链接 需要启用WSL 2&#xff0c;这个可以在Microsoft store 下载Ubuntu系统 docker默认安装在c盘&#xff0c;会占用很多空间&am…

【ORACLE战报】2024年10月OCP考试战报

原创 厦门微思网络 微思 | 新班预告&#xff1a; 所有的收获都是默默耕耘的成果 2024.10月【最新考试成绩出炉】 来吧&#xff0c;展示 &#xff08;以下为部分学员成绩单&#xff09; &#xff08;部分学员证书&#xff09; 往期考试战报回顾&#xff1a; 【ORACLE战报】…

Rust开发一个命令行工具(一,简单版持续更新)

依赖的包 cargo add clap --features derive clap命令行参数解析 项目目录 代码 main.rs mod utils;use clap::Parser; use utils::{editor::open_in_vscode,fs_tools::{file_exists, get_file, is_dir, list_dir, read_file}, }; /// 在文件中搜索模式并显示包含它的行。…