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,文件内容 …… 此处隐藏:19735字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [行业范文]美好的法语句子
- [行业范文]描写露珠的句子
- [行业范文]精彩禅语句子图片
- [行业范文]关于满嘴谎言的句子
- [行业范文]关于安静的句子48句
- [行业范文]关于小河的句子
- [行业范文]描写稻田的句子
- [行业范文]思念好朋友的句子
- [行业范文]赞美雪的句子
- [行业范文]早上激励人心的句子
- [行业范文]失恋忧伤的句子
- [行业范文]努力积极向上的句子
- [行业范文]对工作心灰意冷的句子
- [行业范文]失恋让人心疼的句子
- [行业范文]描写珍惜青春的句子
- [行业范文]表达思念的句子简短
- [行业范文]关于父爱的句子范例
- [行业范文]浪漫的英语句子
- [行业范文]关于周末的句子
- [行业范文]思念牵挂的句子
- 有关感恩班会课件简短(二篇)(感恩班会
- 2025年初二下乡军训心得体会800字(15篇
- 关于新员工培训方案汇编(关于新员工培
- 精选高考生寒假学习计划书(精)(高考生
- 毕业实训报告心得体会(3篇)(实训报告心
- 银行工作感悟及心得范文怎么写(四篇)(
- 精选领导干部个人政治画像报告通用(七
- 精选超市11.11活动促销方案(精品超市品
- 2025年怎么做自我介绍汇总(5篇)(至2025
- 最新企业错峰生产方案(26篇)(山西企业
- 最新暑期三下乡社会实践调研报告范本(
- 最新幼儿园大班教育教学总结怎么写(最
- 最新教师节主持词小学(优秀9篇)(教师节
- 关于小学安全教育教学方案(推荐)(关于
- 员工信模板范文怎么写(五篇)(员工信息
- 最新保险销售离职申请书(十六篇)(最新
- 最新XX小学防校园欺凌工作方案怎么写(2
- 有关特岗教师辞职信范文(推荐)(特岗教
- 精选党的建设工作要点简短(党的建设的
- 如何写安康杯竞赛活动总结汇总(4篇)(安




