计算机等级C语言上机考试填空题分类总结_第1页
计算机等级C语言上机考试填空题分类总结_第2页
计算机等级C语言上机考试填空题分类总结_第3页
计算机等级C语言上机考试填空题分类总结_第4页
计算机等级C语言上机考试填空题分类总结_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、填空题(一)、数学解题方法:1、如果在函数中定义变量,但是没有定义成静态存储变量,即变量前面没有static,应给变量赋初值,如果以后用到的是加减运算,则赋初值为0或者0.0;如果以后用到的是乘除运算,则赋初值为1或者1.0;2、循环条件的填空,分析表达式的规律,看表达式中的最后一项的值是否到了第m项或者是第n项,如果到了第m或者第n项,则在循环中的第二个表达式中用到的是i<=m或者是i<n;3、循环条件中如果用的是while语句,则循环变量的初值应该在while的外面定义和赋初值,在循环语句中必须给变量自加或者是自减。如果没有则一般填的是i+;4、看表达式中的每一项的运算规则

2、,按照运算的规则把每一项中n值替换为i,特殊情况例外。如果表达式中用到的是间隔相加减的运算时,注意给中间变量赋初值为1或者是1.0;在后面的运算中给变量乘以一个-1,以改变中间变量的符号。(二)、字符串1、循环的条件是判断该字符是否和结束符相等,如果相等,说明该字符串结束,否则说明没有结束,继续循环。2、把一个数字字符转变成对应的数值的格式是:ch=ch-0;把大写字母转变为小写字母的格式;ch=ch+32;把小写字母转变为大写字母的格式为:ch=ch-32;3、区分好字符数组中的指针和指针所指的值的关系。在循环语句中,当指针往后走一个位置的时候,用的是指针的自加,而不是指导针所指的值的自加。

3、4、掌握字符数组中的函数的使用的格式。即:strlen、strcmp、strcpy、sizeof、strcat的使用格式。注意里面的格式中使用的都是指针(或地址)。5、字符数组结果时都有一个结束符:0;在字符数组中的题目中的结束后要加上一个结束符。(三)、结构体结构体类型的题目1、看清题目的意思。2、定义结构体变量时的格式。3、结构体中成员的调用格式。结构体中的成员分为多种类型,调用结构体中的成员,使用的是“.”或者是“->”运算符。如16.2。得到结构体中学生分数,a->scorei。4、如果返回的是结构体的话,函数的返回类型必须是结构体类型。调用函数的格式中,调用的若是结构体数

4、组,则只用写结构体数组名。(四)、函数题目函数题目:1、看函数的返回类型,函数的返回类型必须和return语句返回的表达式的类型一致。2、函数的调用的情况,函数调用时只用写函数的名称、以及函数的参数。如:第一题中的第二和第三空的内容就是调用函数,填写时只用填写函数的名称和参数,故填f1(x)和f2(x,y);3、函数指针的调用格式,类型名(*f)();27题中第一空。4、函数参数的传递时的调用的格式,如果函数传递的是二维数组,则在函数的传递过程中形式参数必须使用的是由m个元素组成一行的指针变量。如第10题中的第一个答案:(*ss)M。(五)、链表题目链表题目的步骤:1、首先看清楚题目要求和意思

5、。看清楚链表有没有带头结点,如果带有头结点,第一空填的内容是p=h->next;如果不带有头结点,则第一个空填写的是p=h;2、如果第二个空是在循环语句while的括号中的时候里面的内容填写的是p或者是q,以最近出现的为主;如果是在循环语句的里面的时候,填写的是q=p->next;3、如果是排序的时候,从小到大的时候是大于号,从大到小的时候是小于号。如果是出现了r的地方,则在后面的空中填的是r(六)、文件类型1、文件类型的题目,看清楚题目意思,定义一个文件的指针,第一个位置出现fp的时候要填FILE *;2、掌握文件中fopen、fprintf、fscanf、fputs、fputc

