مثال هایی به زبان سی

آیا موافقید که در این تاپیک نمونه سوال امتحانی زبان سی ?

  • خیر موافق نیستم

    رای: 0 0.0%

  • مجموع رای دهندگان
    4
  • نظرسنجی بسته .

flashMASTER

New Member
//برنامه اي بنويسيد كه مجموع ضرائب 2 تا 13 را كه از 100 كوچکترند محاسبه و چاپ کنند
کد:
#include <stdio.h>
#include <conio.h>
int main ()
{
int sum,sumt=0,k;

for(int i=2 ;i<=13;i++)
	 {
	  sum=0;
	  k=1;
	  while((i*k)<100){
	  sum+=(i*k);
	  k++;
	  }
	 sumt+=sum;
	 printf("\ni=%-3d,  sum = %d ",i,sum);
	 }
 printf("\n\n\nall of sum = %d ",sumt);

getch();
return 0;
}
 

flashMASTER

New Member
پیدا کردن بیشترین تکرار در یک آرایه

پیدا کردن بیشترین تکرار در یک آرایه

کد:
 #include <stdio.h>
 #include <conio.h>
 const int size=100;
 int getmax(int a[],int);
int main()
{
   //  clrscr();
     int a[size]={0};
     int length;
     printf("\nLength = ");
     scanf("%d",&length);
     for (int i=0;i<length;i++)
        {
	printf("a[%d] =",i);
	scanf("%d",&a[i]);
        }
     printf("\nmax repeat = %d",a[getmax(a,length)]);
     getch();
   return 0;

      }

    int getmax(int a[],int len)
    {

     int b[size];
     int c=0;
     for(int i=0; i<len;i++)
	{for(int k=0;k<len;k++)
	   if (a[i]==a[k])
	    c++;
	   b[i]=c;
	   c=0;

        }
     int max=b[0];
     int pos=0;
     for (int i=1;i<len;i++)
       if (b[i]>max)
	{   max=b[i];
           pos=i;

	}
     return pos;

    }
 

flashMASTER

New Member
برنامه تبدیل عدد هگز به دسیمال (عدد هگز به صورت رشته گرفته میشود)

برنامه تبدیل عدد هگز به دسیمال (عدد هگز به صورت رشته گرفته میشود)
کد:
 #include <stdio.h>
 #include <conio.h>
 #include <math.h>
void hex2dec(char str[])
 {
  int i=0,t,sl;
 int d,sum=0;
 int m;
 int p=1;
 while(str[i]!='\0') i++;
 t=--i;
 sl=t;
 i=0;
 while(i<=sl)
 {
 switch(str[i])
 {
     case 'a':
     case 'A': d=10;break;
     case 'b':
     case 'B': d=11;break;
     case 'c':
     case 'C': d=12;break;
     case 'd':
     case 'D': d=13;break;
     case 'e':
     case 'E': d=14;break;
     case 'f':
     case 'F': d=15;break;
     default : d=str[i]-48;
 }
    p=(d*16);

      p=pow(16,t);
      p=d*p;
      sum=sum+p;
      i++;
      t--;

 }
 printf("\nDecimal= %d",sum);
 }


int main()
{
  char s[10];
  int i;
  int n;
  printf("enter Hex value :");
  gets(s);
  hex2dec(s);
  getch();

  return 0;

}
 
آخرین ویرایش:

flashMASTER

New Member
تبدیل دسیمال به باینری
حداکثر 1023
کد:
#include <stdio.h>
#include <conio.h>
int main ()
{
long int bin=0,digit=1,num;
printf("Decimal = ");
scanf("%ld",&num);
while (num)
{
  bin += (num%2) * digit;
  num /= 2;
  digit *= 10;
}
printf("Binary = %ld", bin);
	getch();

      return 0;
}
 

flashMASTER

New Member
این برنامه با دریافت یک رشته و طول آن تشخیص میدهد رشته متقارن است یا خیر (تابع)
کد:
 #include <stdio.h>
 #include <conio.h>
void mstr(char str1[],int len)
 {
 int f=0;
 for (int i=0;i<len/2;i++)
  if(str1[i]!=str1[len-i-1])
     f=1;
 if(f)
  printf("Na Motaqaren");
  else
   printf("Motaqaren");



 }

int main()
{
  int i;
  char str1[10];
  int len;
  printf("string = ");
  gets(str1);
  printf("len = ");
  scanf("%d",&len);
  mstr(str1,len);
  getch();

  return 0;

}
 

flashMASTER

New Member
دو آرایه حداکثر بطول 10 عنصر از نوع صحیح که مرتب می باشند را در نظر بگیرید
برنامه ای بنویسید که آرایه سومی توسط تابعی به نام merge بسازد بطوریکه عناصر آن مرتب شده باشند

راهنمایی: مجاز نیستید دو آرایه را در آرایه سوم ریخته و آنرا مرتب کنید.

