欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
113道C語(yǔ)言題目

1.輸入兩個(gè)正整數,m和n,求其最大公約數和最小公倍數。
#include<stdio.h>
void main()
{
 int hcf(int,int);      /*函數聲明*/
 int lcd(int,int,int);  /*函數聲明*/
 int u,v,h,l;
 printf("Please input two numbers:\n");
 scanf("%d,%d",&u,&v);
 h=hcf(u,v);
 printf("H.C.F=%d\n",h);
 l=lcd(u,v,h);
 printf("L.C.D=%d\n",l);
}
int hcf(int u,int v)
{
 int t,r;
 if(v>u)
 {t=u;u=v;v=t;}
 while((r=u%v)!=0)
 {u=v;v=r;}
 return(v);
}
int lcd(int u,int v,int h)
{
 return(u*v/h);
}

2.輸入一行字符,分別統計出其中字母、空格、數字和其他字符的個(gè)數。
#include<stdio.h>
int letter,digit,space,others;
void main()
{
 void count(char[]);
 char text[80];
 printf("Please input string:\n");
 gets(text);
 printf("string:\n");
 puts(text);
 letter=0;
 digit=0;
 space=0;
 others=0;
 count(text);
 printf("letter:%d,digit:%d,space:%d,others:%d\n",letter,digit,space,others);
}
void count(char str[])
{
 int i;
 for(i=0;str[i]!='\0';i++)
  if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
   letter++;
  else if(str[i]>='0'&&str[i]<='9')
   digit++;
  else if(str[i]==32)
   space++;
  else
   others++;
}

3.輸入一個(gè)正整數求出它是幾位數;輸出原數和位數。
#include<stdio.h>
int digit;
void main()
{
 void count(char[]);
 char text[80];
 printf("Please input numbers:\n");
 gets(text);
 printf("Numbers:\n");
 puts(text);
 digit=0;
 count(text);
 printf("digit:%d\n",digit);
}
void count(char str[])
{
 int i;
 for(i=0;str[i]!='\0';i++)
   if(str[i]>='0'&&str[i]<='9')
   digit++;
}

4.輸入一個(gè)正整數,輸出原數并逆序打印出各位數字。
#include<stdio.h>
void invertLongInt(long);
void main()
{
 unsigned long iNumber;
 printf("Please input a number:\n");
 scanf("%ld",&iNumber);
 printf("The input number is:%ld\n",iNumber);
 printf("The inverse number is:");
 invertLongInt(iNumber);
}
void invertLongInt(long x)
{
 if(x>=0&&x<=9)
  printf("%d\n",x);
 else
 {
  printf("%d",x%10);
  invertLongInt(x/10);
 }
}

5.從鍵盤(pán)上輸入若干學(xué)生的一門(mén)課成績(jì),統計并輸出最高成績(jì)和最低成績(jì)及相應的序號,當輸入負數時(shí)結束輸入。

6.從鍵盤(pán)上輸入若干學(xué)生的一門(mén)課成績(jì),計算出平均分,當輸入負數時(shí)結束輸入。將結果輸出。

7.求1!+2!+3!+……+20!,將結果輸出。
#include<stdio.h>
void main()
{
 float s=0,t=1;
 int n;
 for(n=1;n<=20;n++)
 {
  t=t*n;
  s=s+t;
 }
 printf("1!+2!+3!+……+20!=%e\n",s);
}

8.打印以下圖案:       *
                      ***
                     *****
                    *******
#include<stdio.h>
void main()
{
 int i,j;
 printf("The picture is:\n");
 static char picture[4][7]={{' ',' ',' ','*'},
 {' ',' ','*','*','*'},{' ',' *','*','*','*','*'},{'*','*','*','*','*','*','*'}};
 for(i=0;i<=3;i++)
 {
  for(j=0;j<=6;j++)
     printf("%c",picture[i][j]);
  printf("\n");
 }
}

9.打印以下圖案:   
*
**
***
****
#include<stdio.h>
void main()
{
 int i,j;
 printf("The picture is:\n");
    char picture[4][4]={{'*'},
 {'*','*'},{' *','*','*'},{'*','*','*','*'}};
 for(i=0;i<=3;i++)
 {
  for(j=0;j<=3;j++)
     printf("%c",picture[i][j]);
  printf("\n");
 }
}

10.求下列試子的值:1-1/2+1/3-1/4+……+1/99-1/100,將結果輸出。
#include<stdio.h>
void main()
{
 float sum=1.0,t,s=1;
 int i;
 for(i=1;i<=100;i++)
 {
  t=s/i;
  sum=sum+t;
  s=-s;
 }
 printf("1-1/2+1/3-1/4+……+1/99-1/100=%5.4f\n",sum);
}

11.打印出100~999之間的所有水仙花數。
#include<stdio.h>
void main()
{
 int i,j,k,n;
 printf("100~999之間的所有水仙花數 are:\n");
 for(n=100;n<1000;n++)
 {
  i=n/100;
  j=n/10-i*10;
  k=n%10;
  if(n==i*i*i+j*j*j+k*k*k)
   printf("%d  ",n);
 }
 printf("\n");
}

12.求Sn=a+aa+aaa+…+aa…a之值,n,a由鍵盤(pán)輸入。
#include<stdio.h>
void main()
{
 int a,n,i=1,sn=0,tn=0;
 printf("a,n=:");
 scanf("%d,%d",&a,&n);
 while(i<=n)
 {
  tn=tn+a;
  sn=sn+tn;
  a=a*10;
  ++i;
 }
 printf("a+aa+aaa+…+aa…a=%d\n",sn);
}

13.打印以下圖案:
  *******
   *******
    *******
     *******
 #include<stdio.h>
void main()
{
 char a[7]={'*','*','*','*','*','*','*'};
 int i,j,k;
 char space=' ';
 printf("The picture is:");
 for(i=0;i<4;i++)
 {
  printf("\n");
  printf("    ");
  for(j=1;j<=i;j++)
   printf("%c",space);
  for(k=0;k<7;k++)
   printf("%c",a[k]);
 }
 printf("\n");
}

14.打印以下圖案:
      1
     121
    12321
   1234321

15. 打印以下圖案:
   1234321
    12321
     121
      1

16.編寫(xiě)一個(gè)統計學(xué)生成績(jì)程序,完成以下功能:輸入4個(gè)學(xué)生的2門(mén)課成績(jì);求出全班的總平均分,將結果輸出。
#include<stdio.h>
#define N 4
struct student
{
 char num[3];
 char name[4];
 float score[2];
 float avr;
}
stu[N];

void main()
{
 int i,j;
 float sum,average;
 for(i=0;i<N;i++)            /*輸入數據*/
 {
  printf("input scores of student%d:\n",i+1);
  printf("name:");
  scanf("%s",stu[i].name);
  for(j=0;j<2;j++)
  {
   printf("score %d:",j+1);
   scanf("%f",&stu[i].score[j]);
  }
 }

 average=0;              /*計算*/
 for(i=0;i<N;i++)
 {
  sum=0;
  for(j=0;j<2;j++)
   sum+=stu[i].score[j];
  stu[i].avr=sum/2;
  average+=stu[i].avr;
 }
 average/=N;
 printf("   Name    score1   score2   average\n");
 for(i=0;i<N;i++)
 {
  printf("%5s%10s",stu[i].num,stu[i].name);
  for(j=0;j<2;j++)
   printf("%9.2f",stu[i].score[j]);
  printf("   %8.2f\n",stu[i].avr);
 }
 printf("average=%5.2f\n",average);
}

17. 打印以下圖案:
    *****
     *****
      *****
       *****
        *****
#include<stdio.h>
void main()
{
 char a[5]={'*','*','*','*','*'};
 int i,j,k;
 char space=' ';
 printf("The picture is:");
 for(i=0;i<5;i++)
 {
  printf("\n");
  printf("    ");
  for(j=1;j<=i;j++)
   printf("%c",space);
  for(k=0;k<5;k++)
   printf("%c",a[k]);
 }
 printf("\n");
}

18.給出年、月、日,計算該日是該年的第幾天。
#include<stdio.h>
void main()
{
 int sum_day(int,int);
 int leap(int year);
 int year,month,day,days;
 printf("input date(year,month,day):");
 scanf("%d,%d,%d",&year,&month,&day);
 printf("%d/%d/%d",year,month,day);
 days=sum_day(month,day);
 if(leap(year)&&month>=3)
  days=days+1;
 printf("is the %dth day in this year.\n",days);
}
int sum_day(int month,int day)
{
 int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 int i;
 for(i=1;i<month;i++)
  day+=day_tab[i];
 return(day);
}
int leap(int year)
{
 int leap;
 leap=year%4==0&&year%100!=0||year%400==0;
 return(leap);
}

