C语言经典例题大全
C语言竞赛题目大全
问题:
假设在一个32位的机器上,需要将某个外设寄存器的第X位(最低位为第0位,最高位为第31位)设置成0,将第Y位开始的连续三位设置成110(从高位到低位的顺序),而其它位保持不变。对给定的寄存器值R,及X,Y,编程计算更改后的寄存器值R。 输入的数据仅一行,包括R,X,Y,以逗号","分隔,R为16进制表示的32位整数,X,Y在0-31之间且Y>=3,(Y-X)的绝对值>=3,保证两次置位不会重合更改后的寄存器值R(16进制输出)。例如:
Sample Input 12345678,0,3 输出:
1234567c 解题思路:
很简单的位操作,但是需要注意的是Y那里是 110,不能直接或上110,而是先两次SET,在CLR。 答案:
#include <stdio.h>
#define CLR(r, x) r &= ~(1UL << x) //1UL 表示32位无符号数,将r的x位清零。 #define SET(r, y) r |= (1UL << y) //表示将r的y位置零 int main() {
int r, x, y;
scanf("%x,%d,%d", &r, &x, &y);
CLR(r,x); //清除x位 SET(r,y); //置位y位 SET(r,y-1); //置位y-1位 CLR(r,y-2); //置位y-2位
printf("%x", r); return 0; } 第1题
破译密码
问题:
据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文,也就是要将这个过程反过来。 密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M 原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
(注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。)
输入:最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成:
1. 起始行:START
2. 密码消息:由1到200个字符组成一行,表示凯撒发出的一条消息. 3. 结束行:END
在最后一个数据集之后,是另一行:ENDOFINPUT。 输出:
每个数据集对应一行,是凯撒的原始消息。
Sample Input START
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX END START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ END START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ END
ENDOFINPUT Sample Output
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE
解题思路
凯撒编码,判断字符是否是字母,并循环-5即可,记得要循环哦,非常简单的题目哦 答案:
#include <stdio.h> #include <string.h> #include <ctype.h> #define N 202
char str[N]={0};
int main() {
char *p;
gets(str);
while( strcmp(str, "ENDOFINPUT") != 0 ) //当没遇到消息集的结尾时 {
if ( (strcmp(str, "START") !=0) //当消息不是开始 &&(strcmp(str, "END") != 0) ) //消息不是结尾 {
for(p=str; *p !='\0'; p++) //对输入的串进行解密
{
if( isupper(*p) ) //判断是否为大写字符
*p += *p-5 <'A' ? 26-5: -5; //进行转换,考虑边界问题! }
puts(str); }
gets(str); }
return 0; }
//输出字符 //接受下一行
第2题 小孩报数问题
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。或者是求最后出圈人的编号等等类似问题。
输入:第一行输入小孩的人数N(N<=64),接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输入W,S (W < N),用逗号","间隔
输出:按人名输出小孩按顺序出列的顺序,每行输出一个人名
Sample Input 5
Xiaoming Xiaohua Xiaowang Zhangsan Lisi 2,3
Sample Output Zhangsan
Xiaohua Xiaoming Xiaowang Lisi
解题思路:(暂空) 第3题
方阵填数
答案:
#include <iostream> using namespace std; int a[10][10]; void Fun(int n) {
int m = 1,j,i;
for(i = 0; i < n/2; i++) {
for(j = 0; j < n-i; j++) {
if(a[i][j] == 0) a[i][j] = m++; }
for(j = i+1; j < n-i; j++) {
if(a[j][n-1-i] == 0) a[j][n-1-i] = m++; }
for(j = n-i-1; j > i; j--) {
if(a[n-i-1][j] == 0) a[n-i-1][j] = m++; }
for(j = n-i-1; j > i; j--) {
if(a[j][i] == 0) 第4题 1. 2. 第五套
a[j][i] = m++; }
}
if(n%2==1)
a[n/2][n/2] = m; }
void main() {
int n, i, j; cin>>n;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) a[i][j] = 0; }
Fun(n);
for(i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
cout << a[i][j] << " "; }
cout <<endl; } }
编写一个程序,让它有以下功能:从键盘上输入一个五位数,对此整数中的五个数值进行从大到小排序,形成一个新的五位数,输出这个整数。
输入年、月、日,输出该日期是该年的第几天。
3. 4. 5. 6.
将学生的学号和成绩存储在数组中,利用循环计算出数组中存储学生的平均成绩,找出高于平均分的学生信息并输出。 输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。 用指针实现:任意输入20个数,将它们按照从大到小的顺序输出。
编写一个简单的通讯录管理系统。通讯录包括:姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找,通讯录保存到一个文件中。
进制转换问题
第5题
1. 问题描述
实现将N进制到M进制数的转换(1 < N,M <= 36)。对于11到36进制数,其基数使用从A到Z的英文字母(全部为大写)代替。例如对于11进制,其基数10(十进制)使用"A"表示;对于36进制,其基数35(十进制)使用"Z"表示。被转换的数全部为正数且小于2147483647(long型的最大值)。下表为十进制数100对应的各进制数:
2. 要求:
(1).实现10进制数到M进制数的转换。(2).程序具有较强的容错能力(例如对错误的输入数字串的处理)。(3). N进制到M
进制数(1 < N,M < 36)的转换(扩展要求,选做)。
3. 输入:
输入文件名为convert.in,文件内容 …… 此处隐藏:3187字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件