6、、fgets、fgetc、fseek、fwrite、fread、rewind函数的使用的格式。fopen(“文件名”,“打开方式”);fclose(文件指针);fscanf(文件指针,格式控制字符串,输入列表项);fprintf(文件指针,格式控制字符串,输出列表项);fwrite(存入数据的指针,每一个数据占有的字节,输入数据的个数,文件指针);fread(读出数据的指针,每一个数据占有的字节,输出数据的个数,文件指针);3、文件打开之后要注意关闭文件,关闭文件的函数fclose(文件指针);4、在循环语句中如果使用到的是while(!feof()空格中填写的文件指针,表明判断的是文件指针是

7、否已经指到了文件的末尾。备注:如果文件指针指到了文件的末尾,则feof返回的是非零值,如果没有指在文件的末尾 ,返回的是0值。(七)、数组数组填空题在C语言考试中出现的频率很高,数组分为一维数组和二维数组。一维数组较二维数组来说简单一些。(1)一维数组中存在这样一些类型:3、17、20、14、31、411、求一个数值数组中的所有值的平均值和把大于或者小于平均值的数赋到另外一个数组中。在计算平均值时,首先定义一个变量来存放平均分,平均分一般用av变量来代替,如果av已经定义但是没有赋初值,那么这个空填写的内容为:av=0;2、计算平均值时有两种方法,第一种是算出总的分数, 最后再除以总的个数即可

8、,如算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;则填写的是:av+=si/N;3、在后面的一个空填写的时候要注意变量的使用情况,如果变量使用了j和i,那么这一个空的填写的内容为:j+;4、如果一维数组中求的是把大于或者是小于平均值的数移动到数组的首部的时候,这种题目的解答是这样的,第一个空一般填写的内容

9、为:j+;第二个空填写的内容是-1;5、对数组进行排序时;如果是从大到小的排序的时候,用的是小于符号,如果是从小到大排序时使用的是大于符号。(2)二维数组中的题目类型以及解决的技巧:4、7、26、34、39、401、二维数组的题目,填空的时候一般是填在函数调用,函数在调用时候写的应该是二维数组的名字;在定义函数的时候使用的是函数的类型和由m个元素组成一行的指针变量,假设二维数组的名字是ss,那么填写的内容是:(*ss)M;如果调用的是普通变量则填写的内容为:int n;2、二维数组遍历时,使用的是两个循环,使用的是循环的嵌套使用,第二个循环的使用的时候填写的内容为:j=0;(特殊的特殊处理)3

10、、交换两个变量的值使用的格式为:t=a;a=b;b=t;记住交换变量的格式和顺序。4、如果二维数组是字符串的时候,要记住字符串中函数的使用的格式;即strlen、strcmp、strcpy、sizeof、strcat的使用格式。注意里面的格式中使用的都是指针。5、特殊的特殊处理。第7题的填空的内容记住。二、改错题Z 语法错误1.书写标识符时,忽略了大小写字母的区别。main()int a=5;printf("%d",A);编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性

11、。2.忽略了变量的类型,进行了不合法的运算。main()float a,b;printf("%d",a%b);%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。3.将字符常量与字符串常量混淆。char c;c="a"在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:a'和',而把它赋给一个字符变量是不行的。4.忽略了“=”与“=”的区别

12、。在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写if (a=3) then 但C语言中,“=”是赋值运算符,“=”是关系运算符。如:if (a=3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1b=2编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。 z=x y;t=z/100;

13、printf("%f",t);对于复合语句来说,最后一个语句中最后的分号不能忽略不写。6.多加分号。对于一个复合语句,如: z=x y;t=z/100;printf("%f",t);复合语句的花括号后不应再加分号,否则将会画蛇添足。又如:if (a%3=0);I ;本是如果3整除a,则I加1。但由于if (a%3=0)后多加了分号,则if语句到此结束,程序将执行I 语句,不论3是否整除a,I都将自动加1。再如:for (I=0;I<5;I );scanf("%d",&x);printf("%d",x)

14、;本意是先后输入5个数,每输入一个数后再将它输出。由于for()后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它。7.输入变量时忘记加地址运算符“&”。int a,b;scanf("%d%d",a,b);这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。8.输入数据的方式与要求不符。scanf("%d%d",&a,&b);输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:3,4输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格

15、键tab。scanf("%d,%d",&a,&b);C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的:3,4此时不用逗号而用空格或其它字符是不对的。3 4 3:4又如:scanf("a=%d,b=%d",&a,&b);输入应如以下形式:a=3,b=49.输入字符的格式与要求不一致。在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。scanf("%c%c%c",&c1,&c2,&c3)

16、;如输入a b c字符“a”送给c1,字符“”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。10.输入输出的数据类型与所用格式说明符不一致。例如,a已定义为整型,b定义为实型a=3;b=4.5;printf("%f%dn",a,b);编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。11.输入数据时,企图规定精度。scanf("%7.2f",&a);这样做是不合法的,输入数据时不能规定精度。12.switch语句中漏写break语句。例如:根据考试成绩的等级打印出百分制数段。swi

17、tch(grade) case 'A':printf("85100n");case 'B':printf("7084n");case 'C':printf("6069n");case 'D':printf("<60 ");default:printf("error ");由于漏写了break语句,case只起标号的作用,而不起判断作用。因此,当grade值为A时,printf函数在执行完第一个语句后接着执行第二、三、四、五个p

18、rintf函数语句。正确写法应在每个分支后再加上“break;”。例如case 'A':printf("85100 ");break;13.在定义数组时,将定义的“元素个数”误认为是可使的最大下标值。main()static int a10=1,2,3,4,5,6,7,8,9,10;printf("%d",a10);C语言规定:定义时用a10,表示a数组有10个元素。其下标值由0开始,所以数组元素a10是不存在的。14.在不应加地址运算符&的位置加了地址运算符。scanf("%s",&str);

19、0;   C语言编译系统对数组名的处理是:数组名代表该数组的起始地址,且scanf函数中的输入项是字符数组名,不必要再加地址符&。应改为:scanf("%s",str);Z 逻辑错误1、使用了没有定义过的变量:这种题目可以通过编译查找出出错的地方并改之。(1)0(零)和o(字母欧)的区别:19题第一空、23题第二空、43题第二空。(2)P(大)和p(小)的区别:33题第一空。(3)普通变量大小写的区别:A、有的变量在定义的时候是小写但是在使用的时候是大写,或是在定义的时候是大写在使用的时候却是小写。B、大小写没有出错,程序中直接使用了没有定义过的

20、变量,要求学生更加细心的读题目。45题第二空使用到了i这个变量,但是我们在定义行中没有找到i的定义,因此在做题时候要上下结合来分析题目。22 题第二空c=aaj中的c没有定义过,参看定义的语句不能发现应该是c h=aa j。3 8题第一空要求将后面用到的变量s1 定义完整。2、运算符号出错:(1)C语言中除号是“/”不是“”(2)赋值号(=)和等号(=)混淆,记住在if 语句中出现赋值号(=)一般是将它改为等号(=)。14题第一空和29题第二空都是这样的错误。3、表达式的取值范围出错:当遇到计算表达式的累加或是累减时,一定用到循环来完成相应的操作。例如:改错题第七题中要求计算t=1-1/2*2

21、-1/3*3-.-1/m*m这个表达式,在这个题目中第一空有这样的for语句:for(i=2;i<m;i+) y-=1/(i*i);从题目中不难发现i是一个变量,它的取值范围从整数2开始到m-1结束,最终计算的结果为y=1-1/2*2-1/3*3-.-1/(m-1)*(m-1)和题目要求的不符,因此将i<m改为i<=m。做这样的题目看两点:一看题目中的表达式,二看for语句中变量的取值范围。31题第二空同样的考点。4、C语言中的除法运算:这个考点同样考查表达式的相关知识。例如:改错题第七题中要求计算t=1-1/2*2-1/3*3-.-1/m*m这个表达式,在这个题目中第一空有

22、这样的for语句:for(i=2;i<m;i+) y-=1/(i*i);刚才我们讲了表达式的范围,现在我们考虑y-=1/(i*i);是否正确?赋值号左边问题不大,我们看看右边1/(i*i),其中i是整数,那么i*i也是整数,在C语言中1除以比它大的数时值为零。这样和题目的要求就不相符。记住:1/2的值为零,只有1.0/2或是1.0/2.0的值为0.5。5、找最大值和排序问题:遇到这种题目在改错题中最容易考查的是大于(>)、小于(<)等符号的变化,当你查找出错的地方没有语法错误,也没有使用了未定义的变量时,记住这个口诀:将大于改为小于,将小于改为大于!11题第二空、1 2题第一

23、空和13题第二空、4题第二空都可以用这样的方法。6、函数的返回值及其参数:int fun(int x, int y) if (x>y) return x; else return y; void main( ) int a, b, c;scanf(“%d%d”,&a,&b);c=fun(a, b);printf(“最大值为:%d”, c); (1)函数的返回类型:在上面的例子中fun函数的返回值是int ,如果将int改为double ,很明显是错误的。从两个地方来看,首先return x;中x的类型必须和fun函数中的返回值相同,x是整型。其次c=fun (a,b);中

24、fun函数将一个返回值赋值给了变量C,说明函数返回的值一定是整型。记住:函数调用、函数的返回值和return中数据类型必须一致!1.1、3.1、1 6.1、19 .2、34 .1、36 .1、40 .1、4 8.1都是这样的错误,(注1.1表示第一题第一空)。(2)return后面的表达式及其类型:1 9.2、3 0.2、39 .2(3)函数传递的参数int fun(in t *x, in t*y)if (*x>*y) return *x;else return *y;void main( ) int a, b, c; scanf(“%d%d”, &a, &b); c=f

25、un(&a, &b);printf(“最大值为:%d”,c); 一定注意:传递的是值还是地址。比较上面两个例子大家很容易区别传递的是值还是地址,第一个例子调用函数的时候传递的是值,因此在f u n函数的形参中x和y仅仅是普通的变量,而第二个例子中调用函数的时候传递的是地址,因此在f un函数的形参中x和y就是两个指针变量。5.1、13 .1、17 .2、2 0.1、2 5.2依据刚刚讲的方法很快就能找出出错点。(4)指针的使用:int fun (in t *x, in t *y) if (*x>*y) return *x;else return *y;在此例中fun函数的

26、形参是x和y,它们的类型是整型的指针,那么在f un 函数的函数体中使用到x和y的值时一定要区分:x>y比较的是x和y所存变量地址的大小,*x>*y才是比较值的大小。如果存在*x=x+y;的类似情况一定是错误的,必须要将赋值号的左右两边的类型变为一致。一定特别注意!7、数组:(1)数组下标的初始值:数组下标从零开始,到长度减一结束。考试技巧:当出错行在定义部分时,先检查该定义语句有没有语法错误,再看定义语句中的变量有没有赋初始值,最后看变量赋的初始值有没有正确。定义初始值有窍门,遇到累加时,用来存放累加和的变量一般赋值为零,遇到求阶乘时,用来存放阶乘值的变量一般赋值为一。8.1中的

27、变量k赋值为1,但是我们说了数组的下标只能从0开始,因此将1改为0就行了。(2)普通变量的初始值:依照上面的技巧,我们同样可以将它延伸到普通变量中。4 1.1中需要将变量的值进行初始化,题目中有这样的要求:“输出主对角线元素之和”,既然这样我们很肯定初始值应该为零,接着我们看看是给哪个变量赋值?看printf (“sum =%d”,sum);输出的是sum 的值,说明sum 就是我们要补充在横线上的变量。10 .1也可以用同样的方法来分析。(3)数组和字符串长度减一:当使用数组中的元素时,最大值只能到数组长度减一。字符串以0作为字符串的结束标志,因此取值最大也只能到字符串长度减一。25 .2中

28、输出printf (“%d”,aai);分析程序知道i在此时就是数组的长度,我们要输出数组中的元素,最大就只能到aai-1,因此改为printf (“%d”,a ai-1);就行了。4.1和38 .2中考查的是字符串长度减一的问题。(4)数组下标往后走:当题目要求将一个数组中的元素直接赋值或是以某种方式复制到另一个数组中时,接受数据的数组中的下标要自增。9.1中sj=si;将si中的值复制给sj,联系上下函数段发现i是一个变量被f o r语句控制,从0开始直到遇到0结束。i一直在加但是j没有变化,因此改为sj+=si;即可。类似的题目有:25 .2、26 .2、32 .1、50 .2。8、特例

29、:部分题目的解答很特殊,需要根据上下文中的内容来解答题目;例如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代表的是变量的

30、分母,执行第一个表达式的值,把a的值赋值给变量c,第二个表达式是把分子和分母的和相加复制给变量a,第三个表达式是把原来a的值和变量b的值相加之后得到的值赋值给变量b,则变量b得到的值也为分子分母的和,不满足题意,而分母应该为原来分子的值。第三表达式的值应该改为:b=c;类似的题目有:3 3.2、40 .2、43 .1、4 7.1、50 .19、素数11 .1、29 掌握求素数的格式:判断一个数是否是素数的方法很多,只用掌握一种即可,首先掌握判断一个素数的方法;素数的定义:1、是自然数2、只能被1和本身整除,2到本身减一之间的数不能整除该数。判断m是否为素数的格式:f o r(i=2;i<

31、m;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;i<m;i+),如果在这个范围内的数值有一个数值能整除m,说明m不是一个素数,则可以提前结束循环,break ;那么结束之后这个循环中的变量I的值小于m,如果m是一个素数的时候,则一直都不执行break语句;则循环语句结束的时候是在i=m的时候退出循环。结束循环以后,

32、进行i和m的比较,如果i小于m,则表明m不是一个素数;如果i等于m,则表明m是一个素数。求素数的题目只要把格式给带进去就可以了。11.1这个题目中只用改为“=”。29 题也是一样的解答方法。10 、链表15 、27 链表的题目分为带头结点的和不带头结点的链表;1、带头结点的链表带头结点的链表的第一个空改为:p=h->next ;第二个空改为:p=p->next ;.2、不带头结点的链表不带头结点的链表的第一个空的改为:p=h;第二个空改为:p=p->next ;.一、 程序设计题编程题目分类:(一)、数学题目:5、6、1 1、14 、34 、48 、49 编程的题目中,如果是

33、数学题目,编程时用到阶乘或者是奇数项的积,则首先给变量赋初值为1,不能赋初值为0,同时把变量的类型定义为实型而不是整型。数学题目中结果都需要返回,如果说函数的类型是void则是通过指针返回,如果不是void ,则必须用return返回。如果是表达式中的值为1,则在编写程序时用去1.0.而不能用1。C语言中的除法的运算原则是整数除以整数,结果还是整数。数组中存储数据时以下标来存储的,在数组中下标从0开始。解题详解:6、观察表达式,左边求出的是p的值的一半,所以右边的表达式的值的计算好后应该乘以2才能得到p的值,观察表达式的右边,右边表达式中有分子、分母以及各表达式的值的和,分子是阶乘、分母是奇数

34、项的积,分子除以分母得到一项的值。由此定义三个变量:s1代表分子,s2代表分母、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应该为分子,而不是分母,把满足条件的

35、数组放到pp所指的数组中,即pp数组应用一个整型的变量来做pp下标,数组下标从0开始,所以定义一个整形变量k并且赋初值为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整除,两者用逻辑与连接,平方根用平方根的函数sq r t;此题中要求的是自然数的和的平方根,而不是平方根的和,所以要先把满足条件的数加起来后再开方。定义一个整型变量i,让该变量由1直到n-

36、1,用循环实现,一个整形变量s,让该变量存放的是满足条件的数的和,由于s为全局变量,故应该赋初值为0;int i, s=0;for(i=1;i<n;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;

37、如果s得初值为0,此时表达式的值中没有第一项的值。并且必须用return返回。48 、该表达式的分子均为1,分母为该项和下一项的积,s为最后表达式的累加和,定义一个整形变量I,用于代表某一项的序号,则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、在该表达式中,分子分母都是阶乘,可以看做是三个数之间的

38、运算,其中的每一个数都是另外一个数的阶乘,定义三个变量,其中s1 代表的是m的阶乘,s2代表的n的阶乘,s3 代表的是m-n的阶乘,表达式的值可以计算为:s1 /(s2 *s3 );三个变量都是代表的是阶乘,所以在赋初值时应该赋初值为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 在做该类

39、题目时,看清题目的要求,根据题目的要求解题,若只是把满足条件的删除或者是保留,则该类题目首先要定义一个整型变量并且赋初值0,根据题目意思把满足条件的存放到数组中,数组的下标同时加一往后走一个位置,如果是字符串类型的题目,在最后还要加上字符串的结束符0;如果是把字母的大小写进行改变,则根据原则:小写改大写,减32 ,大写改小写,加32.只要涉及到数组的题目,都要定义一个整型变量i访问数组中的元素。在循环语句中,如果是字符串时,循环的条件是判断字符是否是结束符,而不是i<=n;判断一个字母是否是大写字母ssi>=A && ssi<=Z判断是否是小写字母ss i>=a && ss i <=z。判断一个字符是数字字符ss i>=0 && ss i<=9;4、定义一个整型变量i来访问字符数组中的元素。把小写字母改写成大写字母,只用把小字母的ASCII值减去32 即可。int i;for(i=0;ss i!=0;i+)if (i%2=1&& ss i>=a && ss i<=z)ssi-=32 代码中:i代表的是访问数组下标的变量。循环的条件是ssi!=0,这是字符串是否

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论