C语言练习题一、选择题1.C语言属于()语言。A、低级B、汇编C、高级D、面向对象2.一个C语言程序总是从()开始执行。A、书写顺序的第一个函数main()B、书写顺序的第一条执行语句C、主函数D、不确定3.把已经编辑好的源程序翻译成二进制目标代码的是()步骤。A、编辑B、编译C、连接D、执行4.在C语言程序中,main()的位置()。A、必须作为第一个函数B、必须作为最后一个函数C、可以任意位置D、必须放在它所调用的函数之后5.C语言中的标识符只能由字母、数字和下划线组成,且第一个字符()。A、必须为字母B、必须为下划线C、必须为字母或下划线索D、可以是字母、数字或下划线中的任一种6、C语言程序由__________组成。(B)A.过程B.函数C.子程序D.标识符7、在C语言中,既不是保留字,也不是合法的标识符。(A)A.a+bB.autoC.charD.a28、以下选项中正确的整型常量是()。(B)A.12.B.-20C.078D.4E29、表达式的值是整数类型。(B)A.15/2+2.0B.15/2C.25/5.0D.0.5*1010、在C语言中,不正确的int类型的常数是(A)A.32768B.0C.037D.0Xaf11、以下选项中,不能作为合法常量的是。(B)A.1.2e04B.1.2e0.4C.1.2e+4D.1.2e012、设无符号int型数据在内存中占2个字节的存储空间,则其表示范围是(B)A.0~255B.0~65535C.-256~255D.-32768~3276713、C源程序要正确地运行,必须要有什么函数(C)A.printf函数B.自定义的函数C.main函数D.scanf函数14、设int类型的数据长度为2字节,则int类型数据的取值范围是。(D)A.0~255B.0~65535C.-256~255D.-32768~3276715、以下说法中正确的是。(C)A.C语言程序总是从源文件中的第一个函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分16、为求出s=10!的值,则变量s的类型应当为。(B)A.intB.longC.unsignedD.以上三种类型均可17、是C语言的标准函数名。(A)A.putcharB.caseC.whileD.long18、在C语言中,表达式____的值是整数类型。(D)A.55.0B.34.6+0.4C.22.3*10D.23%1019、已知i、j、k是int型变量,设从键盘输入数据1,2,3回车使i的值是1,j的值是2、k的值是3,以下选项中正确的输入语句是()。(C)A.scanf(“%2d%2d%2d”,&i,&j,&k);B.scanf(“%d%d%d”,&i,&j,&k);C.scanf(“%d,%d,%d”,&i,&j,&k);D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);20、C语言中的数据的基本类型包括_______A.整型、实型、字符型的逻辑型B.整型、实型、字符型和结构体C.整型、实型、字符型和枚举型D.整型、实型、字符型和指针型21.C语言程序中,若对函数类型未加显示说明,则函数的隐含类型是____。A.voidB.doubleC.intD.char22.在一个源文件中定义的全局变量的作用域为A.本文件的全部范围B.本程序的全部范围C.本函数的全部范围D.从定义该变量开始至本文件结束23.设已定义k是int型变量,则下面循环执行次数是_______。k=10;while(k=0)k=k-1;A.执行10次B.无限循环C.一次也不执行D.执行一次24.设有以下定义inta=0;doubleb=1.25;charc=’A’;#defined2则下面语句中错误的是()A.a++;B.b++C.c++;D.d++;25.在C语言中,***123***是合法的____表示。A.字符B.浮点数C.字符串D.A,B,C都不对26.______不是C语言的标准函数名。A.fabsB.sinxC.powD.sqrt27.下面程序的输出结果是()。main(){intx=010,y=10;printf(“%d,%d\n”,x--,y--);}A.10,10B.7,9C.8,10D.9,928.C语言中程序的基本单位是()。A.程序行B.语句C.函数D.字符29.下面程序运行时,如果从键盘上输入5,则输出的结果是()。voidmain(){intx;scanf(“%d”,&x);if(x++5)printf(“%d\n”,x++);elseprintf(“%d\n”,x--);}A.6B.7C.5D.430.设s1,s2是两个字符数组名,判断s1和s2中的字符串是否相等,应当使用()。A.if(s1==s2)B.if(strcmp(s1,s2)==0)C.if(s1=s2)D.if(strcmp(s1,s2)=0)31.下列叙述中正确的是()。A.break语句只能用于switch语句B.在switch语句中必须使用defaultC.break语句必须与switch语句中的case配对使用D.在switch语句中,不一定使用break语句32.设执行以下程序时从键盘上输入数据3和4,则输出结果是()。A.14B.16C.18D.20main(){inta,b,c,s;scanf(“%d%d”,&a,&b);s=a;if(ab)s=b;s*=s;printf(“%d\n”,s);}33.以下程序的输出结果是()。A.0B.1C.5D.6fun(inta,intb,intc){c=a*b;a=b;b=a;}main(){intc=1;fun(2,3,c);printf(“%d\n”,c);}34.下面程序的输出结果是()。voidmain(){inti=10;switch(i){case9:i+=1;case10:i+=1;case11:i+=1;case12:i+=1;}printf(“i=%d\n”,i);}A.10B.11C.12D.1335.以下语句序列中do…while循环的结束条件是()。intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n10);A.p的值不等于12345并且n的值小于10。B.p的值等于12345并且n的值大于等于10。C.p的值不等于12345或者n的值小于10。D.p的值等于12345或者n的值大于等于10。36.以下合法的字符型常量是()。A.”\x13”B.”\018”C.”65”D.”\n”37.在C语言中,函数返回值的类型最终取决于()。A.函数定义时在函数首部所说明的函数类型B.return语句中表达式值的类型C.调用函数时主函数所传递的实参类型D.函数定义时形参的类型38.若inti,j;,则for(i=j=0;i10&&j8;i++,j+=3)控制的循环体执行的次数是()。A.9B.8C.3D.239.以下描述错误的是()。A.C程序中,函数可以直接或间接的调用自己B.函数调用时,函数名必须与所调用的函数名字完全一致C.函数说明语句中的类型必须与函数返回值的类型一致D.实参数可以与形参个数不一致40.阅读下面程序,则执行后的输出结果为#includestdio.hfun(inta,intb){ints;s=a*b/2;printf(%d\n,s);}main(){inta=10,b=16;fun(a,b);}A.10B.16C.160D.8041.阅读下面程序,则程序执行后的结果为#includestdio.hmain(){inta=4,b=6,c=7;doubled,fun(int,int,int);d=fun(a,b,c);printf(%lf\n,d);}doublefun(inta,intb,intc){doubles;s=a%b*c;returns;}A.27B.27.000000C.28D.28.00000042.下列程序的输出结果是#includestdio.hmain(){inti=6;while(i--)printf(%d,--i);printf(\n);}A.531B.420C.654321D.死循环43.阅读下列程序,则执行结果是#includestdio.hmain(){inta=0,b=0,c=0,i;for(i=0;i4;i++)switch(i){case0:a=i++;case1:b=i++;case2:c=i++;case3:i++;}printf(%d,%d,%d,%d\n,a,b,c,i);}A.0,1,3,4B.1,2,3,4C.0,1,2,5D.0,2,3,444.语句int(*p)()的含义是A.p是一个指向一维数组的指针变量B.p是指针变量,它指向一个整型数据的指针C.p是一个指向函数的指针,该函数的返回值为整型D.以上答案都不对45.以下程序的输出结果为()。main(){inti=010,j=10,*pi,*pj;pi=&i;pj=&j;printf(%d.%d\n,*pi,*pj);}A.10,10B.8,10C.010,10D.8,846.有以下程序main(){chara[7]=ab;inti,j;i=sizeof(a);j=strlen(a);printf(%d%d\n,i,j);}程序运行后的输出结果是。A.22B.76C.72D.6247.以下定义语句中,错误的是。A.inta[]={1,2}B.inta[][3]={1,2,3,4,5};C.chars[10]=“test”;D.intn=5,a[n];48.若要求从键盘读入含有空格字符的字符串,应使用函数。A.gets()B.getc()C.getchar()D.scanf()49.有以下程序main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(%d\n,c);}执行后的输出结果是。A.1B.3C.5D.450.以下程序的输出结果。A.0B.1C.2D.3main(){staticinta[5]={1,2,3};printf(“%d\n”,a[3]);}51.以下程序的输出结果。A.10B.15C.20D.21main(){inti,j,s=0,a[2][3]={1,2,3,4,5,6};for(i=0;i2;i++)for(j=0;j3;j++)s=s+a[i][j];printf(“%d\n”,s);}52.函数strlen(“AST\n012\1\\”))的返回结果是。A.8B.9C.10D.11函数strcmp(“ABCD”,“ABCDE”)的返回值是。A.0B.正数C.负数D.以上结果均不正确53.常量NULL的值是()A.0B.-1C.1D.254.以下不正确的字符串赋值或初始化的是()。A.char*s;s=“string”;B.chars[]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’,‘0’};C.chars[10];s=“string”;D.chars[]=“string”;55.int型变量在内存中占2个字节,若inta[10]={0,2,4};则数组a所占字节数是。A.3B.6C.10D.2056.以下对C语言函数的描述中,正确的是。A.调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参。B.C函数既可以嵌套定义又可以递归调用。C.函数必须有返回值,否则无法调用此函数。D.函数递归调用的执行效率高,所以应尽量用递归调用来编写程序。57.以下程序的输出结果是()。voidmain(){inti,a[20];for(i=9;i=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);}A.852B.741C.258D.36958、不