二级C语言复习题(附答案).doc

上传人:文库蛋蛋多 文档编号:2385106 上传时间:2023-02-17 格式:DOC 页数:20 大小:74KB
返回 下载 相关 举报
二级C语言复习题(附答案).doc_第1页
第1页 / 共20页
二级C语言复习题(附答案).doc_第2页
第2页 / 共20页
二级C语言复习题(附答案).doc_第3页
第3页 / 共20页
二级C语言复习题(附答案).doc_第4页
第4页 / 共20页
二级C语言复习题(附答案).doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《二级C语言复习题(附答案).doc》由会员分享,可在线阅读,更多相关《二级C语言复习题(附答案).doc(20页珍藏版)》请在三一办公上搜索。

1、C语言复习资料一、单项选择题。(每小题1分)1、请选择下列合法的C语言赋值语句。( )A) a=b=58 B) i+; C) a=58,b=58 D) k=int(a+b);2、设有如下枚举类型声明:enum language Basic=3,Assembly,Ada=100,COBOL,Fortran;枚举常量Fortran的值为( )。A) 4 B) 7 C) 102 D) 1033、标准库函数fgets(s,n,f)的功能是( )。A) 从文件f中读取长度为n的字符串存入指针s所指的内存B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C) 从文件f中读n个字符串存入指针s

2、所指的内存D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存4、设有如下的程序段:char str=”Hello”;char *ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为( )。A) o B) 0 C) 不确定的值 D) o的地址5、执行下面的程序段:int x=35,B;char z=A;B=(x&15)&(z2|b- =4之后,b变量的值为( )。A) 3 B) 0 C) 4 D) 28、如希望当x的值为奇数时,表达式的值为“真”;x的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( )。A) x%2=1 B) !(x%2) C) !(x%2

3、=0) D) x%29、下面运行的结果是( )。main() int k=3; if(k+3) printf(“%dn”,k+); else printf(“%dn”,-k);A) 5 B) 4 C) 3 D) 210、下面不正确的字符串常量是( )。A) 12 B) “1+2” C) “0” D) “0”11、若x是整型变量,pb是基本类型为整型的指针变量,则正确的赋值表达式是( )。A) pb=&x; B) pb=x C) *pb=&x; D) *pb=x;12、设有如下程序:#include stdio.hmain() int *k,*j,i=100; j=&i; k=&j; print

4、f(“%dn”,*k);上述程序的输出结果是( )。A) 运行错误 B) 100 C) i的地址 D) j的地址13、在C语言中,要求运算数必须是整型的运算符是( )A) % B) / C) D) !14、执行下面程序中的输出语句后,a的值是( )。main() int a; printf(“%dn”,(a=3*5,a*4,a+5);A) 65 B) 20 C) 15 D) 1015、C语言中允许用外部声明来指定变量、函数和其它标识符特征,这里所说的外部指的是( )。A) 冠以关键字extern B) 它们的位置在函数体的外部C) 它们的作用范围是全程的 D) 它们的位置在函数外部16、对整个

5、结构体能进行操作是( )。A) 对结构进行赋值 B) 对结构进行存取C) 对结构进行运算 D) 对结构进行&操作17、给出下面程序的输出结果( )。mian() int n; (n=6*4,n+6),n*2; printf(“n=%dn”,n);A) 30 B) 24 C) 60 D) 4818、以下哪种变量类型其存储空间不在静态存储区( )。A) 静态局部变量 B) 全局变量 C) 静态外部变量 D) 自动变量19、读程序片段,给出输出的结果( )。int x=20;printf(“%dn”,x);A) 02 B) -20 C) -21 D)-1120、以下哪一个表达式取值是正确的( )。A

6、) 1&a的结果为1 B) 3&5的结果为0C) 3|5的结果为0 D) 3|a 的结果为021、一个C程序的执行是从( )。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 (C)本程序的main函数开始,到本程序文件的最后一个函数结束 (D)本程序文件的第一个函数开始,到本程序main函数结束22、如果程序中有 #include 文件名 则意味着( )。(A) 将文件名 所指的该文件的全部内容,复制插入到此命令行处。(B) 指定标准输入输出(C) 宏定义一个函数(D) 条件编译说明 23、设x、y和z是int型变量,且x

