您好,欢迎访问三七文档
一、选择题(1)C语言源程序名的后缀是(B)A).exeB).CC).objD).cp(2)可在C程序中用做用户标识符的一组标识符是(A)A)andB)DateC)HiD)case_2007y-m-dDr.TomBigl(3)以下选项中,合法的一组C语言数值常量是(B)A)028B)12.C).177D)0x8A.5e-3OXa234c1.510,000-0xf4.5e0Oabc3.e5(4)以下叙述中正确的是(C)A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(5)若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是(C)A)scanf(%d,a,b,c);B)scanf(%d%d%d,a,b,c);C)scanf(%d,p);D)scanf(%d,&p);(6)以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D)A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定(7)若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)A)x=y==5;B)x=n%2.5;C)x+n=I;D)x=5=4+1;(8)有以下程序段intj;floaty;charname[50];scanf(%2d%f%s,&j,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为(B)A)55566.0B)566.0C)7777.0D)566777.0(9)若变量已正确定义,有以下程序段i=0;doprintf(%d,,i);while(i++);printf(%d\n,i)其输出结果是(B)A)0,0B)0,1C)1,1D)程序进入无限循环(10)设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是(B)A)(EXP==0)B)(EXP!=0)C)(EXP==1)D)(EXP!=1)(11)有以下程序#includestdio.hmain(){inty=9;for(;y0;y--)if(y%3==0)printf(%d,--y);}程序的运行结果是(C)A)741B)963C)852D)875421(12)有以下程序#includestdio.hmain(){inti,j,m=55;for(i=1;i=3;i++)for(j=3;j=i;j++)m=m%j;printf(%d\n,m);}程序的运行结果是(B)A)0B)1C)2D)3(13)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。执行语句printf(%d,%d,c1,c2-2);后,输出结果是(C)A)A,BB)A,68C)65,66D)65,68(14)以下正确的字符串常量是(D)A)\\\B)’abc’C)OlympicGamesD)(15)设有定义:charp[]={’1’,’2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是(A)A)sizeof(p)B)sizeof(char)C)sizeof(*q)D)sizeof(p[0])(16)有以下函数intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能叙述正确的是(A)A)求字符串s的长度B)比较两个串的大小C)将串s复制到串tD)求字符串s所占字节数(17)若有定义语句:inta[3][6];按在内存中的存放顺序,a数组的第10个元素是(B)A)a[0][4]B)a[1][3]C)a[0][3]D)a[1][4](18)有以下程序#includestdio.hvoidfun(char**p){++p;printf(%s\n,*p);}main(){char*a[]={Morning,Afternoon,Evening,Night};fun(a);}程序的运行结果是(A)A)AfternoonB)fternoonC)MorningD)orning(19)若有定义语句:inta[2][3],*p[3];,则以下语句中正确的是(C)A)p=a;B)p[0]=a;C)p[0]=&a[1][2];D)p[1]=&a;(20)有以下程序#includestdio.hvoidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;in-1;i++)for(j=i+1;jn;j++)if(a[i]a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c+4,6);for(i=0;i10;i++)printf(%d,,c[i]);printf(\n);}程序运行的结果是(D)A)1,2,3,4,5,6,7,8,9,0,B)0,9,8,7,6,5,1,2,3,4,C)0,9,8,7,6,5,4,3,2,1,D)1,2,3,4,9,8,7,6,5,0,(21)有以下程序#includestdio.hintfun(chars[]){intn=0;while(*s=’9’&&*s=’0’){n=10*n+*s-’0’;s++;}return(n);}main(){chars[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};printf(%d\n,fun(s));}程序运行的结果是(C)A)9B)61490C)61D)5(22)当用户要求输入的字符串中含有空格时,应使用的输入函数是(C)A)scanf()B)getchar()C)gets()D)getc()(23)以下关于字符串的叙述中正确的是(D)A)C语言中有字符串类型的常量和变量B)两个字符串中的字符个数相同时才能进行字符串大小的比较C)可以用关系运算符对字符串的大小进行比较D)空串一定比空格打头的字符串小(24)有以下程序#includestdio.hvoidfun(intn,int*p){intf1,f2;if(n==1||n==2)*p=1;else{fun(n-1,&f1);fun(n-2,&f2);*p=f1+f2;}}main(){ints;fun(3,&s);printf(%d\n,s);}程序的运行结果是(A)A)2B)3C)4D)5(25)若程序中有宏定义行:#defineN100则以下叙述中正确的是(B)A)宏定义行中定义了标识符N的值为整数100B)在编译程序对C源程序进行预处理时用100替换标识符NC)对C源程序进行编译时用100替换标识符ND)在运行时用100替换标识符N(26)设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为(C)A)4B)16C)32D)52(27)设有如下的变量定义:inti=8,k,a,b;unsingedlongw=5doublex=1,42,y=5.2则以下符合C语言语法的表达式是(A)A)a+=a-=(b=4)*(a=3)B)x%(-3);C)a=a*3=2D)y=float(i)(28)设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值(29)假定有以下变量定义:intk=7,x=12;则能使值为3的表达式是(D)A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)(30)以下程序的输出结果是(D)main(){inta=12,b=12;printf(“%d%d\n”,a--,++b);}A)1010B)1212C)1113D)1213(31)以下程序运行后,输出结果是(C)main(){char*s=“abcde”;s+=2;printf(“%ld\n”,s);}A)cdeB)字符c的ASCII码值C)字符c的地址D)出错(32)以下程序输出结果是(C)main(){intm=5;if(m++5)printf(“%d\n”,m);elseprintf(“%d\n”,m--);}A)7B)6C)5D)4(33)当执行以下程序段时(A)x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误(34)执行以下程序后,输出的结果是(D)main(){inty=10;do{y--;}while(--y);printf(“%d\n”,y--);}A)-1B)1C)8D)0(35)以下程序运行后,输出结果是(C)func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+breturn(m);}main(){intk=4,m=1,p;p=func(k,m);printf(“%d,”,p);p=func(k,m);printf(“%d\n”,p);}A)8,15B)8,16C)8,17D)8,8(36)以下程序运行后,输出结果是(B)#include#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf(“%4.1f\n”,S(a+b))}A)49.5B)9.5C)22.0D)45.0(37)运行以下程序后,如果从键盘上输入6514回车,则输出结果为(C)main(){intm,n;printf{“Enterm,n:”};scanf(“%d%d,&m,&n”);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf(“m=%d\n”,m);}A)m=3B)m=2C)m=1D)m=0(38)以下程序执行后,a的值是(C)mian(){inta,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;printf(“%d\n”,a);}A)4B)1C)0D)运行时出错,无定值(39)下面程序的输出结果是(C)main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf(%d\n,*p+9);}A)0B)1C)10D)9(40)下列程序的运行结果是(B)voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf(%d%d,a,b);}A)63B)36C)编译出错D)00(41)以下程序运行后,输出结果是(A)intd=1;fun(intp){intd=5;d+=p++;printf(“%d”,d);}main(){inta=3;fun(a);d+=a++;printf(“%d\n”,d);}A)84B)99C)95D)44(42)以下程序运行后,输出结果是(A)main(){charch[2][5]={“693”,”825”},*p[2];inti,j,s=0;for(i=0;i2;i++)p[i]=ch[i];for(i=0;i2,i++)for(j=0;p[i][j]=’0’&&p[i][j]=’9’;j+=2)s=10*s+p[i][j]-’0’printf(“%d\n”,s);}A)6385B)22C)33D)693825(43)以下程序运行后,如果从键盘上输入:book<回车>book<空格><回车>则输出结果是(B)#includemain(){chara1[80],a2[80],*s1=a1,*s2=a2;gets(
本文标题:C语言练习题
链接地址:https://www.777doc.com/doc-2909103 .html