二级C语言程序设计模拟20

上传人:ba****u6 文档编号:51500295 上传时间:2022-01-26 格式:DOC 页数:18 大小:143KB
返回 下载 相关 举报
二级C语言程序设计模拟20_第1页
第1页 / 共18页
二级C语言程序设计模拟20_第2页
第2页 / 共18页
二级C语言程序设计模拟20_第3页
第3页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
模拟 二级 C 语言程序设计模拟 20单项选择题第 1 题: 下列叙述中正确的是 。A. 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B. 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C. 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D. 线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性 参考答案: B线性链式存储结构中每个结点都由数据域与指针域两部分组成, 增加了存储空间, 所以一般要多于顺序存储结构。第 2 题: 下列叙述中正确的是 。A. 栈是一种先进先出的线性表B. 队列是一种后进先出的线性表C. 栈与队列都是非线性结构D. 以上三种说法都不对参考答案: D栈是一种先进后出的线性表, 队列是一种先进先出的线性表, 栈与队列都是线性 结构。第 3 题:软件测试的目的是 。A. 评估软件可靠性B .发现并改正程序中的错误C. 改正程序中的错误D. 发现程序中的错误参考答案: D软件测试是为了发现错误而执行程序的过程, 测试要以查找错误为中心, 而不是 为了演示软件的正确功能,不是为了评估软件或改正错误。第 4 题: 在软件开发中,需求分析阶段产生的主要文档是 。A. 软件集成测试计划B. 软件详细设计说明书C. 用户手册D. 软件需求规格说明书参考答案: D需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、 需求评审四个方面。所以选择 D。第 5 题: 软件生命周期是指 。A. 软件产品从提出、实现、使用维护到停止使用退役的过程B. 软件从需求分析、设计、实现到测试完成的过程C. 软件的开发过程D. 软件的运行维护过程参考答案: A通常将软件产品从提出、 实现、使用维护到停止使用退役的过程称为软件生命周 期。也就是说, 软件产品从考虑其概念开始, 到该软件产品不能使用为止的整个 时期都属于软件生命周期。第 6 题: 面向对象方法中,继承是指 。A. 一组对象所具有的相似性质B .一个对象具有另一个对象的性质C .各对象之间的共同性质D .类之间共享属性和操作的机制参考答案: D继承是面向对象的方法的一个主要特征, 是使用已有的类的定义作为基础建立新 类的定义技术。 广义地说,继承是指能够直接获得已有的性质和特征, 而不必重 复定义它们,所以说继承是指类之间共享属性和操作的机制。第 7 题: 层次型、网状型和关系型数据库划分原则是 。A. 记录长度B. 文件的大小C. 联系的复杂程度D. 数据之间的联系方式参考答案: D层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图, 关系模型采用二维表来表示, 所以三种数据库的划分原则是数据之间的联系方式。 第 8 题: 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工 作人员与实体计算机之间的联系是 。A. 一对一B. 一对多C. 多对多D. 多对一参考答案: C因为一个人可以操作多个计算机, 而一台计算机又可以被多个人使用, 所以两个 实体之间是多对多的关系。第 9 题:数据库设计中反映用户对数据要求的模式是 A. 内模式B. 概念模式C. 外模式D. 设计模式参考答案: C数据库系统的三级模式是概念模式、 外模式和内模式。 概念模式是数据库系统中 全局数据逻辑结构的描述, 是全体用户公共数据视图。 外模式也称子模式或用户 模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择C。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。第 10 题:有三个关系R、S和T如下:则由关系R和S得到关系T的操作是oA. 自然连接B. 差C. 交D. 并参考答案: B关系T中的元组是R关系中有而S关系中没有的元组的集合,所以进行的是差运 算。第 11 题:计算机能直接执行的程序是 oA. 源程序B. 目标程序C. 汇编程序D. 可执行程序参考答案: D计算机能直接执行的程序是二进制的可执行程序, 扩展名为 .exe ,所以选择 D 选 项。第 12 题:以下叙述中正确的是 。A. C语言规定必须用main作为主函数名,程序将从此开始执行B. 可以在程序中由用户指定任意一个函数作为主函数, 程序将从此开始执行C. C语言程序将从源程序中第一个函数开始执行D. main 的各种大小写拼写形式都可以作为主函数名,如 MAIN, Main 等 参考答案: AC语言中的主函数只能是 main()函数,不能任意指定,所以B选项错误。C语言 从主函数main()开始,到主函数main()结束,所以C选项错误。主函数必须写 成小写的main,不能混淆大小写,所以 D选项错误。第 13 题:以下选项中可用做C程序合法实数的是。A. 3.0e0.2B. .1e0C. E9D. 9.12E参考答案: BA选项中e后面的指数必须为整数,所以错误。 C语言规定,E之前必须要有数 字,所以C选项错误。E后面必须要有数字,且必须为整数,所以 D选项错误。 第 14 题: 下列定义变量的语句中错误的是 。A. int_int;B. double int_;C. char For;D. float US$;参考答案: DC语言规定,变量命名必须符合标识符的命名规则。D选项中包含了非法字符“$”, 所以错误。 标识符由字母、 数字或下画线组成, 且第一个字符必须是大小写英文 字母或者下画线,而不能是数字。大写字符与小写字符被认为是两个不同的字符, 所以 For 不是关键字 for 。第 15 题:表达式: (int)(double)9/2)-9%2 的值是。A. 0B. 3C. 4D. 5参考答案: B先将整型数据 9 强制转换成 double 型,然后除以 2 得到的结果与 douhle 型保持 一致,即为 4.5 ,然后将 4.5 强制转换成整型数据 4,然后计算 9%2的值为 1, 最后计算 4-1 的值为 3,所以选择 B 选项。第 16 题:设变量均已正确定义,若要通过scanf(%d% c% d%c, a1, c1, a2, c2);语句为变量al和a2赋数值10和20,为变量cl和c2赋字符X和丫。以下 所示的输入形式中正确的是 。(注:代表空格字符)A. 10 X 回车20 丫回车B. 10 X2(E Y 回车C. 10X 回车 20丫 回车 D. IODXO20口丫 回车参考答案: C输入数据的格式必须与seanf()的格式控制串完全匹配,如果 A B C选项中在 数字10后面均输入了空格,则会将空格赋给变量e1,而不是把X赋给e1,所以 选择 C 选项。第 17 题:以下选项中不能作为C语言合法常量的是 。A. 0.1e+6B. cdC. aD. 011 参考答案: B要想表示字符串常量应该用双引号表示,即 ee1 ,单引号用于表示字符常量, 所以B选项中的表示方法错误。第 18 题:if 语句的基本形式是:if( 表达式 )语句,以下关于“表达式”值的叙述中正确的是。A. 必须是逻辑值B. 必须是整数值C. 必须是正数D. 可以是任意合法的数值参考答案: DD 选项if 语句中的表达式可以是任意合法的数值,如常量、变量表达式,所以 正确。第 19 题:有如下嵌套的 if 语句:if(a b)if(a e)k=a;elsek=e;elseif(b c) k=b;else k=c;以下选项中与上述 if 语句等价的语句是 。A. k=(a b)?(b c)?a:b):(b c)?b:c);B. k=(a b)?(a c)?a:c):(b c)?b:c);C. k=(a b)?a:b;k=(b c)?b:c;D. k=(a b)?a:b;k=(a c)?a:c;参考答案: B题目中嵌套语句的含义是:当a b且a e成立,则将a的值赋给k ;如果ab成立而a c不成立将c的值赋给k;如果a b不成立而b c成立,将 b的值赋给k;如果如果a b不成立且b c也不成立,将c的值赋给k。判 断条件表达式只有 B 选项可以表示这个含义。第 20 题:有以下程序:#include stdio.h main()int k=5;while(-k)printf(%d,k-=3);printf(n);程序执行后的输出结果是 。A. 1B. 2C. 4D. 死循环参考答案: A-k 先自减再使用,所以第一次判断条件即为 while(4) ,条件为真,执行打印 k 的值 k=4-3 ,结果为 1;第二次判断条件即为 while(0) ,条件为假,结束循环, 打印回车换行符。选择 A 选项。第 21 题:有以下程序:#include stdio.h main()int i,j;for(i=3;i =1;i-)for(j=1;j =2;j+)printf(%d,i+j);printf(n);程序运行后的输出结果是 。A. 4 32 54 3B. 4 53 42 3C. 2 3D. 2 3 参考答案: B第一次执行外循环, i 的值为 3,第一次执行内循环 j 的值为 1,j =2 条件成 立,打印 i+j 的值,即 4;第二次执行内循环 j 的值为 2,j =2 条件成立,打 印 i+j 的值,即 5;再判断条件不成立,打印回车换行符,跳出内循环。第二次 执行外循环, i 的值为 2,内循环的执行同第一次一样,所以打印 3 和 4,打印 回车换行,结束内循环。第三次执行外循环 i 的值为 1,同理内循环中打印 2 和 3,打印回车换行符,结束内循环。第 22 题: 有以下程序:#include stdio.h main() int k=5,n=0;do switch(k)case 1:case 3:n+=1;k-;break;default:n=0;k-;case 2:case 4:n+=2;k-;break;printf(%d,n);while(k 0 n 5) ;程序运行后的输出结果是 。A. 02356B. 0235C. 235D. 2356 参考答案: C k 的值为 5,逐个对 case 语句进行匹配, 均不匹配,执行 default 下的语句 n=0; k- 。再执行 case2 :case4 :后面的语句 n+=2;k- ;。执行 break 语句跳出 switch 判断,打印 n 的值,即 2。经过第一次循环后, k 的值为 3,然后进行 k 0 n 5条件判断为真。第二次执行循环体,执行case3:后面的语句n+=1 ; k-;。 再执行 break 语句跳出循环,此时打印 n 的值 3,此时 k 的值为 2。第三次执行 循环体k的值为2,满足条件,执行case2: case4:后面的语句n+=2; k-;。 执行break语句跳出循环体,打印n的值5。此时n不满足条件k0& n 5 , 所以结束循环。整个程序的打印结果为 235。第 23 题:以下关于 return 语句的叙述中正确的是 。A. 一个自定义函数中必须有一条 return 语句B. 一个自定义函数中可以根据不同情况设置多条return 语句C. 定义成void类型的函数中可以有带返回值的 return语句D. 没有return语句的自定义函数在执行结束时不能返回到调用处 参考答案: B在函数中允许有多个 return 语句,但每次调用只能有一个 return 语句被执行, 因此只能返回一个函数值。定义成 void 类型的函数,不允许从该函数取得返回 值,也不允许使用return语句,C选项描述错误。没有return语句的函数在执 行到函数的最后一条语句后会自动返回到调用处,A、D选项描述错误,因此B选项正确。第 24 题:已定义以下函数:int fun(int * p)return * p;fun 函数的返回值是 。A. 一个整数B. 不确定的值C. 形参p中存放的值D. 形参p的地址值参考答案: A返回值为指针变量指向的数据,该数据已被定义为整型,因此A选项正确第 25 题: 以下程序段完全正确的是 。A. int * p;scanf(%d,p);B. int * p;scanf(%d,p);C. int * p= k;scanf(%d,p);D. int k * p;* p=k;scanf(%d,p);参考答案: CA选项中错在没有对指针进行初始化,是无效指针,并且在 seanf(%d, & p)中 无需再进行取地址操作;B选项中没有对指针进行初始化,是无效指针; D选项 中语句*p= &k;的左端*p是指针所指内存空间的值,& k是地址,应为p=&k。 C选项正确。第 26 题:设有定义:double a10,*s=a;以下能够代表数组元素 a3 的是。A. (*s)3B. *(s+3)C. *s3D. *s+3参考答案: B语句*s=8 ;表示指针变量s指向一维数组a的首地址。a3表示引用数组a的第 4个元素,*(s+i)表示引用指针s所指数组a的第i+1个元素,选项A C、D的表示方法错误,只有 B 选项正确。第 27 题: 有以下程序:#include stdio.h void f(int*q) int i=0;for(;i 5;i+)(*q)+;main() int a5=1,2,3,4,5,i;f(a);for(i=0;i 5;i+)printf(%d,ai); 程序运行后的输出结果是 。A. 6,2,3,4,5,B. 2,2,3,4,5,C. 1,2,3,4,5,然后取首个D. 2,3,4,5,6, 参考答案: A本题考查的是函数的地址调用, 将数组名作为数组首地址进行传递,数组元素值进行加1运算,循环5次,因此A选项正确。第 28 题:有以下程序:#include stdio.h int fun(int(*s)4,int n,int k) int m,i; m=s0k;for(i=1;i n;i+) if(sikm)m=sik; return m;main() int a44=1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34; printf(%dn,fun(a,4,0);程序运行后的输出结果是 A. 4B. 34C. 31D. 32 参考答案: C本题重点考查二维数组名作为实参进行参数传递在主函数中调用了 fun 函数, 实参为二维数组名 a 和两个整数 4、0,这样对应定义 fun 函数首部有三种形式, 这里采用了第一种形式行指针, 这样在 fun 函数对 sij 进行操作实际上 就是对主函数中的 aij 进行操作,再分析 fun 函数的作用便可知,是求二维 数组第0列中最大的那个元素,因此 C选项正确。第 29 题: 以下选项中正确的语句组是 。A. char*s;s=B00K!;B. char*s;s=B00K1;C. char s10;s=B00K!;D. char s;s=B00K1;参考答案: BA选项去掉大括号就正确了;C选项和D选项应在定义时赋初值。B选项正确第 30 题:若有定义语句:char*s1=0K,*s2=ok;以下选项中,能够输出“ OK的语句是。A. if(strcmp(s1,s2)!=0)puts(s2);B. if(strcmp(s1,s2)!=0)puts(s1);C. if(strcmp(s1,s2)=1)puts(s1);D. if(strcmp(s1,s2)=0)puts(s1); 参考答案: B strcmp(s1,s2) 是字符串比较函数,比较规则是两个字符串自左向右逐个字符相 比(按照ASCII码值大小),以第一个不相同的字符的大小作为比较结果。因为 0。,所以trcmp(s1 , s2)为负值,只有B选项正确。第 31 题:有以下程序:#include stdio.h void fun(char* *p)+p;printf(%sn,*p);main() char*a=Moming,Aftemoon,Evening,Night;fun(a);程序运行后的输出结果是 。A. AfternoonB. fternoonC. MorningD. orning 参考答案: A本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和一般的一维数组名能赋给同类型指针变量一样, 该字符指针数组也可 以赋给指向字符指针的指针,所以数组名a可以用做函数fun()的实参。在fun() 函数中,+p操作使形参p往后移动一个字符指针的位置,即指针 a1的位置 故最后通过printf() 函数输出的字符串为“ Afternoon ,A选项正确。 第 32 题:有以下程序,程序中库函数 islower(ch) 用以判断 ch 中的字母是否为小写字 母:#include stdio.h#include ctype.hvoid fun(char * p)int i=0;while(pi)if(pi=& 矗lower(pi-1)Pi-1=Pi-1-a + A;i+;main()char s1100=ab cd EFC!;fun(s1);printf(%sn,sl);程序运行后的输出结果是 。A. ab cd EFg!B. Ab Cd EFg!C. ab cd EFG!D. aB cD EFC!参考答案: D调用 fun 函数后, 实参数组名 s1 传给形参指针 p, p 也指向数组 s1。 fun 函数的 功能是遍历字符数组中的所有字符, 如果某一个字符是空格并且前一个字符是小 写字母的话,就把前一个字符转换为大写。程序中语句 pi-1=pi-1-a+A;即pi-1=pi-1-32,意思是将pi-1中的字符转换为大写,因此D选项正确。第 33 题:有以下程序:#include stdio.h int f(int x)int y;if(x=0|x=1)return(3);y=x*x-f(x-2);return y;main()int z;z=f(3);printf(%dn,z);程序运行后的输出结果是 。A. 0B. 9C. 6D. 8参考答案: C主函数中调用 f 函数,同时将数值 3 传递给变量 x ,执行条件不满足条件 if(x=0|x=1) ;跳过 return(3) ;,直接执行语句 y-x*x-f(x-2) ;这里 f(x-2) 为函数的递归调用,再次调用f函数,此时x=1,判断条件成立,返回3给f(1), y=3*3-3=6,最后将6返回主函数,并进行输出,因此C选项正确。第 34 题:有以下程序:#include stdio.h int fun(int x,int n)static int sum=0,i;for(i=0;i n;i+)sum+=xi;return sum;main()int a=1,2,3,4,5,b=6,7,8,9,s=0;s=fun(a,5)+fun(b,4);printf(%dn,s); 程序执行后的输出结果是 。A. 55B. 50C. 45D. 60 参考答案: D内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据, 再次调用该函数时,以前调用时的数值仍然保留着。 fun(a ,5) 的值是 15,再次 调用后sum=15所以fun(b , 4)=45, s=45+15=60,因此D选项正确。第 35 题:有以下结构体说明、变量定义和赋值语句:struct STDchar name10;int age;char sex;s5,*ps;ps= s0;则以下 scanf 函数调用语句有错误的是 。A. scanf(%s,s0.name);B. scallf(%d,s0.age);C. scanf(%c, (ps- sex);D. scanf(%d,ps-age);参考答案: D本题考查结构体的相关知识, 题目中需要输入一个变量, scanf 要求参数为指针, 而D选项中ps-age为一个变量,不是指针,所以错误。第 36 题:若有以下语句:typedef struct Sint g;char h;T;以下叙述中正确的是 。A. 可用S定义结构体变量B. 可用 T 定义结构体变量C. S 是 struct 类型的变量D. T 是 struct S 类型的变量参考答案: B本题考查 typedef 重新声明一种结构体类型, 那么 T 为结构体类型, 而不是结构体变量,所以第 37 题:B 选项正确。有以下程序:#include#include struct A stdio.h string.hint a;char b10;double c;struct A f(struct A t);main()struct A a=1001,ZhangDa,1098.0;a=f(a);printf(%d,%s,%6.lfn,a.a,a.b,a.c);struct A f(struct A t)t.a=1002;strcpy(t.b,ChangRong);t.c=1202.0;return t;程序运行后的输出结果是 。A. 1002,ZhangDa,1202.0B. 1002,ChangRong,1202.0C. 1001,ChangRong,1098.0D. 1001,ZhangDa,1098.0 参考答案: B本题考查结构体变量的引用以及作为函数参数, 题目虽然看似复杂, 其实比较容 易, f 函数的参数是结构体变量,然后对参数重新赋值并返回,所以该题目的答 案为 B 选项。第 38 题: 设有宏定义:#define IsDIV(k,n)(k%n=1)?1:0) 且变量m已正确定义并赋值,则宏调用: lsDIV(m,5) IsDIV(m,7) 为真时所要表达的是 。A. 判断m是否能被5和7整除B. 判断m被5和7整除是否都余1C. 判断m被5或者7整除是否余1D. 判断m是否能被5或者7整除参考答案: B本题考查逻辑运算符的相关概念, 逻辑与若要为真,那么两边都要为真,即m都 能被5和7整除都余1,所以选项B正确。第 39 题:有以下程序:#include stdio.h main()int a=1,b=2,c=3,x;x=(aAb) & c;printf(%dn,x);程序运行后的输出结果是 。A.3B. 1C. 2D. 0参考答案: A本题考查位运算符以及相关运算,a为按位或,&为按位与,那么aAb为3,再与 c按位与仍然为3,所以答案为A选项。第 40 题:有以下程序:#include stdio.h main()FILE*fp;int k,n,a6=1,2,3,4,5,6;f=fopen(d2.dat,w);fprintf(fp,%d%d%dn,a0,a1,a2);fprintf(fp,%d%d%dn,a3,a4,a5);fclose(fp) ;fp=fopen(d2.dat,r);fscanf(fp,%d%d,& k, & n);printf(%d%dn,k,n);fclose(fp);程序运行后的输出结果是 。A. 12B. 14C. 123 4D. 123 456参考答案: D本题考查文件操作函数。 执行 fopen 函数打开硬盘文件 d2.dat ,执行两次 fprintf 函数则向硬盘文件 d2.dat 写入数据 123、456,执行 fscanf 函数时从硬盘文件 d2.dat中读取数据到两个整数k和n中,最后执行printf函数打印读取的数据 到屏幕上,显示123 456,所以D选项正确。程序填空题第 41 题:下列给定程序中,函数 fun 的功能是:计算如下公式前 n 项的和并作为函数值 返回。例如,当形参 n 的值为 10 时,函数返回值为 9.612558 。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANKI.C中,不得增行或删行,也不得更改程序 的结构!#incIude stdio.h doubIe fun(int n) int i;doubIe s,t;/* * * * * * * * * *found* * * * * * * * * */s=;/* * * * * * * * * *found* * * * * * * * * */for(i=1;i =;i+) t=2.0*i;/* * * * * * * * * *found* * * * * * * * * */ s=s+(2.0*i-1)*(2.0*i+1)/;return S :main()int n=-1 ;whiIe(n 0)printf(PIease input(n0):);scanf(%d,n);printf(nThe resuIt is:%fn,fun(n);参考答案:for0;n;(t*t) 本题考查:变量初始化操作, 需要注意该变量是用作累加器还是累乘器;循环语句。填空1:程序开始定义了变量s,但没有对其进行初始化,根据公式及后面的程序可知变量 s 用来存储公式的前 n 项和,因此该变量应初始化为 0。 填空 2:通过 for 循环语句将表达式各项进行累加, 结果存于变量 s 中, 循环变量 i 的取值范围为 1-n。填空3 :根据题目要求确定表达式通项,前面已定义 t=2.0*i ,因此此空应填 (t*t) 。 程序要求计算表达式值时,一般 我们都设定一个变量s,并赋初值。如果s用来存放表达式的和,则赋初值为0; 如果 s 用来存放表达式的积,则赋初值为 1。程序改错题 第 42 题: 下列给定程序中函数 fun 的功能是:统计 substr 所指的字符串在 str 所指的字 符串中出现的次数。例如,若字符串为aaas Ikaaas,子字符串为as,则应输出2。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件 M0DI1.C中,不得增行或删行,也不得更改的程 序的结构!#incIude stdio.h int fun(char*str,char*substr)int i,j,k,num=0;/* * * * * * * * * *found* * * * * * * * * */for(i=0,stri,i+) for(j=i,k=0;substrk=strj;k+,j+) /* * * * * * * * * *found* * * * * * * * * */lf(substrk+1= 0 )num+;break;return num;main()char str80,substr80;printf(Input a string:);gets(str);printf(Input a substring:);gets(substr);printf(%dn,fun(str,substr);参考答案:for(i=0;sfri;i+); if(substrk+1= 0 )本题考查: for 循环语句的格式, for 循环语句使用最为灵活,其一般形式 为: for( 表达式 1;表达式 2;表达式 3),注意表达式之间使用“;”相隔; if 条件语句的格式,其中 if 关键字需要区别大小写,这里不能混淆使用。关键字 是由C语言规定的具有特定意义的字符串,也称为保留字。用户定义的标识符不 应与关键字相同, 并且关键字应小写。先看循环条件 for(i=0,stri,i+) 不难发现此处 for 循环语句的格式有误,其中表达式之间应以“;”相隔;同时 很容易发现 if 条件语句处的关键字书写错误。程序设计题第 43 题:编写函数fun,其功能是:根据以下公式求n的值(要求精度达到0.0005,即某 项小于 0.0005 时停止迭代 )。程序运行后,若输入精度0.0005,则程序应输出为3.14注意:部分源程序在文件 PROG1.C中,请勿改动主函数 man和其他函数中 的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#include stdio.h #include math.h double fun(double eps)main()double x;void NONO();printf(Input eps:);scanf(%lf,x);printf(neps=%lf,PI=%lfn,x,fun(x);NONO();void NONO()/* 本函数用于打开文件、输入数据、调用函数、输出数据、关闭文件。 */ FILE*fp,*wf;int i;double x;fp=fopen(in.dat,r);wf=fopen(out.dat,w);for(i=0;i 10;i+)fscanf(fp,%, x); fprintf(wf,%lfn,fun(x);fclose(fp);fclose(wf); 参考答案:double fun(double eps) double s=1.0,s1=1.0; int n=1; while(s1 =eps)/* 当 某项 大于精 度要 求 时, 继续 求 下一项*/s1=s1*n/(2*n+1); /* 求多 项式的每 一项*/s=s+s1; /* 求 和*/n+; return 2*s; 本题考查:迭代法求给定多项式的值。 迭代算法: 让计算机对一组指令 ( 或一 定步骤)进行重复执行,在每次执行这组指令 (或这些步骤 )时,都从变量的原值 推出它的一个新值。需要注意变量的数据类型以及赋初值操作。 首先应该 定义 double 类型变量,并且赋初值,用来存放多项式的某一项和最后的总和。 从第 2 项开始以后的每一项都是其前面一项乘以 n/(2*+n+1) ,程序中用 sl 来表 示每一项, s 表示求和后的结果。 需注意 sl 和 s 的初值都为 1.0 ,因为循环变量 从第二项开始累加。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!