תרגילים ופתרונות בשפת C

עודכן לאחרונה: 7 יוני, 2022

יש לכם שאלות? נשמח לדבר איתכם ולענות על הכל

תרגילים ופתרונות בשפת C

מעוניין ללמוד בהרחבה על כל הנושאים המצוינים בתרגילים? הגעת למקום הנכון!
קורס C של Real Time College, נותן לכם את המענה המלא על שפה בסיסית אך חשובה זו, כדי להשתלב במהרה בתעשיית ההייטק.
הקורס מועבר בצורה של תרגול מעשי, יחס אישי והכנה לשוק העבודה.

שפת C

שפת הפיתוח C היא וותיקה ונמצאת בשימוש נרחב מאוד בתעשיית ההייטק במגוון רחב של תחומים.
אתם יכולים ללמוד עוד על לימוד שפת C בקורס המקיף שלנו.

שאלה 1 – בנושא לולאות :

כתוב פונקציה שמחזירה את עצרת של מספר נתון. החתימה של הפונקציה תהיה כזו:

int factorial (int num);

שאלה 2 – בנושא מערכים:

כתוב פונקציה להפיכת הערכים בתוך המערך.
החתימה של הפונקציה תהיה כזו:

void reverse(int Array[ARRAY_SIZE]);

ARRAY_SIZE הינו קבוע שמוגדר להיות 10

שאלה 3 – בנושא מחרוזות:

מחרוזת תווים נקראת פלינדרום (Palindrome) אם אנו מקבלים אותה תוצאה בקריאה מימין לשמאל ומשמאל לימין.
הגדרה משוכללת של פלינדרום: מדלגים על כל סימני הקריאה והרווחים.
כתוב קוד שבודק אם המחרוזת היא פלינדרום ע"פ ההגדרה המשוכללת. לדוגמה המחרוזת הבאה הינה פולינדרום בהגדרה המשוכללת:
Madam! I’m Adam

שאלה 4 – בנושא Bitwise:

כתוב קוד שמעלה טווח של ביטים למעלה מבלי לשנות את שאר הביטים במשתנה.
לדוגמה: יש להעלות את הביטים 1-3 .

שאלה 5 – מצביעים גנריים:

כתוב פונקציה שמחליפה בין שני משתנים מאותו הסוג.
הפונקציה מקבלת מצביע גנריי למשתנה הראשון, מצביע גנריי למשתנה השני, ומה הכמות של הביטים שצריך להחליף.
החתימה של הפונקציה תהיה כזו:

void swap_any(void * p_var1,void * p_var2,size_t size);

 

תשובה 1

תשובה לתרגיל מספר 1 בנושא לולאות – שפת C תרגילים ופתרונות





# include < stdio.h >



//declare a function that find the factorial of the number

int factorial (int num);



//============================

int main()

{

    	int Num1, tmp;



    	printf("ENTER the Nuber its factorial you want : ");

    	scanf("%d",&Num1);

    	tmp=Num1;

    	printf(" **************************************** n ");

    	printf(" The factorial of %d is %d n",tmp,factorial(Num1));





	return 0;



}

//==========================

int factorial(int num){

	int  retfactorial=1;

	while (num>0)

    	{

        	retfactorial *= num;

        	num = num - 1;

    	}

    	return retfactorial;



}



חזרה למעלה

תשובה 2

תשובה לתרגיל מספר 2 בנושא מערכים – שפת C תרגילים עם פתרונות מלאים





#include < stdio.h >



#define ARRAY_SIZE 10



void reverse(int Array[ARRAY_SIZE]);



int main()

{

	int i, Array[ARRAY_SIZE];



	printf(" Enter elements into the Array :n ");



	for (i=0; i< ARRAY_SIZE ; i++)



	{

		printf("Enter %2d elements : ",i);

		scanf("%d",&Array[i]);



	}

	printf("n************************nn");



	reverse(Array);

	printf("************************nn");

	printf(" here is the new Array : n ");





	for (i=0; i< ARRAY_SIZE ; i++)

	{

		printf("%4d",Array[i]);

	}





	return 0;

}

//==========================

void reverse(int Array[ARRAY_SIZE]){

	int temp,i;

	for ( i=0; i < (ARRAY_SIZE/2) ; i++)

	{

		temp = Array[ARRAY_SIZE-1-i];

		Array[ARRAY_SIZE-1-i] = Array[i];

		Array[i] =temp;

	}



}

חזרה למעלה

תשובה 3

תשובה לתרגיל מספר 3 בנושא מחרוזות – שפת C תרגילים עם פתרונות מלאים





#include < stdio.h >

#include < ctype.h >



int main()

{



	char palindr2[] = "madam,I'm Adam";

	int i,j,len;



	len = sizeof(palindr2) - 1;

	for(i = 0, j = len - 1;i < len, j >= 0; i++,j--)

	{

		while(! isalpha(palindr2[i])) i++;

		while(! isalpha(palindr2[j])) j--;

		if((tolower(palindr2[i]) != tolower(palindr2[j])))

		{

			printf("%s - It's not a palindromen",palindr2);

			return 0;

		}

	}

	printf("%s - It's a palindromen",palindr2);

	return 0;

}

חזרה למעלה

תשובה 4

תשובה לתרגיל מספר 4 בנושא Bitwise – תרגילים ופתרונות בשפת C



#include < stdio.h >



void bitup(int *num,int bit);

void bits_up(int *num,int frombit,int tobit);



int main(){

    int num=1;

    bits_up(&num,1,2);

    printf("%dn",num);

}

//=================

//help function

void bitup(int * num,int bit){

    (*num) |= (1<< bit);

}

//===============

void bits_up(int *num,int frombit,int tobit){

    int i;

    for(i=frombit;i< =tobit;i++)

        bitup(num,i);

}

חזרה למעלה

תשובה 5

תשובה לתרגיל מספר 5 בנושא מצביעים גנריים – שפת C תרגילים ופתרונות





#include < stdio.h >

#include < stdlib.h >



void swap_any(void * p_var1,void * p_var2,size_t size);



int main(int argc,char ** argv){



    int a=3,b=4;

    printf("Before Swap: a is %d, b is %dn",a,b);

    swap_any(&a,&b,sizeof(a));

    printf("After Swap: a is %d, b is %dn",a,b);

    return EXIT_SUCCESS;

}

//------------

void swap_any(void * p_var1,void * p_var2,size_t size){



    void * temp=malloc(size);

    memcpy(temp, p_var1, size);

    memcpy(p_var1, p_var2, size);

    memcpy(p_var2,temp, size);



}



חזרה למעלה

עמוד זה נותן לכם תרגילים ופתרונות בשפת C.
נשמח לשמוע אם עמוד שפת C תרגילים ופתרונות היה מספיק טוב בשבילכם ואם יש לכם עוד תרגילים שאתם מתקשים בהם. צרו איתנו קשר או תשלחו לנו שאלה בפייסבוק ונשמח לעמוד לשירותכם!


תחומי לימוד הכי מבוקשים בהייטק בשנת 2024

יש לכם שאלות? נשמח לדבר איתכם ולענות על הכל
© כל הזכויות שמורות Real Time Group