第2章C语言基本概念 练习题

发布时间:2026/7/25 1:42:41

第2章C语言基本概念 练习题
2.1节1.建立并运行由Kerighan和Ritchie编写的著名的“hello,world”程序:#include stdio.h int main(void) { printf(Hello World); return 0; }2.2节2.思考下面的程序:#include stdio.h // 预处理指令 int main(void) { printf(Parkinsons Law: \nWork expands so as to ); // 输出语句 printf(fill the time\n); // 输出语句 printf(available for its completion.\n); // 输出语句 return 0; // 返回语句 }(a)请指出程序中的指令和语句。(b)程序的输出是什么?2.4节3.通过下列方法缩写程序dweight.c:(1)用初始化式替换对变量height、length和width的赋值:(2)去掉变量weight在最后的printf语句中计算(volume 165)/166。#include stdio.h int main(viod) { int heignt 8,length 12,width 10, volume, weight; //声明变量 volume heignt * length * width; printf(Dimensions:%d x %d x %d\n, heignt, length, width); //输出函数 printf(Volume:%d\n, volume); //输出函数 printf(Dimensional weight (pounds):%d\n, (volume 165) / 166); //输出函数 return 0; //程序的正常结束 }4.编写一个程序来声明几个int型和f1oat型变量不对这些变量进行初始化然后显示它们的值。这些值是否有规律?(通常情况下没有。5.判断下列C语言标识符哪些是不合法的?(a) 100_bottles(b)_100_bottles(c)onehundred bottles(d) bottles_by_the_hundred_答a不合法以为c语言中规定标识符只能以 下划线、字母开头6.为什么说在标识符中使用多个相邻的下划线(如current__balance)不太合适?答因为在阅读程序时很难分清到底有几个相邻的下划线如current____balance和current_____balance前者是4个下划线后者是5个下划线。在未来维护程序时不论是编写者本人还是他人都容易弄混下划线的数量造成不必要的混乱。7.判断下列哪些是C语言的关键字?(a) for(b)If(c)main(d)printf(e)while答只有(a)for和(e)while是关键字其余全都不是。(b) If 是因为C语言区分大小写所以If和if并不相同if是关键字但是If不是。(cmain和(d)printf也不是关键字main()函数是C语言自动调用的函数但是我们依旧可以将变量命名为main不建议这样做。printf()则是我们头文件stdio.h内包含的函数如果不调用这个头文件那么我们一样可以将变量命名为printf。总的来说只有在关键字表里的单词才是关键字其余都不是关键字。2.8节8.下面的语句中有多少记号?answer(3*q-p*p)/3;,答14个记号分别是answer、、(、3、*、q、-、p、*、p、)、/、3、;。9.在练习题8的记号之间插入空格使该语句更易于阅读。答answer (3 * q - p * p) / 3;10.在dweight.c程序(2.4节)中哪些空格是必不可少的?答程序当中出现两次的int后面空格不能少return 0; 中间的空格不能少。程序其他部分的空格都是为了易于阅读而存在的即使可去掉程序本身依旧能够正常执行只是增加了阅读困难编程题1.编写一个程序使用printf在屏幕上显示下面的图形int main(void) { printf( *\n); printf( *\n); printf( *\n); printf( *\n); printf(* *\n); printf(* *\n); printf( *\n); return 0; }2.编写一个计算球体体积的程序其中球体半径为10m参考公式v4/3πr ³。注意分数4/3应写为4.0f/3.0f。如果分数写成4/3会产生什么结果提示C语言没有指数运算符所以需要对r自乘两次来计算r ³。3.修改上题中的程序使用户可以自行录入球体的半径#define _CRT_SECURE_NO_WARNINGS #include stdio.h int main(void) { float r 0.0f; printf(请输入立方值); scanf(%f, r); printf(Sphere volume:%.2f cubic meters\n, 4.0f / 3.0f * 3.14f * r * r * r); return 0; }4.编写一个程序要求用户输入一个美金数量然后显示出增加5%税率后的相应金额。格式如下所示:#define _CRT_SECURE_NO_WARNINGS #include stdio.h int main(void) { //声明变量 money 和 taxed_money并初始化 。money--金额 taxed_money 税后今日 float money 0.0f; float taxed_money 0.0f; printf(Enter an amount:); //取地址符拿到float变量money的地址 scanf(%f, money); printf(debug money %f\n, money);// 新增调试打印 //计算税后的金额 taxed_money money * 1.05; //显示结果使用.2f是因为题目中税后的金额只保留了两位小数 printf(With tax added: $%.2f\n, taxed_money); return 0; }5.编程要求用户输入x的值然后显示如下多项式的值:#define _CRT_SECURE_NO_WARNINGS #include stdio.h int main(void) { /* 声明并初始化变量x和计算结果result选择float型是因为题目中没有说用户不能输入小数 */ float x 0.0f; float result 0.0f; /* 用户输入x的值然后将值写入变量x中 */ printf(Enter the value of x:); scanf(%f, x); /* 计算公式的结果 */ /*result 3 * x * x * x * x * x 2 * x * x * x * x - 5 * x * x * x - x * x 7 * x - 6;*/ result ((((3 * x 2) * x - 5) * x - 1) * x 7) * x - 6; printf(The result is : % f, result); return 0; }7.编写一个程序要求用户输入一个美元数量然后显示出如何用最少的20美元、10美元、5美元和1美元来付款Enter a dollar amount: 93$20 bills:4$10 bills:1$5 bills:0$1 bills:3#define _CRT_SECURE_NO_WARNINGS #include stdio.h int main(void) { int amount 0; int b20 0, b10 0, b05 0, b01 0; printf(Enter a dollar amount:); scanf(%d, amount); /* 因为要求是用最少张数付款所以先用总金额除以20得到的所需20美元的数量再将总金额减去所需20美元后除以10得到所需10美元数量以此类推求出全部结果 */ b20 amount / 20; amount amount - 20 * b20; b10 amount / 10; amount amount - 10 * b10; b05 amount / 5; amount amount - 5 * b05; b01 amount / 1; printf(\n$20 bills:%d\n$10 bills:%d\n $5 bills:%d\n $1 bills:%d\n, b20, b10, b05, b01); return 0; }8.编程计算第一、第二、第三个月还贷后剩余的贷款金额Enter amount of loan: 20000.00Enter interest rate:6.0Enter monthly payment:386.66Balance remaining after first payment:$19713.34Balance remaining after second payment:$19425.25Balance remaining after third payment:$19135.71在显示每次还款后的余额时要保留两位小数。提示每个月的贷款余额减去还款金额后还需要加上贷款余额与月利率的乘积。月利率的计算方法是把用户输入的利率转换成百分数再除以12。#define _CRT_SECURE_NO_WARNINGS #include stdio.h int main(void) { float loan 0.0f; float y_inter 0.0f; float m_inter 0.0f; float m_pay 0.0f; //用户输入贷款金额、年利率、月还款数 printf(Enter amount of loan:); scanf(%f, loan); printf(Enter interest rate: ); scanf(%f, y_inter); printf(Enter monthly payment: ); scanf(%f, m_pay); //计算月利率加1是因为如果直接是月利率乘以贷款金额得到的是利息利息还要在加上贷款金额。加1之后可以直接求出贷款金额加利息后的结果 * m_inter y_inter / 100 / 12 1; //求出第一个月还款的剩下金额 loan loan * m_inter - m_pay; printf(Balance remaining after first payment: %.2f\n, loan); //求出第二个月还款之后的剩余金额 loan loan * m_inter - m_pay; printf(Balance remaining after second payment: %.2f\n, loan); //求出第三个月还款之后的剩余金额 loan loan * m_inter - m_pay; printf(Balance remaining after third payment: %.2f\n, loan); return 0; }

