《C语言程序设计》理论试题库1《C语言程序设计》理论试题库选择题100例《C语言程序设计》理论试题库2选择题1.以下选项中属于C语言的数据类型是()A、复数型B、逻辑型C、双精度型D、集合型2.在C语言中,不正确的int类型的常数是()A、32768B、0C、037D、0xAF3.设有说明语句:chara='\72';则变量a()A、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法4.以下所列的C语言常量中,错误的是()A、0xFFB、1.2e0.5C、2LD、'\72'5.以下选项中合法的字符常量是()A、"B"B、'\010'C、-268D、D6.在C语言中,合法的长整型常数是()A、0LB、4962710C、324562&D、216D7.下列标识符中,合法的标识符是()A、-abc1B、1abcC、_abc1D、for8.C语言程序的基本单位是()A、语句B、程序行C、函数D、字符9.以下叙述正确的是()A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义不用户标识符D、define和if都不能定义为用户标识符10.以下叙述正确的是()A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义为用户标识符D、define和if都不能定义为用户标识符11.有如下程序longfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf(%d\n,fib(3));该程序的输出结果是()A、2B、4C、6D、812.在C语言中,函数的隐含存储类别是()A、autoB、staticC、externD、无存储类别13.以下所列的各函数首部中,正确的是()A、voidplay(var:Integer,varb:Integer)B、voidplay(inta,b)C、voidplay(inta,intb)D、Subplay(aasinteger,basinteger)14.在C程序中,可把整型数以二进制形式存放到文件中的函数是()《C语言程序设计》理论试题库3A、fprintf函数B、fread函数C、fwrite函数D、fputc函数15.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()A、EOFB、0C、非零值D、NULL16.若要打开A盘上的user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()A、fopen(A:\user\abc.txt,r)B、fopen(A:\user\abc.txt,r+)C、fopen(A:\user\abc.txt,rb)D、fopen(A:\user\abc.txt,w)17.以下程序的输出结果是()A、0B、29C、31D、无定值fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(%d,a);}18.当调用函数时,实参是一个数组名,则向函数传送的是()A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值19.以下只有在使用时才为该类型变量分配内存的存储类说明是()A、auto和staticB、auto和registerC、register和staticD、extern和register20.以下程序的输出结果是()A、1B、2C、3D、4longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1)returns;}main(){printf(%ld\n,fun(3));}21.以下程序的输出结果是()main(){intnum=0;while(num=2){num++;printf(%d\n,num);}A、1B、1C、1D、l22233422.以下程序的输出结果是()intf()《C语言程序设计》理论试题库4{staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i5;i++)a+=f();printf(%d\n,a);}A、20B、24C、25D、1523.以下程序的输出结果是()f(intb[],intm,intn){inti,s=0;for(i=m;in;i=i+2)s=s+b[i];returns;}main(){intx,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf(%d\n,x);}A、10B、18C、8D、1524.下列程序执行后的输出结果是()A、GB、HC、ID、Jmain(){intx='f';printf(%c\n,'A'+(x-'a'+1));}25.下列程序执行后的输出结果是()A、-32767B、FFFEC、-1D、-32768main(){intx=0xFFFF;printf(%d\n,x--);}26.语句printf(a\bre\'hi\'y\\\bou\n);的输出结果是()A、a\bre\'hi\'y\\\bouB、a\bre\'hi\'y\bouC、re'hi'youD、abre'hi'y\bou(说明:'\b'是退格符)27.有如下程序main(){inty=3,x=3,z=1;《C语言程序设计》理论试题库5printf(%d%d\n,(++x,y++),z+2);}运行该程序的输出结果是()A、34B、42C、43D、3328.若变量已正确说明为float类型,要通过语句scanf(%f%f%f,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:()A、10回车22回车33回车B、10.0,22.0,33.0回车C、10.0回车22.033.0回车D、1022回车33回车29.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()A、INPUTx、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);30.以下程序段的输出结果是()inta=1234;printf(%2d\n,a);A、12B、34C、1234D、提示出错、无结果31.设intb=2;表达式(b2)/(b1)的值是()A、0B、2C、4D、832.有如下定义()structperson{charname[9];intage;};structpersonclass[10]={Johu,17,Paul,19,Mary,18,Adam,16};根据上述定义,能输出字母M的语句是()A、prinft(%c\n,class[3].mane);B、pfintf(%c\n,class[3].name[1]);C、prinft(%c\n,class[2].name[1]);D、printf(%c\n,class[2].name[0]);33.设有以下说明语句structex{intx;floaty;charz;}example;则下面的叙述中不正确的是()A、struct是结构体类型的关键字B、example是结构体类型名C、x,y,z都是结构体成员名D、structex是结构体类型名34.以下程序的输出是()A、10B、11C、51D、60structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};main(){p=aa;printf(%d\n,++(p-x));}35.以下程序的输出结果是()main(){charx=040;《C语言程序设计》理论试题库6printf(%o\n,x1);}A、100B、80C、64D、3236.若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()A、scanf(%d%d%d,&a,&b,d);B、scanf(%d%d%d,&a,&b,&d);C、scanf(%d%d%d,a,b,d);D、scanf(%d%d%d,a,b,*d);37.以下程序的输出结果是()main(){inta=5,b=4,c=6,d;printf(%d\n,d=ab?(ac?a:c):(b));}A、5B、4C、6D、不确定38.设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值()A、4B、16C、32D、5239.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是()A、c=b=a;B、(a=c)||(b=c);C、(a=c)&&(b=c);D、a=c=b;40.能正确表示a和b同时为正或同时为负的逻辑表达式是()A、(a=0||b=0)&&(a0||b0)B、(a=0&&b=0)&&(a0&&b0)C、(a+b0)&&(a+b=0)D、a*b041.语句:printf("%d",(a=2)&&(b=-2));的输出结果是()A、无输出B、结果不确定C、-1D、142.设有intx=11;则表达式(x++*1/3)的值是()A、3B、4C、11D、1243.设intx=1,y=1;表达式(!x||y--)的值是()A、0B、1C、2D、-144.C语言中运算对象必须是整型的运算符是()A、%=B、/C、=D、〈=45.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A、1B、2C、2.0D、2.546.若有以下程序段intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是()A、0B、0.5C、1D、247.能正确表示逻辑关系:“a》10或a《0”的C语言表达式是()A、a=10ora=0B、a=0|a=10C、a=10&&a=0D、a=10‖a=048.下程序的输出结果是()A、-11B、01C、10D、00main(){inta=-1,b=1,k;《C语言程序设计》理论试题库7if((++a0)&&!(b--=0))printf(%d%d\n,a,b);elseprintf(%d%d\n,b,a);}49.若有定义:floatw;inta,b;则合法的switch语句是()A、switch(w)B、switch(a){case1.0:printf(*\n);{case1printf(*\n);case2.0:printf(**\n);case2printf(**\n);}}C、switch(b)D、switch(a+b){case1:printf(*\n);{case1:printf(*\n);default:printf(\n);case2:printf(**\n);case1+2:printf(**\n);default:printf(\n);}}50.如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(a=%d,b=%d\n,a,b);}该程序的输出结果是()A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=251.有如下程序main(){floatx=2.0,y;if(x0.0)y=0.0;elseif(x10.0)y=1.0/x;elsey=1.0;printf(%f\n,y);}该程序的输出结果是()A、0.000000B、0.250000