二级C语言考试复习资1.doc_第1页
二级C语言考试复习资1.doc_第2页
二级C语言考试复习资1.doc_第3页
二级C语言考试复习资1.doc_第4页
二级C语言考试复习资1.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

二级C语言考试复习资料1、 找出1100中其各位数的乘积大于各位数的和的所有整数#includestdio.hmain() int k=1,s=0,m,n;printf(n);for(n=1;ns & s) printf(%4d,n);2、 编程实现:学校买校服小于50套90元一套元一条,超过50套80元一套,单件上衣60元一件,裤子45元一条,现需购买M套上衣,N套裤子,共需多少钱?#includestdio.hmain() int m,n,s,k;printf(please input the clouth numble:m and the shirt numble:nn);scanf(%d,%d,&m,&n);if (m=n) if(m50) s=80*m;s=90*m; if(mn)k=m-n;if (n50) s=80*n+k*60;else s=90*n+k*60;else k=n-m;if(m50) s=80*m+k*45;else s=90*m+k*45;printf(s=%d,s);3、 如果a=1,b=2,c=0,k=2写出表达式ka?k:c?k:cb?c:a结果是C的值includestdio.hmain()int a,b,c,k;a=4;b=5;c=1;k=6;k=ka?k:c?k:cb?c:a;printf(k=%d,k);4、若有如下定义和说明则P+1代表的是元素( a01 )的地址.int a23,(*P)3; P=a;5、画矩阵n=4n=5main()int a1010,m,n,i,j;scanf(%d,&n);if(n%2=0)m=n/2;else m=n/2+1;for(i=0;im;i+)for(j=i;jn-i;j+)aij=i+1;an-1-ij=i+1;aji=i+1;ajn-i-1=i+1;for(i=0;in;i+) for(j=0;jn;j+)printf(%d,aij); printf(n);6、画n层金字塔main()int i,j,m,n;printf(“please input n:n”);scanf(“%d”,&n); for(i=1;i=n;i+)for(j=1; j=n-1; j+) printf”(“ “) ; /画空格for(k=1; k=2*i-1; k+)printf(“ * “); /画星号printf(“n”);7、求下列表达式的值 1) 若a是int变量,a=6;则a+=a-=a*a的值是-602) 若a,b是int变量,a=6,b=5;则a%=(b%=2)的值是03) 若x=2.5 , a=7, y=4.7 则x+a%3*(int)(x+y)%2/4值是2.54) a=2, b=3, x=2.5 y=2.5则(float)(a+b)/2+(int)x%(int)y值是2.55) int x,y,z,k;x=(y=52,z=26,k=32)后x的值是326) 语句printf(“%d”,stramp(“TEH”,”THE”);的结果是-3main()printf(%d,strcmp(TEH,THE);8、找出1100中能被3整除且个位数是6的所有整数main()int i ,j;for(i=0,i10;i+)if(i*10+6)%3=0) printf(%-4d,i*10+6);else continue;9、假如m是一个三位数abc,由a、b、c组成另一个三位数cba,则表达式是:因为c=m%10,b=(m/10)%10,a=m/100,所以结果是:(m%10)*100+(m/10)%10)*10+m/100.程序如下:main()int m;printf(please input 3bit numblem=abc:n);scanf(%d,&m);printf(m.a=%d,m.b=%d,m.c=%dn,m/100,(m/10)%10,m%10);printf(cba=%dn,(m%10)*100+(m/10)%10)*10+m/100);9、编程计算找出x,y,x中的最小值: void main(void)int x=4,y=5,z=8;int u,v;u=xy?x;y;v=uz?u:z;printf(“min=%d”,v);A. 10、11、写出下列程序运行结果:(1)main()int x=2,y=-1,z=2;if (xy)if (y0);结果是9630(4)main()int a=6,b=5;printf(%d,a%=(b%=2); 结果是0(5)#define P x+xmain()int x=5,y;y=P*P;printf(%d,y);结果是 35(6)main()int a=12,b=12;printf(“%d %d”,-a,+b) 结果是11 13(7)main()int a=2,b=3,c;c=1.0/b*a;printf(n%d,c); 结果是0 和下面程序对比有什么不同main()int a=2,b=3;float c;c=1.0/b*a;printf(n%f,c);(8)main()int y=10;while(y-);printf(“y=%d”,y); 结果是 -1(9)int f( int x)static int m=0;m+=2;return (m+x);main()int i;for (i=1;i=4;i+)printf(“%d,”,f(i);结果是3,6,9,12,(10)#include”string.h”void fun(char *w,iny m)char s,*p,*p2;p1=w;p2=w+m-1;while(p1p2)s=*p1+;*p1=*p2-;*p2=s;main()char a=”abcdefg”;fun(a,strlen(a);puts(a);结果是agaagag(11)#includevoid main(void)int x=10,*p;p=&x;printf(“%d”,*p);结果是1012)#includevoid main(void)int i,s=0;for(i=1;i8;i+=2)s+=i;printf(“s=”,s);结果是s=1613)#include#define sub(x,y) x-yvoid main(void)int x,y,z;x=4;y=3;z=12-sub(x,y);printf(“z=%d”,z);结果是513)#includevoid main(void)int i,s,d10=21,33,45,7,3,113,67,75,83,26;s=0;for(i=0;i10;i+=2);if(di%3!=0)s+=si;printf(“s=%d”,s);结果是s=15014) #includevoid main(void)int x,/*p;p=&x;*p=100;printf(“%d,x);结果是10015)#includevoid main(void)int x=1,y=0,a=0,b=0;switch(x)case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2:a+;b+;break;printf(a=%d,b=%d”,a,b);结果是a=2,b=116)#includevoid main(void)int x,*p;x=3;p=&x;*p*=10;printf(“x=”,x);结果是x=3017) a=10;b=0;do b+=2;a-=2+b; while(a=0);执行次数是312编程实现去掉一个英语句子中多余空格main()char c80= I am 16.;int flag=0,i=0;for(i=0;ci!=0;i+)if(ci!= ) printf(%c,ci);flag=1;else if(ci= & flag=1) printf(%c,ci);flag=0;13、编程实现输入一组数,输出偶数includestdio.h#includemath.hmain()int i,j,a10,b10;for(i=0;i10;i+)ai=rand();for(i=0,j=0;i10;i+)if(ai%2)=0) bj+=ai;else continue;for(i=0;ij;i+)printf(%d,bi);14、编程求最大公约数和最小公倍数main()int a,b,p,temp,t;scanf(%d,%d,&a,&b);if(ab) temp=a;a=b;b=temp;p=a*b;while(b!=0)t=a%b;a=b;b=t;printf(max yo numble=%d,a);printf(main bei numble=%d,p/a);15、选择法排序main()int i,j,min,t,a11;printf(input data:n);for(i=1;i=10;i+)printf(a%d=,i);scanf(%d,&ai);printf(n);for(i=1;i=10;i+)printf(%5d,ai);printf(n);for(i=1;i=9;i+)min=i;for(j=i+1;jaj) min=j;t=ai;ai=amin;amin=t;for(i=1;i=10;i+)printf(%5d,ai);16写一个函数用冒泡法对十个字符排序#includestring.hvoid sort( char a)int i,j;char t;for (i=1;i10;i+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;main()int i ;char a20;gets(a);sort(a);puts(a);17、在一组有序数中插入一个数后仍然有序main()int a11=1,10,20,30,40,50,60,70,80,90;int x,n,end,i;printf(please insert data:n);scanf(%d,&x);if(xa9) a10=x;elsen=0;while(xan)n+;for(i=10;in;i-)ai=ai-1;an=x;for(i=0;i11;i+)printf(%5d,ai);18、输出乘法口诀表main()int i,j;for(i=1;i=9;i+)for(j=1;j=a & ai=z) ai=ai-32;fput(ai,fp);i+;fclose(fp);fp=fopen(“test”,”r”);fgets(a,strlen(a)+1,fp);printf(%sn”,a);fclose(fp);20设计一个整型函数:int GetMaxVal(int data),求整型数组data中的最大元素值,并将该值作为函数数值返回,其中data0记忆数组中的元素个数。将代码以cfile.cpp为名保存在c:GATDoc目录中#includeint GetMaxVal(int data),int i,max;max=data1;for(i=2;idata0;i+)if(maxdatai)max=datai;return max;main()int data11=10,.88.678,12pritnf(“max=%d”, GetMaxVal(data);21.有1020个西瓜,第一天卖一半另加2个(即卖512个),以后每天卖剩下的一半另加2个,问几天以后能卖完?#includevoid main(void)int day,x1,x2;day=0;x1=1020;while(x1)x2=x1/2+2;x1=x1-x2;day+;printf(;day=%d”,day);22编写代码:计算1至50中能被7整除的所有自然数的和,将代码以cfile.cpp为名保存在C:GATDoc目录中23.从键盘中输入三个整数a,b,x,判断x是否等于a,b之和,将代码以cfile.cpp为名保存在C:GATDoc目录中20、选择题1) 下列算术运算符中,只能用于整型的是( D)A - B. + C. / D. %2)判断字符串ab是否相等应当使用( D )Aif (a=b) B.if (a=b) C.if (strcpy(a,b) D.if (strcmp(a,b)3)有int k=7,x=12;则能使值为3的表达式是( C )A. x%=(k%=5) B. x%=(x-k%5) C.x%=k+k%5 D.(k%=5)-(x%=k)4)已知int a;float i=2;下列合法的语句是( )A. a=1 B. +i; C.a=a+=5; D.a=int(i);5)在C语言中合法的字符常量是(B)A 084 B x48 C.”48” D. 486)下面关于switch和break语句说法正确的是(B)A. break是switch的一部分;B. 在switch中可根椐需要使用和不使用break语句;C. 在switch中必须使用break语句;D. 以上三个结论有两个是正确的7)能正确表示a和b同时为正或同时为负的逻辑表达式是(D)A. (a=0| b=0)&(a0|b=0& b=0)& (a0 & b0&(a+b08)函数的定义和引用中以下下说法正确的是(B)A. 必须有形参 B。 可以没有形参B. C数组名不能作形参 D。形参必须是变量名9)如果在一个函数的复合语句中定义了一个变量,则该变量( A )A 只在该复合语句有效;B 在函数内有效;C 不能在复合语句中定义变量;D 在程序文件范围内有效;10)C语言中( D )存储类型的变量只在使用时分配空间A static 和autoB register和 externC register和 staticD auto 和register11)下列说法正确的是( B )A 函数的定义可以嵌套,但调用不能嵌套B 函数的定义不可以嵌套,但调用可以嵌套C 函数的定义和调用都不能嵌套D 函数的定义和调用都可以嵌套如果限制一个变量只能被本程序使用,必须通过( C )来实现A 静态内部变量 B、外部变量说明 C、静态外部变量 D、局部变量说明12)下列说法正确的是( A )AC语言由1个或多个函数组成B一个C程序必须包含在一个源文件中C一个函数可以定义其他函数D所有函数必须在一个源文件内13)一个被调用函数无返回语句,则函数返回值的类型是( D )A、char B.int C.无返回值 D、无法确定14)对宏命令的处理是(B)、在程序执行时进行 B、在程序对其它语句进行编译前进行C、在程序连接时进行 D、与程序中其它语句同时进行编译15)下列说法正确的是(C)A、预处理命令只能位于程序开始处B、预处理功能是指宏替换和文件包含调用C、只要#标识的控制行老师预处理命令D、上述说法都对16)return的说法正确的是( C)A、必须在每个函数中出现B、只能在非主函数中出现一次C、可以在一个函数中多次出现D、在主函数和其它函数中都可以出现17)下列说法不正确的是(B)A、形参是局部变量 B、主函数中定义的变量在整个文件都有效C、可以在一个函数的复合语句中定义变量D、不同函数可以使用相同变量名18)建立函数的主要目的之一是(b)。A. 提高程序的执行效率 B. 提高程序的可读性 C. 减少程序的篇幅 D. 减少程序文件所占内存19) 以下关于预处理的叙述中不正确的是(c)。 A. C源程序中凡是以#号开始的控制行都是预处理命令行 B. 预处理命令行必须位于源程序的开始部位 C. 一条有效的预处理命令行必须单独占据一行 D. 预处理命令是在正式编译之前先行被处理的20)若有以下说明和语句,则对结构体变量std中成员id的引用方式不正确的是(a)。 struct work int id; int name; std,*p; p=&s+d; A. std.id B. *p.id C. (*p).id D. p-id21)下列运算符中优先级最高的是(b)。 A. B. + C. & D. !22)设有说明: double y=0.5,z=1.5; int x=10;则能够正确使用C语言库函数的赋值语句是(d)。A. z=ln(y)+abs(y); B. y=log10(y)+pow(y); C. z=sqrt(y-z); D. x=(int)(atan2(double)x,y)+exp(y-0.2);23)若运行以下程序时, 从键盘输入2473, 则下面程序的运行结果是(a)。 #include void main(void) int c; while(c=getchar()!=n) switch(c-2) case 0: case 1: putchar (c+4); case 2: putchar (c+4); break; case 3: putchar (c+3); default: putchar (c+2);break; printf(n); A. 668977 B. 668966 C. 66778777 D. 6688766.24)对for(表达式1; ;表达式3)可理解为(b)。 A. for(表达式1;0;表达式3) B. for(表达式1;1;表达式3) C. for(表达式1;表达式1;表达式3) D. for(表达式1;表达式3;表达式3)25)在访问一个结构元素前你必须定义(B)A、结构体 B、结构体变量 C、定义结构指针 D、A和B26)下列关于if语句说法正确的是Aif语句的控制条件必须用园括号括起来。Bif语句只能处理一个分支Cif语句的子语句不可以再是if语句Dif语句不可以带elxe分支27)整型变量的取值范围是A.065535 B.032767 C.-3276732768 D.-327683276728)在一批含有许多相同数据100的有序数据中采用二分查找法找到数据100的位置是(d)A.是位于最后面的B.多数情况下是位于首尾之间的C.是位于最前面的D.是位于正中间的29) 以下能正确定义整型变量x, y和z并为其赋初值5的语句是( )Aint x=5,y=5,z=5;B.int x,y,z=5;C.x=y=z=5;D.int x=y=z=5;30)下面关于switch语句中case所携带常量的叙述中正确的叙述是( )A.每个case所携带的常量不能是零B.case所携带常量不能是实数C.case所携带常量必须介于19之间D.case所携带常量不能是负数31)以下运算符中优先级啊高的运算符是(C)A+ B.- C.* D.0下面关于数据输出宽度控制的叙述中正确的叙述是()A%-md按m列左靠齐输出数据 B. %-md按m列右靠齐输出数据 C. %md按m列居中输出数据 D. %-md按m列左靠齐输出数据47)若有说明语句:char ch1=065;则ch1中含有(C)个字符。A2 B. 3 C. 1 D. 448)若有以下说明和语句则对结构体变量std中成员id的引用方式正确的是(C)struct work int id;int name;std;Astd-id; B. id C. std.id D. (*std).id49)设有语句如下:int =5,y;y=x/3;则y的值是(D)A1.6 B. 2 C. 1.666666 D. 150)已知字母A的ASC码的值为65,变量ch1为字符型,则执行语句ch1=A+6-3后ch1中的值是(D)AC B. 一个不确定值 C. 65 D. D51.以下下运算正确的程序段是(C)A.char str1=”12345”,str2=”abcdef”;strcpy(str1,str2);B. char str 10,*st=”abcdef”;strcat(str,st);C. char *st1=”12345”,*st2=”abcde”;strcat(st1,st2);D. char str 10=”,*st=”abcde”;strcat(str,st);52.下面关于文件的叙述中正确的叙述是(A)。A无论按照何种方式打开文件,对其处理完毕后都应关闭。B按照“写”方式打开的文件如果未写入数据则可以不关闭。C按照“随机”方式打开的文件可以不关闭。D按照“读”方式打开的文件可以不关闭。53已知:int i=6,j;则执行语句j=+i+(i+)后j的值是(C)。A16 B.15 c.14. D.1254. 两个类型相同的指针变量不能进行运算的运算符是(C)。A. - B.+ C.+ D.*55.若有定义:int k=7;float a=2.6,b=4.7;,则表达式a+k%3的值是( D)A. 4 B.3 C.3.2 D.3.656.设有语句如下:int x=3,y=0;则下面表达式为1的是(B)A.x&y B.x|y C.x D.y157,以下运算符中优先级最高的运算符是(A)A. * B. C.- D.+58.若有代数式3ae/bc,则不正确的C语言表达式是(C)A.a/b/c*e*3 B.3*a*e/b/c C.3*a&e/b*c D.a*e/c/b*359.C语言允许函数值类型缺省定义,此睦该函数值隐含的类型是(c)A.long B.double C.int D.float60.以下关于函数的实参与虚参(又称形参)的叙述中不正确的说法是(A)A虚参可以是常量、变量或表达式B虚参应与其对应的实参类型应当尽量一致C实参可以是常量、变量或表达式D虚参为指针时,与其对应的实参只能是表示地址的表达式21、填空题1) C语言中数据的基本类型有整型 、 实型 、字符型 、板举型 。2) C语言的三种基本结构是顺序结构、选择结构和循环结构。3)若有定义:int a35,i,j;(且0i3,0j5),则aij的地址是(i-1)*5+j-1可用五种形式表示。它们是:(1)&aij(2)ai+j(3)*(a+i)+j(4)&a00+( )(5)a0+(5*i+j)4)利用指针参数或记录类型作为返回值类型可以使一个函数返回多个值。5)指针实际是机器的内存地址。6)二维数组有两个下标分别用一对方括号括起。7)void *是无基类型指针类型8)数组指针是指数组在内存的首地址9)函数的返回值和参数可以是指针。10)二维数组名是一维数组的指针常量11)整型和实型可以转换,但整型指针和实型指针不能转换。12)在C语言中把文件缓冲区中数据写入文件进程称为输出从文件读取数据称为输入13)C语言文件分为文本文件和二进制文件,若称为流式文件由字符(或字节)组成不是由记录组成14)文件操作的一般顺序是打开文件、读写文件、关闭文件15)fputs(str,fp)的功能是把str所指向的字符串输出到fp所指的文件中,但不输出字符串结束符016)设有如下定义:structint a;char s10;x;则变量x所占内存字节数是(12)17)设a=4,b=5,f= (a=3)+(b=5),则f的值是(1 )18)下面程序的功能是从键盘上输入的最多10个整数中,找出第一个能被7整除的数,若找到,打印此数后退出循环,若未找到打印“ not exist”#includevoid main(void)int i,a;for(i=1;i11;i+)scanf(“%d”, &a );if(a%7=0) printf(“%d”,a);break; if( i=11 )printf(“not exist”);19) 下面程序的功能是将字符串s中所有的字符c删除。#includemain()char s80;int i,j;gets(s );/*输入字符串*/j=(0 );/*计数器初始化*/for(i=0;si!=0;i+)if(si!=c)sj=si;j+;sj=0;/*写入字符串结束标志*/puts(s);20.下面程序的功能是输出数组中相邻两个数的和能被10整除的所有“数对”以及“数对”的个数如:对于下面的数组:d=1.3,7,23,3,6,14,8,10将输出(3,7) (7,23) (6,14) 3对#includemain()int d=1,3,7,23,3,6,14,8,10,57,13,90;int i,cout,s;count=(0 );/*count为“数对”的个数计数器*/for(i=0;i11;i+)s=di+di+1 ; /*计算相邻两个数的和*/if(s%10=0)printf(“(%d,%d) “,di,di+1);count=count+(1 );printf(“%d对”,count);21. 下面程序段用来打印出正整数n以内能被3整除的所有正奇数。scanf(“%d”,&n);if(n0)n=-n;for(i=1;in;i+)if(i%2!=0 & i%3=0) printf(“%d”,i );22.以下程序的运行结果是:(160)#include#define MUL(x,y) x*ymain()int x,y,z;x=3;y=4;z=120/ MUL(x,y);printf(“%d”,z);23. 以下程序的运行结果是:(sum=25,i=11)#includemain()int i=1,sum=0;while(i=9)sum=sum+i;i=i+2;printf(“sum=%d,i=%d”,sum,i);24. 以下程序的运行结果是(678)#includeint f(int x);void main(void)int a=1,k;for(k=0;kn,mj m=m-n,转(1);(3)若nm,则n=n-m,转(2)#include#includevoid main(void)int m,n;scanf(“%d%d”,&m,&n);m=abs(m);n=abs(n);if(!m & !n)printf(“无最大公约数“);return;if(!m)printf(“最大公约数是:%d”, n);return;if(!n)printf(“最大公约数是:%d”, m );return;while( m & n )if(mn)m-=n;else n-=m;printf(“%d”,n);29.有一个形如aabb的四位数n,如2233,7744等,且n是一个完全平方数,请求出满足条件的四位数n.#includevoid main(void)int n,x;int n1,n2,n3,n4;for(x=32;xwp)p+;for(i=n;ip;i-)wi=wi-1 ;wp =x;n+;return n;31.在C语言中,最大的整型数是(32767)32.设x=10100011,若要通过x=y使x的高4位取反,低4位不变,则y的二进制数是(11110000)33.若x=0123,则表达式5+(int)(x)&(2)的值是88.34. 与表达式x=y-2等价的另一书写形式是x=x(y-2)35. 能将两字节变量x的高8位置全1,低字节保持不变的表达式是(x&xFF00)36. 设二进制数x的值是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是00001111.37.存放指针变量之地址的变量称为指向指针的指针变量或指针的指针38.设a是一个整型变量,则表达式a|1的值是(a%2?a:a+1),说明:用不含位运算的表达式来描述其运算结果。39.若有定义;int a32=2,4,6,8,10,12;则*(a1+1)的值是(8).40.下面程序的功能是统计正整数n的各位数字中数字零的个数,并求各位数字中的最大者,例如:1080其零的个数是2,各位数字中最大者是8#includevoid main(void)int n,count,max,t;count=max=0 ;/*count为数字零的个数计数器具*/scanf(“%d”,&n);if(n0)n=-n;dot=n%10;/*分离出n 的个位*/if(t=0)count+;/*找到数字零,计数器增1*/if(maxt)max=t;/*刷新最大值*/n/=10;while(n );printf(:count=%d,max=%d”,count,max);41.打开磁盘文件的函数名是(fopen)42若a是int型变量,则下列表达式是值是(26)。(a=4*5,a*2),a+643.变量名的第一个字

温馨提示

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

评论

0/150

提交评论