相关新闻

YOLO 11与Qwen3.5构建智能安防系统实战

YOLO 11与Qwen3.5构建智能安防系统实战

2026/7/25 1:42:41

1. 项目背景与核心价值最近在帮某园区做安防升级时,发现传统监控系统存在两个致命缺陷:一是需要人工24小时盯屏,二是事后查录像效率极低。于是尝试用YOLO 11结合Qwen3.5大模型搭建了一套智能分析系统,实测效果超出预期——不仅能实…

企业AI转型实战:从技术落地到业务融合

企业AI转型实战:从技术落地到业务融合

2026/7/25 1:42:41

1. 企业AI转型的现状与挑战过去三年间,我参与了17家传统企业的AI转型咨询项目,发现一个共性现象:超过80%的企业在AI落地过程中遭遇"技术-业务"断层。某制造业客户曾投入300万构建了先进的计算机视觉质检系统,但半年后实…

计算机毕业设计之基于node.js旅游管理系统

计算机毕业设计之基于node.js旅游管理系统

2026/7/25 1:32:41

随着新经济的需求和新技术的发展,特别是网络技术的发展,如果可以建立起旅游管理系统,可以改变传统线下管理方式,在过去的时代里都使用传统的方式实行,既花费了时间,又浪费了精力。在信息如此发达的今天&…

