Computer >> Máy Tính >  >> Lập trình >> lập trình C

C / C ++ Các chương trình khó hiểu

Dưới đây là 10 chương trình phức tạp sẽ kiểm tra kiến ​​thức cơ bản về lập trình của bạn.

1. Chương trình in “” trong C ++

Trong ngôn ngữ lập trình C ++, chúng tôi sử dụng dấu ngoặc kép để biểu thị phần đầu và phần cuối của văn bản sẽ được in. Vì vậy, việc in dấu ngoặc kép “cần một trình tự thoát đặc biệt. Vì vậy, chúng tôi sẽ sử dụng \ ”để in dấu ngoặc kép trong c ++.

Ví dụ

#include<iostream>
using namespace std;
int main() {
   cout<<"\"Tutorials Point \"";
   return 0;
}

Đầu ra

"Tutorials Point "

2. Chương trình in các số từ 1 đến 10 bằng cách sử dụng các vòng lặp hoặc lệnh goto

Trong lập trình lặp đi lặp lại nhiều lần trên cùng một khối mã, có một số phương pháp. Họ -

  • Sử dụng các vòng lặp
  • Sử dụng câu lệnh goto
  • Sử dụng các hàm đệ quy

Vì bạn không thể sử dụng các vòng lặp hoặc câu lệnh goto, phương pháp hợp lệ duy nhất là sử dụng các hàm đệ quy. Hãy xem cách chúng ta có thể sử dụng lệnh gọi đệ quy để in các số từ 1 đến 10.

Ví dụ

#include <stdio.h>
void printNumber(int count){
   printf("%d\n", count );
   count+=1;
   if(count<=10)
      printNumber(count);
}
int main(){
   printNumber(1);
   return 0;
}

Đầu ra

1
2
3
4
5
6
7
8
9
10

3. Để kiểm tra sự bằng nhau của hai số mà không cần sử dụng toán tử số học hoặc so sánh

Để kiểm tra sự bằng nhau của hai số, chúng ta có thể sử dụng toán tử XOR bitwise (^). Nếu hai số bằng nhau thì XOR theo từng bit của những số này là 0. Bây giờ, hãy triển khai khái niệm này trong một chương trình.

Ví dụ

#include<iostream>
using namespace std;
int main(){
   int a = 132;
   int b = 132;
   if ( (a ^ b) )
      cout<<"a is not equal to b";
   else
      cout<<"a is else to b";
      return 0;
}

Đầu ra

a is equal to b

4. In “Xin chào” mà không sử dụng dấu; trong c / c ++

Trong ngôn ngữ lập trình c / c ++, có các phương thức để in nội dung nào đó mà không cần sử dụng dấu chấm phẩy. Chúng ta có thể làm điều này bằng cách sử dụng kiểu trả về của phương thức xuất, printf. Phương thức printf trong c ++ trả về số ký tự được in ra màn hình xuất. Chúng ta có thể sử dụng và câu lệnh điều kiện có thể thực thi mà không cần dấu chấm phẩy.

Ví dụ

#include <stdio.h>
int main(){
   if(printf("Hello "))
   return 0;
}

Đầu ra

Hello

5. Chương trình tìm giá trị lớn nhất và nhỏ nhất của hai số mà không cần sử dụng toán tử so sánh.

Để tìm số lớn nhất và số nhỏ nhất trong hai số được xác định mà không sử dụng toán tử so sánh, chúng ta sẽ sử dụng phương pháp abs và chuyển hiệu của hai số cho nó. Nó sẽ trả về hiệu số dương giữa các số và chúng ta sẽ trừ đi sự khác biệt tuyệt đối này để tìm giá trị lớn nhất và tối thiểu của hai số đã cho.

Ví dụ

#include<iostream>
using namespace std;
int main (){
   int x = 15, y = 20;
   cout<<"The numbers are x = "<<x<<"and y = "<<y<<endl;
   cout<<"The max of the numbers is "<<((x + y) + abs(x - y)) / 2<<endl;
   cout<<"The min of the numbers is "<<((x + y) - abs(x - y)) / 2<<endl;
   return 0;
}

Đầu ra

The numbers are x = 15and y = 20
The max of the numbers is 20
The min of the numbers is 15

6. In mã nguồn của chương trình và đầu ra

Để in mã nguồn của chương trình làm đầu ra của cùng một chương trình là một câu hỏi hơi phức tạp và bạn cần hiểu khá rõ về ngôn ngữ lập trình để thực hiện.

Trong chương trình này, chúng ta sẽ sử dụng các khái niệm về xử lý tệp và mở cùng một tệp mà chúng ta đang sử dụng để viết mã và sau đó in nội dung của tệp.

Ví dụ

#include <stdio.h>
int main(void){
   FILE *program;
   char ch;
   program = fopen(__FILE__, "r");
   do{
      ch=fgetc(program);
      printf("%c", ch);
   }
   while(ch!=EOF);
      fclose(program);
   return 0;
}

7. Chương trình tìm tổng của hai số mà không cần sử dụng toán tử +

Tổng của hai số có thể được tìm thấy mà không cần sử dụng toán tử + bằng cách sử dụng toán tử - nhiều lần trong mã. Chương trình dưới đây cho biết cách thực hiện.

Ví dụ

#include<iostream>
using namespace std;
int main(){
   int x = 5;
   int y = 5;
   int sum = x - (-y);
   cout<<"The numbers are x = "<<x<<" y = "<<y<<endl;
   cout<<"Their sum = "<<sum;
   return 0;
}

Đầu ra

The numbers are x = 5 y = 5
Their sum = 10

8. Để kiểm tra xem số đã cho có phải là số chẵn hay không mà không sử dụng toán tử số học hoặc quan hệ.

Để kiểm tra xem số đã cho có phải là số chẵn hay không, chúng ta có thể sử dụng các toán tử bitwise. Toán tử &bitwise cùng với 0x01 sẽ kiểm tra bit ở vị trí thứ 0 trong số. Nếu bit ở vị trí thứ 0 là 1 thì số đó là số lẻ, ngược lại là số chẵn.

Ví dụ

#include<iostream>
using namespace std;
int main(){
   int a = 154;
   if(a & 0x01) {
      cout<<a<<" is an odd number";
   } else{
      cout<<a<<" is an even number";
   }
   printf("\n");
   return 0;
}

Đầu ra

154 is an even number

9. Chương trình chia một số cho 4 mà không sử dụng toán tử /.

Để chia một số cho 4 mà không sử dụng toán tử chia, chúng ta có thể sử dụng toán tử shift bên phải>> dịch chuyển bit cuối cùng.

Ví dụ

#include<iostream>
using namespace std;
int main(){
   int n = 128;
   cout<<n<<"divided by 4 = ";
   n = n >> 2;
   cout<< n;
   return 0;
}

Đầu ra

128 divided by 4 = 32

10.C ++ chương trình tính toán đệ quy tổng các chữ số của một số cho đến khi nó trở thành một số có một chữ số.

Tính tổng đệ quy bằng cách cộng tất cả các chữ số của số và sau đó xem nó có phải là một chữ số hay không, sau đó dừng tính toán lại tổng cho đến khi tổng trở thành một chữ số.

Ví dụ

#include <iostream>
using namespace std;
int main() {
   int a = 534;
   int sum;
   if(a)
      sum = a % 9 == 0 ? 9 : a % 9 ;
   else
      sum = 0;
   cout<<"The final sum is "<<sum;
   return 0;
}

Đầu ra

The final sum is 3