19.求一個(gè)3*3的整型矩陣對角線(xiàn)元素之和。將原矩陣和求出的和輸出。
#include<stdio.h>
void main()
{
float a[3][3],sum=0;
int i,j;
printf("請輸入元素:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("對角線(xiàn)之和是:%6.2f\n",sum);
for(i=0;i<=3;i++)
{
 for(j=0;j<=3;j++)
  printf("%5.2f",a[i][j]);
 printf("\n");
}
}

20.求一個(gè)4*3的矩陣各行元素的平均值;將原矩陣和求出的平均值全部輸出。
#include<stdio.h>
void main() 

 int a[4][3],s[4],i,j,k; 
 for(i=0;i<4;i++) 
  for(j=0;j<3;j++)
   scanf("%d",*(a+i)+j);
  
  for(i=0;i<4;i++)
  {
   k=0;
   for(j=0;j<3;j++)
    k+=a[i][j];
   printf("第%d行的平均值是%d",i+1,k);
   printf("\n");
  }
}

21.求一個(gè)3*4的矩陣各列元素的平均值;將原矩陣和求出的平均值全部輸出。
#include<stdio.h>
void main() 

 int a[4][3],s[4],i,j,k; 
 for(i=0;i<4;i++) 
  for(j=0;j<3;j++)
   scanf("%d",*(a+i)+j);
  
  for(i=0;i<4;i++)
  {
   k=0;
   for(j=0;j<3;j++)
    k+=a[i][j];
   printf("第%d行的平均值是%d",i+1,k);
   printf("\n");
  }
}

22.求一個(gè)3*5的矩陣各列元素的最大值,將原矩陣和求出的最大值全部輸出。
#include<stdio.h>
void main() 

 int a[3][5],s[3],i,j,k; 
 for(i=0;i<3;i++) 
 for(j=0;j<5;j++)
  scanf("%d",*(a+i)+j); 
 
 for(i=0;i<3;i++) 
 { *(s+i)= *(*(a+j)); 
 for(j=1;j<5;j++) 
 if(*(s+i) < *(*(a+i)+j)) 
 *(s+i)= *(*(a+i)+j); 
 } 
 
 for(i=0;i<3;i++) 
 {
  printf("Line=%d Max=%d",j,s[j] ); 
 printf("\n"); 
 } 
}

23.求一個(gè)4*3的矩陣各行元素的最大值,將原矩陣和求出的最大值全部輸出。
#include<stdio.h>
void main() 

 int a[4][3],s[4],i,j,k; 
 for(i=0;i<4;i++) 
 for(j=0;j<3;j++)
  scanf("%d",*(a+i)+j); 
 
 for(i=0;i<4;i++) 
 { *(s+i)= *(*(a+i)); 
 for(j=1;j<3;j++) 
 if(*(s+i) < *(*(a+i)+j)) 
 *(s+i)= *(*(a+i)+j); 
 } 
 
 for(i=0;i<4;i++) 
 {
  printf("Row=%d Max=%d",i,s[i] ); 
 printf("\n"); 
 } 
}

24.求一個(gè)M*N的矩陣中元素的最大值,將原矩陣和求出的最大值全部輸出。
#include<stdio.h>  
#define N 10
#define M 10
void main() 

 int a

­[N],i,j,k

­,max,m,n; 
    scanf("%d %d",&m,&n);
    for(i=0;i<m;i++) 
  for(j=0;j<n;j++)
   scanf("%d",*(a+i)+j);
  for(i=0;i<m;i++) 
  {
   for(j=0;j<n-1;j++)
   {
    if(a[i][j]<=a[i][j+1])
     max=a[i][j+1];
    else
     max=a[i][j];
   }
   k[i]=max;
  }
  for(i=0;i<m-1;i++)
  {
   if(k[i]<=k[i+1])
    max=k[i+1];
   else
    max=k[i];
  }
  printf("%d",max);
}

25.判斷一個(gè)N*N的矩陣是否為對稱(chēng)矩陣,將原矩陣輸出,判斷結果輸出。
#include<stdio.h>  
#define N 10
void main() 

 int a[N][N],i,j,k,n;
    scanf("%d",&n);
    for(i=0;i<n;i++) 
  for(j=0;j<n;j++)
   scanf("%d",&a[i][j]);
  for(i=0;i<n;i++) 
  {
   for(j=i+1;j<n;j++)
   {
    if(a[i][j]==a[j][i])
     k=1;
    else
     k=0;
   }
  }
  if(k=0)
   printf("bushi");
  else
   printf("shi\n");
  for(i=0;i<n;i++) 
   for(j=0;j<n;j++)
    printf("%d",a[i][j]);
}

26.有一篇文章,有三行文字,每行有80個(gè)字符。要求統計出其中英文大寫(xiě)字母、消協(xié)字母、數字、空格以及其他字符的個(gè)數。
#include<stdio.h>
void main()
{
 int i,j,big=0,sma=0,num=0,spa=0,oth=0;
 char text[3][80];
 for(i=0;i<3;i++)
 {
  printf("請輸入行%d:\n",i+1);
  gets(text[i]);
  for(j=0;j<80&&text[i][j]!='\0';j++)
  {
   if(text[i][j]>='A'&&text[i][j]<='Z')
    big++;
   else if(text[i][j]>='a'&&text[i][j]<='z')
    sma++;
   else if(text[i][j]>='0'&&text[i][j]<='9')
    num++;
   else if(text[i][j]==' ')
    spa++;
   else
    oth++;
  }
 }
 printf("大寫(xiě)字母:%d\n",big);
 printf("小寫(xiě)字母:%d\n",sma);
 printf("數字:%d\n",num);
 printf("空格:%d\n",spa);
 printf("其它:%d\n",oth);
}

27.將20個(gè)整數放到一維數組中,輸出該數組的最大值和最小值。
#include<stdio.h>
void main()
{
 int i,j,min,max,a[21];
 printf("請輸入數據:\n");
 for(i=1;i<=20;i++)
 {
  printf("a[%d]=",i);
  scanf("%d",&a[i]);
 }
 for(i=1;i<=19;i++)
 {
  min=i;
  for(j=2;j<=19;j++)
   if(a[min]>a[j]);
   a[min]=a[j];
 }
 for(i=1;i<=19;i++)
 {
  max=i;
  for(j=2;j<=19;j++)
   if(a[max]<a[j]);
   a[max]=a[j];
 }
 printf("最大數為:%d\n",a[max]);
 printf("最小數為:%d\n",a[min]);
}

28.將15個(gè)整數放到一維數組中,輸出該數組中的最大值它的下標,然后將它和數組中的最前面的元素對換。
#include<stdio.h>
void main()
{
 int i,j,min,max,a[16],m,n;
 printf("請輸入數據:\n");
 for(i=1;i<=15;i++)
 {
  printf("a[%d]=",i);
  scanf("%d",&a[i]);
 }
 for(i=1;i<=14;i++)
 {
  max=i;
  for(j=2;j<=14;j++)
   if(a[max]<a[j]);
   a[max]=a[j];
            m=I,n=j
 }
 printf("最大數下標為:%d,%d\n",m,n);
}

29.將字符數組str1種下標為偶數的元素賦給另一字符數組str2,并輸出str1和str2。
#include<stdio.h>  
#include<string.h>
#define N 10
void main() 

 int i,n;
 char str1[N],str2[N];
     gets(str1);
  for(n=0;n<N;n++)
  {
  i=2*n;
  str2[n]=str1[i];
  }
     puts(str1);
  puts(str2);
}

30.編寫(xiě)一個(gè)程序,將兩個(gè)字符串連接起來(lái),不要使用strcat函數。
#include<stdio.h>
void main()
{
 char str1[20],str2[20];
 int i=0,j=0;
 printf("請輸入字符串1:\n");
 scanf("%s",str1);
 printf("請輸入字符串2:\n");
 scanf("%s",str2);
 while (str1[i]!='\0')
  i++;
 while (str2[j]!='\0')
  str1[i++]=str2[j++];
 str1[i]='\0';
 printf("合并之后的字符串為:%s\n",str1);
}

31.編寫(xiě)一個(gè)程序,將字符數組a中的全部字符復制到字符數組b中。不要使用strcpy函數。
#include<stdio.h>
#include<string.h>
void main()
{
 char a[40],b[40];
 int i;
 printf("請輸入a:\n");
 scanf("%s",a);
 for(i=0;i<=strlen(a);i++)
  b[i]=a[i];
 printf("b:%s\n",b);
}

