资源描述:
《matlab题目及其答案1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、请补充main函数,该函数的功能是:计算两个自然数n和m(m<10000)之间所有数的和(n和m从键盘输入)。例如,当n=1,m=100时,sum=5050;当n=100,m=1000时,sum=495550。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。试题程序:#include#include#includevoidmain(){intn,m;longsum;【1】;s
2、ystem("CLS");printf("Inputn,m");scanf("%d,%d",&n,&m);while(n<=m){【2】;n++;}printf("sum=%【3】",sum);}下列给定程序中,fun函数的功能是:根据形参m,计算下列公式的值:t=1+1/2+1/3+1/4+…+1/m例如,若输入5,则应输出2.283333。请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include3、h>#include#includedoublefun(intm){doublet=1.0;intI;for(I=2;I<=m;I++)/*************found**************/t+=1.0/k;/*************found**************/returnI;}voidmain(){intm;system("CLS");printf("Pleaseenter1integernumber:");scanf("%d",&m)
4、;printf("Theresultis%1f",fun(m));}请编写一个函数voidfun(char*tt,intpp[]),统计在tt字符串中"a"到"z"26个字母各自出现的次数,并依次放在pp所指数组中。例如,当输入字符串abcdefghabcdeabc后,程序的输出结果应该是:333221110000000000000000000注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include5、h>#include#includevoidfun(char*tt,intpp[]){}voidmain(){FILE*wf;charaa[1000];intbb[26],k;system("CLS");printf("Pleaseenteracharstring:");scanf("%s",aa);fun(aa,bb);for(k=0;k<26;k++)printf("%d",bb[k]);printf("");/**********************
6、********/wf=fopen("out.dat","w");fun("abcdefgabcdeabc",bb);for(k=0;k<26;k++)fprintf(wf,"%d",bb[k]);fclose(wf);/*****************************/}【参考答案】(1)sum=0(2)sum+=n(3)ld【考点分析】本题考查:变量初始化,需要注意该变量是累加器还是累乘器:printf()函数,其一般形式为"printf("格式控制符",输出表列)"。其中,格式控制符用于指
7、定输出格式,可由格式字符串和非格式字符串两种组成,格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等,如"%ld"表示按十进制长整型输出,非格式字符串在输出时原样照印,在显示中起提示作用。【解题思路】填空1:变量sum进行了类型声明,但没有进行初始化,而后面的程序用sum来存放最后的结果,所以要在使用前将sum初始化为0。填空2:通过while循环将自然数n和m之间的数进行累加,结果存于sum中。填空3:由于sum为长整型,所以标准输出函数printf()
8、中的格式控制符为"%ld"。【解题宝典】在求和运算时,一般要设定一个变量sum作为累加器,并赋初值为0,即sum=0;在求积运算时,一般要设定一个变量pro作为累乘器,另赋初值为1,即pro=1,然后通过循环语句和表达式通项来实现。【参考答案】(1)错误:t+=1.0/k;正确:t+=1.0/I;(2)错误:returnI;正确:returnt;【考点分析】本题考查:for循环语句的循环条件,这类题目的一般解法是根据题意确定循