| 
 | 
 
C语言程序设计 
要求: 
独立完成,下面已将三组题目列出,请任选一组题目作答,满分100分; 
二、答题步骤: 
使用A4纸打印学院指定答题纸(答题纸请详见附件); 
在答题纸上使用黑色水笔按题目要求手写作答;答题纸上全部信息要求手写,包括中心、学号、姓名、科目、答题组数等基本信息和答题内容,请写明题型、题号; 
三、提交方式:请将作答完成后的整页答题纸以图片形式依次粘贴在一个Word 
    文档中上传(只粘贴部分内容的图片不给分),图片请保持正向、清晰; 
上传文件命名为“中心-学号-姓名-科目.doc”  
文件容量大小:不得超过10MB。 
提示:未按要求作答题目的作业及雷同作业,成绩以0分记! 
 
 
题目如下: 
第一组: 
一、编程题(每题20分,共40分) 
1、编写程序。定义数组sco存放30名学生的成绩。将成绩由高到低排序,并输出排序结 
果和所有高于平均分数的成绩(结果保留两位小数)。 
2、编写程序。先编写一个子函数求x,再通过主函数调用该子函数,对输入的一个数y, 
求y并输出。 
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分) 
1、程序用于求两个数的和与差。 
#include <stdio.h"> 
int  fun(int a,int b, int *psub) 
{  int sum; 
             sum=a+b; 
             _____①_____=a-b; 
             return sum; 
          } 
void main( ) 
{  int x,y,s1,s2; 
            scanf(“%d%d”, _____②_____); 
            s1=fun(x,y, _____③_____); 
            printf(“sum=%d\n sub=%d\n”, _____④_____); 
          } 
 
 
 
2、对于5×5的方阵,输出其下三角的元素。 
1  2  3  4  5            1 
2  3  4  5  6            2  3 
3  4  5  6  7            3  4  5 
4  5  6  7  8            4  5  6  7 
5  6  7  8  9            5  6  7  8  9  
 
      #include<stdio.h> 
              void main() 
{ int   _____①_____,i,j; 
               for(i=0;i<5;i++) 
                for(j=0;j<5;j++) 
                      a[i][j]= _____②_____; 
                   for(i=0;i<5;i++) 
                {  for(j=0; _____③_____;j++) 
                    printf("%4d", a[i][j]); 
                    _____④_____; } 
} 
 
 
 
3、输出所有的水仙花数。所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153是一水仙花数,因为153=13+53+33 
#include <stdio.h> 
void main() 
{ 
int n, i, j, k; 
for(n=100; n<= _____①_____; n++) 
{ 
i = n/100;              // 取出n的百位数 
j =  ___ __②_____;     // 取出n的十位数 
k =  __ ___③_____;    // 取出n的个位数 
if(n==_____④_____) 
printf("%d\n",n); 
} 
} 
 
 
 
 
  三、写出程序的执行结果(每题4分,共12分) 
1、 
          #include <stdio.h>  
void main( ) 
{  int i, j; 
    for (i=1; i<5; i++) 
    {  for( j=1; j<=12-i; j++)  
        printf(“  “);   
        for (j=1; j<=i; j++)  
            printf(“%4d”,i); 
        printf(“\n”);  
     } 
} 
 
 
 
2、 
#include <stdio.h> 
      int a=5; 
      void fun(int b) 
      {   int a=10; 
          a+=b;  
          printf("%d ",a); 
      } 
      void main() 
      {   int c=20; 
          fun(c);a+=c; 
          printf("%d\n",a); 
      } 
 
 
 
 
 
3、 
#include <stdio.h> 
void sub (int x,int y,int *z) 
{ *z=x-y; } 
void main() 
{ int a,b,c; 
sub(10,6,&c); 
sub(8,c,&b); 
sub(c,b,&a); 
printf(“%d  %d  %d\n”,a,b,c); 
} 
 
 
 
 
第二组: 
一、编程题(每题20分,共40分) 
1、编写程序。输入一行字符(以回车符结束),分别统计其中字母、数字和其他符号的个数。 
 
2、编写程序。要求编写子函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0,再调用该子函数求100以内的全部素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分) 
1、按照公式 e=1++++…+求e的近似值,至n=10为止。 
#include < stdio.n> 
void main ( ) 
{ float_____①_____; 
       int n=1, i; 
       for(_____②_____) 
       { n=_____③_____; 
        e=_____④_____; 
       }  
       printf (“ e= %f\n” ,e); 
      }  
 
  
 
    2、将文件file1.dat中的内容复制到file2.dat中。      
          #include <stdio.h> 
#define  Null  0 
void main() 
{  FILE_____①_____; 
             char ch; 
             if((p1=fopen(“file1.dat”,”r”)= =Null)||(p2=fopen(“file2.dat”,”w”)= =Null )) 
             { printf(“Can’t open file\n”); _____②_____; } 
             while(_____③_____) 
              { ch=_____④_____; fputc(ch,p2); } 
             fclose(p1); 
             fclose(p2); 
          } 
 
 
 
3、求二维数组a[5][4]中所有元素的平均值。 
   #include <stdio.h> 