32.編寫(xiě)一個(gè)程序,找出3個(gè)字符串中的最大者,將它輸出。
#include<stdio.h>
#include<string.h>
void main()
{
 char string[20];
 char str[3][20];
 int i;
 for(i=0;i<3;i++)
  gets (str[i]);
 if(strcmp(str[0],str[1])>0)
  strcpy(string,str[0]);
 else
  strcpy(string,str[1]);
 if(strcmp(str[2],string)>0)
  strcpy(string,str[2]);
 printf("最大的字符串是:\n%s\n",string);
}

33.編寫(xiě)程序,輸入任意一個(gè)1~7之間的整數,將他們轉換成對應的英文單詞。例如:1轉換成Monday,7轉換成Sunday。
 #include<stdio.h>
void main()
{
 int a;
 printf("輸入一個(gè)整數:\n");
 scanf("%d",&a);
 if(a==1) printf("Monday\n");
 else if(a==2) printf("Tuesday\n");
 else if(a==3) printf("Wendesday\n");
 else if(a==4) printf("Thursday\n");
 else if(a==5) printf("Friday\n");
 else if(a==6) printf("Saturday\n");
 else if(a==7) printf("Sunday\n");
 else printf("錯誤\n");
}

34.編寫(xiě)程序,輸入兩個(gè)整數,和+、-、*、/之中的任意一個(gè)運算符,輸出計算結果。
#include<stdio.h>
void main()
{
 float a,b;
 char c;
        printf("請輸入一個(gè)運算符:\n");
 scanf("%c",&c);
 printf("請輸入兩個(gè)整數:\n");
 scanf("%d,%d",&a,&b);
 switch(c)
 {
   case'+':printf("%f\n",a+b);break;
   case'-':printf("%f\n",a-b);break;
   case'*':printf("%f\n",a*b);break;
   case'/':printf("%f\n",a/b);break;
   default:printf("錯誤");
    }
}

35.輸入年號,計算這一年的2月份的天數,將結果輸出。
#include<stdio.h>
void main()
{
 int year,leap;
 printf("請輸入年份:\n");
 scanf("%d",&year);
 if(year%4==0)
 {
  if(year%100==0)
  {
   if(year%400==0)
    leap=1;
   else
    leap=0;
  }
  else
   leap=1;
 }
 else
  leap=0;
 if(leap)
  printf("%d年的2月有29天",year);
 else
  printf("%d年的2月有28天",year);
}

36.輸入三角形的三邊a,b,c,判斷a,b,c,能否構成三角形,若能,計算面積。
#include<stdio.h>
#include<math.h>
void main()
{
 float a,b,c,area;
 double s;
 printf("Please enter three sides of a triangle:\n");
 scanf("%f,%f,%f",&a,&b,&c);
 s=(a+b+c)/2.0;
 area=sqrt(s*(s-a)*(s-b)*(s-c));
 if(a+b<c||b+c<a||a+c<b)
  printf("They can't form a triangle.\n");
 else
     printf("The area of the triangle is:%f\n",area);
}

