分享
分销 收藏 举报 申诉 / 16

类型二级考试---计算机.ppt

  • 上传人:仙人****88
  • 文档编号:14742748
  • 上传时间:2026-11-12
  • 格式:PPT
  • 页数:16
  • 大小:150.50KB
  • 下载积分:10 金币
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    二级 考试 计算机
    资源描述:
    单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,机试题型,填空,/,改错,/,编程,给定程序的功能是,:,求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积,(,注,:,圆面积公式为,:2,在程序中定义的变量名要与公式的变量相同,),。,例如,输入圆的半径值,:19.527,输出为,:s=598.949991,。,注意,:,部分源程序给出如下。,请勿改动,main,函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。,试题程序,:,#include,double fun(double r),return 3.14159*【1】/2.0;,void main(),double x;,printf(Enter,x:);,scanf(%lf,【2】);,printf(s,=%lfn,fun(【3】);,【,参考答案,】,(1)r*r (2)&x (3)x,【,考点分析,】,本题考查,:,圆面积计算公式*,r*,r;scanf,(),函数的形式,其一般形式为,scanf,(,格式控制字符串,地址表列,);,注意地址是由地址运算符,&,后跟变量名组成的,;,printf,(),函数的形式,其一般形式为,printf,(,格式控制字符串,输出表列,);,函数实参调用,函数作为另一个函数调用的实际参数出现。,【,解题思路,】,填空,1:,计算圆的面积,公式为,:*r,。,填空,2:scanf(),函数一般形式为,scanf,(,格式控制,地址表列,),因此填入,&x,。,填空,3:,函数的实际参数是圆的半径,x,。,【,解题宝典,】,在程序中,如出现,scanf(%lf,【】);,则主要考查后面的地址表列,【】,注意地址是由地址运算符,&,后跟变量名组成的。,给定程序的功能是,:,判断字符,ch,是否与串,str,中的某个字符相同,若相同什么也不做,若不同则插在串的最后。,注意,:,部分源程序给出如下。,请勿改动函数,main,和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。,试题程序,:,#include ,#include ,void fun(char*,str,char,ch,),while(*,str,&*,str,!=,ch,),str,+;,if(*str【1】ch),str0=,ch,;,【2】=0;,void main(),char s81,c;,system(CLS,);,printf(nPlease,enter a string:);,gets(s,);,printf(n,Please enter the character to search:);,c=,getchar,();,fun(【3】);,printf(nThe,result is%,sn,s,);,【,参考答案,】,(1)!=,(2)str1,或*,(str+1),(3),s,c,【,考点分析,】,本题考查,:if,语句,一般掌握条件表达式的判定。函数的调用,其一般形式为,函数名,(,实际参数表,),。,【,解题思路,】,填空,1:,根据题意,若相同什么也不做,则应填入,!=,。,填空,2:,若不同则插在串的最后,那么,0,就在字符串的倒数第二了。,填空,3:,函数传递的参数为输入的两个字符串,则填入,s,c,。,【,解题宝典,】,if,语句的条件表达式一般会考查三个方面的内容,:,条件判断,即,与,=,、,与,=,、,=,与,!=,的区别,需要仔细分析题干的意思,确定条件表达式的内容。,逻辑判断,即,&(,逻辑与,),与,|(,逻辑或,),的区别,需要根据题干确定,if,条件中,若干个条件表达式的并存关系。,=(,赋值号,),与,=(,等于号,),的区别,注意在,if,条件中不会出现,=(,赋值号,),。,请补充函数,fun,该函数的功能是,:,判断某一个年份是否为闰年。,例如,1900,年不是闰年,2004,是闰年。,注意,:,部分源程序给出如下。,请勿改动,main,函数和其他函数中的任何内容,仅在函数,fun,的横线上填入所编写的若干表达式或语句。,试题程序,:,#include,#include,#include,int,fun(int,n),int,flag=0;,if(n%4=0),if(【1】),flag=1;,if(【2】),flag=1;,return【3】;,void main(),int,year;,system(CLS,);,printf(Input,the year:);,scanf(%d,&year,);,if(,fun(year,),printf(%d,is a leap year.,n,year,);,else,printf(%d,is not a leap year.,n,year,);,【,参考答案,】,(1)n%100!=0,或,n%100,(2)n%400=0 (3)flag,【,考点分析,】,本题考查,:,判断闰年的算法,年份能被,4,整除但不能被,100,整除,或者年份能被,400,整除。,return,语句,负责将函数值返回给主调函数。一般情况下,flag,在,C,语言中作为一种标志来使用,本书中有多个题目都使用了,flag,标志。,【,解题思路,】,填空,1:,判断闰年的方法是,年份能被,4,整除但不能被,100,整除,或者年份能被,400,整除。,n,不能被,100,整除,即对,100,取余非零。,填空,2:,能被,400,整除的年份也是闰年,n,能被,400,整除,即对,400,取余为零。,填空,3:flag,标记年份,n,是否为闰年,当,flag,为,1,时,是闰年,当,flag,为,0,时,不是闰年。,【,解题宝典,】,掌握判定闰年的算法,即年份能被,4,整除但不能被,100,整除,或者年份能被,400,整除。,理解如下关键代码,:,if(n%4=0),if(n%100!=0),flag=1;,if(n%400=0),flag=1;,请补充函数,fun,该函数的功能是,:,整除,x,且是偶数的数,把这些数保存在数组,bb,中,并按从大到小的顺序输出。,例如当,x=20,时,依次输出,:20 10 4 2,。,注意,:,部分源程序给出如下。,请勿改动,main,函数和其他函数中的任何内容,仅在函数,fun,的横线上填入所编写的若干表达式或语句。,试题程序,:,#include,#include,#include,void,fun(int,k,int,bb),int,I;,int,j=0;,for(【1】;I=0;I-),printf(%d,bbI,);,void main(),int,k=1;,int,bb100;,system(CLS,);,printf(nPlease,input X=);,scanf(%d,&k,);,fun(k,bb,);,【,参考答案,】,(1)i=1,(2)k%i=0&i%2=0,(3)-j,或,j-1,【,考点分析,】,本题考查,:for,循环语句的循环初值,根据题意确定循环变量取值范围。,if,语句的条件表达式,根据题意确定条件表达式,本题的条件表达式应该既满足整除又满足偶数的条件。,【,解题思路,】,填空,1:,为了求出能整除,k,且是偶数的数,寻找范围是从,1,到,k,。,填空,2:,如果,i,能整除,k,则,k,对,i,求余为,0,如果,i,为偶数,则,i,对,2,求余为,0,由于这两个条件要同时满足,所以要使用,与,运算符,&,。,填空,3:,由于数组,bb,中的数是按从小到大的顺序排列的,而题目要求按从大到小输出,所以从数组的最后一个元素开始,依次输出。因为在,for,循环中,变量,j,多加了一次,所以这里要将,j,减,1,得到数组最后一个元素的下标。,【,解题宝典,】,在,C,语言中,for,语句使用最为灵活,它完全可以取代,while,语句。一般形式为,:,for(,表达式,1;,表达式,2;,表达式,3),语句,最简单的应用形式也是最容易理解的形式如下,:,for(,循环变量赋初值,;,循环条件,;,循环变量增量,),语句,循环变量赋初值是一个赋值语句,它用来给循环控制变量赋初值,;,循环条件是一个关系表达式,它决定什么时候退出循环,;,循环变量增量,定义循环控制变量每循环一次后按什么方式变化,这三个部分之间用,;,分开。,请补充函数,fun,该函数的功能是,:,求出数组的最大元素在数组中的下标,并存放在,k,所指的存储单元中。,例如,输入如下整数,:876 675 896 101 301 401 980 431 45l 777,则输出结果为,:6,980,。,注意,:,部分源程序给出如下。,请勿改动,main,函数和其他函数中的任何内容,仅在函数,fun,的横线上填入所编写的若干表达式或语句。,试题程序,:,#include,#include,#include,int,fun(int,*,s,int,t,int,【1】),int,I,max,;,max=s0;,for(I,=0;Imax (3)i,【,考点分析,】,本题考查,:,函数定义,;if,条件表达式。,【,解题思路,】,填空,1:,根据函数的传递规则,显然这里填入的是一个指针。,填空,2:,要求出最大元素,需要进行目前最大元素与当前元素的比较。,填空,3:,这里要存储元素的下标,下标是,i,。,【,解题宝典,】,指针型变量做函数参数,如果实参变量中出现取地址符号,&,则其对应的形参变量一定为指针变量。,总结:,填空题中,涉及选择的条件、循环的初值、函数的参数 返回值比较多,还有简单的赋值,下列给定程序中,函数,fun,的功能是,:,求,k!(k,13),所求阶乘的值作为函数值返回。例如,若,k=10,则应输出,3628800,。,请改正程序中的错误,使它能得出正确的结果。,注意,:,不要改动,main,函数,不得增行或删行,也不得更改程序的结构。,试题程序,:,#include ,#include ,long,fun(int,k),/*found*/,if k1,return(k,*fun(k-1);,return 1;,void main(),int,k=10;,system(CLS,);,printf(%d,!=%ldn,k,fun(k,);,【,参考答案,】,错误,:if k1,正确,:,if(k,1),【,考点分析,】,本题考查,:if,语句条件表达式的格式。,【,解题思路,】,简单语法错误,不作介绍了。,下列给定程序中函数,fun,的功能是,:,计算,n!,。例如,给,n,输入,5,则输出,120.000000,。,请改正程序中的错误,使程序能输出正确的结果。,注意,:,不要改动,main,函数,不得增行或删行,也不得更改程序的结构。,试题程序,:,#include ,#include ,double,fun(int,n),double result=1.0;,/*found*/,if n=0,return 1.0;,while(n,1&n170),/*found*/,result=n-;,return result;,void main(),int,n;,printf(Input,N:);,scanf(%d,&n,);,printf(nn%d,!=%lf,n,n,fun(n,);,【,参考答案,】,(1),错误,:if n=0,正确,:,if(n,=0),(2),错误,:result=n-;,正确,:result*=n-;,【,考点分析,】,本题考查,:if,语句,一般情况下,需要根据题目要求确定条件表达式的内容,同时需要注意其格式。计算阶乘的方法,n!=n*(n-1)!,。,【,解题思路,】,(1),这里是一个简单的格式错误,if,条件应该加括号。,(2),根据阶乘的概念,从,n,开始,n!=n*(n-1)!,直到,1,所以应该为,result*=n-;,。,下列给定程序中,函数,fun(),的功能是,:,根据整型形参,m,的值,计算如下公式的值,:,请改正函数,fun(),中的错误,使它能得出正确的结果。,注意,:,不要改动,main,函数,不得增行或删行,也不得更改程序的结构。,试题程序,:,#include,#include,#include,double,fun(int,m),double y=1.0;,int,I;,/*found*/,for(I,=2;I,m;I,+),/*found*/,y-=1/(I*I);,return(y,);,void main(),int,n=5;,system(CLS,);,printf(nThe,result is%1fn,fun(n,);,【,参考答案,】,(1),错误,:,for(i,=2;i,m;i,+),正确,:,for(i,=2;i=,m;i,+),(2),错误,:y-=1/(i*i);,正确,:y-=1.0/(i*i);,【,解题思路,】,该题是一道简单的计算题,循环条件,for(i,=2;i,m;i,+),中忽略了,i=m,时的一种情况,因为题目中,i,是从,2,到,m,的一个计算公式。,y-=1/(i*i);,的错误很明显,是语法错误,由定义,double y=1.0,可知,应该是,y-=1.0/(i*i);,而非,y-=1/(i*i);,。,例如,:,(float)a,把,a,转换为实型,(,int)(x+y,),把,x+y,的结果转换为整型,下列给定程序中,函数,fun,的功能是,:,将大写字母转换为对应小写字母之后的第,5,个字母,;,若小写字母为,v z,使小写字母的值减,21,。转换后的小写字母作为函数值返同。例如,若形参是字母,A,则转换为小写字母,f,。形参是字母,W,则转换为小写字母,b,。,请改正函数,fun,中的错误,使它能得出正确的结果。,注意,:,不要改动,main,函数,不得增行或删行,也不得更改程序的结构。,试题程序,:,#include ,#include ,char,fun(char,c),/*found*/,if(c,=A&c=a&c=v&c=z),c=c-21;,return c;,main(),char c1,c2;,printf(nEnter,a,letter(A,-Z):);,c1=,getchar,();,if(isupper(c1),c2=fun(c1);,printf(nnThe,letter%c change to%cn,c1,c2);,else,printf(nEnter,(A-Z)!n);,【,参考答案,】,(1),错误,:c=c-32;,正确,:c=c+32;,(2),错误,:c=c-5;,正确,:c=c+5;,【,考点分析,】,本题考查,:,大写字母转换为小写字母的方法,即大写字母,ASCII,码,+32=,小写字母,ASCII,码。,【,解题思路,】,从,ASCII,码表中可以看出,小写字母的,ASCII,码值比对应大写字母的,ASCII,值大,32,所以大写字母转换成小写字母要加,32,。将大写字母转换成对应小写字母之后的第五个字母,所以要加,5,。,下列给定程序中,函数,fun,的功能是,:,通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量,a,中的值原为,8,b,中的值原为,3,程序运行后,a,中的值为,3,b,中的值为,8,。,请改正程序中的错误,使它能得出正确的结果。,注意,:,不要改动,main,函数,不得增行或删行,也不得更改程序的结构。,试题程序,:,#include,#include ,#include ,int,fun(int,*,x,int,y),int,t;,/*found*/,t=,x;x,=y;,/*found*/,return(y,);,void main(),int,a=3,b=8;,system(CLS,);,printf(%d,%,dn,a,b,);,b=,fun(&a,b,);,printf(%d,%,dn,a,b,);,【,参考答案,】,(1),错误,:t=,x;x,=y;,正确,:t=*x;*x=y;,(2),错误,:,return(y,);,正确,:,return(t,);,【,解题思路,】,本题考查指针变量做函数参数。同样,这里也涉及一个,交换规则,另外,根据题目主函数中函数,fum,的调用方式,说明函数,fum,的参数应当为指针类型。交换结束后返回变量,t,。,总结:,错误通常在,found,下面的第一行。内容涉及数据(参数)类型、循环的取值范围、初值设定、表达式表述等,编写函数,fun,它的功能是,:,求,n,以内,(,不包括,n),同时能被,5,与,11,整除的所有自然数之和的平方根,s,并作为函数值返回。,例如,n,为,1000,时,函数值应为,s=96.979379,。,注意,:,部分源程序给出如下。,请勿改动,main,函数和其他函数中的任何内容,仅在函数,fun,的花括号中填入所编写的若干语句。,试题程序,:,#include ,#include ,#include ,#include,double,fun(int,n),void main(),FILE*,wf,;,system(CLS,);,printf(s,=%,fn,fun(1000);,/*/,wf,=,fopen(out.dat,w,);,fun(s,);,fprintf,(,wf,%s,s,);,fclose(wf,);,/*/,【,参考答案,】,double,fun(int,n),double s=0.0;,int,i;,for(i,=0;i,n;i,+),/*,从,0 n,中找到既能被,5,整除同时又能被,11,整除的数,并将这些数求和*,/,if(i%5=0&i%11=0),s=,s+i,;,s=,sqrt(s,);/*,对,s,求平方根*,/,return s;,【,考点分析,】,本题考查,:,整除判定后求和、再对求和结果求平方根运算,;,变量数据类型,求和时变量如何初始化,;,整除的方法,;if,条件语句及,逻辑与,运算,;,sqrt,(),平方根函数的应用。,【,解题思路,】,本题的解题思路是逐个取得从,0,到,n,之间的数,对每次取得的数进行条件判断,条件是既能被,5,整除又能被,11,整除,注意这两个条件要求同时成立,因此用到了,&,运算符。若满足条件,该数就被累加到,s,中去,求出所有符合条件的数后,用,sqrt,(),函数,(,包含于头文件,中,),对,s,求平方根。,注意,:,部分源程序给出如下。请勿改动,main,函数和其他函数中的任何内容,仅在函数,fun,的花括号中填入所编写的若干语句。,试题程序,:,#include,#include,#include,void fun(,int,array33),void main(),FILE*,wf,;,int,i,j,;,int,array 33=100,200,300,400,500,600,700,800,900;,system(CLS,);,for(i=0;i3;i+),for(j=0;j3;j+),printf(%7d,arrayij,);,printf(n,);,fun(array,);,printf(Converted,array:n);,for(i=0;i3;i+),for(j=0;j3;j+),printf(%7d,arrayij,);,printf(n,);,【,参考答案,】,void fun(,int,array33),int,i,j,t,;,for(i,=0;i3;i+),/*,将右上三角和左下三角对换,实现行列互换*,/,for(j,=i+1;j3;j+),t=,arrayij,;,arrayij,=,arrayji,;,arrayji,=t;,【,解题思路,】,注意,:,对矩阵转置后仍然存回其本身时,只能循环矩阵中的一个角,(,本程序是右上半三角,),。控制右上半三角的方法是在第,2,个循环中,j,从,i+1,或,i,开始,控制左下半三角的方法是在第,2,个循环中写成,for(j,=0;j,i;j,+),若要控制所有元素则在第,2,个循环要写成,for(j,=0;j3;j+),。,编写程序,实现矩阵,(3,行、,3,列,),的转置,(,即行列互换,),。,例如,若输入下面的矩阵,:,100 200 300,400 500 600,700 800 900,则程序输出,:,100 400 700,200 500 800,300 600 900,请编写函数,fun,它的功能是,:,求出,ss,所指字符串中指定字符的个数,并返回此值。,例如,若输入字符串,123412132,输入字符,1,则输出,3,。,注意,:,部分源程序给出如下。,请勿改动,main,函数和其他函数中的任何内容,仅在函数,fun,的花括号中填入所编写的若干语句。,试题程序,:,#include,#include,#include,#define M 81,int,fun(char,*,ss,char c),void main(),FILE*,wf,;,char,aM,ch,;,system(CLS,);,printf(nPlease,enter a string:);,gets(a,);,printf(nPlease,enter a char:);,ch,=,getchar,();,printf(nThe,number of the char is:%,dn,fun(a,ch,);,【,参考答案,】,int,fun(char,*,ss,char c),int,i=0;,for(;*,ss,!=0;ss+),if(*,ss,=c),i+;,/*,求出,ss,所指字符串中指定字符的个数*,/,return i;,【,考点分析,】,本题考查,:,字符串结束标识,0;for,循环语句,如何遍历字符串;通过,if,条件语句,判断是否相同。,【,解题思路,】,从字符串,ss,中找出子字符串的方法是,:,从第,1,个字符开始,对字符串进行遍历,;,若,ss,串的当前字符等于,t,串的第,1,个字符,两字符串的指针自动加,1,继续比较下一个字符,;,若比较至字符串的结尾,则跳出循环,;,若,ss,串的字符和,c,串的字符不对应相同,则继续对,ss,串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if(),的作用是进行判断是否相同,若与,c,相同,则表示又出现一次。,请编写函数,fun,其功能是,:,将两个两位数的正整数,a,、,b,合并成一个整数放在,c,中。合并的方式是,:,将,a,数的十位和个位数依次放在,c,数的十位和千位上,b,数的十位和个位数依次放在,c,数的个位和百位上。,例如,当,a=45,b=12,调用该函数后,c=5241,。,注意,:,部分源程序给出如下。,请勿改动,main,函数和其他函数中的任何内容,仅在函数,fun,的花括号中填入所编写的若干语句。,试题程序,:,#include,#include,void,fun(int,a,int,b,long,*c),void main(),int,a,b,;,long c;,FILE*out;,printf(Input,a,b:);,scanf(%d%d,&a,&b,);,fun(a,b,&c,);,printf(The,result is:%ld,n,c,);,【,参考答案,】,void,fun(int,a,int,b,long,*c),*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;,【,考点分析,】,本题考查,:,如何取出数值,n,的各个位,主要是考查,%,和,/,的交换使用。两个整型数相除,/,用来求得数的整数部分,%,用来求余数。,【,解题思路,】,本题中主要的问题是怎么取出,a,和,b,的个位数和十位数,取出后怎么表示成,c,中相应的位数。由于,a,和,b,都是只有两位的整数,所以分别对它们除,10,可得到它们的十位数,分别用,10,对它们求余可得到它们的个位数。得到后对应乘以,1000,、,100,、,10,、,1,就可得到,c,的千位数、百位数、十位数和个位数。注意,:,使用,c,时要进行指针运算。,【,解题宝典,】,知道一个三位数,n,需要表示各个位,采用求余和除法操作,如,n%10(,取个位,),、,n/10%10(,取十位,),、,n/100(,取百位,),。,如果已知数值,n,的各个位,那么采用乘,10,、,100,、,1000,等来表示该数值,n,。,请编写一个函数,fun,它的功能是,:,将,ss,所指字符串中所有下标为奇数位置的字母转换为大写,(,若该位置上不是字母,则不转换,),。,例如,若输入,abc4Efg,则应输出,aBc4EFg,。,注意,:,部分源程序给出如下。,请勿改动,main,函数和其他函数中的任何内容,仅在函数,fun,的花括号中填入所编写的若干语句。,试题程序,:,#include,#include,#include,#include,void,fun(char,*,ss,),void main(),FILE*,wf,;,char tt81,s81=abc4Efg;,system(CLS,);,printf(nPlease,enter an string within 80 characters:n);,gets(tt,);,printf(nnAfter,changing,the stringn%,s,tt,);,fun(tt,);,printf(nbecomesn,%,sn,tt,);,【,参考答案,】,void,fun(char,*,ss,),int,i;,for(i,=0;ssi!=0;i+),/*,将,ss,所指字符串中所有下标为奇数位置的字母转换为大写*,/,if(i%2=1&ssi=,a&ssi,=,a&ssi,=z),总结:,1,、一定要运算,测试结果,2,、数字类(如拆数字)、字符串类,比较多,3,、多记忆一些典型算法和技巧,比如:排序、逆序、求阶乘、累加、数据交换、素数判断、字母大小写判断及转换。字符指针的基本操作、数组行列变换、奇偶下标元素的操作等。,4,、从范例来看,文件及结构体类型相对比较少。,
    展开阅读全文

    开通VIP折扣优惠下载文档

    提示  咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。

    咨信网小贴示:
    1、浏览或下载可查看了解,请点击【咨信网告知】。
    2、下载文件中如有侵权或不适当内容,将立即纠正。
    3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
    4、开具发票登录电脑端申请,请点击【索取发票】。

    咨信网客服组:【微信客服】

    自信AI创作助手
    关于本文
    本文标题:二级考试---计算机.ppt
    链接地址:https://www.zixin.com.cn/doc/14742748.html

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork