ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:65.93KB ,
资源ID:3300677      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3300677.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(上机100套题及答案7180文档格式.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

上机100套题及答案7180文档格式.docx

1、CLS); printf(Input nn scanf(%d,&n);Input mnm); for(i=0;im-n;i+) bbi=0; k=fun(n,m,bb);k; printf(%4d,bbi);【参考答案】 (1) flag=1 (2) j%i=0 (3) flag=1 【解题思路】 填空1:由flag决定当前判断的数是否为素数,先置flag为1,如果判断当前数不是素数,则将flag置0。填空2:如果一个数能被除了1和其自身之外的数整除(即余数为0),则这个数不是素数。填空3:如果flag等于1,则说明当前数是素数,并把它存入数组bb中。下列给定程序中,函数fun的功能是:根据整

2、型参数m,计算如下公式的值。例如,若m=2000,则应输出0.000160。请改正程序中的错误,使它能得出正确的结果。不要改动main函数,不得增行或删行,也不得更改程序的结构。/*found*/fun (int m) double y=0, d; int I; for(I=100,I=m,I+=100) d=(double)I*(double)I; y+=1.0/d; return(y); int n=2000;nThe result is %1fn,fun(n);(1)错误:fun(int m) 正确:double fun(int m) (2)错误:=m,I+=100) for(i=100

3、;i+=100) 题目要求在函数fun()中求级数前m项和,可用循环语句,每次计算级数中的一项,然后累加。此题的难点在于定义fun(int m),由后面函数的应用,可以确定应该定义成double fun(int m)。for(i=100,i3)的最小数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 假如:当t=1000时,函数值为1597。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。math.hint fun(int t) int n; FILE *out; n=100

4、0;n=%d, f=%dn,n, fun(n); /*/ out=fopen(out.dat,w for(n=500;n3000;n+=500) fprintf(out,%dn fclose(out);int fun(int t) int a=1,b=1,c=0,i;/*a代表第n-2项,b代表第n-1项,c代表第n项,*/ /*如果求得的数c比指定的数小,则计算下一个Fibonacci数,对a,b重新置数*/ for(i=4;=t;i+) if(c2)的素数的个数,并作为函数值返回。int fun(int n) int I,j,count=0;nThe prime number betwee

5、n 2 to %dn,n); for(I=2;=n; for(【1】;I; if(【2】%j=0) if(【3】=I) count+; printf(count%15?%5d:n%5d,I); return count;main() int n=20,r; r=fun(n);nThe number of prime is:,r);【参考答案】 (1) j=2 (2) i (3) j 判断一个数是否为素数时,也就是判断这个数是否能被除了1和其自身之外的因子整除,所以for循环的变量从2开始。如果一个数能被除了1和其自身之外的数整除,则这个数不是素数。当运行到这段程序时,表示j只能被1和其自身整除

6、,说明是素数。计算并输出下列数的前N项之和SN,直到SN+1大于q为止,q的值通过形参传入。例如,若q的值为50.0,则函数值为49.394948。请改正程序中的错误,使程序能得出正确的结果。double fun(double q) int n; double s,t; n=2; s=2.0; while(s=q) t=s; s=s+(n+1)/n; n+;n=%dn return s;%fn ,fun(50);(1 1)错误:s=s+(n+1)/n ;s=s+(double)(n+1)/n;(2 2 )错误:return s; 正确:return t;【考点分析】 本题考查:变量数据类型,根

7、据题目要求需要进行强制转换;return语句,功能是计算表达式的值,并返回给主调函数。【解题思路】 (1)在C语言中,整数除以整数得出的结果也是整数,题中是计算小数的,所以要转变类型。(2)观察while循环,假如返回值是s,那么返回的是大于q的值,题中所要返回的是小于q的值,所以应该返回t。编写函数fun,它的功能是:计算和输出下列级数的和。例如,当n=10时,函数值为0.909091。#includedouble fun(int n) FILE *wf;%fn,fun(10);/*/ wf=fopen( fprintf(wf,%f fclose(wf);/*/double fun(int

8、n) int i; double s=0.0; for(i=1; s=s+1.0/(i*(i+1);/*求级数的和*/ 解决数学序列的问题,我们的思路依然是数学先行,即先看清楚题目的数学逻辑,然后再用C语言翻译出来。本题中,每一项的值都是n*(n+1)的倒数。当输入n时,从1开始循环,注意,此处for(i=1;i+)中的=号必须要有,另外,表达式1.0/(i*(i+1)中的两对小括号一个都不能少。若写成1.0/i*(i+1),则相当于(i+1)/i,结果就差之千里了。第七十三套求不超过给定自然数的所有偶数之和。long fun(int x) int I,s; s=【1】;【2】;I+=2) s

9、+=I; donPlease enter natural numbers n: scanf( while (n=0);n不超过给定自然数%d的各偶数只和为%dn,n,fun(n);【参考答案】 (1) 0 (2) i=x 【解题思路】 填空1:根据题意,偶数当然要从0开始,所以s=0。不论给定的数是偶数还是奇数,只要小于等于x,便应该计算在内。下列给定程序中函数fun的功能是:统计子字符串substr在字符串str中出现的次数。例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。int fun(char *str,*substr) int i, j, k,num=0; /*fo

10、und*/ for(i=0,stri,i+) for(j=i,k=0;substrk=strj;k+,j+) if(substrk+1=0) num+; break; return num; char str80,substr80;Input a string: gets(str);Input a substring: gets(substr);%dn ,fun(str,substr); 【参考答案】 int fun(char *str, *substr) int fun(char *str, char *substr) for (i=0, stri, i+) for (i=0;stri;从字

11、符串s中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历;若s串的当前字符等于t串的第1个字符,两个字符串的指针自动加1,继续比较下一个字符;若比较至字符串的末尾,则跳出循环;若s串的字符和t串的字符不对应相同,则继续对s串的下一个字符进行处理。本题都是简单的语法错误,不再阐述。请编写函数fun,其功能是:计算并输出下列多项式的值。S=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+n) 例如,若主函数从键盘给n输入50后,则输出为S=1.960784。 double s;nInput n: s=fun(n);nns=%fnn,s); double s=0.0,s1=0.0;

12、 s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1;/*求S=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+n)*/ 该程序的数学思路是:在程序中输入n后,以前n项的和作为分母递加,由于s1是浮点类数据所以s=s+1.0/s1;,for循环的作用是每一次循环给总结果s加上一项1.0/s1。 第七十四套给定程序功能是:计算S=f(-n)+f(-n+1)+f(0)+f(1)+f(2)+f(n)的值。例如,当n为5时,函数值应为:10.407143。请勿改动main函数中的任何内容,仅在f函数和函数fun的横线上填入所编写的若干表达式或语句。double f(double

13、x) if(fabs(x-0.0)0.000001 | fabs(x-2.0)0.000001) return 【1】; else if(x0.0) return(x-1)/(x-2); return(x+1)/(x-2); double s=0.0,y; for(I=-n; I=【2】; y=f(1.0*I); s+=y; return 【3】; system(%lfn, fun(5);(1) 0.0或0或(double)0 (2) n (3) s 根据函数f(x)中的条件可以知道,当x=0或2时,返回值为0,所以填入0.0、0或(double)0。由题意可知,s要计算f(-n)到f(n)的

14、和,所以for循环的范围为-n到n。计算的结果要返回输出,所以返回值是总和s。下列给定程序中,函数fun实现的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。请改正函数fun中的错误,使它能得出正确的结果。不要改动main函数,不得增行或删行,也不得更改程序的结构。int fun(unsigned n,int *zero) int count=0,max=0,t; t=n%10; if(t=0) count+; if(maxt) max=t; n

15、=n/10; while(n); zero=count; return max; unsigned n; int zero,max;nInput n(unsigned): max=fun(n,&zero);nThe result: max=%dn zero=%dn,max,zero);if (t=0) 正确:if(t=0) zero=count;*zero=count;(1)根据题意,这里需要条件语句,不是赋值语句区别条件表达式中=和=的区别。(2)这里是指针赋值的一个简单错误。计算并输出当x0.97时如下多项式的值,直到|Sn-Sn-1|=1e-6);return sum;函数fun的功能是

16、计算并输出,当x0.97时下列多项式的值。解答这类题,首先应该分析多项式的特点。 由于从第二项开始的所有项都能把分子与分母用两个表达式进行迭代,因此可利用一个循环求和。第七十五套求100(不包括100)以内能被2或5整除,但不能同时被2和5整除的自然数。结果保存在数组bb中,函数fun返回数组bb元素的个数。#define N 100int fun(int bb) int I, j; for(【1】;100; I+) if(I%2!=0&I%5=0)|(I%2=0&I%5!=0) 【2】; 【3】; int i, n; n=fun(bb); in; i+) if(i%10=0) printf(n(1) i=1,j=0 (2) bbj+=i (3) return j 题目要求找100以内的自然数,而自然数是从1开始的,所以i的初始值为1。变量j声明时没有初始化,所以在这里初始化为0,用来记录满足条件的自然数的个数。将满足条件的自然数存于数组bb中,下标加1是为下一次存储做

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2