7、 = 3,y = 4,z = 5,则下面表达式中值为0的是( )。 (A) x & y; (B) x = y; (C) x | y + z & y z ; (D) !(xy)& ! z | 1);24、若有以下说明和语句,那么对c数组元素的正确引用是( )。 int c45,(*cp)5; cp=c; (A) cp+1 (B) (cp+3) (C) *(cp+1)+3 (D) *(*cp+2)25、设有如下程序: #include void main() int *k,*j,i=100; j=&i; k=&j; printf(“%dn”,*k); 上述程序的输出结果是( )。 (A)运行错误

8、(B)100 (C)i的地址 (D)j的地址26、如下程序:#include void main() int m,n,k; m=(n=4)+(k=10-7); printf(“m=%dn”,m); 运行后m的值为( )。 (A)4 (B)3 (C)7 (D)1427、若有int k=5; float x=1.2;则表达式(int)(x+k)的值是( )。 (A)5 (B)6.2 (C)7 (D)6 28、下面程序的输出是( )。 #include void main() int x=10,y=3; printf(“%dn”,y=x/y); (A)0 (B)1 (C)3 (D)不确定的值29、执

9、行下面程序后,a的值是( )。 #include void main () int a; printf(“%dn”,(a=3*5,a*4,a+5); (A)65 (B)20 (C)15 (D)1030、如果在C程序中有main(int argc,char *argv),那么( )是指命令行中的参数个数。 (A)argv (B)argv (C)argc,argv (D)argc31、执行下面的程序段后,B的值为( )。 int x=35; char z=A; int B; B=(x&15)&(za);(A) 0 (B) 1 (C) 2 (D) 332、以下程序的输出结果是( )。#include

10、 main() int i=010,j=10; printf(%d,%d,+i,j-);(A) 11,10 (B) 9,10 (C) 010,9 (D) 10,933、循环语句for(a=0,b=0;(b!=45)|(a y ? 10 : 20 , z的值为( )。 A)10 B)20 C)1 D)2 a b c 41、要将一个整数12000分别以ASCII码文件和二进制文件形式存放,各自所占的存储空间数分别是( )字节。A)5和2 B)2和5 C) 2和2 D) 5和542、对于基类型相同的两个指针变量之间,不可进行的运算是( )。A)= B)= C)+ D) 43、在一个char类型的函数

11、定义中,函数体中有return 0;语句,该语句( )。 A) 是错误的 B) 能正确向主调函数返回整型数0C) 在执行时不予理睬 D) 在执行时会中断程序运行44、有定义int a=3,b=4,c=5; 执行完表达式a+-b&b+c-&+c后,a,b,c的值分别为( )。A)3 4 5 B) 4 3 5 C)4 4 4 D)4 4 545、若有定义int i=2,a10,*p=&ai;则与*p+ 等价的是( )。A)ai+ B)ai+ C)ai D)a+i46、以下程序的输出结果是( )。void main() int a=5,*p1,*p2; p1=&a,p2=&p1; (*p1)+; p

12、rintf(%dn,*p2); A)5 B)4 C)6 D)不确定47、以下程序的输出结果是( )。int x=3,y=4;void main( ) int x,y=5; x=y+; printf(%d,x);A)3 B) 4 C) 5 D) 648、表达式11&10的结果用二进制表示为( )。A)11 B)3 C)1 D)1049、下列程序的执行结果是( )。#include “stdio.h”union ss int i; char c2; ;main() union ss x ; x.c0=10; x.c1=1; printf(“%d”,x.i);(A) 11 (B) 266 (C) 2

