教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

二级C语言考前复习资料(机试)(2)

来源:网络收集 时间:2026-07-17
导读: ;:如scanf“%d”(a[,]ij][ —)—sanfc(%d“”a[i,][]j i)n i,tp=*i; scaf(“%d”,n)p— —scan(f%d”“p),; ntii=1 0; pinrf(t“f%”,i;)— ——p—irtn(“f%”di); —— ,pinrf(“%t”,d“st inrg)” ;——p rnti(

;:如scanf“%d”(a[,]ij][ —)—s>anfc(%d“”&a[i,][]j i)n i,tp=*&i; scaf(“%d”,n&)p— —s>can(f%d”“p),; ntii=1 0; pinrf(t“f%”,i;)— ——>p—irtn(“f%”di); —— ,pinrf(“%t”,d“st inrg)” ;——p rnti(f%s“”,“ srtng”)i ——> ;型二:题 型二:题选择构结的中本基格问式题 功能是的 :3、给程定序M DIO1. 中函C f数un的功能 是用递:算法归计斐波算契拉数列 项值。的 项起斐,拉波数契列为:、 、 、、 、、 、 、 中第 n项 值的从第。 1项起 ,波拉契斐列数:1、为1、2、3、5、813、、21、……例 , 例如,如若给 n输 入7该,项的波斐契拉值为数1:。3改请正程中的错误序使,它 ,该的项波斐拉契数为: 。值请改程序中的正误,错 得能出正确果结 。能得出确结果正。 注意 :函,不数增行或得删,行不得更也程改的序构结序 结的。构 意:不要改动 m注in 函a,数得增不行删或,也行不更得程序的结构改。 #iclndu <sedito.> holgnf unint(g ) {/* *********fuond*********/*第8 页

sitcwh(g); c{as 0: erterun 0; */********f*unod**********/ csa 1e ca;se 2 re:utn 1r; }rtern(u unfg(-)1+fun(g-)2) ;} m in() {a olg fin; ibt n;np inrt(f"nput In: ") ;scna("%fd,&n";) rpntif"( n=% \nd,n);" fb=fiun(n) ;rpint("fibf= %\n\n"dfib), ;}参 考案】 答参【考答】 :案( )1wistchg)(2()caes1 : eturrn1 ; aces 2:ertru 1n; 解技题巧】 解题技【巧注意选】结择构的确语正格式,关注容法出错易地的,如下图方 确形式 正错形式 s误wtich) ({ca se 1语句:1; rbeak ;acs e:2 aces :语3句3; wisth() ; 分号c多余{ c sa 1e:句语1;b rae;kca se 2;; 此处该为应冒号 caes3语: 句 3acse与 常量达式之间

表型三题循:结环中的构基本式格题问题 型:循环三构结的基中格本问式 题的功是能 的值: ,、4定程序给 MDIO.C 1中数 fun 函的功能是根:整据型形参m 的值计算 如,公式的值。下如 下式的值。 公11 1t 1 - -=--- - ----- -- … … ----2*2- 33 *mm 例*,如 的值为: 中则,应出输 :例如若 m,中的值 为,则应5出输 .5360839。 。请 正程改序的错误中使它能得,正确出结的。 果请正程改序中错的,误它能使得出正确结的。果共 2 页

3

翻印必究

2、给定程序MODI1.C中函数 fun 的功能是:求S的值。 例如,当k为10时,函数值应为:1.533852。 请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include <stdio.h> #include <math.h>

/************found************/ void fun( int k )

{ int n; double s, w, p, q; n = 1; s = 1.0;

while ( n <= k ) { w = 2.0 * n; p = w - 1.0; q = w + 1.0; s = s * w *w/p/q;

n++; }

/************found************/ return s }

main ( ) {

printf("%f\n", fun (10)); }

【参考答案】

(1) float fun(int k)(2)3、给定程序MODI1.C: 字符串的首地址作为函数值返回。

请改正函数fun中指定部位的错误, 注意: 不要改动main函数, , 也不得更改程序的结构! #include <stdio.h>

char fun(char *s, char *t)

{ int sl=0,tl=0; ss=s; while(*ss) { { return t; else return s; main()

{ char a[80],b[80];

printf("\nEnter a string : "); gets(a);

printf("\nEnter a string again : "); gets(b); printf("\nThe longer is :\n\n\"%s\"\n",fun(a,b)); }

【参考答案】

(1) char *fun(char *s,char *t)(2)ss++;(3)tt++; 【解题技巧】函数头部容易出错的几个地方:

(1)int fun(int m);------>int fun(int m)函数定义时末尾的分号是多余的

(2)int fun(int m) int i=20;char ch;--->int fun(int m){ 函数名后必须要有大括号

(3)(4)(5)不能省略

(6)voidfun(int n)----->正确形式 当++、- -与*++、- -和**p++; 是指针p(*p)++; 是将指针p 题型二:返回值错误

4、下列给定程序中,E、I、O、U则输出应该是1、0、2、2、#include <conio.h> #include<stdio.h>

3)switch(*s) (

(1)有return语句,但缺少返回值类型,fun(int n)----->double fun(int n) 经常考

(2)缺少返回值。函数定义时有返回值类型,但程序中缺少return 语句 (3)返回值类型和函数定义时的类型不一致。

如调用函数时返回值为double类型,但定义时为int类型,int fun(int a){ }——>double fun(int a){ }

(4)返回值不对,如:return (a)----->return (b);

分类四:编译预处理、链表类错误

题型一:带参数的宏定义出错

1、给定程序MODI1.C中函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等。例如,当x的值为9、y的值为11、z的值为15时,函数值为 -3.50。 请改正程序中的错误,使它能得出正确结果。 #include <stdio.h> #include <math.h> #include <stdlib.h>

/************found************/ #define FU(m,n) (m/n) float fun(float a,float b,float c) { float value;

value=FU(a+b,a-b)+FU(c+b,c-b); /************found************/ Return(Value); }

main()

{ float x,y,z,sum;

printf("Input printf("x=%f,y=%f,z=%f\n",x,y,z);

sum=fun(x,y,z);

}

【参考答案】:

【解题技巧】 F(m,n) (m/n)——>#define F(m,n) 题型二:链表指针向后移动节点时出错

2, 并用随机函数为各(不包括头结点)数据域中,

, 使它能得出正确的结果。 aa { aa *next; NODE *h ) { int max=-1;NODE *p;

/***********found**********/ p=h ; while(p)

{ if(p->data>max )

max=p->data; /***********found**********/ p=h->next ; }

return max; }

outresult(int s, FILE *pf)

{ fprintf(pf,"\nThe max in link : %d\n",s);} NODE *creatlink(int n, int m) { NODE *h, *p, *s; int i;

【解题技巧】这时就容易出现改错题,p=p->nex,如上题中,应将 h=p=(NODE *)malloc(sizeof(NODE));h->data=9999; p=h->next应该改为 for(i=1; i<=n; i++)

{ s=(NODE *)malloc(sizeof(NODE)); s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; }

p->next=NULL; return h; }

outlink(NODE *h, FILE *pf) { NODE *p; p=h->next;

fprintf(pf,"\nTHE LIST :\n\n HEAD "); while(p)

{ fprintf(pf,"->%d ",p->data); p=p->next; } fprintf(p …… 此处隐藏:3393字,全部文档内容请下载后查看。喜欢就下载吧 ……

二级C语言考前复习资料(机试)(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/268527.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)