کد:
#include <stdio.h>
#include <conio.h>
const int SIZE=10;
int merge(int a[],int b[],int c[]);
int main ()
{
int a[SIZE]={3,4,15,16,19,21,24,28,32,44};
int b[SIZE]={1,5,9,10,20,22,23,26,82,100};
int c[SIZE*2]={0};
int p,last;
last=merge(a,b,c);
printf("\n A = ");
for(p=0;p<SIZE;p++)
 printf("%-3d",a[p]);
 printf("\n B = ");
for(p=0;p<SIZE;p++)
 printf("%-3d",b[p]);
printf("\n C = ");
for(p=0;p<last;p++)
 printf("%-3d",c[p]);

getch();
return 0;
}

int merge(int a[],int b[],int c[])
{

int lastj=0,lasti=0,k=0;

 for(int i=lasti ;i<SIZE;i++)
  for(int j=lastj ;j<SIZE;j++)
    if(a[i]<b[j])
      {
          c[k]=a[i];
          k++;
          lasti++;

          break;
      }
      else
      {
          c[k]=b[j];
          k++;
          lastj++;
      }

 while(lasti<lastj)
 {
  c[k]=a[lasti];
  lasti++;
  k++;
 }
 while(lastj<lasti)
 {
  c[k]=b[lastj];
  lastj++;
  k++;
 }

return k;
}
 

flashMASTER

New Member
نسخه دوم برنامه فوق که اعداد را بصورت رنگی چاپ می کند .



کد:
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
const int SIZE=10;
int merge(int a[],int b[],int c[],int color[]);
int main ()
{
int a[SIZE]={3,6,15,16,19,21,24,28,32,44};
int b[SIZE]={4,5,9,10,20,22,23,26,82,100};
int c[SIZE*2]={0};
int color[SIZE*2]={0};

int p,last;

clrscr();

last=merge(a,b,c,color);


textcolor(4);
cprintf("\n A = ");
textcolor(2);
for(p=0;p<SIZE;p++)
cprintf("%-3d",a[p]);
textcolor(4);
printf("\n");
cprintf(" B = ");
textcolor(15);
for(p=0;p<SIZE;p++)
 cprintf("%-3d",b[p]);

textcolor(4);
printf("\n");
cprintf(" C = ");
textcolor(15);


for(p=0;p<last;p++)
 {
  textcolor(color[p]);
  cprintf("%-3d",c[p]);
 }
getch();
return 0;
}

int merge(int a[],int b[],int c[],int color[])
{

int lastj=0,lasti=0,k=0;

 for(int i=lasti ;i<SIZE;i++)
  for(int j=lastj ;j<SIZE;j++)
    if(a[i]<b[j])
      {
	  c[k]=a[i];
	  color[k]=2;
	  k++;
	  lasti++;

	  break;
      }
      else
      {
	  c[k]=b[j];
	  color[k]=15;
	  k++;
	  lastj++;

      }

 while(lasti<lastj)
 {
  c[k]=a[lasti];
  lasti++;
  color[k]=2;
  k++;
 }
 while(lastj<lasti)
 {
  c[k]=b[lastj];
  lastj++;
  color[k]=15;
  k++;
 }

return k;
}
 

پیوست ها

  • merge_C.GIF
    merge_C.GIF
    2.9 کیلوبایت · بازدیدها: 2

flashMASTER

New Member
مرتب سازی اعداد ورودی لیست n تایی

صورت مساله در فایل ضمیمه میباشد

کد:
#include <stdio.h>
#include <conio.h>
const int MAX=100;
int main ()
{
int a[MAX]={0};
int n,p;
//clrscr();
printf("Enter number : ");
     scanf("%d",&n);
for (int i =1 ;i<=n;i++)
   {
     printf("n%d = ",i);
     scanf("%d",&p);
     a[p-1]=1;
   }
n=1;
printf("\nSort array =" );
for(p =0 ;p<MAX;p++)
   if(a[p])
     {
	  printf("%-3d",p+1);
     }

getch();

return 0;
}
 

پیوست ها

  • nList.JPG
    nList.JPG
    32.4 کیلوبایت · بازدیدها: 4

flashMASTER

New Member
اگر یک لیست از اعداد به ترتیب زیر باشند به طوریکه هر عدد به علاوه مجموع ارقام همان عدد , عدد بعدی را

بسازد برنامه ا یبنویسید که یک عدد n از ورودی بگیرد و nامین عدد در لیست را چاپ کند
1,2,4,8,16,23,28,38,49,62,70,77,....

کد:
#include <stdio.h>
#include <conio.h>
int sum(int);
int main ()
{

int n,p;
int i=1;
//clrscr();
printf("Enter Position : ");
     scanf("%d",&n);
 p=1;

  while(i<n)
    {
     p=p+sum(p);

     i++;

    }
    printf("Number in List : %-3d",p);

getch();

return 0;
}
int sum(int n)
 {
     int s=0;
   while(n)
    {
     s+=n%10;
     n/=10;
    }
    return s;
 }
 