#include<stdio.h>  
#define N 10
#define M 10
void main()  
{    
 int   i,j,k,m,n,flag1,flag2,a[N]

­,max,maxj;
 printf("輸入行數n[n<10]:");
 scanf("%d",&n);
 printf("輸入列數m[m<10]:");  
 scanf("%d",&m);  
 for(i=0;i<n;i++)
 {  
        printf("第%d行\n",i+1);  
  for(j=0;j<m;j++)  
        scanf("%d",&a[i][j]);  
 }  

37. 輸入三角形的三邊a,b,c,判斷a,b,c,能否構成三角形,何種類(lèi)型的三角形:等腰、等邊、直角、等腰直角、一般。
#include<stdio.h>
#include<math.h>
void main()
{
 float a,b,c;
 printf("請輸入三角形邊長(cháng):\n");
 scanf("%f%f%f",&a,&b,&c);
 if((a-b>=c)||(b-c>=a)||(c-a>=b)) printf("不能夠成三角形\n");
 else if ((a*a+b*b==c*c)||(b*b+c*c==a*a)||(c*c+a*a==b*b))
  if ((a==b)||(b==c)||(c==a)) printf("等腰直角三角形\n");
  else printf("直角三角形\n");
 else if ((a==b)&&(b==c)) printf("等邊三角形\n");
 else if ((a==b)&&(b!=c)||(c==b)&&(b!=a)||(a==c)&&(c!=a)) printf("等腰三角形\n");
 else printf("一般三角形\n");
}


38.輸入獎金數a,計算并輸出稅率、應繳稅款和實(shí)得獎金數。(用if語(yǔ)句編程)
#include<stdio.h>
void main()
{
 int a;
 float r,t,s;
 printf("請輸入獎金數:\n");
 scanf("%d",&a);
 if (a<500) r=0.00;
 else if (a<1000) r=0.05;
 else if (a<2000) r=0.08;
 else if (a<2000) r=0.10;
 else r=0.15;
 t=a*r;
 s=a-t;
 printf("稅率:%7.2f\n",r);
 printf("稅款:%7.2f\n",t);
 printf("實(shí)得獎金:%7.2f\n",s);
}

39.輸入獎金數a,計算并輸出稅率、應繳稅款和實(shí)得獎金數。(用switch語(yǔ)句編程)
#include<stdio.h>
void main()
{
 int a,e;
 float r,t,s;
 printf("請輸入獎金數:\n");
 scanf("%d",&a);
 e=a/500;
 switch(e)
 {case 0:r=0.00;break;
 case 1:r=0.05;break;
 case 2:
 case 3:r=0.08;break;
 case 4:
 case 5:
 case 6:
 case 7:
 case 8:
 case 9:r=0.10;break;
 default:r=0.15;break;
 }
 t=a*r;
 s=a-t;
 printf("稅率:%7.2f\n",r);
 printf("稅款:%7.2f\n",t);
 printf("實(shí)得獎金:%7.2f\n",s);
}

40.輸入學(xué)生的成績(jì),利用計算機將學(xué)生的成績(jì)劃分出等級并輸出:
   90~100:A級;  80~89:B級;  70~79:C級;  60~69:D級;  0~59:E級;
#include<stdio.h>
void main()
{
 float m;
 printf("輸入學(xué)生成績(jì):\n");
 scanf("%f",&m);
 if ((m>100)||(m<0)) printf("數據有誤\n");
 else if (m>=90) printf("A級\n");
 else if (m>=80) printf("B級\n");
 else if (m>=70) printf("C級\n");
 else if (m>=60) printf("D級\n");
 else printf("E級\n");
}

41.編程序,求方程aX2+bX+c=0的解;輸入a,b,c.
#include <stdio.h>
#include <math.h>
void main()
{
 float a,b,c,t;
 double x1,x2;
 printf("請由高次到低次順序輸入系數:\n");
 scanf("%f%f%f",&a,&b,&c);
 t=b*b-4*a*c;
 if (t<0) printf("方程無(wú)實(shí)根\n");
 if (t==0)
 {
  x1=-(b/2/a);
  printf("方程有兩個(gè)相等實(shí)根,x1=x2=%5.2f\n",x1);
 };
 if (t>0)
 {
  x1=-(b+sqrt(t))/2/a;
  x2=-(b-sqrt(t))/2/a;
  printf("方程有兩個(gè)不等實(shí)根,x1=%5.2f,x2=%5.2f\n",x1,x2);
 }
}

42.編程序,輸入4個(gè)整數,按由小到大的順序輸出。
#include <stdio.h>
#define N 4
void main()
{
 int a[N],t,i,j;
 printf("輸入四個(gè)整數:\n");
 for (i=0;i<N;i++)
  scanf("%d",&a[i]);
 printf("\n");
 for (i=0;i<N-1;i++)
 {
  for (j=0;j<N-i-1;j++)
   if (a[j]>a[j+1])
   {
    t=a[j];
    a[j]=a[j+1];
    a[j+1]=t;
   }
 }
 printf("排序后:\n");
 for (i=0;i<N;i++)
  printf("%d\n",a[i]);
}

43.求滿(mǎn)足1+2+3+…+n<500中最大的N,并求其和,編寫(xiě)程序實(shí)現。
#include <stdio.h>
void main()
{
 int n=0,sum=0;
 while(sum<500)
 {
  ++n;
  sum+=n;
 }
 printf("N??:%d\n",n-1);
 printf("1+2+3+4+......+%d<500\n",n-1);
}

44.把100~200之間的不能被3整除的數輸出。
#include <stdio.h>
void main()
{
 int a;
 for (a=100;a<=200;a++)
  if (a%3!=0) printf("%d\t",a);
}

45.求Fibonacci數列前40個(gè)數,每行輸出5個(gè),將40個(gè)Fibonacci數輸出。
#include <stdio.h>
long f(int);
void main()
{
 int n,i=0;
 for (n=1;n<41;n++)
 {
  printf ("%ld\t",f(n));
  i++;
  if (i%5==0) printf("\n");
 }
}
long f(int m)
{
 if (m==0)
  return 0;
 if (m==1)
  return 1;
 else
  return f(m-1)+f(m-2);
}

46.按以下規律翻譯密碼:
  將每一個(gè)字母變成它后面的字母,例如,將A變成B,B變成C,…,Z變成A,非字母字符不變,“!”作為電文結束標志。
#include <stdio.h>
void main()
{
 char ch;
 printf("輸入字符串:\n");
 while ((ch=getchar())!='!')
 {
  if ((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))
   if (ch=='z') ch='a';
   else if (ch=='Z') ch='A';
   else ch=ch+1;
        printf("%c",ch);
 }
 printf("\n");
}

47.百元買(mǎi)百雞問(wèn)題:公雞每只5元,母雞每只3元,小雞3只一元,問(wèn)一百元買(mǎi)一百只雞有幾種買(mǎi)法。
#include <stdio.h>
void main()
{
 int a,b,c,n=0;
 for (a=0;a<=20;a++)
  for (b=0;b<=33;b++)
   for (c=0;c<=100;c++)
    if (5*a+3*b+c==100) n++;
    printf("一共有%d種\n",n);
}

48.使用數組編程,計算出前20項fibonacci數列,要求一行打印5個(gè)數。
#include <stdio.h>
long f(int);
void main()
{
 int n,i=0;
 for (n=1;n<21;n++)
 {
  printf ("%ld\t",f(n));
  i++;
  if (i%5==0) printf("\n");
 }
}
long f(int m)
{
 if (m==0)
  return 0;
 if (m==1)
  return 1;
 else
  return f(m-1)+f(m-2);
}

49.編程序求出兩個(gè)3*4矩陣的和并將原矩陣和求出的和矩陣按原矩陣的形式分別輸出。
#include <stdio.h>
void main()
{
 int a[3][4],b[3][4],s[3][4],n,m;
 printf("輸入數組A:\n");
 for (n=0;n<3;n++)
 {
  printf("第%d行\n",n+1);
  for (m=0;m<4;m++)
    scanf ("%d",&a[n]

­);
 }
 printf("輸入數組B:\n");
 for (n=0;n<3;n++)
 {
  printf("第%d行\n",n+1);
  for (m=0;m<4;m++)
   scanf ("%d",&b[n]

­);
 }
 for (n=0;n<3;n++)
 {
  for (m=0;m<4;m++)
   s[n]

­=a[n]

­+b[n]

­;
 }
 printf("原數組A:\n");
 for (n=0;n<3;n++)
 {
  for (m=0;m<4;m++)
   printf("%5d",a[n]

­);
  printf("\n");
 }
 printf("\n");
 printf("原數組B:\n");
 for (n=0;n<3;n++)
 {
  for (m=0;m<4;m++)
   printf("%5d",b[n]

­);
  printf("\n");
 }
 printf("\n");
 printf("所得數組:\n");
 for (n=0;n<3;n++)
 {
  for (m=0;m<4;m++)
   printf("%5d",s[n]

­);
  printf("\n");
 }
}

50.將一個(gè)4*3的矩陣轉置,并將原矩陣和求出的轉置矩陣按原矩陣的形式分別輸出。
#include <stdio.h>
void main()
{
 int a[4][3],b[4][3],s[4][3],n,m;
 printf("輸入數組A:\n");
 for (n=0;n<4;n++)
 {
  printf("第%d行\n",n+1);
  for (m=0;m<3;m++)
    scanf ("%d",&a[n]

­);
 }
 printf("輸入數組B:\n");
 for (n=0;n<4;n++)
 {
  printf("第%d行\n",n+1);
  for (m=0;m<3;m++)
   scanf ("%d",&b[n]

­);
 }
 for (n=0;n<4;n++)
 {
  for (m=0;m<3;m++)
   s[n]

­=a[n]

­+b[n]

­;
 }
 printf("原數組A:\n");
 for (n=0;n<4;n++)
 {
  for (m=0;m<3;m++)
   printf("%5d",a[n]

­);
  printf("\n");
 }
 printf("\n");
 printf("原數組B:\n");
 for (n=0;n<4;n++)
 {
  for (m=0;m<3;m++)
   printf("%5d",b[n]

­);
  printf("\n");
 }
 printf("\n");
 printf("所得數組:\n");
 for (n=0;n<4;n++)
 {
  for (m=0;m<3;m++)
   printf("%5d",s[n]

­);
  printf("\n");
 }
}

51.輸入一個(gè)字符,如果它是一個(gè)大寫(xiě)字母,則把它變成小寫(xiě)字母;如果它是小寫(xiě)字母,則把它變成大寫(xiě)字母;其它字符不變,請編程。
#include <stdio.h>
void main()
{
 char ch;
 ch=getchar();
 if ((ch>=65)&&(ch<=90)) ch=ch+32;
 else if ((ch>=97)&&(ch<=122)) ch=ch-32;
 printf("%c\n",ch);
}

52.已知x和y存在下列對應關(guān)系,要求對輸入的每個(gè)x值,計算出y值,請編程。
   y=x*(x+2),2<x<=10;   y=2x, -1<x<=2;  y=x-1, x<=-1.
#include <stdio.h>
void main()
{
 float x,y;
 printf("輸入X值:");
 scanf("%f",&x);
 if (x<=-1)
 {
  y=x-1;
  printf ("Y=%6.2f\n",y);
 }
 else if (x<=2)
 {
  y=2*x;
  printf ("Y=%6.2f\n",y);
 }
 else if (x<=10)
 {
  y=x*(x+2);
  printf ("Y=%6.2f\n",y);
 }
 else printf("取值范圍出錯\n");
}

53.已知x和y存在下列對應關(guān)系,要求對輸入的每個(gè)x值,計算出y值,請編程。
   y=0,x=a||x=-a;  y=sqrt(a*a-x*x), -a<x<a;  y=x,x<-a||x>a.
#include <stdio.h>
#include <math.h>
void main()
{
 float x,y,a;
 printf("輸入A值[A>0]:");
 scanf("%f",&a);
 printf("輸入X值:");
 scanf("%f",&x);
 if ((x==a)||(x==-a)) y=0;
 else if ((x<a)&&(x>-a)) y=sqrt(a*a-x*x);
 else if ((x<-a)||(x>a)) y=x;
 printf ("Y=%6.2f\n",y);
}

54.編程判斷對輸入的任何一個(gè)年份是否是閏年,將結果輸出。
#include <stdio.h>
void main()
{
 int n;
 printf("輸入年份:");
 scanf("%d",&n);
 if (n%4==0&&n%100!=0||n%400==0) printf("閏年\n");
 else printf ("不是閏年\n");
}

55.請編制程序要求輸入整數a和b,若a*a+b*b大于100,則輸出a*a+b*b百位以上的數字,否則輸出兩數之和。
#include <stdio.h>
void main ()
{
 int a,b,c,d;
 printf("請輸入兩個(gè)整數:\n");
 scanf("%d,%d",&a,&b);
 printf("你輸入的兩個(gè)數為:%d,%d\n",a,b);
 c=a*a+b*b;
 if(c>=100)
 {
  d=c/100;
  printf("a*a+b*b的百位以上的數為:%d\n",d);
 }
 else
  printf("a*a+b*b=%d/n",c);
}

56.請編制程序判斷輸入的正整數是否既是5又是7的整倍數。若是,則輸出yes;否則輸出no.
#include <stdio.h>
void main()
{
 int a;
 printf("請輸入要驗證的數:\n");
 scanf("%d",&a);
 if(a%5==0&&a%7==0)
  printf("Yes\n");
 else
  printf("No\n");
}

57.編程實(shí)現:計算1到100之間的奇數之和及偶數之和。
#include <stdio.h>
void main ()
{
 int n,even=0,odd=0;
 for(n=1;n<=50;n++)
 {
  even+=2*n;
  odd+=2*n-1;
 }
 printf("1到100間的偶數的和為%d:\n",even);
 printf("1到100間的奇數的和為%d:\n",odd);
}

58.請編程實(shí)現:求100個(gè)任意整數的累加和。
59.請編程實(shí)現:求1到100之間所有能被3整除,但不能被5整除的數的和。
60.請編程實(shí)現:輸入任意正整數n,計算n!并將結果輸出,輸出結果中沒(méi)有小數部分。
61.請編程實(shí)現:計算1至50中是7的倍數的數值之和。
62.請編程實(shí)現:對任意100個(gè)整數,統計0的個(gè)數及正數的累加和。
#include <stdio.h>
#define N 100
void main ()
{
 int a,sum=0,i,frequency=0;
 int s[N];
 printf("請輸入數據:\n");
 for(i=0;i<N;i++)
  scanf("%d",&s[i]);
 printf("\n原始數據為:\n");
 for(i=0;i<N;i++)
  printf("%d\n",s[i]);

 for(i=0;i<N;i++)
 {
  if(s[i]==0)
   frequency+=1;
  if(s[i]>0)
  {
   a=s[i];
   sum+=a;
  }
 }
 printf("這些數中0的個(gè)數為%d\n",frequency);
 printf("這些數中所有正數的和為%d\n",sum);
}

63.請編程實(shí)現:輸入兩個(gè)整數,判斷它們之間的關(guān)系(=,<,>等),并清楚地將比較結果輸出。
64.請編程實(shí)現:輸入幾個(gè)整數,判斷其中偶數的個(gè)數,并輸出結果(要求:數據的個(gè)數及原始數據由鍵盤(pán)輸入)。
#include <stdio.h>
#define N 20
void enter (int a[], int n)
{
 int i;
 printf("請輸入數據:\n");
 for (i=0;i<n;i++)
  scanf("%d",&a[i]);
 printf("\n原始數據為:\n");
 for (i=0;i<n;i++)
  printf("%d",a[i]);
 printf("\n");
}

void main()
{
 void enter (int [], int );
 int i;
        int a[N],n;
        printf("\n輸入你所要的數組元素個(gè)數:\n");
 scanf("%d",&n);
        enter (a,n);
 for(i=0;i<n;i++)
 {
  if (a[i]%2==0)
     printf ("其中的偶數是%d\n",a[i]);
   
 }
}

65.請編程實(shí)現:輸入幾個(gè)整數,判斷其中奇數的個(gè)數,并輸出奇數的累加和。(要求:數據的個(gè)數及原始數據由鍵盤(pán)輸入)
#include <stdio.h>
#define N 20
void enter (int a[], int n)
{
 int i;
 printf("請輸入數據:\n");
 for (i=0;i<n;i++)
  scanf("%d",&a[i]);
 printf("\n原始數據為:\n");
 for (i=0;i<n;i++)
  printf("%2d",a[i]);
 printf("\n");
}

void main()
{
 void enter (int [], int );
 int i;
        int a[N],n,sum=0;
        printf("\n輸入你所要的數組元素個(gè)數:\n");
 scanf("%d",&n);
        enter (a,n);
 for(i=0;i<n;i++)
 {
  if (a[i]%2==1)
  {printf ("其中的奇數是%d\n",a[i]);
  sum=sum+a[i];}
       
   
 }printf ("奇數和是%d\n",sum);
    
}

66.有一個(gè)兩位數XY,X是十位,Y是個(gè)位;給出X+Y的值和X*Y的值;編程實(shí)現讓用戶(hù)猜測這個(gè)兩位數十多少?根據猜測給出不同的提示。
#include <stdio.h>
void main()
{
 printf ("x+y=2\n");
 printf("x*y=1\n");
    printf("請輸入你所猜得數字\n");
 int a;
 scanf("%d", &a);
 for (;a!=11;)
 {printf("you are not right\n");
 scanf("%d", &a);}
  
  printf ("you are right\n");
}

67.鍵盤(pán)輸入的一個(gè)兩位數XY,X是十位,Y是個(gè)位;請編程計算X+Y的值和X*Y的值。
#include <stdio.h>
 void main ()
 {
        printf ("請輸入一個(gè)兩位數\n");
        int a,x,y;
        scanf ("%d",&a);
        x=a/10;
        y=a%10;
        printf ("x+y=%d\n",x+y);
        printf("x*y=%d\n"x*y);
}

68.用for循環(huán)語(yǔ)句計算1到20的和,并將結果輸出。
#include <stdio.h>
void main()
{
 int i=1,sum=0;
 for (;i<=20;)
 {
  sum=sum+i;
  i++;
 }
 printf("1到20的和是%d\n",sum);
}

69.從鍵盤(pán)輸入一行字符,統計出輸入的字符個(gè)數(注:不要使用strlun函數編程)。
#include <stdio.h>
void main()
{   int alphabet=0,i=0;
 char str[100];
 printf ("請輸入一個(gè)字符串\n");
 gets(str);
 for (i=0;str[i]!='\0';i++)
  ++alphabet;
 printf ("有%d個(gè)字母\n",alphabet);
}

70.編程實(shí)現:任意輸入10個(gè)數,計算所有正數的和,負數的和以及10個(gè)數的和。
#include <stdio.h>
void main()
{   int i;
float a[10];
printf("請輸入任意十個(gè)數\n");
for (i=0;i<10;i++)
{
 printf("a[%d]=",i);
 scanf("%f",&a[i]);
}

printf("\n");
printf("\n原始數據為:\n");
for (i=0;i<10;i++)
printf("%3f",a[i]);

float sum1=0, sum2=0, sum3=0;
for (i=0;i<10;i++)
{if (a[i]>0) sum1=sum1+a[i];
else   sum2=sum2+a[i];
sum3=sum1+sum2;}
printf("正數的和是%f",sum1);
printf("負數的和是%f",sum2);
printf("總和是%f",sum3);
}

71.編程實(shí)現:求任意20個(gè)數中的正數之和及正數的個(gè)數,并將結果輸出。
#include <stdio.h>
void main()
{   int i;
float a[20];
printf("請輸入任意二十個(gè)數\n");
for (i=0;i<20;i++)
{
 printf("a[%d]=",i);
 scanf("%f",&a[i]);
}
int m=0;
float sum=0;
for (i=0;i<20;i++)
{
if (a[i]>0)
 m++;
}
for (i=0;i<20;i++)
sum=sum+a[i];
printf("正數的個(gè)數是%d",m);
printf("所有數的和是%f",sum);
}

72.編程實(shí)現:對鍵盤(pán)輸入的任意一個(gè)四位正整數,計算各位數字平方和。
如:2345 則:計算2*2+3*3+4*4+5*5
#include <stdio.h>
#include <math.h>
 void main ()
 {
        printf ("請輸入一個(gè)四位數\n");
        int x,a,b,c,d,s;
        scanf ("%d",&x);
      
        a=x/1000;
        b=x/100-10*a;
        c=x/10-100*a-10*b;
        d=x%10;
       
        printf ("a=%d\n",a);
        printf("b=%d\n",b);
        printf ("c=%d\n",c);
        printf ("d=%d\n",d);
 s=a*a+b*b+c*c+d*d;
 printf("各位數字的平方和是%d\n",s);


}
73.有1020個(gè)西瓜,第一天賣(mài)一半多兩個(gè),以后每天賣(mài)剩下的一半多兩個(gè),問(wèn)幾天以后能賣(mài)完,請編程。
#include <stdio.h>
void main()
{
int a=1020,c=0;
do
{a=a/2-2;
 c++;}
while (a!=0);
printf("c=%d",c);
}

74.編程實(shí)現:打印100以?xún)葌€(gè)位數為6且能被3整除的所有數 。
#include <stdio.h>
void main()
{int i;
 for (i=0;i<100;i++)
 {if (i%10==6&&i%3==0)
      printf("%d\n",i);
}
}

