《C语言程序设计A》课程作业评讲(2)

2019-08-31 10:18

《C语言程序设计A》课程作业评讲(2)

下面我们将对形成性考核作业册(第一次作业)中的第五题进行作业评讲。 下文中,黑色的是问题与答案,绿色是说明和解释。 五、根据下列每个题目要求编写程序

1.编写一个函数,函数头格式为“void fun4(char *a , int b[])”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素。

此题的考核知识点有3个:

⑴第三章流程控制语句中的while循环语句和if语句的编程; ⑵第四章中一维数组应用; ⑶第六章 函数的编程。 分析:

此题主要考核第六章函数的编程,要求熟悉函数的格式以及参数的传递方式,要求用函数来实现统计每种十进制数字出现的次数,统计次数用数组来完成。

答案:

#include void fun4(char* a,int b[]){ }

/*void main() {

char * a=\int b[10]={0}; fun4(a,b);

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

第 1 页 共 5 页

do{

if(*a>='0' && *a<='9')b[*a-48]++;

}while(*a++);

}*/

printf(\

2.编写一个函数,函数头格式为“double Mean(double a[M][N] , int m , int n)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程是采用变量v存放平均值。

此题的考核知识点有3个:

⑴第三章流程控制语句中的for循环语句的编程; ⑵第四章中二维数组应用; ⑶第六章中函数的编程。 分析:

此题主要考核第六章函数的编程,要计算平均值,必须先求所有元素之和,所以要用到累加求和程序“s=s+x”,最后除以所有元素的个数即可。

答案:

#include const int M=2,N=3;

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

/*void main() { }*/

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

第 2 页 共 5 页

double v=0; for(int i=0;i

for(int j=0;j

v+=a[i][j];

return v/(m*n);

double a[2][3]={1,2,3,4,5,6}; printf(\

返回。

此题的考核知识点有4个:

⑴第三章流程控制语句中的if语句的编程; ⑵第四章中一维数组应用; ⑶第六章中函数的编程; ⑷第六章中递归函数的编程;。 分析:

此题主要考核第六章递归函数的编程,要求熟悉递归函数的格式以及参数的传递方式,此题的关键是要构造递归表达式“mul=a[n-1]*FF(a,n-1);”。

答案:

#include int FF(int a[] , int n){ }

/*void main() { }*/

4.编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+??+1/n>5的最小n值。

此题的考核知识点是:第三章流程控制语句中的if语句和while循环的编程。 分析:

此题主要考核第三章中利用流程控制语句中的if语句和while循环来实现累加求和的程

第 3 页 共 5 页

int mul=1; if(n==1)mul*=a[0]; else mul=a[n-1]*FF(a,n-1); return mul;

int a[6]={1,2,3,4,5,6}; printf(\

序,很显然要用到累加求和程序“s=s+x”。

答案:

#include void main() { }

5.编写一个主函数,求满足不等式22+42+??+n2<1000的最大n值,假定分别用i和s为取偶数值和累加值的变量,并限定使用do循环编程。

此题的考核知识点是:第三章流程控制语句中的if语句和do---while循环的编程。 分析:

此题的编程方法跟上题类似。 答案:

#include void main() {

int s=0,i=2; do {

s+=i*i;

第 4 页 共 5 页

double sum=0; int n=1; while(true) { }

printf(\

if(sum + 1/(double)n > 5)break; else

sum += 1/(double)n;

n++;

}

if(s+(i+2)*(i+2)>=1000)break; else i+=2;

}while(true);

printf(\

6.编写一个主函数,计算并输出n!的值,其中n值由键盘输入。 此题的考核知识点是:第三章流程控制语句中的for循环的编程。 分析:

此题主要考核第三章中利用流程控制语句中的for循环来实现累乘求和的程序,很显然要用到累加求和程序“s=s*x”。

答案:

#include void main() { }

int s=0,n;

printf(\请输入n的值:\scanf(\for(int i=1;i<=n;i++)

s=s*i;

printf(\

第 5 页 共 5 页


《C语言程序设计A》课程作业评讲(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:重要设施安全检查签证记录 11(2)(1)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: