




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、 填空题填空题是计算机等级考试中的难点,占有的分值为30分。做填空题时注意掌握答题技巧。填空题的分类:(一)、数学题目 6、13、25、29、36、37、38、44、46解题方法:1.如果在函数中定义变量,但是没有定义成静态存储变量,即变量前面没有static,应给变量赋初值,如果以后用到的是加减运算,则赋初值为0或者是0.0;如果以后用到的是乘除运算,则赋初值为1或者是1.0;2.循环条件的填空,分析表达式的规律,看表达式中的最后一项的值是否到了第m项或者是第n项,如果到了第m或者第n项,则在循环中的第二个表达式中用到的是i=m或者是i”运算符。如16.2。得到结构体中学生分数,asco
2、rei。4、 如果返回的是结构体的话,函数的返回类型必须是结构体类型。调用函数的格式中,调用的若是结构体数组,则只用写结构体数组名。23.3(四)、函数题目 1、27函数题目1、 看函数的返回类型,函数的返回类型必须和return 语句返回的表达式的类型一致。2、 函数的调用的情况 ,函数调用时只用写函数的名称,以及函数的参数。如:第一题中的第二和第三空的内容就是调用函数,填写时只用填写函数的名称和参数,故填f1(x)和f2(x,y);3、 函数指针的调用格式,类型名(*f)();27题中第一空。4、 函数参数的传递时的调用的格式,如果函数传递的是二维数组,则在函数的传递过程中形式参数必须使用
3、的是由m个元素组成一行的指针变量。第10题中的第一个答案:(ss)M.(五)、链表题目:15、42、43、50 链表题目的步骤:1、 首先看清楚题目要求和意思。看清楚链表有没有带头结点,如果带有都结点,第一空填的内容是p=hnext;如果是不带有头结点,则第一个空填写的是p=h;2、 如果第二个空是在循环语句while的括号中的时候里面的内容填写的是p或者是q,以最近出现的为主;如果是在循环语句的里面的时候,填写的是q=pnext;3、如果是排序的时候,从小到大的时候是大于号,从大到小的时候是小于号。 如果出出现了r的地方,则在后面的空中填的是r(六)、文件类型的填空 28、30、32、471
4、、文件类型的题目,看清楚题目意思,定义一个文件的指针,第一个位置出现fp的时候要填FILE *;2、掌握文件中fopen、fprintf、fscanf、fputs、fputc、fgets、fgetc、fseek、fwrite、fread、rewind函数的使用的格式。 fopen(“文件名”,“打开方式”); fclose(文件指针); fscanf(文件指针,格式控制字符串,输入列表项); fprintf(文件指针,格式控制字符串,输出列表项); fwrite(存入数据的指针,每一个数据占有的字节,输入数据的个数,文件指针); fread(读出数据的指针,每一个数据占有的字节,输出数据的个数
5、,文件指针);3、文件打开之后要注意关闭文件,关闭文件的函数fclose(文件指针);4、在循环语句中如果使用到的是while(!feof( )空格中填写的文件指针,表明判断的是文件指针是否已经指到了文件的末尾。备注:如果文件指针指到了文件的末尾,则feof返回的是非零值,如果没有指在文件的末尾,返回的是0值。(七)、数组题目3、4、7、17、20、24、26、31、34、39、40、41 数组填空题在C语言考试中出现的频率很高,数组分为一维数组和二维数组。一维数组较二维数组来说简单一些。一维数组中存在这样一些类型:3、17、20、24、31、411、 求一个数值数组中的所有值的平均值和把大于
6、或者小于平均值的数辅导例外一个数组中。在计算机平均值时,首先定义一个变量来存放平均分,平均分一般用av变量来代替,如果av已经定义但是没有赋初值,那么这个空填写的内容的为:av=0;2、 求算平均值值时有两种方法,第一种是算出总的分数,最后再除以总的个数即可,如算1到6之间的数的平均值,首先算出1到6的和,其次用综合除以总的个数6,即可以得到平均值;第二种方法是用每一个数除以6再把所有的和加起来。即1/6+2/6+3/6+4/6+5/6+6/6;所以在执行的一维数组中算平均值时也是存在来中情况,如果在for语句的后面有av=av/N;则第二个空一般的填写时av+=si;如果说没有av=av/N
7、;则填写的是:av+=si/N;3、 在后面的一个空的填写的时候要注意变量的使用情况,如果变量使用了j和i,那么这一个空的填写的内容为:j+;4、 如果一维数组中求的是把大于或者是小于平均值的数移动到数组的首部的时候,这种题目的解答时这样的,第一个空一般填写的内容为:j+;第二个空填写的内容是-1;5、 对数组进行排序时:如果是从大到小的排序的时候,用的是小于符号,如果是从小到大排序时使用的是大于符号。二维数组中的题目类型以及解决的技巧:4、7、26、34、39、401、 二维数组的题目,填空的时候一般是填在函数调用,函数在调用时候写的应该是而为数组的名字;在定义函数的时候使用的是函数的类型和
8、由m各元素组成一行的指针变量,假设二维数组的名字是ss,那么填写的内容是:(*ss)M;如果调用的是普通变量则填写的内容为:int n;2、 二维数组遍历时,使用的是两个循环,使用的是循环的嵌套使用,第二个循环的使用的时候填写的内容为:j=0;(特殊的特殊处理)3、 交换两个变量的值的使用的格式为: t=a;a=b;b=t; 记住交换变量的格式和顺序。4、 如果二维数组是字符串的题目的时候,要记住字符串中函数的使用的格式;即:strlen、strcmp、strcpy、sizeof、strcat的使用格式。注意里面的格式中使用的都是和指针。5、 特殊的特殊处理。第7题的填空的内容记住。二改错题分
9、类总结改错题总的出错分为两大类:语法出错和逻辑出错,此类题目是比较简单的题型,因此也是最容易把握的知识点。注意:错误都是出现在/*found*/下面的这一行。只是下面的这一行,其他行都没有错误。不能修改其他行。做题方法:1.首先拿到题目,先将题目详细看看,看清题目对做题时很有帮助的,特别是一些逻辑性较强的题目很有用。有的同学可能会觉得题目太难了不想去读,其实在做改错题目时即便你不会也能把题目做对。2按照以下的步骤解决题目中的错误的内容,对应着修改。修改完之后保存即可。一 语法错误1.关键字出错:在二级C语言考试中仅仅考查学生对基本的关键字掌握情况,比如:整型就是int不是Int,知识点简单。(
10、1)6题第二个空:If应该改为if;(2)12题第二个空:If应该改为if;(3)23题第一空:dounle应该改为double;(4)35题第二空:If应该改为if;(5)36题第二空:Double应该改为double。(6)2题第二空:wihle应该改为while。2.格式出错:在考试中主要考查学生细心的程度,最喜欢考简单的知识点。(1)少分号:2题第一空、28题第一空、29题第一空、34题第二空、37题第二空、48题第二空。考查的知识点:分号是语句结束的标志。(2)for语句的格式:for( ; ; )中间用分号隔开不是用逗号隔开。3题第二空、6题第一空、14题第二空都是出现了for语句
11、格式出错的问题。(3)if语句的格式:if(表达式),if后面必须加上小括号。37题第一空if后面必须加上小括号。(4)命令行格式出错:17题第一空中include命令少了#,正确的形式应该是#include “stdio.h”;(5)常用函数格式:A 22题第一空中n=strlenaa应该改为n=strlen(aa),记住函数名后面一定是花括号,不能是方括号,方括号只有在数组下标中用到。B 49题第一空int j,c,float xa=0.0;应该改为int j,c;float xa=0.0;记住:要同时定义两种以上不同的数据类型的时候必须在不同类型的数据中间加上分号。C 41题第二空sca
12、nf(“%d”,aij);应该改为scanf(“%d”,&aij)。考查Scanf输入函数的格式。(6)数组:所有老师讲到数组时候必须统一将此知识点给学生回顾一遍!A数组下标引用时候只能用反括号。28题第二空t(k)=b(j)应该改为tk=bj。B二维数组中的列下标不能省略。46题第一空必须将数组列下标补充完整。(7)常用符号出错:A C语言中大于等于符号是“=”,但是在考试的时候可能出现将它写为“=”,49题第二空就是这样的错误。B 当题目中需要比较某个字符是否是大写字母或是小写字母、数字时,必须将“与”、“或”、“非”记住。判断某个字符是否是大写字母:char ch;if(ch=A&ch=
13、a&ch=0&ch=9)printf(“%c”,ch);判断某个数字是否能同时被5和7整除:int i=35; if(i%5=0&i%7=0)printf(“%d”,i);判断某个数字是否能被5或7整除:int i=35; if(i%5=0|i%7=0)printf(“%d”,i);判断某个数字是否是偶数或奇数:int i=35; if(i%2=0)printf(“%d是一个偶数”,i);else printf(“%d是一个奇数”,i);二 逻辑错误1.使用了没有定义过的变量:这种题目可以通过编译查找出出错的地方并改之。(1)0(零)和o(字母欧)的区别:19题第一空、23题第二空、43题第二
14、空。(2)P(大)和p(小)的区别:33题第一空。(3)普通变量大小写的区别:A有的变量在定义的时候是小写但是在使用的时候是大写,或是在定义的时候是大写在使用的时候却是小写。B 大小写没有出错,程序中直接使用了没有定义过的变量,要求学生更加细心的读题目。45题第二空使用到了i这个变量,但是我们在定义行中没有找到i的定义,因此在做题时候要上下结合来分析题目。22题第二空c=aaj中的c没有定义过,参看定义的语句不能发现应该是ch=aaj。38题第一空要求将后面用到的变量s1定义完整。2.运算符号出错:(1)C语言中除号是“/”不是“”(2)赋值号(=)和等号(= =)混淆,记住在if语句中出现赋
15、值号(=)一般是讲它改为等号(= =)。14题第一空和29题第二空都是这样的错误。3.表达式的取值范围出错:当遇到计算表达式的累加或是累减时,一定用到循环来完成相应的操作。例如:改错题第七题中要求计算t=1-1/2*2-1/3*3-.-1/m*m这个表达式,在这个题目中第一空有这样的for语句:for(i=2;im;i+)y-=1/(i*i);从题目中不难发现i是一个变量,它的取值范围从整数2开始到m-1结束,最终计算的结果为 y=1-1/2*2-1/3*3-.-1/(m-1)*(m-1)和题目要求的不符,因此将im改为i=m。做这样的题目看两点:一看题目中的表达式,二看for语句中变量的取值
16、范围。31题第二空同样的考点。4.C语言中的除法运算:这个考点同样考查表达式的相关知识。例如:改错题第七题中要求计算t=1-1/2*2-1/3*3-.-1/m*m这个表达式,在这个题目中第一空有这样的for语句:for(i=2;i)、小于(y)return x; int a,b,c;else return y; scanf(“%d%d”,&a,&b); c=fun(a,b); printf(“最大值为:%d”,c);(1) 函数的返回类型:在上面的例子中fun函数的返回值是int,如果将int改为double,很明显是错误的。从两个地方来看,首先return x;中x的类型必须和fun函数中的
17、返回值相同,x是整型。其次c=fun(a,b);中fun函数将一个返回值赋值给了变量C,说明函数返回的值一定是整型。记住:函数调用、函数的返回值和ruturn中数据类型必须一致!1.1、3.1、16.1、19.2、34.1、36.1、40.1、48.1都死这样的错误,(注1.1表示第一题第一空)。(2) return后面的表达式及其类型:19.2、30.2、39.2(3) 函数传递的参数:int fun(int *x,int *y) main() if(*x*y)return *x; int a,b,c;else return *y; scanf(“%d%d”,&a,&b); c=fun(&a
18、,&b); printf(“最大值为:%d”,c);一定注意:传递的是值还是地址。比较上面两个例子大家很容易区别传递的是值还是地址,第一个例子调用函数的时候传递的是值,因此在fun函数的形参中x和y仅仅是普通的变量,而第二个例子中调用函数的时候传递的是地址,因此在fun函数的形参中x和y就是两个指针变量。5.1、13.1、17.2、20.1、25.2依据刚刚讲的方法很快就能找出出错点。(4)指针的使用:int fun(int *x,int *y) if(*x*y)return *x; else return *y; 在此例中fun函数的形参是x和y,它们的类型是整型的指针,那么在fun函数的函
19、数体中使用到x和y的值时一定要区分:xy比较的是x和y所存变量地址的大小,*x*y才是比较值的大小。如果存在*x=x+y;的类似情况一定是错误的,必须要将赋值号的左右两边的类型变为一致。 5.2、5.3、20.2、24.2、35.1、44.1一定特别注意!7.数组: (1)数组下标的初始值:数组下标从零开始,到长度减一结束。考试技巧:当出错行在定义部分时,先检查该定义语句有没有语法错误,再看定义语句中的变量有没有赋初始值,最后看变量赋的初始值有没有正确。 定义初始值有窍门,遇到累加时,用来存放累加和的变量一般赋值为零,遇到求阶乘时,用来存放阶乘值的变量一般赋值为一。8.1中的变量k赋值为1,但
20、是我们说了数组的下标只能从0开始,因此将1改为0就行了。 (2)普通变量的初始值:依照上面的技巧,我们同样可以将它延伸到普通变量中。41.1中需要将变量的值进行初始化,题目中有这样的要求:“输出主对角线元素之和”,既然这样我们很肯定初始值应该为零,接着我们看看是给哪个变量赋值?看printf(“sum=%d”,sum);输出的是sum的值,说明sum就是我们要补充在横线上的变量。10.1也可以用同样的方法来分析。 (3)数组和字符串长度减一:当使用数组中的元素时,最大值只能到数组长度减一。字符串以0作为字符串的结束标志,因此取值最大也只能到字符串长度减一。25.2中输出printf(“%d”,
21、aai);分析程序知道i在此时就是数组的长度,我们要输出数组中的元素,最大就只能到aai-1,因此改为 printf(“%d”,aai-1);就行了。4.1和38.2中考查的是字符串长度减一的问题。(4)数组下标往后走:当题目要求将一个数组中的元素直接赋值或是以某种方式复制到另一个数组中时,接受数据的数组中的下标要自增。9.1中sj=si;将si中的值复制给sj,联系上下函数段发现i是一个变量被for语句控制,从0开始直到遇到0结束。i一直在加但是j没有变化,因此改为sj+=si;即可。类似的题目有:25.2、26.2、32.1、50.2。8特例:部分题目的解答很特殊,需要根据上下文中的内容来
22、解答题目;例如10.1,在此题目中,定义了变量t=0;根据下面程序中的循环,s=0.0,首先加的是变量t的值,即s的值是从0.0开始的,s得到的值是:s=0.0+0.0+1.0/3+,观察表达式的值,这个少加了第一项1.0的值,所以变量t的初值不能是0.0,只能是1.0,或者是1;21.2中的这个题目中,表达式的值是从2/1+3/2+5/3即表达式的规律是从第一项开始,以后的每一项的分子是前一项的分子和分母的和,分母为前一项的分子。所以该题目的第二个空中的内容应该是:c=a;a+=b;b+=c;这一条语句中 a代表的变量的分子,b代表的是变量的分母,执行第一个表达式的值,把a的值赋值给变量c,
23、第二个表达式是把分子和分母的和相加复制给变量a,第三个表达式是把原来a的值和变量b的值相加之后得到的值赋值给变量b,则变量b得到的值也为分子分母的和,不满足题意,而分母应该为原来分子的值。第三表达式的值应该改为:b=c;类似的题目有:33.2、40.2、43.1、47.1、50.19.素数 11.1 、29掌握求素数的格式:判断一个数是否是素数的方法很多,的是只用掌握一种即可,首先掌握判断一个素数的方法;素数的定义:1、是自然数 2、只能被1和本身整除,2到本身减一之间的数不能整除该数。判断m是否为素数的格式: for(i=2;im;i+) if(m%i=0) break; if(m=i) 表
24、明m是素数;素数只能被1和m,那么用2到m-1之间的数除m,如果有一个数能整除m,说明m不是一个素数,就不用再判断后面的数值了,用一条break语句提前结束函数;如果一直都不能整除,则说明m是一个素数。那么用循环语句表示2到m-1之间的数的语句为:for(i=2;inext;第二个空改为:p=p-next;.2、 不带头结点的链表带头结点的链表的第一个空的改为:p=h;第二个空改为:p=p-next;.三、上机编程题目的总结编程题目分类:(一)、数学题目:5、6、11、14、34、48、49 编程的题目中,如果是数学题目,编程时用到阶乘或者是奇数项的积,则首先给变量赋初值为1,不能赋初值为0,
25、同时把变量的类型定义为实型而不是整型。数学题目中结果都需要返回,如果说函数的类型是void则是通过指针返回,如果不是void,则必须用return返回。 如果是表达式中的值为1,则在编写程序时用去1.0.而不能用1。C语言中的除法的运算原则是整数除以整数,结果还是整数。 数组中存储数据时以下标来存储的,在数组中下标从0开始。解题详解 :6、观察表达式,左边求出的是p的值的一半,所以右边的表达式的值的计算好后应该乘以2才能得到p的值,观察表达式的右边 ,右边表达式中有分子、分母以及各表达式的值的和,分子是阶乘、分母是奇数项的积,分子除以分母得到一项的值。由此定义三个变量:s1代表分子,s2代表分
26、母、s3代表各项的和,定义一个整型变量i,让变量i从1开始。知道循环的结束。 int i; double s1=1.0,s2=1.0,s3=0.0; for(i=1;s1/s2=eps;i+) s3+=s1/s2; s1*=i; s2*=(2*i+1); return 2*s3;注意:此题目中要特别注意,循环语句的表达式2的判断条件是s1/s2=eps,而不是i=n,循环语句的语句的顺寻不能颠倒,即先加之后再计算。11、此题中要求能正处x,那么x应该为分子,而不是分母,把满足条件的数组放到pp所指的数组中,即pp数组应用一个整型的变量来做pp下标,数组下标从0开始,所以定义一个整形变量k并且赋
27、初值为0;满足条件的个数通过形参传回。int i,k=0;for(i=1;i=x;i+)if(x%i=0&i%2=1)ppk+=i;*n=k;备注:此题目中不能把i初值定义为0,否则程序运行时得不到结果。14、首先看清题意,题目中要求是小于形参n,不包括n,能被3与7整除,两者用逻辑与连接,平方根用平方根的函数sqrt;此题中要求的是自然数的和的平方根,而不是平方根的和,所以要先把满足条件的数加起来后再开方。定义一个整型变量i,让该变量由1直到n-1,用循环实现,一个整形变量s,让该变量存放的是满足条件的数的和,由于s为全局变量,故应该赋初值为0; int i,s=0; for(i=1;in;
28、i+) if(i%3=0&i%7=0) s+=i; return sqrt(s);34、观察表达式,表达式的分子为x的n次冥,分母为数字的阶乘,s为表达式的累加和,定义三个变量s1为分子 ,s2为分母,s为分子除以分母的和。 float s1=1.0,s2=1.0,s=1.0; int i; for(i=1;i=n;i+) s1*=x; s2*=i; s+=s1/s2;return s;备注:此时s的值不能赋初值为0;如果s得初值为0,此时表达式的值中没有第一项的值。并且必须用return返回。48、该表达式的分子均为1,分母为该项和下一项的积,s为最后表达式的累加和,定义一个整形变量I,用于
29、代表某一项的序号,则i+1到表达的是下一项的序号。 float s=0.0; int i; for(i=1;i=n;i+) s+=1.0/(i*(i+1); return s;备注:分子为1.0,而不能是1;因为c语言中规定,整型除以整型,得到的值仍然为整型,。 i+1必须用括号括起来,如果没有用括号括起来,根据乘法运算规则,则先运算i*i,再运算i*i+1的值。49、在该表达式中,分子分母都是阶乘,可以看做是三个数之间的运算,其中的每一个数都是另外一个数的阶乘,定义三个变量,其中s1代表的是m的阶乘,s2代表的n的阶乘,s3代表的是m-n的阶乘,表达式的值可以计算为:s1/(s2*s3);三
30、个变量都是代表的是阶乘,所以在赋初值时应该赋初值为1或者是1.0; float s1=1.0,s2=1.0,s3=1.0; int i; for(i=1;i=m;i+) s1*=i; for(i=1;i=n;i+) s2*=i; for(i=1;i=m-n;i+) s3*=i; return s1/(s2*s3); (二)、把满足条件的数放到数组中 4、12、25、35、37在做该类题目时,看清题目的要求,根基题目的要求解题,若只是把满足条件的删除或者是保留,则该类题目首先要定义一个整型变量并且赋初值0,根据题目意思把满足条件的存放到数组中,数组的下标同时加一往后走一个位置,如果是字符串类型的
31、题目,在最后还要加上字符串的结束符0;如果是把字母的大小写进行改变,则根据原则:小写改大写,减32,大写改小写,加32.只要涉及到数组的题目,都要定义一个整型变量i访问数组中的元素.在循环语句中,如果是字符串时,循环的条件是判断字符是否是结束符,而不是i=A&ssi=a&ssi=0&ssi=a&ssi=z) ssi-=32代码中:i代表的是访问数组下标的变量。循环的条件是ssi!=0,这事字符串是否结束的判断条件。从第一个字符开始,一直到遇到结束符为止。当取出一个字符后,对该字符进行判断,如果该字符满足条件的时候,执行ssi-=32;语句,即将小写字母改变成大写字母。12、先定义一个整型变量k
32、,并且赋初值0,作为数组的下标,一个整型变量i用来访问数组中的元素的下标. int i ,k=0; for(i=0;si !=0;i+) if(!(i%2=0&si%2=1) tk+=si; tk= 0;备注:if条件中的内容是先将删除的写出来,再前面加上一个!,用来否定,则剩下的就是要保留的内容。把满足条件的存放到数组t中,t也是一个字符数组,所以要够吃呢个字符串,必须在后面赋值结束符。(三)、素数 20、21 判断一个数是否是素数的方法很多,的是只用掌握一种即可,首先掌握判断一个素数的方法;素数的定义:1、是自然数 2、只能被1和本身整除,2到本身减一之间的数不能整除该数。判断m是否为素数
33、的格式: for(i=2;im;i+) if(m%i=0) break; if(m=i) 表明m是素数;素数只能被1和m,那么用2到m-1之间的数除m,如果有一个数能整除m,说明m不是一个素数,就不用再判断后面的数值了,用一条break语句提前结束函数;如果一直都不能整除,则说明m是一个素数。那么用循环语句表示2到m-1之间的数的语句为:for(i=2;im;i+),如果在这个范围内的数值有一个数值能整除m,说明m不是一个素数,则可以提前结束循环,break;那么结束之后这个循环中的变量I 的值小于m,如果m是一个素数的时候,则一直都不执行break语句;则循环语句结束的时候是在i=m的时候退
34、出循环。结束循环以后,进行i和m的比较,如果i小于m,则表明m不是一个素数;如果i等于m,则表明m是一个素数。20、把素数存放到数组中,先定义一个整型变量k,并且赋值为0,小于或者等于lim的条件为:for(m=2;m=lim;m+)所以代码为: int m,k=0,i; for(m=2;m=lim;m+) for(i=2;im;i+) if(m%i=0) break; if(m=i) aak+=m; return k;21、大于m的整数,m+1就大于m,找k个素数,那么循环的条件找到k个为止,用j代表找到素数的个数,则程序的代码: int i,j=1; for(m=m+1;j=k;m+) f
35、or(i=2;im;i+) if(m%i=0) break; if(m=i) xxj+=m; (四)、星号题目的解答方法:8、9、10、19、45 该类题目的解答方法是用简便方法。具体步骤如下:以第8题为例。1、单击上面的答题按钮。2、启动好了visual c+3、单击“文件”菜单下面的“打开”4、找到“prog1.c”,双击打开:5、不编写任何程序代码,直接编译程序,编译程序时6、编译好程序之后直接连接程序:7、运行程序出现运行窗口,运行程序以后 输入如果说窗口中没有出现“press any key to continue”的文字提示时,随便键入就可以了,之后按回车键结束。出现上面的窗口,再
36、按回车键结束。8、单击“文件”中的“打开”9、找到“out.dat”这一个文件双击打开“out.dat”文件将每一行中的内容根据题意进行修改。即将每一行中的星号,除了开始的外,其余的全部删除。得到的结果为:10、单击“文件”菜单中的“保存”11、单击“文件”菜单下的“退出”回到了开始的界面,就可以交卷了。星号的其他题目也是一样的做法。(五)、结构题类型 2、3、16、23、33 所有的结构题的类型的题目中都可以用简便方法进行解答,结构体的解答时要主要看程序中是否有nono()函数,如果有,要以该函数为准,如果没有该函数,则以main()函数为主。以第2题为例:观察程序代码中的内容:首先,该程序
37、代码中没有nono()函数,那么就以main()函数为主。根据题意观察主函数中的内容,主要看主函数中的数据,也就是结构体中的数据。sN=GA005,85,GA003,76,GA002,69,GA004,85, GA001,96,GA007,72,GA008,64,GA006,87, GA015,85,GA013,94,GA012,64,GA014,91, GA011,90,GA017,64,GA018,64,GA016,72;找到主函数中的fprintf 函数的内容:求的就是80到98范围内的数据,满足的个数以及写到out.dat文件中。只用数就可以了。有8个,观察代码中的这些代码,记住这是排
38、序的格式,如果是小于号,那么说明是降序排列,如果是大于号是升序排序。此题中是升序。观察后米的代码的内容,都是找到fprintf 函数的内容:该函数的把排序后的内容写到out.dat文件中。还要注意的是%4d的功能,这是按照格式写到文件中,只是这个是后输入的数据占有4个宽度,并且是右对齐。最后写到out.dat文件中的内容应该是:保存程序后退出程序即可。(六)、数值平移 1、42数值平移的题目可以用简便方法解决,其步骤和上面所写的一样,只是在打开“out.dat”文件之后的操作有所不同,具体的为:以1题为例:打开了“out.dat”文件之后,打开的是“in.dat”文件。在“in.dat”这个文
39、件中,前面的数字代表的是平移的个数。根据题目要求,是把前面的字符平移到最后,在“out.dat”文件中进行修改,最后的结果为:单击“文件”菜单下面的“保存”,单击“文件”菜单下的“退出”。(七)、找出数组中的最大值或者最大值所在的下标 18、29、36该类型题目可以用简便方法解决;解决此类题目时,首先要找到源程序中的以下内容,1、找到nono()函数,如果没有nono()函数,则找到主函数。2、找到fprintf函数。3、打开“in.dat”文件和“out.dat”文件。4、进行相应的修改之后,保存和退出。 以18题为例。首先找到nono()函数,再找到fprintf函数打开“in.dat”文
40、件根据“in.dat”文件中的内容进行选择。以第一行为例,最大的是121,所在的下表是1,所以在“out.dat”文件中的内容,根据fprintf函数的格式,应该先把下标写到文件中,再把数值写到文件中。所以“out.dat”文件中的内容为:要特别注意fprintf函数的格式:其中的两个%d之间是用逗号隔开,所以在把满足条件的数值存放到文件中时应该必须用逗号将两河数值隔开,并且先把满足条件的数的下标写到文件中,再把该最大数写到文件中。单击“文件”菜单下面的“保存”,单击“文件”菜单下的“退出”。(八)、链表题目 22 链表题目很难,在解决该类问题的时候可以用简便方法。步骤和上面所写的一样;首先要找到源程序中的以下内容,1、找到nono()函数,如果没有nono()函数,则找到主函数。2、找到fprintf函数。3、打开“out.dat”文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青花瓷音乐教学课件音频
- 老年人跖骨骨折护理查房
- 信息资源管理课件下载
- 指甲生长与健康管理
- 仓库存储管理制度
- 《儒林外史》整本书思辨性阅读教学研究
- 数学教学课件开场
- 基于虚拟同步发电机并网运行控制策略研究
- 基于附加阻尼的虚拟同步发电机低频振荡抑制策略研究
- (高清版)DB13 1082-2009 废塑料回收加工再加工生产技术规范
- GB/T 35273-2020信息安全技术个人信息安全规范
- GB 18068-2000水泥厂卫生防护距离标准
- 教师调动登记表(模板)
- 2022年医院收费员考试试题及答案
- 粤信签小程序操作使用说明
- 福建省林业行政执法人员法律考试
- 《组织机构代码证》word版
- 钢筋下料单(参考模板)
- 欧亨利短篇小说集(课堂PPT)
- OPGW光缆计算
- 5710装备生产过程质量监督要求
评论
0/150
提交评论