75.編程實(shí)現:從鍵盤(pán)輸入若干個(gè)整數(數據個(gè)數應不少于50),其值在0至4的范圍內,用-1作為輸入結束的標志,統計每個(gè)整數的個(gè)數。
76.編寫(xiě)一個(gè)函數sort,將放到一維數組中的若干個(gè)數按從大到小的順序排序;在主函數中輸入若干個(gè)數到一個(gè)一維數組中,調用sort,對該數組進(jìn)行排序,在主函數中將原數組和排好序的數組輸出。
77.輸入一個(gè)正整數,將其用質(zhì)因子的乘積表示,并輸出結果,格式為:12=2×2×3。
78.輸入一個(gè)正整數,求出它的質(zhì)因子的和,并輸出結果,格式為:12的質(zhì)因子和=2+2+3=7。
79.編寫(xiě)一個(gè)函數,判斷一個(gè)正整數是否為完數:如果一個(gè)數的除它本身以外的所有因數之和等于它本身,則它就是完數。主函數中找出1000以?xún)鹊乃型陻怠?br>80.編寫(xiě)函數GCD,求兩個(gè)正整數的最大公約數,主函數中輸入任意5個(gè)正整數,調用函數GCD,求出這5個(gè)數的最大公約數和最小公倍數。
81.編函數isprime判斷正整m是否為素數;如果是素數,返回正整數1,否則返回0;主函數中調用isprime,找出2到1000之間的所有素數。
#include<stdio.h>
#include<math.h>
int isprime(int);
void main()
{
 int m;
 for(m=2;m<=1000;m++)
  if(isprime(m))
   printf("%5d",m);
}

