计算机二级机试题库_第1页
计算机二级机试题库_第2页
计算机二级机试题库_第3页
计算机二级机试题库_第4页
计算机二级机试题库_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

首 页,例题1 填空题例题2 填空题例题3 填空题例题4 填空题例题5 填空题例题6 填空题例题7 填空题例题8 改错题例题9 改错题例题10 改错题,例题11 改错题例题12 改错题例题13 改错题例题14 改错题例题15 编程题例题16 编程题例题17 编程题例题18 编程题例题19 编程题例题20 编程题,例题1 填空题,试题程序,下列给定程序中,函数fun()的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“ab,cd”。,#include #include #include char 【1】fun(char tt) int i; for(i=0;tti;i+) if(tti=A),题 干,试题答案,例题1试题程序,例题2 填空题,试题程序,下列给定程序中,函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。,#include #define SIZE 20fun (double *s,double *w) int k,i; double sum; for(k=2,i=0;iSIZE;i+) si=k;k+=2; sum=0.0; for(k=0,i=0;iSIZE;i+) sum+=si; if(i+1)【1】5=0) wk=sum/5; sum=0;k+; 【2】 k;void main() double aSIZE,bSIZE/5; int i, k; k=fun(a,b); printf(The original data:n); for(i=0;iSIZE;i+) if(i%5=0) printf(n); printf(%4.0f,ai); printf(nnThe result:n); for(i=0;i=A,题 干,试题答案,例题3试题程序,例题4 填空题,试题程序,下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为87653142时,t中的数为7531。,#include #include #include void fun(long s,long *t)int d; long s1=1; *t=0; while(s0) d=s【1】10; if(d%2!=0) *t=d*s1+*t; s1*=【2】; s/=【3】; void main()long s, t; system(CLS); printf(nPlease enter s: ); scanf(%ld,题 干,试题答案,例题4试题程序,例题5 填空题,试题程序,下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:I am a student to take the examination则应输出:I aM A studenT tO takE thE examinatioN,#include #include #include #include void fun(char *p) int k=0; for ( ;*p;p+) if (k) if (*p= ) 【1】; 【2】=toupper(*(p-1); else k=1;void main()char chrstr64; int d; printf(nPlease enter an English sentence within 63 letters: ); gets(chrstr); d=strlen(chrstr); chrstrd= ; chrstrd+1=0; printf(nBofore changing:n %s,chrstr); 【3】; printf(nAfter changing:n %s,chrstr);,题 干,试题答案,例题5试题程序,例题6 填空题,试题程序,下列给定程序中,函数fun()的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。,#include #include #include #define N 80int fun(char *s,char *t) int n; char *p, *r; n=0; while(*s) p=s; r=t; while(*r) if(*r=*p) r+; 【1】; else break; if(*r=【2】) n+; 【3】; return n;void main()char aN,bN; int m; printf(nPlease enter string a: );gets(a); printf(nPlease enter substring b: ); gets(b); m=fun(a,b); printf(nThe result is :m=%dn,m); ,题 干,试题答案,例题6试题程序,例题7 填空题,试题程序,下列给定程序中,函数fun()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a初值为8,b初值为3,程序运行后a中的值为3,b中的值为8。,#include #include int fun(int *x,int y) 【1】 t; t=*x;*x=y; return(t)【2】void main()int a=3,b=8; printf(%d %dn ,a,b); b=fun(【3】,b); printf(%d %dn ,a,b);,题 干,试题答案,例题7试题程序,例题8 改错题,试题程序,下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。 例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include #include void fun(char *p,char *q,char *c) int k=0; while(*p|*q)/*found*/ if (*p=*q) ck=*q; else ck=*p; if(*p) p+; if(*q) q+ ;/*found*/ k+ void main() char a10=fshADfg,b10=sdAEdi,c80=0; fun(a,b,c); printf(The string a:); puts(a); printf(The string b:); puts(b); printf(The result :); puts(c);,题 干,试题答案,例题8试题程序,例题9 改错题,试题程序,下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。 y=1-1/(22)+1/(33)-1/(44)+(-1)(m+1)/(mm) 例如:m中的值为5,则应输出0.838611。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include #include #include double fun(int m) double y=1.0;/*found*/ int j=1; int i; for(i=2; i1 ,题 干,试题答案,例题11试题程序,例题12 改错题,试题程序,下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:I am a student to take the examination则应输出:I aM A studenT tO takE thE examinatioN,#include #include #include #include #include void fun(char *p) int k=0; for ( ;*p;p+) if (k) /*found*/ if (p= ) k=0;/*found*/ *p=toupper( *(p-1); else k=1;,题 干,试题答案,例题12试题程序,void main()char chrstr64; int d; system(CLS); printf(nPlease enter an English sentence within 63 letters: ); gets(chrstr); d=strlen(chrstr); chrstrd= ; chrstrd+1=0; printf(nBofore changing:n %s,chrstr); fun(chrstr); printf(nAfter changing:n %s,chrstr);,题 干,试题答案,例题12试题程序,例题13 改错题,试题程序,下列给定程序中,函数fun()的功能是将字符串s中位于偶数位置的字符或ASCII码为奇数的字符放入字符串t中(规定第1个字符放在第0位中)。 例如:字符串中的数据为ADFESHDI,则输出应当是AFESDI。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include #include #include #include #define N 80/*found*/void fun(char s, char t ) int i, j=0; for(i=0; istrlen(s);i+)/*found*/ if(i%2=0|si%2!=0) tj+=si ; tj=0;void main() char sN, tN; system(CLS); printf(nPlease enter string s :); gets(s); fun(s,t); printf(nThe result is :%sn,t);,题 干,试题答案,例题13试题程序,例题14 改错题,试题程序,下列给定程序中,函数fun()的功能是找出100n(n不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include #define N 100int fun(int *s, int n) int i,j,k,a,b,c; j=0; for(i=100; i 1000); num= fun(a,n); printf(nnThe result :n); for(i=0; inum; i+) printf(%5d,ai); printf(nn);,题 干,试题答案,例题14试题程序,例题15 编程题,试题程序,请编写函数fun,其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。 例如,当a=16,b=35,调用该函数后,c=5361。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。,#include #include void fun(int a ,int b,long *c)void main() int a,b; long c; system(CLS); printf(Input a,b;); scanf(%d%d,题 干,试题答案,例题15试题程序,例题16 编程题,试题程序,请编一个函数void fun(int ttMN, int ppN), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。,#include #include #include #define M 3#define N 4void fun(int ttMN,int ppN) void main()int tMN=68, 32, 54, 12,14, 24, 88, 58,42, 22, 44, 56; int pN,i,j,k;system(CLS); printf(The riginal data is:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%6d,tij); printf(n); fun(t,p); printf(nThe result is:n); for(k=0;k=”。 错误2:C语言规定,每个语句要用分号结束。,例题9分析,错误1:为了做后面的除法运算,j要定义为实型数,否则除得的结果将为整数。 错误2:题中公式是加减相间的运算,通过j来实现。,例题10分析,错误1:该行是函数的首部,不是一条语句,因此不能以分号结束。 错误2:if后面应该紧跟一个条件判断表达式,若写成“if(n=1)”,则说明该表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。,例题11分析,错误1:函数的返回值为实型数据,所以函数的返回类型应为double。 错误2:根据阶乘的概念,从n开始,每递减1的数相乘,直到1,因此此处n递减,而不是递增。,例题12分析,错误1:p是指针变量,所以if语句中的条件应使用*p。 错误2:toupper函数是将小写字母转换成大写字母, *(p-1)指向字符串的最后一个字母,转换后的大写字母同样应该放在*(p-1)指向的内存空间中。,例题13分析,错误1:由于本题中函数的功能是对字符串进行处理,而不是对单个字符进行处理,因此,函数的参数应为字符串指针。 错误2:if语句中要用关系运算符,而不是赋值运算符。,例题14分析,错误1:k就是当前要被判断的数,是随着i值的变化而变化的。 错误2:在循环中,j是数组的下标要递增。,例题15分析,语句*c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10;是将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。注意“/”和“%”的用法。,例题16分析,本题中函数的功能是求出二维数组中每列的最大元素。首先,假设各列中的第一个元素最大,然后利用行标值的移动来依次取得各列中其他元素的值,并与假设的最大值进行比较,如果遇到更大的,则把这个更大的元素看做当前该列中最大的元素,继续与该列中其他元素比较。,例题17分析,本题考查利用循环来控制数组元素的操作,首尾元素除外,因此,数组的下标值要从1开始,用循环变量i来依次取得数组中的元素,用数组中的元素si和sj进行比较,如果后一个元素的ASCII码值小于前一个元素的ASCII码值,则交换这两个数组元素的值。,例题18分析,本题的解题思路是逐个取得从0n之间的所有数,对每次取得的数进行条件判断,条件是既能被5整除同时又能被11整除,注意:这两个条件要求同时成立,因此用到了“&”运算符。满足条件,该数就被累加到s中去,求出所有符合条件的数后,用sqrt()函数(包含于头文件中)对s求平方根。,例题19分析,根据所给数列定义不难发现,该数列最终的结果是由两个数列之和组成,所以可以在循环内部始终把c看成是前两项之和(即第n项),而a始终代表第n-2项,b始终代表第n-1项(通过不断地重新赋值来实现)。应注意,退出循环时得到的数c是大于指定比较的数的最小的数,而它的前一个数就是小于指定比较的数的最大的数。,例题20分析,本题的解题思路是用n逐个去除以2到n-1之间的所有数,如果n能被除尽,则把所得到的一个因子的平方累加到s中去。,例题1答案,【1】* 【2】Z 【3】tt,例题2答案,【1】% 【2】return 【3】bi,例题3答案,【1】*s 【2】1 【3】s+,例题4答案,【1】% 【2】10 【3】10,例题5答案,【1】k=0 【2】*(p-1) 【3】fun(chrstr),例题6答案,【1】p+ 【2】0 【3】s+,例题7答案,【1】int 【2】; 【3】&a,例题8答案,(1)错误: if (*p=*q)(2)错误:k+ 正确:k+;,例题9答案,(1)错误:int j=1; 正确:double j=1.0;(2)错误:y+=1/(i * i); 正确:y+=j/(i * i);,例题10答案,(1)错误:fun(int n); 正确:fun(int n)(2)错误:if(n=1) 正确:if(n=1),例题11答案,(1)错误:int fun(int n) 正确:double fun(int n)(2)错误:result *=n+ ; 正确:result *=n- ;,例题12答案,(1)错误:if(p= ) 正确:if(*p= ) (2)错误:*p=toupper( *(p-1); 正确:*(p-1)=toupper( *(p-1);,例题13答案,(1)错误:void fun(char s, char t ) 正确:void fun(char *s, char t )(2)错误:if(i%2=0|si%2!=0) 正确:if(i%2=0|si%2!=0),例题14答案,(1)错误:k=n; 正确:k=i;(2)错误:sj=i; 正确:sj+=i;,例题15答案,void fun(int a ,int b,long *c) *c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10; ,例题16答案,void fun(int ttMN,int ppN) int i,j,max; for(j=0;jmax) /*如果各列中的其他元素比最大值还大, 则将这个更大的元素看做当前该列中最大的元素*/ max=ttij; ppj=max; /*将各列的最大值依次放入pp数组中*/ ,例题17答案,int fun(char *s, int num)char t; int i, j; for(i=1;isj) /*如果后面字符的ASCII码值小于该字符的 ASCII码值*/ t=si; /*则交换这两个字符*/ si=sj; sj=t; return t;,例题18答案,double fun(int n)double s=0.0;int i;for(i=0; in;i+) /*从0n中找到既能被5整除同时又能被11 整除的数,并将这些数求和*/ if(i%5=0,例题19答案,int fun(int t) int a=1,b=1,c=0; /*a代表第n-2项,b代表第n-1项, c代表第n项*/ /*如果求得的数c比指定比较的数小, 则计算下一个Fibonacci数,对a,b重新置数*/do c=a+b; a=b; b=c; while (ct); /*如果求得的数c比 指定比较的数大时,退出循环*/ c=a; /*此时数c的前一个Fibonacci数为小于指定 比较的数的最大的数*/ return c;,例题20答案,long fun(int n) int i; long s=0; for(i=2;i=n-1;i+) /*从2n-1中找n的所有因子*/ if(n%i=0) s+=i*i; /*将所有因子求平方加*/ return s; /*将平方和返回*/,函 数,函数的定义 函数定义的一般形式、函数的参数和函数的返回值。 函数的调用 函数的调用方式、函数间的参数传递、函数的嵌套调用、函数的递归调用等。 函数间的数据传递 数据传递的方式和特点,掌握值传递内在运行过程。,char, 字符型说明符: char 字符型常量的表示:用单引号括起来的单个字符。 字符常量:A g 1 # 字符型数据的存储格式:ASCII码。 65 103 48 35 字符串常量的表示:用双引号括起来的单个字符。 ”This is C string” 串长16 ”a” 串长1 ” ” (空格)串长1 ” (不含空格)串长0,int,整型变量的说明格式: 类型说明符 变量列表; 例如:int i, j = 1; 整型常量的类型: 1.在整型数表示范围之内,根据值大小默认类型。 2.在常量后面加l或L,则认为它是long int型。,for,for语句格式for (表达式1;表达式2;表达式3) 语句; for语句的变化形式for语句中的三个表达式中的任意一个都是可以省略的,但是分号不能省略。 1.省略表达式2,则for(表达式1; ;表达式3) 就形成了一个死循环。 2.省略表达式1和表达式3,则for(;表达式2;)就等同于while( 表达式 )。 3.表达式1、2、3全省略,则for ( ; ; )就等同于while (1)。,while,while语句格式为while( 表达式 ) 语句; 说明:语句部分可以是简单语句,也可以是复合语句。 注意 1.while (0) . 由于循环的条件表达式恒等于0,循环体永远也不会执行,是编程者的错误。 2.while (1) . 由于循环的条件表达式恒等于1,所以不可能通过循环控制条件来结束循环体的执行,称为“死循环”。 3.为了保证循环正常运行,应该特别注意: 循环控制条件 控制条件的初始状态(初始值) 循环体内部对控制条件的影响。,do-while,do-while语句格式 do 语句while ( 表达式 ) ; do- while与while的区别:do- while语句先执行循环体然后再判断循环控制条件,而while是先判断条件之后再执行循环体;使用do-while构成的循环,循环体部分至少要执行一次;而采用while循环,循环体部分有可能一次也不会执行。,break语句,break语句格式break; break语句功能 1.在switch语句中结束case子句,使控制转到 switch语句之外。 2.在循环语句的循环体中使用,结束循环过程,使控制转移到整个循环语句之外的下一条语句处。 注意事项: 1.在嵌套循环中,break语句仅能退出一层(当前)循环。 2.若在循环语句中包含了switch语句,那么switch语句中的break 语句仅能使控制退出switch语句。 3.break语句并不是程序设计中必不可少的语句,可以通过改变程序的结构去掉。,continue,格式continue; 功能 仅能在循环语句中使用。它的作用不是结束循环,而是开始一次新的循环。 对于for语句,将控制转到表达式3,对于while和do-while语句,将控制转到条件测试部分。,scanf,格式输入函数 scanf(格式控制,地址列表); 注意: 1. 输入数据时,要严格按照给定的方式分隔数据。不特殊给定时,用空格、回车、Tab键分隔数据。当给定分隔符,按给定的进行分隔。否则出错。

温馨提示

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

评论

0/150

提交评论