本科电大《C语言程序设计A》复习资料2

时间:2024-04-27 18:22:40 5A范文网 浏览: 复习资料 我要投稿

三、写出下列每个程序运行后的输出结果

   1. #include<stdio.h>

      void main() {

          int i,j,k=0;

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

              for(j=i; j<5; j++) k++;;

          printf("%d/n",k); }

运行结果:15


   2. #include<stdio.h>

       void main() {

           int x=20;

           int i=2;

           while(i<x) {

               if(x%i==0) {printf("%d ",i); x/=i;}

               i++; } }

运行结果:2   5

   3. #include<stdio.h>

      void main() {

          int a[8]={70,63,54,95,40,75,90,66};

          int i, s=0;

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

              if(a[i]>=70 && a[i]<=90) s+=a[i];

          printf("s=%d/n",s); }

运行结果:s=235

   4. #include<stdio.h>

      int WF(int x, int y) {

          x=x+y;

          y+=x;

          return x+y; }

      void main() {

          int x=3, y=5;

          printf("%d/n",WF(x,y)); }

运行结果: 21


   5. #include<stdio.h>

      int LA(int *a, int n) {

          int i,s=0;

          for(i=0;i<n;i++) s+=a[i];

          return s; }

      void main() {

          int a[5]={1,2,3,4,5};

          int b=LA(a,5)+LA(a+1,3);

          printf("b=%d/n",b); }

运行结果: b=24


6. #include<stdio.h>

      void main() {

          int x=5;

          switch(2*x-1) {

            case 4: printf("%d ",x); break;

            case 7: printf("%d ",2*x); break;

            case 10: printf("%d ",3*x); break;

            default: printf("%s ","default");  }

          printf("%s/n","switch end.");  }

运行结果:default  switch end.


7. #include<stdio.h>

      void main() {

          int f1,f2,i;

          f1=1;

          printf("%d ",f1);

          for(i=2;i<=5;i++) {

              f2=3*f1+1;

              printf("%d ",f2);

              f1=f2;  }

          printf("/n"); }

运行结果: 1   4   13   40   121


8. #include<stdio.h>

      void main() {

          int a[10]={12,39,26,41,55,63,72,40,83,95};

          int i, i1=0, i2=0;

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

              if(a[i]%2==1) i1++; else i2++;

          printf("%d %d/n",i1,i2);  }

运行结果:6   4

9. #include<stdio.h>

      #include<string.h>

      void main( ) {

          char s[15]="567891234";

          int i, n=strlen(s) ;

          for(i=0; i<n/2; i++) {

              char c=s[i];

              s[i]=s[n-1-i];

              s[n-1-i]=c; }

          printf("%s/n",s);  }

运行结果:432198765


10. #include<stdio.h>

      int LB(int *a, int n) {

          int i,s=1;

          for(i=0;i<n;i++) s*=*a++;

          return s; }

      void main() {

          int a[]={1,2,3,4,2,4,5,2};

          int b=LB(a,4)+LB(a+3,3);

          printf("b=%d/n",b);  }

运行结果: b=56


11. #include<stdio.h>

      void main() {

          int i, s=0;

          for(i=1;;i++) {

              if(s>30) break;

              if(i%2==0) s+=i; }

          printf("s=%d/n",s);  }

运行结果:s=42


12. #include<stdio.h>

      void main() {

          int a[9]={36,25,48,24,55,40,18,66,20};

          int i, b1, b2;

          b1=b2=a[0];

          for(i=1; i<9; i++) {

              if(a[i]>b1) b1=a[i];

              if(a[i]<b2) b2=a[i];  }

          printf("%d %d/n",b1,b2); }

运行结果:66   18


13. #include<stdio.h>

      void SB(char ch) {

          switch(ch) {

            case 'A': case 'a':

                printf("WW "); break;

            case 'B': case 'b':

                printf("GG "); break;

            default:

                printf("BB "); break; } }

      void main() {

          char a1='a',a2='B',a3='f';

          SB(a1);SB(a2);SB(a3);

          printf("/n");  }

运行结果:WW   GG   BB


14. #include<stdio.h>

      #define M 6

      void main() {

          int i,x;

          int a[M]={10,15,22,37,46,58};

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

{x=a[i]; a[i]=a[M-1-i]; a[M-1-i]=x;}

          for(i=0; i<6; i++) printf("%d ",a[i]);

          printf("/n"); }

运行结果:58   46   37   22   15   10


15. #include<stdio.h>

      struct Worker {

          char name[15]; int age; float pay; };

      void main() {

          struct Worker x={"wanghua",52,2350};

          struct Worker y, *p;

          y=x; p=&x;

        printf("%d  %7.2f/n", y.age+p->age, p->pay+20); }

运行结果:104  2370.00


16. #include<stdio.h>

      void main() {

          int i,s=0;

          for(i=1;i<6;i++) s+=i*i;

          printf(“s=%d/n”,s); }

