翁恺C语言课后习题

article/2025/9/15 3:55:27

1

时间换算(5分)

题目内容:

UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。

有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。

你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。

提醒:要小心跨日的换算。

输入格式:

一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。

输出格式:

一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而分小于10分,需要保留十位上的0;如果小时是0而分小于10分的,则不需要保留十位上的0。

输入样例:

803

输出样例:

3

#include<stdio.h>int main()
{int BJT;int UTC;printf("请输入BJT:");scanf("%d",&BJT);printf("您输入的时间为:%d\n",BJT);if (BJT>0&&BJT<2359){									//规定输入的BJT范围必须在0-2359之间 if(BJT<800){										//跨日换算 BJT +=  2400 ;}UTC=BJT-800;printf("UTC=%d",UTC);}else printf("您输入的时间不符合格式,请重新输入。");return 0; } 




2

分队列(5分)

题目内容:

班级第一次列队,通常老师会让同学按身高排成一列,然后1、2报数,喊到1的同学向前一 步,就这样,队伍就变成两列了。假设现在一个班级有n个同学,并且他们已经按身高排成 了一列,同学按身高从1到n编号,你能告诉我最后哪些编号的同学站在了第一列么? 

输入格式:

输入一个正整数n,表示班级的人数。

输出格式:

按顺序输出所有在第一列的同学对应的编号,每两个编号之间用一个空格隔开,最后一个编号后面没有空格。

输入样例:

11

输出样例:

1 3 5 7 9 11

#include<stdio.h>int main()
{int n;int i;printf("请输入班级人数\n");scanf("%d",&n);printf("您输入的班级人数是%d\n",n);printf("站在第一列的学生的编号是:");for(i=1;i<n;i++){if(i%2!=0){printf("%d ",i);		//不要忘了空格			 }}if(n%2!=0){printf("%d",n);				//题目要求最后一个编号后不能有空格 }printf(".");					//检测最后一个编号后是否有空格 return 0;
}




1

奇偶个数(5分)

题目内容:

你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。

输入格式:

一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。

输出格式:

两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。

输入样例:

9 3 4 2 5 7 -1 

输出样例:

4 2


变量:

一个存储数的number

两个计数器ocount,ecount

算法:

1.输入一个数(存到number里)判断其是否为-1

2.若不是-1,判断其是否在0-100000内,如不在弹出错误提示

4.判断number为奇数还是偶数(number%2==0则对ecount++否则对ocount++)

5.检测到-1后直接输出ecount和ocount的值

流程图

#include<stdio.h>
int main()
{int number;int ocount=0,ecount=0;printf("请输入数字,输入-1时输入结束");scanf("%d",&number);while(number!=-1){if(number>0&&number<100000){if(number%2==0){ecount++;	}	else ocount++;}else printf("错误,该数不在指定范围内");scanf("%d",&number);	 } printf("%d %d",ocount,ecount);return 0;
}

 




2

数字特征值(5分)

题目内容:

对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。

这里的计算可以用下面的表格来表示:

数字

3

4

2

3

1

5

数位

6

5

4

3

2

1

数字奇偶

数位奇偶

奇偶一致

0

0

1

1

0

1

二进制位值

32

16

8

4

2

1

你的程序要读入一个非负整数,整数的范围是[0,1000000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。

提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。

输入格式:

一个非负整数,整数的范围是[0,1000000]。

输出格式:

一个整数,表示计算结果。

输入样例:

342315

输出样例:

13

二进制掌握的不好没能想通最后的输出值应该是怎么样的,在网上找了段正确的代码

#include <stdio.h> 
int main()
{int a,b,x;  //a为输入整数,x为整数右面第一位 /b为整数位数 int c,d=1;  //c为二进制数,d为二进制位数 int sum;  //sum为最后输出值 scanf("%d",&a);for(b=1;a!=0;b++)  {x=a%10;  //取整数右面第一位 a/=10;  //消掉整数右面第一位 if((b+x)%2==0)  //判断二进制数为 1  or  0 {c=1;}else{c=0;}sum+=c*d;  //二进制数转换为十进制数 d*=2;}printf("%d",sum); return 0;
}


http://chatgpt.dhexx.cn/article/tckMwMUk.shtml

相关文章

啊哈C语言课后练习题

第 四 章 第四节 项目一&#xff1a;求1~100所有偶数的和。 问题代码/*copyright (啊哈C语言), 学习C *All rights reserved. *文件名称:myfirstc. *作者&#xff1a;JohnLu *完成日期&#xff1a;2020年3月17日 *版本号V1.0 * *问题描述&#xff1a;求1~100所有偶数的和。 …

12道c语言的课后习题!

1、计算n的阶乘&#xff08;1*2*3*4*5 n是个数&#xff0c;比如说乘到100&#xff1f;&#xff09; // 计算n的阶乘#include"stdio.h"int main() {int n 0;scanf("%d", &n);int i 0;int ret 1;for (i 1; i < n; i) {ret * i;}printf("…

TeeChart在VS2005,VS2008的入门教程

最近项目上要用到TeeChart来绘图&#xff0c;网络上关于TeeChart的资料很多&#xff0c;但是感觉很多都讲不到点上&#xff0c;很多入门过程中碰到的细节问题还是要自己探索。我把这两天的学到的记下来&#xff0c;也与大家分享。 环境&#xff1a;VS2005,VS2008 TeeChart版本:…

怎么用VS2008?

请问各位怎么用VS2008&#xff0c;为什么总是出错&#xff1f;我是这么做的。

[Win8]如何使用Visual Studio2012进行Windows8项目开发

随着Windows8普通版&#xff0c;专业版和企业版的普及&#xff0c;Windows8的应用开发也逐渐火热起来。 下面简单介绍一下如何使用Visual Studio2012进行Windows8项目的开发。 首先安装Windows8的操作系统&#xff0c;推荐安装32位的Win8&#xff0c;因为64位的容易出现不兼容…

VS2008技巧收集

1&#xff0c;Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件在Visual Studio 2008的安装目录下&#xff0c;/Microsoft Visual Studio 9.0/Common7/VS2008ImageLibrary/2052文件夹下面&#xff0c;有一个VS2008ImageLibrary.zip&#xff0c;这…

VS2012使用 MSDN教程

VS2012安装默认只安装Help Viewer,如果想要安装文档的话&#xff0c;需要去官网下载。网址如右:https://www.microsoft.com/zh-CN/download/details.aspx?id34794 一&#xff0c;选择中文版&#xff0c;点击下载&#xff0c;2G。如下图&#xff1a; 下载完成&#xff0c;需要解…

VS2008使用技巧及快捷键大全

VS2008技巧&#xff0c;非常实用&#xff0c;非常提高效率。 1&#xff0c;Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件 在Visual Studio 2008的安装目录下&#xff0c; \Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\2052文件夹…

VS2008 使用小技巧-------快捷键

以下的内容转载自&#xff1a;http://www.21industry.com/group_thread/view/id-32435 VS2008 使用小技巧——快捷键 1. 怎样调整代码排版的格式&#xff1f; 选择&#xff1a;编辑—>高级—>设置文档的格式 或 编辑—>高级—>设置选中代码的格式。 格式化cs代码…

vs2008 html5 的安装,vs2008安装教程,详细教您vs2008安装教程

小伙伴们&#xff0c;你们知道Visual Studio 2008是什么吗&#xff1f;小编我来给你们简单的解释一下哈&#xff0c;vs2008就是是对Office 2007、Web 2.0的下一代开发工具&#xff0c;代号是Orcas&#xff0c;是对vs2005的升级。而今天我就来告诉你们vs2008安装教程&#xff0c…

【C++】利用Visual Studio 2008编写C++,Visual Studio 2008的基本使用

现在很多高校还是利用Visual C 6.0这一经典版本在教C&#xff0c;很多人对自己第一个程序的回忆是利用Visual C 6.0用C语言写的Helloworld&#xff0c;之后再学习C的类&#xff0c;不过还是在使用Visual C 6.0。于是Visual Studio对Visual C 6.0界面的布置改动得比较大&#xf…

VS2008使用技巧

VS2008技巧&#xff0c;非常实用&#xff0c;非常提高效率。 1&#xff0c;Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件 在Visual Studio 2008的安装目录下&#xff0c; \Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\2052文件夹…

vs2008/vs2010新手快速入门必读教程

1.新建一个项目并且添加项 ①打开文件->新建->项目&#xff0c;新建一个项目 ②选择win32控制台&#xff0c;然后点击下一步&#xff0c;出现对话框&#xff0c;在空项目前面打勾&#xff0c;单击完成。 ③出现一个空白的页面&#xff0c;在左侧的一栏空白处单击右键&…

vs2008怎么创建c语言程序,VS2008的使用

使用之前我们先准备一段代码。#include #include int main() { printf("欢迎进入www.dotcpp.com编程网站&#xff01;"); system("pause"); return 0; } 1. VS2008的使用过程 1) 打开软件&#xff0c;第一次打开需要耗费一点时间。 2) 创建文件的方式为点…

vs2008使用技巧推荐

VS2008技巧&#xff0c;非常实用&#xff0c;非常提高效率。 1&#xff0c;Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件 在Visual Studio 2008的安装目录下&#xff0c; \Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\2052文件夹…

Microsoft Visual Studio 2008安装教程

Microsoft Visual Studio 2008安装包链接&#xff1a;https://pan.baidu.com/s/1nwRnWj3 密码&#xff1a;s00k①解压安装包后得到后缀为.iso的镜像文件&#xff0c;解压&#xff1b; ②解压后找到安装启动程序setup.exe&#xff0c;双击&#xff1b; ③双击后进入安装界面&…

VS2008 入门基本操作

VS2008 入门操作 更新日期&#xff1a;2011-7-31 测试环境&#xff1a;VS2008WinXP ━━━━━━━━━━━━━━━━━━━━━━━━ 这段时间正式开始使用VS2008。从VC6过度到VS2008还真的有点不习惯。 下面列出一些常用操作&#xff0c;希望有所帮助。 以下只是个入门的…

【转】VS2008 入门基本操作

VS2008 入门操作 更新日期&#xff1a;2011-7-31 测试环境&#xff1a;VS2008WinXP ━━━━━━━━━━━━━━━━━━━━━━━━ 这段时间正式开始使用VS2008。从VC6过度到VS2008还真的有点不习惯。 下面列出一些常用操作&#xff0c;希望有所帮助。 以下只是个入门的…

android 多线程断点续传下载 三

今天跟大家一起分享下android开发中比较难的一个环节,可能很多人看到这个标题就会感觉头很大,的确如果没有良好的编码能力和逻辑思维,这块是很难搞明白的,前面2次总结中已经为大家分享过有关技术的一些基本要领,我们先一起简单回顾下它的基本原理。 http://blog.csdn.net/shim…

Android多线程编程(一)- 线程基础

Android多线程编程&#xff08;一&#xff09; 到了学习下一部分了&#xff0c;多线程编程一直都是Android经常使用的部份&#xff0c;在进行网络请求或者访问数据库时&#xff0c;为了避免主线程被耗时操作阻塞了进度&#xff0c;通常都会开启子线程进行处理&#xff0c;多线…