flashMASTER

New Member
اگر یک لیست از اعداد به ترتیب زیر باشند به طوریکه هر عدد به علاوه مجموع ارقام همان عدد , عدد بعدی را

بسازد برنامه ا یبنویسید که یک عدد n از ورودی بگیرد و nامین عدد در لیست را چاپ کند
1,2,4,8,16,23,28,38,49,62,70,77,....

کد:
#include <stdio.h>
#include <conio.h>
int sum(int);
int main ()
{

int n,p;
int i=1;
//clrscr();
printf("Enter Position : ");
     scanf("%d",&n);
 p=1;

  while(i<n)
    {
     p=p+sum(p);

     i++;

    }
    printf("Number in List : %-3d",p);

getch();

return 0;
}
int sum(int n)
 {
     int s=0;
   while(n)
    {
     s+=n%10;
     n/=10;
    }
    return s;
 }
 
برنامه ای بنویسید که یکی از حروف انگلیسی کوچک را به عنوان ورودی بگیرد ، در خروجی آن را تبدیل به حرف بزرگ کرده ؛ نمایش دهد.

کد:
#include <stdio.h>

#include <conio.h>

main();
 
{
 
char x;
 
scanf("%c",&x);
 
print f("%c",x-32);
 
get ch();
 
}
 
برنامه ای بنویسید که یک کارکتر به عنوان ورودی بگیرد و خروجی آن را در وسط صفحه نمایش چاپ کند.

کد:
[LEFT]#include <stdio.h>

#include <conio.h>

main();
 
{
 
char x;

x=get ch();
 
goto xy (40,13);
 
print f("%c,x);
 
get ch();
 
}
 
 
 [/LEFT]
 
برنامه ای بنویسید که یک عدد را به عنوان ورودی بگیرد اگر عدد زوج باشد ضمن پیام مناسبی در خروجی توان 2 ۀن را نمایش دهد و اگر فرد باشد ضمن صدور پیام مناسب جذر آن را در خروجی نمایش دهد.

کد:
[LEFT] 
#include <stdio.h>

#include <conio.h>

#include <math.h>

main();
 
{
 
int x;
 
scan f("%d",&x);
 
if (x%2==0)
 
{
 
print f("The no . is even");
 
print f ("%d",x*x);
 
}
 
else 
 
{
 
print f ("The no . is oDD");
 
print f ("%f",sqrt(x));
 
}
 
get ch();
 
}
 

 [/LEFT]
 
برنامه ای بنویسید که ریشه های یک معادله درجه دوم را محاسبه و در خروجی نمایش دهد.

کد:
[LEFT]#include <stdio.h>
#include <conio.h>
#include <math.h>
main();
{
float a,b,c,d,x1,x2;
clrscr();
print f(:Plz Enter the value of a,b,c:");
scan f("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if (d>0)
{
x1=(-b+sqr(d))/(2*a);
x1=(-b-sqr(d))/(2*a);
print f("x1=%f\n",x1);
print f("x2=%f\n",x2);
}
else if (d=0)
{
x1=-b/(2*a);
print f("x1=x2=%f",x1);
}
else 
print ("no Anser");
}
get ch();
}
 
 [/LEFT]
 
برنامه ای بنویسید که دو عدد و یکی از عملگرهای 4 عمل اصلی را به عنوان ورودی بگیرد سپس بر اساس نوع عملگر ورودی، نتیجه را در خرجی نمایش دهد.

کد:
[LEFT]#include <stdio.h>
#include <conio.h>
#include <math.h>
main();
{
int a,b;
char ch;
scan f("%d%d,&a,&b);
ch=get ch();
switch(ch);
case "+":print f("%d,a+b);
break;
case"-":print f("%d",a-b);
break;
case"*":print f("%d",a*b);
break;
case"/":print f("%f",a/b);
break;
defauht:printf("The operation not valid");
}
get ch();
}
 [/LEFT]
 

flaov

Well-Known Member
ممنون از شما عالیه ادامه بدید
من که 3 روز دیگه امتحان دارم واقعان استفاده کردم

فقط یه چیز این مسایل توی کتاب جعفر نژاد قمی هستن یا از جای دیگست؟
متشکرم
 
خواهش می کنم
اینا سر کلاس با ما کار می شده
ی سری منابع هم استاد به ما داده که یکیش همین نوشته مهندس جعفر نژاد قمی هستش
 

flaov

Well-Known Member
یکم دیر شده امروز امتحان داشتم ولی فک کنم ترم بعد بازم لازمم میشه بزارید :cry::sad:
ممنون
 
خود منم باید ترم دیگه بگیرمش چون استاده اونقدر سوالاتش سخت بود تو جزوه پیداش نمی کردی :cry::cry:
:mad:
اما می ذارم
 

جدیدترین ارسال ها

بالا