运行结果: s=55


17. #include<stdio.h>

      #define N 6

      void main() {

          int i,a[N]={2,5,8,10,15,21};

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

              if(a[i]%5) printf("%d ",a[i]);

          printf("/n");  }

运行结果: 2   8   21


18. #include<stdio.h>

      #include<string.h>

      void main() {

          int i;

          unsigned int len;

          char* a[5]={"student","worker","cadre","soldier","zzeasan123"};

          len=strlen(a[0]);

          for(i=1; i<5; i++)

              if(strlen(a[i])>len) len=strlen(a[i]);

          printf("%d/n",len);  }

运行结果:10


19. #include<stdio.h>

       void main() {

           int a,b;

           for(a=2,b=3; b<20;) {

               printf("%d %d ",a,b);

               a=a+b;

               b=a+b; }

           printf("%d %d/n",a,b);  }

运行结果:2   3   5   8   13   21


20. #include<stdio.h>

      void LE(int* a, int* b) {

          int x=*a;

          *a=*b; *b=x;  }

      void main() {

          int x=15, y=26;

          printf("%d %d/n",x,y);

          LE(&x,&y);

          printf("%d %d/n",x,y); }

运行结果:15   26

         26   15


21. #include<stdio.h>

      void main() {

          int i, s1=0, s2=0;

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

              if(i%2) s1+=i;

              else s2+=i;

          printf("%d %d/n",s1,s2); }

运行结果: 25   20


22. #include<stdio.h>

      const int M=20;

      void main() {

          int i=2;

          while(1) {

              if(i>M/2) break;

              if(M%i==0) printf("%d ",i);

              i++;  }

          printf("/n");  }

运行结果: 2 4 5 10


23. #include<stdio.h>

      int a[6]={4,5,6,15,20,12};

      void main() {

          int i,s1,s2;

          s1=s2=0;

          for(i=0; i<6; i++) {

              switch(a[i]%2) {

                case 0: s2+=a[i];break;

                case 1: s1+=a[i];break; } }

          printf("%d %d/n",s1,s2);  }

运行结果:20 42


24. #include<stdio.h>

      void main() {

          int a[3][3]={{3,5,7},{9,11,13},{6,8,20}};

          int i,*p=&a[0][0];

          for(i=0;i<9;i++) {

              if(*p>10) printf("%d ",*p);

              p++;   }

          printf("/n");  }

运行结果:11 13 20


25. #include<stdio.h>

      #include<string.h>

      struct Worker { char name[15]; int age; float pay;};

      void main() {

          struct Worker x;

          char *t="liouting";

          int d=38; float f=400;

          strcpy(x.name,t);

          x.age=d; x.pay=f;

          x.age++; x.pay*=2;

         printf("%s  %d  %6.2f/n",x.name,x.age,x.pay); }

运行结果: liouting  39  800.00


26. #include<stdio. h>

