在我们的日常生活中,我们可能会遇到各种棘手的程序。可能在技术面试,编码测试中,或在C / C++教室中。
这是此类程序的列表:
- 在双引号(“”)中打印文本。
这似乎很容易,但是初学者在打印双引号内的文本时可能会感到困惑。// CPP program to print double quotes #include
int main() { std::cout << "\"geeksforgeeks\""; return 0; } 输出:
"geeksforgeeks"
- 要检查两个数字是不使用算术运算运算符或运算符相等。
最简单的解决方案是使用按位XOR运算符(^)。我们知道,对于两个相等的数字,XOR运算符将返回0。我们将使用此技巧来解决此问题。// C program to check if two numbers are equal // without using arithmetic operators or // comparison operators #include
int main() { int x = 10; int y = 10; if ( !(x ^ y) ) printf(" x is equal to y "); else printf(" x is not equal to y "); return 0; } 输出:
x is equal to y
- 不使用分号将所有自然数打印到N。
我们使用递归调用main函数的想法。// CPP program to print all natural numbers upto // N without using semi-colon #include
using namespace std; int N = 10; int main() { static int x = 1; if (cout << x << " " && x++ < N && main()) { } return 0; } 输出:
1 2 3 4 5 6 7 8 9 10
- 交换两个变量的值,而无需使用任何其他变量。
// C++ program to check if two numbers are equal #include
int main() { int x = 10; int y = 70; x = x + y; y = x - y; x = x - y; cout << "X : " << x << "\n"; cout << "Y : " << y << "\n"; return 0; } 输出:
X : 70 Y : 10
- 程序无需使用任何循环或条件即可查找两个数字的最大值和最小值。
最简单的把戏是-// CPP program to find maximum and minimum of // two numbers without using loop and any // condition. #include
int main () { int a = 15, b = 20; printf("max = %d\n", ((a + b) + abs(a - b)) / 2); printf("min = %d", ((a + b) - abs(a - b)) / 2); return 0; } 输出:
max = 20 min = 15
- 使用C语言中的一个Compliment(〜)运算符打印无符号int的最大值。
这是一个使用补余运算符查找无符号int最大值的技巧:// C program to print maximum value of // unsigned int. #include
int main() { unsigned int max; max = 0; max = ~max; printf("Max value : %u ", max); return 0; } - 查找两个整数之和而不使用’+’运算符。
这是一个非常简单的数学技巧。
我们知道a + b = –(-ab)。因此,这将对我们有用。// CPP program to print sum of two integers // withtout + #include
using namespace std; int main() { int a = 5; int b = 5; int sum = -( -a-b ); cout << sum; return 0; } 输出:
10
- 程序验证if块中的条件。
// CPP program to verifies the condition inside if block // It just verifies the condition inside if block, // i.e., cout << "geeks" which returns a non-zero value, // !(non-zero value) is false, hence it executes else // Hence technically it only executes else block #include
using namespace std; int main() { if (!(cout << "geeks")) cout <<" geeks "; else cout << "forgeeks "; return 0; } 输出:
geeksforgeeks
- 程序不使用’/’运算符将整数除以4。
将整数除以4的最有效方法之一是使用右移运算符(“ >>”)。// CPP program to divide a number by 4 // without using '/' #include
using namespace std; int main() { int n = 4; n = n >> 2; cout << n; return 0; } 输出:
1
- 检查计算机字节序的程序。
// C program to find if machine is little // endian or big endian. #include
int main() { unsigned int n = 1; char *c = (char*)&n; if (*c) printf("LITTLE ENDIAN"); else printf("BIG ENDIAN"); return 0; }
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。