13、65 (D) 13850、已知:int *p( ); p是( )。(A) 指向int型的指针变量(B) int型的指针数组(C) 一个指向函数的指针变量,函数的返回值是int型(D) 一个函数,该函数的返回值是指向int型的指针变量51、调用strlen(abcd0efng0)的结果为( )。 (A) 4 (B) 5 (C) 8 (D) 1052、下面程序的输出结果是( ) #include stdio.h #define SUB(x,y) (x)*y main( ) int a=3,b=4;printf(%dn,SUB(a,b+1); A)12 B)16 C)15 D)1353、在下列选项中

14、,不正确的赋值语句是( ) A)t/=5; B)n1=(n2=(n3=0); C)k=i= =j; D)a=b+c=1;54、若有以下说明: int a12=1,2,3,4,5,6,7,8,9,10,11,12;char c=a,d,g; 则数值为4的表达式是( ) A)ag-c B)a4 C)ad-c D)ad-c55、假定所有变量均已正确说明,下列程序段运行后x的值是( ) a=b=c=0;x=35; if(!a)x-;else if(b) if(c) x=3; else x=4; A)34 B)4 C)35 D)356、若有以下定义和语句,则输出结果为( )。char *sp=”tb0E

15、nglishn”;printf(“%d”,strlen(sp);A) 12 B) 3 C) 17 D) 1357、有定义:int *p1,*p2;,则正确的赋值语句为( )。 A) p1=p2; B) p1/=p2;C) p1+=p2; D) p1*=p2;58、有定义:int a5, *p=a;,数组a的首地址为100,则p+2等于( )。 A) 100 B) 102C) 104 D) 10659、有定义:int x, *p1=&x, *p2=&p1;,则能够表示变量x值的是( )。 A) p1 B) p2C) *p1 D) *p260、假如一个整型变量的最大允许值为32767,那么运行如下

16、程序后屏幕上会输出的结果是( )main()int a,b;a=32767;b=a+1;printf(“%d,%d”,a,b);A) 32767,32768B) 32767,-32768C) 32767,0D) 运行时报错二、程序填空题。(每空2分)1、函数yh的功能是构成一个杨辉三角形,请填空完成该函数。 #include #define N 11 void yh(aN) int j,k; for(j=1;jN;j+) aj1=1; ajj= (1) ; for( (2) ;jN;j+) for(k=2; (3) ;k+) ajk= (4) +aj-1k; 2、函数fun的功能是求一个整数n

17、um各位数字之积,请填空完成函数。 #include long fun( (1) ) long k=1; num=abs(num); do k*= (2) ; num/=10; while( (3) ) return k; 3、下面程序的功能是统计从命令行上传递进来的第一个参数中出现的字母个数。请填空完成程序。 #include #include void main(int argc, (1) argv) char *str; int (2) ; if(argc!=2) return; str= (3) ; while(*str) if(isalpha( (4) ) count+; print

18、f(“%dn”,count);4、下述函数是用二分法查找key值。数组中元素值已按递增次序排列。若找到key则返回对应的下标,否则返回-1。请填空。 int bin(double a,int n,double key) int low,high,mid; low=0; high=n-1; while( ) mid=(low+high)/2; if (keyamid) ; else return mid; return -1; 5、下面的函数用以验证命题:100以内的奇数的平方被8整除,余数均为1,若命题成立,则返回1,否则返回0。请填空完成该函数。int func() int a,flag=1

19、; for(a=1;a=100;a+=2) if( (1) ) flag=0; break; return(flag);6、下面程序的功能是输出数组中的各字符串,请填空完成程序。#include void main() char *a=“abcd”,”12345”,”efghijk”,”67890”; char (1) ; int j=0; p=a; for(;j4;j+) puts( (2));7、以下程序是求a数组中偶数的个数和偶数的平均值。 #include void main() int a10=1,2,3,4,5,6,7,8,9,10; int k,s,i; float ave; f

20、or(k=s=i=0;i10;i+) if (ai%2!=0) ; s+=ai; k+; if(k!=0) ave=s/k; printf(%d,%fn,k,ave); 8、下列程序是从c盘根目录下的文本文件“f1.txt”中读取前10个字符,依次显示在屏幕上。如果文本文件中不足10个字符,则读完为止。#include “stdio.h”main() FILE *fp; int i; char c; if( = =NULL)printf(“file can not open”);exit(0); for (i=0;i10;i+) if(feof(fp) ) break; c=fgetc(fp)