void main() {

 int i,j ,k==0;

 for ({i=O;i<5;i++)

   for(j=i;j<5;j++) k++;;

 printf("%d/n",k) ; }

运行结果:15


27. #include<stdio. h>

void main() {

 int x=20;

 int i=2;

 while(i<x) {

   if(x%i==0) {printf("%d",i); x/=i;}

   i++;  }}

运行结果:25


28. #include<stdio. h>

void main() {

 int a[8]={76,63,54,95,40,75,90,66};

 int i, s=0;

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

   if(a[i]>=70 && a[i]<=90) s+=a[i];

 printf("s=%d/n",s) ; }

运行结果:s=241


29. #include<stdio. h>

int WF(int x , int y) {

 x=x+y;

 y+=x;

 return x+y; }

void main() {

 int x=3 , y=8;

 printf("%d/n" ,WF(x,y));}

运行结果:30


30. #include<stdio. h>

int LA(int *a,int n) {

 int i,s=O;

 for(i=O; i<n;i++) s+=a[i];

return s; }

void main() {

 int a[5]={1 ,2,3,4,5};

 int b=LA(a,5)+LA(a+2,3);

 printf("b=%d/n",b);}

运行结果:b=27


四、写出下列每个函数的功能

1. int WC(int a[],int n, int k) {

    int i, c=O;

    for(i=O; i<n;i++)

      if(a[i]>=k) c++;

    return c; }

函数功能:统计并返回一维整型数组a[n]中大于等于k的值的个数。


2. void QA(struct Worker a[],int n)

  {int i;

   for(i=O; i<n; i++)

     scanf("%s%d%f", a[i].name,&a[i].age,&a[i].pay);}

假定结构类型 struct Worker的定义如下:

struct Worker{char name[15];int age;float pay;};

函数功能:从键盘上为具有struct Worker类型的数组a[n]输入n个记录。


3. #include<stdio.h>

      int SA(int a, int b) {

          if(a>b) return 1;

          else if(a==b) return 0;

          else return -1;  }

函数功能:比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a<b则返回-1。


4. void Output(struct IntNode *f)  //f为单链表的表头指针

       {   if(!f) return;

           while(f) {

               printf("%d ",f->data);

               f=f->next;  }

           printf("/n");  }

   假定struct IntNode的类型定义为:

       struct IntNode { int data; struct IntNode* next;};

函数功能:遍历并输出由f所指向的单链表中每个结点的值。


5. int SG(int x) {            //x为大于等于2的整数

          int i=2;

          if(x==2 || x==3) return 1;

          while(i*i<=x) {

              if(x%i==0) break;

              i++;  }

          if(i*i<=x)return 0; else return 1; }

函数功能:判断x是否为一个素数,若是则返回1,否则返回0。


6. int FindMax(struct IntNode *f)  

//f为一个单链表的表头指针

      {   int x;

          if(!f) {printf("单链表为空/n"),exit(1);}

          x=f->data;

          f=f->next;

          while(f) {

              if(f->data>x) x=f->data;

              f=f->next;   }

          return x;   }

   假定struct IntNode的结点类型定义为:

       struct IntNode { int data; struct IntNode* next;};

函数功能:求出并返回由f所指向的单链表中所有结点的最大值。


五、按题目要求编写程序或函数

1. 编写一个程序,计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。

程序为:

      #include<stdio.h>

      void main(){

          int i;

          int p=1;                          

          int s=1;                          

          for(i=1;i<=10;i++) {p*=3; s+=p;}  

          printf("%d/n",s); }


2. 根据函数原型“int FF(int a[], int n)”,编写函数定义,计算并返回数组a[n]中所有元素之和。

程序为:

int FF(int a[], int n) {

          int i,sum=0;                      

          for(i=0; i<n; i++) sum+=a[i];    

          return sum;  }


3. 编写一个主函数,计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。

程序为:

#include<stdio.h>

      void main(){

          int i;

          int p=1;                          

          int s=1;                          

          for(i=1;i<=10;i++) {p*=3; s+=p;}  

          printf("%d/n",s);  }


4. 根据函数原型“int FF(int a[], int n)”,编写函数定义,计算并返回数组a[n]中所有元素之和。

程序为:

int FF(int a[], int n)  {

          int i,sum=0;                    

          for(i=0; i<n; i++) sum+=a[i];    

          return sum;    }


5. 编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。

程序为:#include<stdio.h>                

      void main()  {

          int i;                                  

          for(i=3; i<=50; i++)                    

              if(i%3==0 || i%5==0) printf("%d ",i);  

          printf("/n"); }


6. 编写一个递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素之积并返回。

程序为: int FF(int a[], int n){

          if(n<=0) {printf("n值非法/n"),exit(1);}  

          if(n==1) return a[n-1];      

          else return a[n-1]*FF(a,n-1); }


7. 编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。

#include<stdio.h>                              

      void main() {

          int i;                                  

          for(i=3; i<=50; i++)                      

              if(i%3==0 || i%5==0) printf("%d ",i);  

          printf("/n");  }


8. 编写一个递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素之积并返回。

int FF(int a[], int n)   {

          if(n<=0) {printf("n值非法/n"),exit(1);}    

          if(n==1) return a[n-1];                    

          else return a[n-1]*FF(a,n-1);  }


9.根据函数原型"double Mean(double a[M][N] ,int m ,int n)",编写函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定在计算过程中采用变量v存放累加值和最后的平均值。

double Mean(double a[M][N] ,int m ,int n) {

 int i,j;

 double v=O.0;

 for(i=O; i<m; i++)

   for(j=O; j<n;j++) v+=a[i][j];

 v/=m*n;

 return v; } //注:函数体的最后两行可以合并为一条返回语句:return v/=m*n,也可以把"="去掉。


10.根据函数原型"int MM(int a[],int m)",编写函数定义,计算并返回数组a[m]中元素最大值和最小值之差。

int MM(int a[],int m){

 int i,x1,x2;

 xl=x2=a[0];  

 for(i=1; i<m;i++){

   if(a[i]>x1) xl=a[i];

   if(a[i]<x2) x2=a[i];}

  return xl-x2;}


来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。

相关文章:

下列关于会计主体假设的说法,正确的是()。A会计主体是04-27

经过批准或备案的合法统计调查报表的()需标明法定标识04-27

根据《关于统计上划分经济成分的规定》,()不属于非公有04-27

在实际工作中,常常对矿山、油田、森工局、电网等企业按04-27

从全部调查研究对象中,抽选一部分单位进行调查,并据以对04-27

从一般意义上讲,会计对象就是社会再生产过程中的()。A04-27

经济普查的对象是()。A从事第一产业活动的单位和农户B04-27

人口普查长表要求按()的比例抽选调查户后,逐户逐人调查04-27

会计信息质量要求中,()要求企业应当以实际发生的交易或04-27

通过盘点实物,核实账面数额来确定账实是否相符的一种方04-27

热搜文章
最新文章