- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C语言程序设计A》课程作业评讲.doc
《C语言程序设计A》课程作业评讲(2)
下面我们将对形成性考核作业册(第一次作业)中的第五题进行作业评讲。
下文中,黑色的是问题与答案,绿色是说明和解释。
五、根据下列每个题目要求编写程序
1.编写一个函数,函数头格式为“void fun4(char *a , int b[])”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素。
此题的考核知识点有3个:
⑴第三章流程控制语句中的while循环语句和if语句的编程;
⑵第四章中一维数组应用;
⑶第六章 函数的编程。
分析:
此题主要考核第六章函数的编程,要求熟悉函数的格式以及参数的传递方式,要求用函数来实现统计每种十进制数字出现的次数,统计次数用数组来完成。
答案:
#includestdio.h
void fun4(char* a,int b[]){
do{
if(*a=0 *a=9)b[*a-48]++;
}while(*a++);
}
/*void main()
{
char * a=122333444499888;
int b[10]={0};
fun4(a,b);
for(int i=0;i10;i++)
printf(%d ,b[i]);
}*/
2.编写一个函数,函数头格式为“double Mean(double a[M][N] , int m , int n)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程是采用变量v存放平均值。
此题的考核知识点有3个:
⑴第三章流程控制语句中的for循环语句的编程;
⑵第四章中二维数组应用;
⑶第六章中函数的编程。
分析:
此题主要考核第六章函数的编程,要计算平均值,必须先求所有元素之和,所以要用到累加求和程序“s=s+x”,最后除以所有元素的个数即可。
答案:
#includestdio.h
const int M=2,N=3;
double Mean(double a[M][N], int m,int n ){
double v=0;
for(int i=0;im;i++)
for(int j=0;jn;j++)
v+=a[i][j];
return v/(m*n);
}
/*void main()
{
double a[2][3]={1,2,3,4,5,6};
printf(%lf\n,Mean(a,2,3));
}*/
3.编写一个递归函数“int FF(int a[] , int n)”,求出数组a中所有元素n个元素之积并返回。
此题的考核知识点有4个:
⑴第三章流程控制语句中的if语句的编程;
⑵第四章中一维数组应用;
⑶第六章中函数的编程;
⑷第六章中递归函数的编程;。
分析:
此题主要考核第六章递归函数的编程,要求熟悉递归函数的格式以及参数的传递方式,此题的关键是要构造递归表达式“mul=a[n-1]*FF(a,n-1);”。
答案:
#includestdio.h
int FF(int a[] , int n){
int mul=1;
if(n==1)mul*=a[0];
else mul=a[n-1]*FF(a,n-1);
return mul;
}
/*void main()
{
int a[6]={1,2,3,4,5,6};
printf(%d\n,FF(a,6));
}*/
4.编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+……+1/n5的最小n值。
此题的考核知识点是:第三章流程控制语句中的if语句和while循环的编程。
分析:
此题主要考核第三章中利用流程控制语句中的if语句和while循环来实现累加求和的程序,很显然要用到累加求和程序“s=s+x”。
答案:
#includestdio.h
void main()
{
double sum=0;
int n=1;
while(true)
{
if(sum + 1/(double)n 5)break;
else
sum += 1/(double)n;
n++;
}
printf(%d, %lf\n,n,sum);
}
5.编写一个主函数,求满足不等式22+42+……+n21000的最大n值,假定分别用i和s为取偶数值和累加值的变量,并限定使用do循环编程。
此题的考核知识点是:第三章流程控制语句中的if语句和do---while循环的编程。
分析:
此题的编程方法跟上题类似。
答案:
#includestdio.h
void main()
{
int s=0,i=2;
do
{
s+=i*i;
if(s+(i+2)*(i+2)=
您可能关注的文档
- ty经济法笔记第七章.doc
- UG教程特征的扩展与操作.doc
- UG模具设计任务书(课题1)sjk.doc
- UML第一次实验报告.doc
- UML系统分析与设计实验报告模板(用例图分析与设计).doc
- Unity3D游戏开发培训课程.doc
- upfile2Ffiles200512122F资源与运营管理复习范围.doc
- u盘数据恢复怎样安全.doc
- VB6.0中DataGrid的应用.doc
- VBA编程基础讲义.doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)