C语言程序设计作业辅导答案联系:微信号 cococn题目如下:第一组:一、编程题(每题20分,共40分)1、编写程序。
定义数组sco存放30名学生的成绩。
将成绩由高到低排序,并输出排序结果和所有高于平均分数的成绩(结果保留两位小数)。
2、编写程序。
先编写一个子函数求x n,再通过主函数调用该子函数,对输入的一个数y,求y5并输出。
二、程序填空。
在程序中的序号处填上正确的内容。
(每空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 12 3 4 5 6 2 33 4 5 6 7 3 4 54 5 6 7 8 4 5 6 75 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+!11+!21+!31+…+!1n 求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 0void 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分)1、打印出杨辉三角形(只打印出10行,形式如下)。
11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1……)! (!!nmnm#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]);_____④_____;}}2、将输入的一个字符串(以!结束)中的小写字母转换成大写字母,然后输出到磁盘文件“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);}。