C语言的几个有趣问题
问题1. 不能使用分号,编写一个“Hello World”程序。
问题2. 如何用C语言打印“ I am print %”?
问题3. 不能使用">、<、>=、<=“等关系运算符,找到3个整数a ,b ,c中的最小的数。
问题4. 程序中不使用“+”法运算,实现整数加法运算。
参考程序:
1. 这是一个比较有趣的问题,但是答案往往十分简单,所采用的是最基本的语句,参考程序如下:
#include <stdio.h>
void main()
{
if(printf("Hello World!\n")){} //可以换成while等
}
2. 对于初学者来说,有不少人不知道如何打印百分号这种类型的符号,其实也很简单,无非是在前面加个百分号而已。
#include <stdio.h>
int main()
{
printf("I am print %%!");
}
3. 第3个问题有一定的挑战性,而且答案不止一个,此外,关系运算符有:
|
运算符
|
名称
|
示例
|
功能
|
缩写
|
|
<
|
小于
|
a<b
|
a小于b时返回真;否则返回假
|
LT
|
|
<=
|
小于等于
|
a<=b
|
a小于等于b时返回真;否则返回假
|
LE
|
|
>
|
大于
|
a>b
|
a大于b时返回真;否则返回假
|
GT
|
|
>=
|
大于等于
|
a>=b
|
a大于等于b时返回真;否则返回假
|
GE
|
|
==
|
等于
|
a==b
|
a等于b时返回真;否则返回假
|
EQ
|
|
!=
|
不等于
|
a!=b
|
a不等于b时返回真;否则返回假
|
NE
|
参考程序:
#include <stdio.h>
#define min(a,b) (((a)-(b)) >> 31 ? (a) : (b))
int main()
{
int a , b , c;
a = -;
b = ;
c = ;
printf("min = %d",min(min(a,b),c));
}
4. 不能使用"+"法运算,自然想到当初学的计算机组成原理的二进制相加的知识,采用位运算来实现相加:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int x,y; //输入的两个数
int inBit = 0x0000;
int tailBit = 0x0001;
int result = ,Rbit;
int XlastBit,YlastBit;
int inBitREP;
printf("please input two numbers :");
scanf("%d%d",&x,&y);
while(tailBit)
{
XlastBit = x&tailBit;
YlastBit = y&tailBit;
Rbit = XlastBit^YlastBit^inBit;
inBitREP = ;
if( (XlastBit == tailBit && YlastBit == tailBit) || ( XlastBit == tailBit && inBit == tailBit) || (YlastBit == tailBit && inBit == tailBit)) //超过两个1,则进位为1
{
inBitREP = tailBit<<;
}
inBit = inBitREP;
result = result|Rbit;
tailBit = tailBit<<;
}
printf("The result is %d\n",result);
system("pause");
return ;
}
以上便是C语言的几个有趣的问题,希望学习C语言的童鞋们会喜欢,以上代码均在CodeBlocks上运行无误。第一次发帖子,求各位大神轻喷!小弟先谢过了!
C语言的几个有趣问题的更多相关文章
- [转载] 详述三种现代JVM语言--Groovy,Scala和Clojure
转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的 ...
- c语言的发展历程
C语言的发展颇为有趣.它的原型ALGOL 60语言. 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言. 1967年,剑桥大学 ...
- R语言数据重塑cbind+rbind+merge+ melt+cast
R语言中的数据重塑是关于变化的数据分为行和列的方式.大多数R地数据处理的时候是通过将输入的数据作为一个数据帧进行.这是很容易提取一个数据帧的行和列数据,但在某些情况,当我们需要的数据帧的格式是不同的来 ...
- 5分钟了解Python语言的简单介绍(转载)
< 转载于Python数据之道 - 本公众号秉承“让数据更有价值”的理念,主要分享数据相关的内容,包括数据分析,挖掘,可视化,机器学习,深度学习等.> ...
- 探究:编程语言那么多,为什么偏偏是 C 语言成了大学的必修课?
谁叫你不幸生在中国了? ——何祚庥(中国科学院院士) 这是一本给非计算机专业的大学生的C语言的书.“我不是学计算机的,为啥要学C语言?”这个问题每年在中华大地都会被问上几百万次.被问的对象可能是老师, ...
- 编程语言那么多,为什么偏偏是C语言成了大学的必修课?
谁叫你不幸生在中国了?--何祚庥(中国科学院院士) 这是一本给非计算机专业的大学生的C语言的书."我不是学计算机的,为啥要学C语言?"这个问题每年在中华大地都会被问上几百万次. 被 ...
- Iterate Files by Tcltk
Iterate Files by Tcltk eryar@163.com Abstract. Tcl/Tk provide a programming system for developing an ...
- 20145320 《Java程序设计》第七周学习总结
20145320 <Java程序设计>第七周学习总结 教材学习内容总结 13章 时间与日期 时间的度量: 格林威治标准时间(GMT时间),现已不作为标准时间使用. 世界时(UT),秒的单位 ...
- 视频当道的时代,这些珍藏的优质 Python 播客值得推荐
我国互联网的发展道路与欧美不同,在内容的形式上,我们似乎实现了跨越式的发展——早早进入了移动互联网时代,直播和短视频等形式的内容成为了潮流,而文字形式的博客(blog)与声音形式的播客(podcast ...
随机推荐
- Android中的单位及测试相关概念
android中的单位: in 英寸 pt 点距 px 像素 dp(dip) 密度无关的像素单位,自适应device屏幕的比例,通常涉及长宽高时采用 sp 与范围无关的像素单位,通常在设置字体大小时 ...
- JavaScript 关于变量作用域的一道面试题
ShineJaie 原创,转载请注明出处. 昨晚在一个交流群里看到有位网友提了一个他的面试题求助答疑.刚好我也有看到,就对这个问题思考了一下,觉得这道题对理解 JavaScript 作用域还是很有帮助 ...
- 四则运算.html
<DOCTYPE html PUBLTC"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- hibernate学习笔记--可选的配置属性
3.4. 可选的配置属性 有大量属性能用来控制Hibernate在运行期的行为. 它们都是可选的, 并拥有适当的默认值. 警告: 其中一些属性是"系统级(system-level)的&qu ...
- sentinel.conf配置
1.常用的配置 port 26379 # sentinel announce-ip <ip> # sentinel announce-port <port> dir /tmp ...
- 13test07;字符排序,去重,三三输出
#include<iostream> #include<string> using namespace std; void buddle(char*,int);//对输入字符的 ...
- (转)8 reviews about de novo genome assembly
转自:http://dskernel.blogspot.com/2012/04/8-reviews-about-de-novo-genome-assembly.html 8 reviews about ...
- 后缀树系列一:概念以及实现原理( the Ukkonen algorithm)
首先说明一下后缀树系列一共会有三篇文章,本文先介绍基本概念以及如何线性时间内构件后缀树,第二篇文章会详细介绍怎么实现后缀树(包含实现代码),第三篇会着重谈一谈后缀树的应用. 本文分为三个部分, 首先介 ...
- POJ 2039
#include<iostream> #include<stdio.h> #include<string> #define MAXN 20 using namesp ...
- POJ 1496
#include <iostream> #include <string> using namespace std; int fac(int num); int C(int n ...