基于深度学习的旋转机械智能诊断方法与实践

基于深度学习的旋转机械智能诊断方法与实践

2026/7/25 2:42:44

1. 项目背景与核心价值旋转机械作为工业领域的核心设备,其运行状态直接影响生产安全与效率。传统振动分析需要依赖专家经验,而基于频率学习的智能诊断方法正在改变这一局面。我在某大型发电厂设备监测项目中,通过MATLAB平台实现了从原始振动信…

VC++开发轻量级PDF阅读器:从文件解析到GDI渲染的实战指南

VC++开发轻量级PDF阅读器:从文件解析到GDI渲染的实战指南

2026/7/25 2:42:44

1. 项目概述:为什么选择VC来啃PDF这块硬骨头?最近在整理硬盘,翻出来一个老项目,一个用VC写的PDF阅读器小程序。现在市面上PDF阅读器多如牛毛,从功能强大的Adobe Acrobat到轻巧的SumatraPDF,为什么还要自己动…

深度剖析:机器人局部避障的关键技术与实践——全面解读从理论到应用的开发细节

深度剖析:机器人局部避障的关键技术与实践——全面解读从理论到应用的开发细节

2026/7/25 2:42:44

在现代机器人软件开发领域,实现高效的自主导航是行业的核心挑战之一。它让机器人能在复杂环境中安全、智能地移动,广泛应用于物流、家居服务和工业场景。自主导航的核心模块包括全局路径规划、局部避障、速度优化和重规划策略。本篇文章聚焦于局部避障技术,作为实现可靠导航…

云原生AI模型版本管理实践与挑战

云原生AI模型版本管理实践与挑战

2026/7/25 2:42:44

1. 云原生AI模型版本管理的核心挑战 在AI工程化落地的实践中,模型版本管理正成为制约迭代效率的关键瓶颈。我们团队在金融风控场景中曾遭遇典型困境:某次线上AB测试时,由于模型版本标识混乱,导致生产环境错误加载了未经过合规审计…

基于RRT算法的机器人路径规划详解:高效搜索树的应用与实现

基于RRT算法的机器人路径规划详解:高效搜索树的应用与实现

2026/7/25 2:42:44

路径规划是机器人软件开发中的核心技术之一,它负责为机器人找到一条从起点到终点的安全有效路径。在复杂环境中,如障碍物密集的场景,高效的搜索算法至关重要。本文将深度探讨基于快速随机扩展树(Rapidly-exploring Random Tree,简称RRT)的路径规划方法,这是一种广泛应用…

【AI视频去抖动处理终极指南】:20年影像工程师亲授5大工业级算法选型逻辑与实测性能对比(FPS提升3.7倍)

【AI视频去抖动处理终极指南】:20年影像工程师亲授5大工业级算法选型逻辑与实测性能对比(FPS提升3.7倍)

2026/7/25 2:32:44

更多请点击: https://intelliparadigm.com 第一章:AI视频去抖动处理的技术演进与工业落地挑战 AI视频去抖动技术已从早期基于光流估计的后处理方法,逐步演进为融合时空卷积、Transformer建模与神经辐射场(NeRF)先验的…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/24 4:17:29

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/24 19:29:25

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/23 1:54:13

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

挑战一天速通Spring全家桶!

挑战一天速通Spring全家桶!

2026/7/25 0:02:22

不知道各位Java好大哥们闲的时候会不会去关注Spring目前的官网,你会发现他的slogan是: Spring makes Java Simple。它让Java的开发变得更加简单。某种意义上来说:是Spring成就了Java!但随之而来的就是:由他之后诞生出来的各种组件…

挑战一天速通Java高并发!

挑战一天速通Java高并发!

2026/7/25 0:02:22

有出去面试的朋友肯定深有感受,像我们刚入行那会面试的加分项现在卷得已经成为了面试的基础题(手动狗头)。其中最典型的就属这个Java并发编程了。之前一般只有大厂才会有高并发编程相关的面试内容,但现在只要你入了Java行业就会涉…

从暴雪到米哈游都在用的平衡性评估框架,深度拆解LSTM+胜率归因分析法(附开源工具链)

从暴雪到米哈游都在用的平衡性评估框架,深度拆解LSTM+胜率归因分析法(附开源工具链)

2026/7/25 0:02:22

更多请点击: https://kaifayun.com 第一章:AI 游戏平衡性分析 现代游戏开发中,AI 不再仅用于控制 NPC 行为,更被深度整合进游戏平衡性调优流程。通过强化学习与对抗性仿真,AI 可以在数百万局对局中自动识别数值失衡点…