int isprime(int a)
{
 int i;
 for(i=2;i<=sqrt(a);i++)
  if(a%i==0) return 0;
  return 1;
}

82.一維數組a中的若干個(gè)數已按從小到大的順序有序;在主函數中輸入一個(gè)數,將其插入到該數組中,使得原數組依然按原序有序,分別輸入原數組和插入新元素之后的數組。
#include<stdio.h>
void main()
{
 int a[21],i,j,n,p,temp;
 printf("請輸入數組元素的個(gè)數:");
 scanf("%d",&n);
 printf("請輸入%d個(gè)整數:\n",n);
 for(i=0;i<n;i++)
  scanf("%d",&a[i]);
 for(i=1;i<=n-1;i++)
 {
  for(j=0;j<=n-1-i;j++)
   if(a[j]>a[j+1])
   {
    temp=a[j];
    a[j]=a[j+1];
    a[j+1]=temp;
   }
 }
 printf("原數組為:\n");
 for(i=0;i<=n-1;i++)
  printf("%5d",a[i]);
 
 printf("\n請輸入插入的數:");
 scanf("%d",&p);
 for(i=0;i<=n-1;i++)
  if(p<a[i])
  {
   temp=a[i];
   a[i]=p;
   p=temp;
  
  }
 a[n]=p;
 printf("插入元素后的數組為:\n");
 for(i=0;i<=n;i++)
  printf("%5d",a[i]);
}


83.有5個(gè)國家名,編程實(shí)現按字母先后順序排序,然后分別輸出原數組和排序之后的數組。
#include<stdio.h>
#include<string.h>
void main()
{
 char name[5][15],temp[15];
 int i,j;
 printf("請輸入國家名:\n");
 for(i=0;i<5;i++)
  gets(name[i]);
 for(i=0;i<5;i++)
  for(j=0;j<4-i;j++)
   if(strcmp(name[i],name[j+1])>0)
   {
    strcpy(temp,name[j]);
    strcpy(name[j],name[j+1]);
    strcpy(name[j+1],temp);
   }
 printf("國家名排序后為:\n");
 for(i=0;i<5;i++)
  printf("%s\n",name[i]);
}


84.有一行文字,要求刪去其中的某個(gè)字符,此行文字和要刪的字符均由鍵盤(pán)輸入,分別輸出原文字和刪除之后的文字(注:原文字中的所有和要刪除字符相同的字符完全刪除)。
#include<stdio.h>
void main()
{
 int i,j;
 char a[10],N='n';
 printf("請輸入一行9個(gè)的文字:\n");
 gets(a);
 printf("原文字為:\n");
 puts(a);
 for(i=0;i<=9;i++)
  if(a[i]==N)
   for(j=i;j<=9;j++)
    a[j]=a[j+1];
 printf("刪除后文字為:\n");
 puts(a);
}

85.打印如圖所示的楊輝三角,要求打印出n行,n由鍵盤(pán)輸入。
1
1 1
1 2 1
1 3 3  1
1 4 6  4  1
1 5 10 10 5 1
………
#include<stdio.h>
void main()
{
 int i,j,N,a[21][21];
 printf("請輸入打印的行數:\n");
 scanf("%d",&N);
 for(i=1;i<N+1;i++)
 {
  a[i][1]=1;
  a[i][i]=1;
 }
 for(i=3;i<N+1;i++)
  for(j=2;j<=i-1;j++)
   a[i][j]=a[i-1][j-1]+a[i-1][j];
  for(i=1;i<N+1;i++)
  {
   for(j=1;j<=i;j++)
    printf("%6d",a[i][j]);
   printf("\n");
  }
  printf("\n");
}

86.編一個(gè)函數實(shí)現將一個(gè)整型的一維數組中的數逆序存放,不使用輔助數組。主函數輸入一個(gè)整型的一維數組,調用上述函數,將該數組逆置,將結果輸出。
#include<stdio.h>
#define N 10
void main()
{
 int a[N],i,temp;
 printf("enter array a:\n");
 for(i=0;i<N;i++)
  scanf("%d",&a[i]);
 printf("array a:\n");
 for(i=0;i<N;i++)
  printf("%4d",a[i]);
 for(i=0;i<N/2;i++)
 {
  temp=a[i];
  a[i]=a[N-i-1];
  a[N-i-1]=temp;
 }
 printf("\nNow,array a:\n");
 for(i=0;i<N;i++)
  printf("%4d",a[i]);
 printf("\n");
}

87.編寫(xiě)一個(gè)函數convert,求一個(gè)方陣的轉置矩陣;主函數中輸入方陣的階數和方陣,在主函數中將原矩陣和轉置矩陣按原格式輸出。
#include<stdio.h>
void main()
{
    void convert(int [10][10]);
 int a[10][10],p,q,i,j;
 printf("請輸入矩陣的行和列:\n");
 scanf("%d",&p);
 scanf("%d",&q);
    printf("請輸入矩陣的元素值:\n");
 for(i=0;i<p;i++)
  for(j=0;j<q;j++)
   scanf("%d",&a[i][j]);
 printf("原矩陣為:\n");
    for(i=0;i<p;i++)
 {
  for(j=0;j<q;j++)
   printf("%5d",a[i][j]);
  printf("\n");
 }
 convert(a);
 printf("轉置矩陣為:\n");
    for(i=0;i<q;i++)
 {
  for(j=0;j<p;j++)
   printf("%5d",a[i][j]);
  printf("\n");
 }
   
}

void convert(int a[10][10])
{
 int i,j,t;
 
    for(i=0;i<10;i++)
     for(j=i+1;j<10;j++)
  {
   t=a[i][j];
   a[i][j]=a[j][i];
   a[j][i]=t;
  }
}
 

88.求∏值,精度為10-5:∏/4≈1-1/3+1/5-1/7+……
#include<stdio.h>
void main()
{
 float a=1.0,b;
 int i;
   
    for(i=1;1.0/(2*i+1)>0.00001;i++)
 {
  if(i%2!=0)
   a-=1.0/(2*i+1);
  else
   a+=1.0/(2*i+1);
 }
 b=4.0*a;
 printf("b的值為:%f\n",b);
}

89.用公式計算:e≈1+1/1!+1/2! …+1/n!,精度為10-6。
#include<stdio.h>
float fun(int);
void main()
{
 int i;
    float e=1.0;

 for(i=1;fun(i)>0.00000001;i++)
     e+=fun(i);
 printf("e=%f\n",e);
 
}

float fun(int n)
{
 int i;
    float term=1.0;
 for(i=1;i<=n;i++)
  term/=i;
 return term;
}
 
90.有一分數序列
2/1,3/2,5/3,8/5,13/8,21/13
  求該序列的前20項之和。
#include<stdio.h>
void main()
{
 int i;
 float a[22], b[20],p=0.0;
 a[0]=1.0;
 a[1]=1.0;
 for(i=2;i<22;i++)
  a[i]=a[i-1]+a[i-2];
 for(i=0;i<20;i++)
     b[i]=a[i+2]/a[i+1];
 for(i=0;i<20;i++)
     p+=b[i];
 printf("%f\n",p);
}

91.編一個(gè)子函數GCD,求兩個(gè)正整數的最大公約數,主程序輸入n個(gè)自然數,調GCD,求出這n個(gè)數的最大公約數。
#include<stdio.h>
int GCD(int,int);
void main()
{
 int a[100],i,n,k;
 printf("請輸入數組元素的個(gè)數:\n");
 scanf("%d",&n);
 printf("請輸入%d個(gè)正整數:\n",n);
 for(i=0;i<n;i++)
  scanf("%d",&a[i]);
    k=GCD(a[0],a[1]);
 for(i=2;i<n;i++)
  k=GCD(k,a[i]);
 printf("輸入的%d個(gè)正整數的最大公約數是:%d\n",n,k);
}

int GCD(int x,int y)
{
 int i,min,p,q,gcd;
 if(x<=y)
  min=x;
 else
  min=y;
 for(i=1;i<=min;i++)
 {
  p=x%i;
  q=y%i;
  if(p==0&&q==0)
   gcd=i;
 }
 return gcd;
}

92.寫(xiě)函數求sin(x)的值。計算公式為:Sin(x)=X-X3/3!+X5/5!-X7/7!+ …+(-1)n-1X2n-1/(2n-1)!。
#include<stdio.h>
float fun(float,int);
float sin(int,float);
float term(int);
void main()
{
 int n;
    float x;
 printf("請輸入n,x值:\n");
 scanf("%d",&n);
 scanf("%f",&x);
 printf("sin(%f)=%f",x,sin(n,x));
}