21、; putchar(c); fclose(fp);9、三、阅读程序,写出运行结果。(每小题4分)1、写出下面程序执行的结果:#include stdio.h#define MUL(x,y) x*(y)main() int a=5,b=3,c; c=MUL(a+,b+); printf(%dn,c);2、写出下面程序执行的结果:#define PR(ar) printf(“%d”,ar)main() int j,a=1,3,5,7,9,11,13,15,*p=a+5; for(j=3;j;j-) switch(j) case 1: case 2: PR(*p+); break; case 3:

22、PR(*(-p); 3、写出下面程序执行的结果:main() int i=2,j=3,k; k=i+j; int k=8; if(i=3) printf(%d,k); else printf(%d,j); printf(%d%d,i,k);4、写出下面程序执行的结果:#include main() int a=1,b=2,c=3; a+; c+=b; int b=4,c; c=2*b; a+=c; printf(“%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c);5、当输入字符串this is a test program.时,写出下面程序执行的结果:#

23、include int chang(char *c,int s);main() int flag=1; char ch; do ch=getchar(); flag=chang(&ch,flag); putchar(ch); while(ch!=.);int chang(char *c,int s) if(*c= ) return(1); else if(s&*ca) *c+=A-a; return(0); 6、给出下面程序的运行结果。#include static struct st1 char name10; char *addr;static struct st2 char *pname

24、; struct st1 s1;s2=England,Ann,London;void main() printf(%s,%sn,+s2.s1.addr,&s2.pname3);7、以下程序的运行结果是( )。#include #define PR(a) printf(%dt,a)void main() int j,aa=1,2,3,4,5,6,7,8,9,10,*p=aa+4; printf(n); for(j=4;j;j-) switch(j) default:PR(*p+); case 1: case 2:PR(*p-);break; case 3:PR(*(+p); 8、下列程序的运行结

25、果是( )。#include void main() void add(); int i; for(i=0;i3;i+) add();void add() static int x=0; x+; printf (%d ,x);9、下列程序的运行结果是#include void main() int fun(int a); int a=2,j,k; for(j=0;j2;j+) k=fun(a+); printf(%dn,k);int fun(int a) int b=0; static int c=3; a=c+,b+; return a;10、#include void main() cha

26、r ch25=1234,5678,*p2; int j,k,s=0; for(k=0;k2;k+) pk=chk; for(k=0;k0&pkj=9;j+=2) s=10*s+pkj-0; printf(s=%dn,s);11、1、下列程序执行后其输出结果是:#include fun3(int x) static int a=3; a+=x; return(a);void main() int k=2,n; n=fun3(k); n+=fun3(k); printf(%dn,n);12、下列程序执行后其输出结果是:#include union ee int a; int b; *p,s4;vo

27、id main() int n=1,i; for(i=0;ia);printf(%d,+p-a);13、写出下面程序执行的结果:#include void main() p(int *s,int *y); int i,a=11,22,32,41; int x=1; for(i=0;i4;i+) p(a,&x); printf(“%d,”,x); p(int *s,int *y) static int t=3; *y=st; t-;14、在下列程序中,若输入为:3275,则输出结果为:#include void main() int x,y,t; scanf(“%d”,&x); x=(x=0?x

28、:-x); y=0; while(x) t=x%10; x=x/10; y=y*10+t; printf(“the result is %d”,y);15、写出下面程序执行的结果:#include void main() int a34=1,2,3,4,5,6,7,8,9,10,11,12; int (*p)4=a,j,k,s=0; for(k=0;k3;k+) for(j=0;j2;j+) s+=*(*(p+k)+j); printf(s=%dn,s);16、写出下面程序执行的结果:#include void main() union int i2; long k; char c4; r,*s=&r; s-i0=0x39; s-i1=0x38; printf(“%cn”,s-c0);四、编程序。(每小题10分,共20分)1、编写程序删除一个字符串中的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号