电子计算机《C语言程序设计复习题》.docx_第1页
电子计算机《C语言程序设计复习题》.docx_第2页
电子计算机《C语言程序设计复习题》.docx_第3页
电子计算机《C语言程序设计复习题》.docx_第4页
电子计算机《C语言程序设计复习题》.docx_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计复习题C 一、选择题 (1)以下叙述中正确的是 A)C程序中注释部分可以出现在程序中任意合适的地方 B)花括号和只 能作为函数体的定界符 C)构成C程序的基本单位是函数,所有函数名都可以由用户命名 D)分号是C语句之间的分隔符,不是语句的一部分 (2)以下选项中可作为C语言合法整数的是 A)10110B B)0386 C)0Xffa D)x2a2 (3)以下不能定义为用户标识符的是 A)scanf B)Void C)_3com_ D)int (4)有以下程序 main() int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf(%d %d %3.1f %3.1fn,a,c,f,x); 程序运行后的输出结果是 A)1 65 1 6.5 B)1 65 1.5 6.5 C)1 65 1.0 6.5 D)2 65 1.5 6.5 (5)以下选项中非法的表达式是 A)0=xa)|(m=aB); printf(%d,%dn,k,m); 程序运行后的输出结果是 A)0,0 B)0,1 C)1,0 D)1,1 (7)有定义语句:int x, y;,若值11,变量y得到数值12,下面四组输入要通过scanf(%d,%d,&x,&y);语句使变量x得到数形式中,错误的是 A)11 12 B)11, 12 C)11,12 D)11, 12 (8)设有如下程序段: int x=2002, y=2003; printf(%dn,(x,y); 则以下叙述中正确的是 A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B)运行时产生出错信息 C)输出值为2002 D)输出值为2003 (9)设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是 A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0; C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5)*100.0; (10)有一函数 1 x0 y= 0 x=0 -1 x0) y=1;else if(x=0) y=0;else y=-1; B) y=0;if(x0) y=1;else if(x=0)if(x0) y=1;else y=-1; D) if(x=0) if(x0) y=1;else y=0;else y=-1; (11)有以下程序 main() int s=0,a=1,n; scanf(%d,&n); do s+=1; a=a-2; while(a!=n); printf(%dn,s); 若要使程序的输出值为2,则应该从键盘给n输入的值是 A)-1 B)-3 C)-5 D)0 (12)若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0) s=a; for(b=1;b=c;b+) s=s+1; 则与上述程序段功能等价的赋值语句是 A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c; (13)标有/*/的语句的执行次数是: int y , i ; for(i=0;i1;n-) s=s+1/n; printf(%6.4fn,s); 程序运行后输出结果错误,导致错误结果的程序行是 A)s=1.0; B)for(n=10;n1;n-) C)s=s+1/n; D)printf(%6.4fn,s); (15)已定义ch为字符型变量,以下赋值语句中错误的是 A)ch=; B)ch=62+3; C)ch=NULL; D)ch=xaa; (16) 下列叙述中正确的是 A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言所有函数都是外部函数 (17) 以下所列的C语言常量中,错误的是 A) 0xFF B) 1.2e0.5 C) 2L D) 72 (18) 下列选项中,合法的C语言关键字是 A) VAR B) cher C) integer D) default (19) 以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是 A) x/y*z B) x*(1/(y*z) C) x/y*1/z D) x/y/z (20) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A) -3 B) 9 C) -12 D) 6 (21) 设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为 A) 不定值 B) 4 C) 3 D) 1 (22) 若变量已正确说明为float类型,要通过语句scanf(%f %f %f ,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是: A) 10 B) 10.0,22.0,33.0 22 33 C) 10.0 D) 10 22 22.0 33.0 33 (23) 若执行以下程序时从键盘上输入9,则输出结果是 A) 11 B) 10 C) 9 D) 8 Main0 int n; scanf(%d,&n); if(n+10) printf(%dn,n); else printf(%dn,n-); (24) 若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是 A) swich(a+b); B) switch(a*a+b*b) case 1:y=a+b; break; case 3: case 0:y=a-b; break; case 1:y=a+b;break; case 3:y=b-a,break; C) switch a D) switch(a-b) case c1 :y=a-b; break default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:case 11:y=a-b;break; (25) 有以下程序段 int k=0 while(k=1)k+; while 循环执行的次数是 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 (26) 以下程序执行后sum的值是 A)15 B)14 C) 不确定 D)0 min() int i , sum; for(i=1;i6;i+) sum+=i; printf(%dn,sum); (27) 有以下程序段 int x=3 do printf(%d,x-=2); while (!(-x); 其输出结果是 A) 1 B) 3 0 C) 1 -2 D) 死循环 (28) 若变量c为char类型,能正确判断出c为小写字母的表达式是 A) a=c= a)|(c= z) C) (a=c) D) (c= a)&(c= z) (29) 以下所列的各函数首部中,正确的是 A) void play(var :Integer,var b:Integer) B) void play(int a,b) C) void play(int a,int b) D) Sub play(a as integer,b as integer) (30) 以下程序的输出结果是 A) 0 B) 29 C) 31 D) 无定值 fun(int x, int y, int z) z=x*x+y*y; main() int a=31; fun(5,2,a); printf(%d,a); (31) 下列程序段的输出结果是 A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2 void fun(int *x, int *y) printf(%d %d, *x, *y); *x=3; *y=4; main() int x=1,y=2; fun(&y,&x); printf(%d %d,x, y); (32) 下列程序的输出结果是 A) 非法B)a4的地址 C)5 D)3 main() char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5; printf(%d,*-p); (33) 下列程序的运行结果是 A) 6 3 B) 3 6 C) 编译出错D) 0 0 void fun(int *a, int *b) int *k; k=a; a=b; b=k; main() int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf(%d %d, a, b); (34) 下面程序的输出结果是 A) 0 B) 1 C) 10 D) 9 main() int a =1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(%dn,*p+9); (35) 当调用函数时,实参是一个数组名,则向函数传送的是 A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值 (36) 设有以下说明语句 struct ex int x ; float y; char z ; example; 则下面的叙述中不正确的是 A) struct结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型 (37) 以下只有在使用时才为该类型变量分配内存的存储类说明是 A) auto和static B) auto和register C) register和static D) extern和register (38) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是 A) EOF B) 1 C) 非零值 D) NULL (39) 以下程序的输出结果是 A) 20 B) 21 C) 22 D)23 main() int i, k, a10, p3; k=5; for (i=0;i10;i+) ai =i; for (i=0;i3;i+) pi =ai *(i+1); for (i=0;i3;i+) k+=pi *2; printf(%dn,k); (40) 以下程序的输出结果是 A) 1,5,9 B) 1,4,7 C) 3,5,7 D)3,6,9 main() int i, x33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(%d,xi2-i); (41) 以下程序的输出结果是 A) 18 B) 19 C) 20 D)21 main() int a33= 1,2,3,4,5,6 ,i,j,s=0; for(i=1;i3;i+) for(j=0;j=i;j+)s+=aij; printf(%dn,s); (42) 以下程序的输出结果是 A) ABCD B) ABCD C) EFG D) EFGH FGH EFG JK IJKL KL IJ O M main() char w10= ABCD,EFGH,IJKL,MNOP,k; for(k=1;k3;k+) printf(%sn,wk); (43) 当执行下面的程序时,如果输入ABC,则输出结果是 A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789 #include stdio.h #include string.h main() char ss10=1,2,3,4,5; gets(ss); strcat(ss, 6789); printf(%sn,ss); (44) 假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROG ABCDEFGH IJKL,则输出结果为 A) ABCDEFG B) IJHL C) ABCDEFGHIJKL D) IJKLABCDEFGH main( int argc, char *argv) while(-argc0) printf(%s,argvargc); printf(n); (45) 以下程序的输出结果是 A) 1 B) 2 C) 3 D) 4 long fun( int n) long s; if(n= =1 | n= =2) s=2; else s=n-fun(n-1); return s; main() printf(%ldn, fun(3); (46) 以下程序的输出结果是 A) 16 B) 2 C) 9 D) 1 #define SQR(X) X*X main() int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); printf(dn,a); (47) 若定义了以下函数: void f(.) . *p=(double *)malloc( 10*sizeof( double); . p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是 A) double *p B) float *p C) double *p D) float *p (48) 以下程序的输出是 A) 10 B) 11 C) 51 D) 60 struct st int x; int *y; *p; int dt4= 10,20,30,40 ; struct st aa4= 50,&dt0,60,&dt0,60,&dt0,60,&dt0,; main() p=aa; printf(%dn,+(p-x); (49) 假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是 A) free(q); p-next=q-next; B) (*p).next=(*q).next; free(q); C) q=(*q).next; (*p).next=q; free(q); D) q=q-next; p-next=q; p=p-next; free(p); (50) 以下程序的输出结果是 A) 0 B) 1 C) 2 D) 3 main() int x=0.5; char z=a; printf(%dn, (x&1)&(zy ? x:y; int z; z=xy ? x:y; return z; C)max(int x,int y) D)int max(int x,int y) int z; return(xy?x:y); z=xy?x:y; return(z); (63)有以下程序 #include #define F(X,Y) (X)*(Y) main() int a=3, b=4; printf(%dn, F(a+, b+); 程序运行后的输出结果是 A)12 B)15 C)16 D)20 (64)有以下程序 fun(int a, int b) if(ab) return(a); else return(b); main() int x=3, y=8, z=6,r; r=fun(fun(x,y), 2*z); printf(%dn, r); 程序运行后的输出结果是 A)3 B)6 C)8 D)12 (65)若有定义:int *p3;,则以下叙述中正确的是 A)定义了一个基类型为int的指针变量p,该变量具有三个指针 B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C)定义了一个名为*p的整型数组,该数组含有三个int类型元素 D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 (66)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址 #include #include char *scmp(char *s1,char *s2) if(strcmp(s1,s2)0) return(s1); else return(s2); main() int i; char string20, str320; for(i=0;ix); 程序运行后的输出结果是 A)10 B)11 C)20 D)21 (68)有以下程序段 main() int a=5,*b,*c; c=&b; b=&a; 程序在执行了c=&b;b=&a;语句后,表达式:*c的值是 A)变量a的地址 B)变量b中的值 C)变量a中的值 D)变量b的地址 (69)有以下程序 #include main() char str20=Hello,Beijing,*p=str; printf(%dn,strlen(p+20); 程序运行后的输出结果是 A)0 B)5 C)7 D)20 (70)已定义以下函数 fun(char *p2, char *p1) data next data next data next while(*p2=*p1)!=0) p1+;p2+; 函数的功能是 A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 p q r C)对p1和p2两个指针所指字符串进行比较 D)检查p1和p2两个指针所指字符串中是否有0 (71)有以下程序 main() int x=3, y=2, z=1; printf(%dn,x/y&z); 程序运行后的输出结果是 A)3 B)2 C)1 D)0 (72)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为 A)0 B)1 C)-1 D)一个非0值 (73)下列关于C语言数据文件的叙述中正确的是 A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件 C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 (74)有以下程序 main() int a33,*p,i; p=&a00; for(i=0;inext=q; q-next=r-next; p-next=r; B)q-next=r-next; p-next=r; r-next=q; C)p-next=r; q-next=r-next; r-next=q; D)q-next=r-next; r-next=q; p-next=r; (76) 在C语言中,合法的长整型常数是 A) OL B) 4962710 C) 324562& D) 216D (77) 以下有4组用户标识符,其中合法的一组是 A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define (78) 以下选项中合法的字符常量是 A)B B) 010 C) 68 D) D (79) 假定x和y为double型,则表达式x=2,y=x+3/2的值是 A) 3.500000 B) 3 C) 2.000000 D) 3.000000 (80) 以下合法的赋值语句是 A) x=y=100 B) d-; C) x+y; D) c=int(a+b); (81) 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 printf(%d,%dn,x-,-y); A) 10,3 B) 9.3 C) 9.2 D)10.2 (82) x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 A) INPUT x、y、z; B) scanf(%d%d%d,&x,&y,&z); C) scanf(%d%d%d,x,y,z); D) read(%d%d%d,&x,&y,&z); (83) 以下程序的输出结果是 main() int a=3; printf(%dn,(a+a-=a*a) ); A) -6 B) 12 C) 0 D) -12 (84) 设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)&(n=cd)运算后,n的值位为 A) 0 B) 1 C) 2 D) 3 (85) 阅读以下程序: main() int x; scanf(%d,&x); if(x-5) printf(%dx); else printf(%dx+); 程序运行后,如果从键盘上输人5,则输出结果是 A) 3 B) 4 C) 5 D) 6 (86) 假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(wx)?w; x; m=(my)?m;y; m=(mz)?m; z; 则该程序运行后,m的值是it A) 4 B) 3 C) 2 D) 2 (87) t为int类型,进人下面的循环之前,t的值为0 while( t=l ) 则以下叙述中正确的是 A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对 (88) 以下程序的输出结果是 main() int num= 0; while(num=2) num+; printf(%dn,num); A) 1 B) 1 C) 1 D) l 2 2 2 3 3 4 (89) 以下各选项企图说明一种新的类型名,其中正确的是 A) typedef v1 int; B) typedef v2=int; C) typedefv1 int v3; D) typedef v4: int; (90) 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定 (91) 以下函数值的类型是 fun ( float x ) float y; y= 3*x-4; return y; A) int B) 不确定 C) void D) float (92 ) 设有以下函数: f ( int a) int b=0; static int c = 3; b+; c+; return(a+b+c); 如果在下面的程序中调用该函数,则输出结果是 main() int a = 2, i; for(i=0;i=0;i-) ai=10-i; printf(%d%d%d,a2,a5,a8); A) 258 B) 741 C) 852 D) 369 (99) 以下数组定义中不正确的是 A) int a23; B) int b3=0,1,2,3; C) int c100100=0; D) int d3=1,2,1,2,3,1,2,3,4; (100) 以下程序的输出结果是 main() int a44=1,3,5,2,4,6,3,5,7; printf(%d%d%d%dn,a03,a12,a21,a30; A) 0650 B) 1470 C) 5430 D) 输出值不定 (101) 以下程序的输出结果是 main() char st20= hello0t; printf(%d %d n,strlen(st),sizeof(st); A) 9 9 B) 5 20 C) 13 20 D) 20 20 (102) 以下选项中,不能正确赋值的是 A) char s110;s1=Ctest; B) char s2=C, t, e, s, t; C) char s320=Ctest; D) char *s4=Ctestn (103) 以下程序的输出结果是 amovep(int p, int (a)3,int n) int i, j; for( i=0;i;i+) for(j=0;jx,(h1,p)-y); A) 12 B) 23 C) 14 D) 32 (105) 以下程序的输出结果是 main() int a, b; for(a=1, b=1; a=10) break; if (b%3= =1) b+=3; continue; printf(%dn,a); A) 101 B) 6 C) 5 D) 4 (106) 以下程序的输出结果是 union myun struct int x, y, z; u; int k; a; main() a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(%dn,a.u.x); A) 4 B) 5 C) 6 D) 0 (107) 以下程序的输出结果是 int a, b; void fun() a=100; b=200; main() int a=5, b=7; fun(); printf(%dd n, a,b); A) 100200 B) 57 C) 200100 D) 75 (108) 以下程序的输出结果是 #define M(x,y,z) x*y+z main() int a=1,b=2, c=3; printf(%dn, M(a+b,b+c, c+a); A) 19 B) 17 C) 15 D) 12 (109) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是 A) x | y B) x | y C) x & y D) x y (110) 下面的程序执行后,文件testt.t中的内容是 #include void fun(char *fname.,char *st) FILE *myf; int i; myf=fopen(fname,w ); for(i=0;istrlen(st); i+)fputc(sti,myf); fclose(myf); main() fun(test,new world; fun(test,hello,0;) A)hello, B)new worldhello, C)new world D)hello, rld (111)有以下程序 #include struct NODE int num; struct NODE *next; main() struct NODE *p,*q,*r; p=(struct NODE *)malloc(sizeof(struct NODE); q=(struct NODE *)malloc(sizeof(struct NODE); r=(struct NODE *)malloc(sizeof(struct NODE); p-num=10;q-num=20;r-num=30; p-next=q;q-next=r; printf(%dn,p-num+q-next-num); 程序运行后的输出结果是_。 A) 10 B) 20 C) 30 D) 40 (112)若有以下说明和定义 typedef int *INTEGER INTEGER p,*q; 以下叙述正确的是_。 A) p是int型变量 B) p是基类型为int的指针变量 C) q是基类型为int的指针变量 D) 程序中可用INTEGER代替int类型名 (113)有以下程序 main() unsigned char a,b,c; a=0x3; b=a|0x8; c=b1; printf(%d%dn,b, C); 程序运行后的输出结果是_。 A) -11 12 B) -6 -13 C) 12 24 D) 11 22 (114)有以下程序 #include main() char *p,*q; p=(char *)malloc(sizeof(char)*20); q=p; scanf(%s%s,p,q); printf(%s%sn,p,q); 若从键盘输入:abc def,则输出结果是_。 A) def def B) abc def C) abc d D) d d (115)以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。 #include void f(char p10,int n) char t20; int i,j; for(i=0;in-1;i+) for (j=i+1;jn;j+) if(strcmp(pi,pj)0 ? p/10 : p%3); (2)以下程序运行后的输出结果是 2 。 main() char m; m=B+32; printf(%cn,m); (3)以下程序运行后的输出结果是 3 。 main() int a=1,b=3,c=5; if (c=a+b) printf(yesn); else printf(non); (4)以下程序运行后的输出结果是 4 。 main() int i,m=0,n=0,k=0; for(i=9; i=11;i+) switch(i/10) case

温馨提示

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

评论

0/150

提交评论