float sin(int n,float x)
{
 int i;
    float s=0.0;
    for(i=1;i<=n;i++)
 s+=fun(-1.0,i-1)*fun(x,2*i-1)*term(2*i-1);
 return s;
}

float fun(float x,int n)
{
 int i;
 float p=1.0;
 for(i=0;i<n;i++)
  p=p*x;
 return p;
}

float term(int n)
{
 int i;
 float q=1.0;
 for(i=1;i<=n;i++)
  q/=i;
 return q;
}


93.編一函數使用冒泡法對若干個(gè)整數按從小到大的順序排序,主函數中輸入若干個(gè)整數到一個(gè)一維數組中,調用排序函數,將其排序,最后將原數組和排好序的數組輸出。
#include<stdio.h>
#define N 10
void main()
{
 int a[N],i,j,temp;
 printf("請輸入10個(gè)整數:\n");
 for(i=0;i<N;i++)
  scanf("%d",&a[i]);
 printf("\n");
 printf("原始數據為:\n");
 for(i=0;i<N;i++)
  printf("%d",a[i]);
 for(i=1;i<=N-1;i++)
 {
  for(j=0;j<=N-i-1;j++)
   if(a[j]>a[j+1])
   {
    temp=a[j];
    a[j]=a[j+1];
    a[j+1]=temp;
   }
 }
 printf("\n排序后的數據為:\n");
 for(i=0;i<N;i++)
  printf("%d",a[i]);
 printf("\n");
}

94.求一個(gè)m行n列的二維數組中的這樣一個(gè)原素;它在它所在的行為最大,在它所在的列為最小。
#include<stdio.h>
#define N 4
#define M 5
void main()
{
 int i,j,k,a[N]

­,max,maxj,flag;
 printf("please input matrix:\n");
 for(i=0;i<N;i++)
  for(j=0;j<M;j++)
   scanf("%d",&a[i][j]);
  for(i=0;i<N;i++)
  {
   max=a[i][0];
   maxj=0;
   for(j=0;j<M;j++)
    if(a[i][j]>max)
    {
     max=a[i][j];
     maxj=j;
    }
    flag=1;
    for(k=0;k<N;k++)
     if(max>a[k][maxj])
     {
      flag=0;
      continue;
     }
    if(flag)
    {
     printf("a[%d][%d]=%d\n",i,maxj,max);
     break;
    }
  }
  if(! flag)
   printf("It is not exist!\n");
}

95.編寫(xiě)一個(gè)函數求給定字符串長(cháng)度,主函數中輸入一個(gè)字符串,調用該子函數,求出該字符串的長(cháng)度,輸出。
#include<stdio.h>
void main()
{
 int length(char*p);
 int len;
 char str[20];
 printf("input string:");
 scanf("%s",str);
 len=length(str);
 printf("The length of string is %d.\n",len);
}

int length(char*p)
{
 int n;
 n=0;
 while(*p!='\0')
 {
  n++;
  p++;
 }
 return(n);
}

96.編寫(xiě)一個(gè)函數將給定字符串復制到另一個(gè)字符串中去,主函數中輸入一個(gè)字符串,調用該子函數,復制出另一字符串,將兩個(gè)串輸出。
#include<stdio.h>
#include<string.h>
void main()
{
 void copystr(char*,char*,int);
 int m;
 char str1[20],str2[20];
 printf("\ninput string:");
 gets(str1);
 printf("which character that begin to copy?");
 scanf("%d",&m);
 if(strlen(str1)<m)
  printf("input error!");
 else
 {
  copystr(str1,str2,m);
  printf("result:%s\n",str2);
 }
}

void copystr(char*p1,char*p2,int m)
{
 int n;
 n=0;
 while(n<m-1)
 {
  n++;
  p1++;
 }
 while(*p1!='\0')
 {
  *p2=*p1;
  p1++;
  p2++;
 }
 *p2='\0';
}

97.寫(xiě)函數求Cos(x)=1+X2/2!-X4/4!+X6/6!- …+(-1)nX2n/(2n)!。
#include<stdio.h>
float fun(float,int);
float cos(int,float);
float term(int);
void main()
{
 int n;
    float x;
 printf("請輸入n,x值:\n");
 scanf("%d",&n);
 scanf("%f",&x);
 printf("cos(%f)=%f",x,cos(n,x));
}

float cos(int n,float x)
{
 int i;
    float s=-1.0;
    for(i=1;i<=n;i++)
 s+=fun(-1.0,i-1)*fun(x,2*i)*term(2*i);
 return s;
}

float fun(float x,int n)
{
 int i;
 float p=1.0;
 for(i=0;i<n;i++)
  p=p*x;
 return p;
}

float term(int n)
{
 int i;
 float q=1.0;
 for(i=1;i<=n;i++)
  q/=i;
 return q;
}

98.編寫(xiě)一個(gè)函數將給定字符串中的大寫(xiě)字母轉換成小寫(xiě)字母,主函數中輸入一個(gè)字符串,調用該子函數,進(jìn)行轉換,將原字符串及轉換后的字符串輸出。
#include<stdio.h>
void main()
{
 int i;
 char a[11];
 gets(a);
 puts(a);
 for(i=0;i<10;i++)
  if(a[i]>=65&&a[i]<=90)
   a[i]=a[i]+32;
  
 puts(a);
}

99.編寫(xiě)一個(gè)函數將給定的兩個(gè)字符串連接成一個(gè)字符串:
  格式為:strcat(ch1,ch2);
  功能:將ch2復制到ch1的后面;
  主函數中輸入兩個(gè)字符串,調用該子函數,求出連接之后的字符串,將兩個(gè)原字符串及連接之后的結果串輸出。
#include<stdio.h>
#include<string.h>
void main()
{
 char str1[20],str2[8];
 gets(str1);
 gets(str2);
 strcat(str1,str2);
 printf("%s\n",str1);
}

100.用40元錢(qián)買(mǎi)蘋(píng)果、西瓜和梨共100個(gè),且三種水果都有。已知蘋(píng)果0.4元一個(gè),西瓜4元一個(gè),梨0.2元一個(gè)。問(wèn)可以買(mǎi)多少個(gè)?編程輸出所有購買(mǎi)方案。
#include<stdio.h>
void main()
{int i=1,j,k;
  double r;
  printf("蘋(píng)果  西瓜   梨\n");
  while (i<=100)
  {
   j=1;
   while(j<=(10-i))
   {
    k=100-i-j;
    r=2*i/5+4*j+i/5;
    if(r<=40)
  printf("%d%7d%7d\n",i,j,k);
    j++;
   }
   i++;
  }
}

101.編程:建立一個(gè)3×3的二維整數數組,求兩條對角線(xiàn)上元素值得和,并將結果輸出。(用函數調用方式編程)
102.編程計算:1*2*3+3*4*5+……+99*100*101的值。
#include<stdio.h>
void main()
{
 int i,j,k,sum=0;
 for(i=1,j=2,k=3;i<100,j<101,k<102;i+=2,j+=2,k+=2)
 sum=sum+i*j*k;
 printf("%d\n",sum);
}

103.有一個(gè)5×4的矩陣,編程實(shí)現:找出該矩陣中每行元素的最大值,并使該值成為該行的首列元素。
#include<stdio.h>
void main ()
{
 int a[5][4]={6,7,8,9,2,7,8,7,4,8,9,5,2,4,6,7,2,4,1,2},b[5][4]={6,7,8,9,2,7,8,7,4,8,9,5,2,4,6,7,2,4,1,2},t,i,j,k,p;
 int max[5]={6,2,4,2,2};
 for(i=0;i<5;i++)
 {for(j=1;j<4;j++)
    if(a[i][j]>max[i])
   {  
    max[i]=a[i][j];
   }
 }
   for(k=0;k<5;k++)
   {for(p=1;p<4;p++)
    if(max[k]!=b[k][p])
       {b[k][p]=b[k][p];}
    else
    {   t=b[k][0];
     b[k][0]=b[k][p];
     b[k][p]=t;
    }
   }
      for(k=0;k<5;k++)
      for(p=0;p<4;p++)
   printf("\nb[%d][%d]=%d",k,p,b[k][p]);
   printf("\n");
}

104.編寫(xiě)一個(gè)程序,使輸入的一個(gè)字符串按反序存放在一字符數組中,然后輸出。要求:
  (1)在主調函數中輸入字符串;
  (2)寫(xiě)函數完成由主調函數傳遞來(lái)的字符串按反序存放;
  (3)在主調函數中輸出結果。