____  _①_  ____     
void main ( ) 
   {  int a[5][4],i ,j, pa; 
      for (i=0;i<5;i++) 
        for (j=0;j<4;j++) 
          scanf(“%d”, &a[i][j]); 
      pa= _____②_____;  
      printf (“average=%d\n”,pa); 
   } 
int average (int s[ ][4] ) 
   {  int i,j,aver=0; 
      for (i=0;i<5;i++) 
        for (j=0;j<4;j++) aver=aver+s[i][j]; 
     aver=_____③_____; 
     _____④_____;         
    } 
 
 
 
  三、写出程序的执行结果(每题4分,共12分) 
1、 
         #include <stdio.h>                 
void main() 
         {  int i, j, k=4; 
for (int i=1;i<=k;i++) 
printf("%c",’*’); printf("\n"); 
            for (int i=1;i<=k-2;i++)  
                      {  printf("%c",’*’);  
for (j=1;j<= k-2;j++) 
printf(" "); 
printf("*\n");   
} 
            for (i=1;i<=k;i++)  
                       printf("%c",’*’); printf("\n"); 
}  
 
    
 
 
2、 
#include <stdio.h> 
void fun(int s[ ]); 
void main() 
{ int a[ ]={1,2,3,4,5,6},k; 
fun(a);  
for(k=0;k<=5;k++) printf(“%d  ”,a[k]); 
printf(“\n”); 
} 
void fun(int s[ ]) 
{  int i=0; 
 while(i<3) { s[i]=s[i]+5;  i++; } 
} 
 
 
 
3、 
   #include <stdio.h> 
void main() 
{ int j, a[ ]={1,2,3,4,10,12,13,15}; 
for( j=3; j>0; j--) 
      switch ( j ) 
       {  case 1: 
          case 2: printf(“%d,”, a[j+4]); break; 
          case 3: printf(“%d,”, a[j-1]); 
        } 
              printf(“\n”); 
} 
 
 
 
 
第三组: 
一、编程题(每题20分,共40分) 
1、编写程序。每当输入10个评委的分数后,求该选手的最后得分并输出(设10个评委按照以下打分原则为选手打分:去掉一个最高分和一个最低分,剩下的求平均分作为选手的最后得分)。 
2、编写程序。先定义一个求n!的子函数fact,调用该子函数计算并输出 
的值(m、n的值由键盘输入)。      
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分) 
 
打印出杨辉三角形(只打印出10行,形式如下)。 
       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; 
           int  a[10][10]; 
           for(i=0;i<10;i++)a[i][0]=1, _____①_____; 
           for(_____②_____;i<10;i++) 
            for(j=1;j<i;j++) 
              a[i][j]= _____③_____; 
           for(i=0;i<10;i++) 
          {  for(j=0;j<=i;j++) 
              printf("%5d",a[i][j]); 
             _____④_____; 
          } 
} 
 
 
 
将输入的一个字符串(以!结束)中的小写字母转换成大写字母,然后输出到磁盘文件“test”中。 
 
#include <stdio.h> 
         void main() 
         { _____①_____; 
          char str[100],filename[10]; 
          int i=0; 
          if((fp=_____②_____ ==NULL) 
         { printf("cannot open the file\n");exit(0); } 
          printf("please input a string:\n"); 
          gets(str); 
          while(_____③_____) 
          { if(str[i]>='a'&&str[i]<='z') 
             str[i]=str[i]-32; 
             fputc(str[i],fp); 
             _____④_____; 
          } 
          fclose(fp); 
} 
 
 
 
3、输出如下图形。 
 
        *     * 
        *    * 
        *  * 
        * 
        *  * 
        *   * 
        *    * 
 
#include <stdlib.h>void main() 
{ int i=1,j; 
           while(i<=3) 
         {  j=1; 
            printf("*"); 
            while(j<=3) 
            { printf(" "); 
               _____①_____; } 
              printf("*\n"); 
              _____②_____; 
           } 
           _____③_____; 
           i=1; 
           while(i<=3) 
           {   j=1; 
             printf("*"); 
               while(_____④_____) 
               { printf(" "); 
                j++; } 
               printf("*\n"); 
               i++; 
            } 
          } 
 
 
   
  三、写出程序的执行结果(每题4分,共12分) 
1、 
          #include  <stdio.h>      
          void sub(int x,int y,int *z) 
          { *z = x+y;} 
          void main() 
          { int a=5,b=6,c=7; 
printf(“%d,%d,%d    ”,a,b,c); 
sub(b,c,&a); sub(a,b,&c) 
printf(“%d,%d,%d\n”,a,b,c); 
}  
 
 
 
2、 
        #include  <stdio.h> 
void main () 
{  int  x=1,a=0,b=0; 
switch(x) 
              {  case 1:a++ ; 
case 2:a++; b++; break; 
default: b++;break; 
} 
printf(“a=%d,b=%d”,a,b); 
} 
 
 
 
3、 
              #include<stdio.h> 
void fun(int?x); 
void main() 
{  fun(7); 
printf("\n"); 
} 
void fun(int x) 
{  if(x/2>1) 
fun(x/2); 
printf("%5d",x); 
}  
 
本帖由易百网整理发布www.openhelp100.com 
 
 |   
 
 
 
 |