#include<stdio.h>
#include<string.h>
void main()
{
 void inverse(char str[]);
 char str[100];
 printf("輸入字符串:\n");
 gets(str);
 inverse(str);
 printf("%s\n",str);
}
   void inverse(char str[])
   {char t;
     int i,j;
  for(i=0,j=strlen(str);i<(strlen(str)/2);i++,j--)
  {t=str[i];
   str[i]=str[j-1];
   str[j-1]=t;
  }
   }

105.從鍵盤(pán)輸入五個(gè)字符串,分別求出字符串中長(cháng)度最長(cháng)和最短的字符串,請編程。(要求:不要使用strlen(_)函數編程)


106.輸入10個(gè)整數,將其中最小的數與第一個(gè)數對換,把最大的數與最后一個(gè)數對換。請編程實(shí)現。
#include<stdio.h>
#define N 10
void main()
{
 int a[N],b[N],i,j,min,max,p,t;
 printf("請輸入數據\n");
 for(i=0;i<N;i++)
 scanf("%d",&a[i]);
 for(i=0,j=0;i<N,j<N;i++,j++)
 b[j]=a[i];
 for(j=0;j<N;j++)
 printf("%3d",b[j]);
 printf("\n");
    for(i=1;i<N;i++)
 {
  if(a[0]>a[i])
  {a[0]=a[i];
  min=a[0];}
 }
    for(i=0;i<N-1;i++)
 {
  if(a[N-1]<a[i])
  {a[N-1]=a[i];
   max=a[N-1];}
 }
 for(j=0;j<N;j++)
 {
  if(min!=b[j])
  {b[j]=b[j];}
   else
   {t=b[0];
    b[0]=b[j];
    b[j]=t;
   }
 }
    for(j=0;j<N;j++)
 {if(max!=b[j])
 {b[j]=b[j];}
 else
 {p=b[N-1];
  b[N-1]=b[j];
  b[j]=p;
 }
 }
    for(j=0;j<N;j++)
 printf("%3d",b[j]);
    printf("\n");
}

107.寫(xiě)一個(gè)判斷素數的函數,在主函數中調用素數的判斷函數,求出2到1000之間的素數的累加和,將結果輸出,請編程。
#include<stdio.h>
#include<math.h>
int isprime(int);
void main()
{
 int i,sum=0;
 for (i=2;i<=1000;i++)
 if (isprime(i))
    sum=sum+i;
 printf("%d\n",sum);
}
   int isprime(int a)
   {
    int j;
    for(j=2;j<=sqrt(a);j++)
      if(a%j==0) return 0;
   return 1;
   }

108.編寫(xiě)一函數,由實(shí)參傳來(lái)一個(gè)字符串,統計此字符串中字母、數字、空格和其他字符的個(gè)數,在主函數中輸入字符串以及輸出上述的結果。
#include<stdio.h>
int letter,digit,space,others;
void main()
{
 void count(char[]);
 char text[80];
 printf("輸入字符串:\n");
 gets(text);
 printf("字符串是:");
 puts(text);
 letter=0;
 digit=0;
 space=0;
 others=0;
 count(text);
 printf("letter:%d,digit:%d,space:%d,others:%d\n",letter,digit,space,others);

}
   void count(char str[])
   {int i;
    
  for(i=0;str[i]!='\0';i++)
   if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
     letter++;
   else if(str[i]>='0'&&str[i]<='9')
   digit++;
   else if(str[i]==32)
   space++;
   else
   others++;
   }

109.請編程實(shí)現:將兩個(gè)字符串s1和s2比較,如果s1>s2,輸出一個(gè)正數;s1<s2,輸出一個(gè)負數;s1==s2,輸出0。
    要求:不要用strcpy函數,兩個(gè)串用gets函數讀入,輸出的正數或負數的絕對值應是相比較的兩個(gè)字符串相應字符的ASCⅡ碼的差值。
#include<stdio.h>
void main()
{
 int i,resu;
 char str1[100],str2[200];
 printf("請輸入str1:\n");
 gets(str1);
 printf("請輸入str2:\n");
        gets(str2);
 i=0;
 while((str1[i]==str2[i])&&(str1[i]!='\0')) i++;
 if(str1=='\0'&&str2[i]=='\0') resu=0;
 else
  resu=str1[i]-str2[i];
         printf("%d\n",resu);
}

110.編寫(xiě)一個(gè)函數,由實(shí)參傳來(lái)一個(gè)字符串,把串中所有大寫(xiě)字母變成相應的小寫(xiě)字母;原串中所有的小寫(xiě)字母變成相應的大寫(xiě)字母,在主函數中輸入原字符串和輸出變換后的字符串,請編程。
#include<stdio.h>
void strupr(char str[]);
void main()
{
 char text[20];
    printf("請輸入字符串:\n");
    gets(text);
 printf("%s\n",text);
    strupr(text);
 printf("%s\n",text);
}
  void strupr(char str[])
  {
   int i;
   for(i=0;str[i]!='\0';i++)
   if(str[i]>='a'&&str[i]<='z')
   str[i]=str[i]+'A'-'a';
     else if(str[i]>='A'&&str[i]<='Z')
      str[i]=str[i]-'A'+'a';
  }

111.編程實(shí)現:由鍵盤(pán)輸入的任意一組字符中統計出大寫(xiě)字母的個(gè)m和小寫(xiě)字母的個(gè)數n,并輸出m、n中的較大者。
#include<stdio.h>
int fmax(int x,int y);
void main()
{
  char str[80];
  int m=0,n=0,i=0,k=0,c;
  printf("請輸入一個(gè)字符串\n");
  gets(str);
  for(i=0;str[i]!='\0';i++)
  if('A'<=str[i]&&str[i]<='Z')
   ++m;
  else if('a'<=str[i]&&str[i]<='z')
   ++n;
  else
   ++k;
  printf("有%d個(gè)大寫(xiě)字母,有%d個(gè)小寫(xiě)字母:\n",m,n);
  c=fmax(m,n);
  printf("max=%d\n",c);
}
int fmax(int x,int y)
  {
   int z;
   z=x>y?x:y;
   return z;
  }


112.定義一個(gè)含有30個(gè)整形元素的數組,按順序分別賦予從2開(kāi)始的偶數,然后按順序每五個(gè)數求出一個(gè)平均值,放在另一個(gè)數組中并輸出,請編程。
#include<stdio.h>
void main()
{
 int a[30] ,i,j=0,b[6][5],p,k;
 int c[6];
 for(i=0;i<30;i++)
  a[i]=2*(i+1);
    for(i=0;i<30;i++)
    
 {
   printf("%3d",a[i]);
          j++;
          if(j%5==0) printf("\n");}
 for(p=0;p<5;p++)
        for(k=0;k<6;k++)
 b[k][p]=a[5*k+p];
        for(k=0;k<6;k++)
 c[k]=(b[k][0]+b[k][1]+b[k][2]+b[k][3]+b[k][4])/5;
        for(k=0;k<6;k++)
 {printf("%3d",c[k]);}   
 printf("\n");
}

113.輸入一個(gè)整數,判斷它能否被3,5,7整除,并輸出以下信息之一:
  (1)能同時(shí)被3,5,7整除;
  (2)能被其中兩數(要指出哪兩個(gè)數)整除;
  (3)能被其中一個(gè)數(要指出哪個(gè)數)整除。
#include<stdio.h>
void main()
{
 int a;
 printf("請輸入一個(gè)整數\n");
 scanf("%d",&a);
 if(a%3==0&&a%5==0&&a%7==0)
  printf("%d能同時(shí)被3,5,7整除\n",a);
 else if(a%3!=0&&a%5==0&&a%7==0)
     printf("%d能同時(shí)被5,7整除\n",a);
    else if(a%3==0&&a%5!=0&&a%7==0)
  printf("%d能同時(shí)被3,7整除\n",a);
     else if(a%3==0&&a%5==0&&a%7!=0)
  printf("%d能同時(shí)被3,5整除\n",a);
     else if(a%3==0&&a%5!=0&&a%7!=0)
  printf("%d能被3整除\n",&a);
     else if(a%3!=0&&a%5==0&&a%7!=0)
       printf("%d能被5整除\n",a);
     else if(a%3!=0&&a%5!=0&&a%7==0)
     printf("%d能被7整除\n",a);
  else printf("%d不能被3,5,7整除\n",a);
}

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C程序上機考試設計題(附源代碼)-ッ志遠ヴ自留屋
c語(yǔ)言例題
《C語(yǔ)言程序設計》第三版課后答案
經(jīng)典C語(yǔ)言編程100例/編程開(kāi)發(fā)
經(jīng)典c程序
4.1 單項選擇題
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久