第一章C语言基础知识1.1选择题1.以下不是C语言的特点的是()。A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。A.abc123B.no.1C._123_D.?_ok3.正确的C语言标识符是()。A.?_buy_2B.2_buyC.?_buyD.buy?4.请选出可用作C语言用户标识符的一组标识符()。A.voidB.a3_b3C.ForD.2adefine_123-abcDOWORDIFCasesizeof5.下列符号中,不属于转义字符的是()。A.\\B.\0xAAC.\tD.\06.不属于C语言关键字的是()。A.intB.breakC.whileD.character7.是C语言提供的合法关键字的是()。A.FloatB.signedC.integerD.Char8.以下不能定义为用户标示符的是()。A.scanfB.VoidC._3com_D.int9.一个C程序是由()。A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10.C语言程序的基本单位是()。A.程序行B.语句C.函数D.字符11.下列说法中,错误的是()。A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()。A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分13.C编译程序是()。A.C程序的机器语言版本B.一组机器语言指令C.将C源程序编译成目标程序D.由制造厂家提供的一套应用软件14.以下选项中,合法的用户标识符是()。A.longB._2abcC.3dmaxD.A.dat15.以下选项中,合法的实型常数是()。A.5E2.0B.E-3C.2E0D.1.3E16.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’\101’是()。A.字符AB.字符aC.字符cD.非法的常量17.以下选项中,合法转义字符的选项是()。A.’\\’B.’\018’C.’xab’D.’\abc’18.以下选项中,正确的字符常量是()。A.”F”B.’\\’’C.’W’D.’’19.以下选项中可作为C语言合法整数的是A.10110BB.0386C.0XffaD.x2a220.下列变量定义中合法的是A.short_a=1-.le-1;B.doubleb=1+5e2.5;C.longdo=0xfdaL;D.float2_and=1-e-3;21.与数学式子对应的C语言表达式是()。A.9*x^n/(2*x-1)B.9*x**n/(2*x-1)C.9*pow(x,n)*(1/(2*x-1))D.9*pow(n,x)/(2*x-1)22.若有代数式,则不正确的C语言表达式是()。A.a/c/d*b*3B.3*a*b/c/dC.3*a*b/c*dD.a*b/d/c*323.已知各变量的类型说明如下:intm=8,n,a,b;unsignedlongw=10;doublex=3.14,y=0.12;则以下符合C语言语法的表达式是()。A.a+=a-=(b=2)*(a=8)B.n=n*3=18C.x%3D.y=float(m)24.以下符合C语言语法的赋值表达式是()。A.a=9+b+c=d+9B.a=(9+b,c=d+9)C.a=9+b,b++,c+9D.a=9+b++=c+925.已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;后,S中的值为()。A.’D’B.68C.不确定的值D.’C’26.在C语言中,要求运算数必须是整型的运算符是()。A./B.++C.*=D.%27.若有说明语句:chars=’\72’;则变量s()。A.包含一个字符B.包含两个字符C.包含三个字符D.说明不合法,s的值不确定28.若有定义:intm=7;floatx=2.5,y=4.7;则表达式x+m%3*(int)(x+y)%2/4的值是()。A.2.500000B.2.750000C.3.500000D.0.00000029.在C语言中,char型数据在内存中的存储形式是()。A.补码B.反码C.原码D.ASCII码30.设变量x为float类型,m为int类型,则以下能实现将x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。A.x=(x*100+0.5)/100.0B.m=x*100+0.5,x=m/100.0C.x=x*100+0.5/100.0D.x=(x/100+0.5)*100.031.表达式13/3*sqrt(16.0)/8的数据类型是()。A.intB.floatC.doubleD.不确定32.设以下变量均为int类型,则值不等于7的表达式是()。A.(m=n=6,m+n,m+1)B.(m=n=6,m+n,n+1)C.(m=6,m+1,n=6,m+n)D.(m=6,m+1,n=m,n+1)33.假设所有变量均为整型,则表达式(x=2,y=5,y++,x+y)的值是()。A.7B.8C.6D.234.已知s是字符型变量,下面不正确的赋值语句是()。A.s=’\012’;B.s=’u+v’;C.s=’1’+’2’;D.s=1+2;35.已知s是字符型变量,下面正确的赋值语句是()。A.s=’abc’;B.s=’\08’;C.s=’\xde’;D.s=”\”;36.若有以下定义,则正确的赋值语句是()。intx,y;floatz;A.x=1,y=2,B.x=y=100C.x++;D.x=int(z);37.设x、y均为float型变量,则不正确的赋值语句是()。A.++x;B.x*=y-2;C.y=(x%3)/10;D.x=y=0;38.下列语句中符合C语言的赋值语句是()。A.a=7+b+c=a+7;B.a=7+b++=a+7;C.a=7+b,b++,a+7D.a=7+b,c=a+7;39.putchar函数可以向终端输出一个()。A.整型变量表达式值。B.字符串C.实型变量值。D.字符或字符型变量值。40.以下程序段的输出结果是()。inta=12345;printf(”%2d\n”,a);A.12B.34C.12345D.提示出错、无结果41.若x和y均定义为int型,z定义为double型,以下不合法的scanf()函数调用语句为()。A.scanf(”%d%lx,%le”,&x,&y,&z);B.scanf(”%2d*%d%lf”,&x,&y,&z);C.scanf(”%x%*d%o”,&x,&y);D。scanf(”%x%o%6.2f”,&x,&y,&z);42.有如下程序段:intx1,x2;chary1,y2;scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。(注:└┘代表空格)A.10A└┘20BB.10└┘A20BC.10└┘A└┘20└┘BD.10A20└┘B43.若变量已正确说明为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回车33C.10.0回车D.1022回车22.033.0回车33回车44.有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是()。(注:└┘代表空格)intx1,x2;chary1,y2;scanf(”%d%d”,&x1,&x2);scanf(”%c%c”,&y1,&y2);A.1020ABB.10└┘20└┘ABCC.10└┘20D.10└┘20ABAB45.已有定义inta=-2;和输出语句:printf(”%8lx”,a);以下正确的叙述是()。A.整型变量的输出格式符只有%d一种B.%x是格式符的一种,它可以适用于任何一种类型的数据C.%x是格式符D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度46.有如下程序段,对应正确的数据输入是()。floatx,y;scanf(”%f%f”,&x,&y);printf(”a=%f,b=%f”,x,y);A.2.04回车B.2.04,5.67回车5.67回车C.A=2.04,B=5.67回车D.2.055.67回车47.有如下程序段,从键盘输入数据的正确形式应是()。(注:└┘代表空格)floatx,y,z;scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A.123B.x=1,y=2,z=3C.1,2,3D.x=1└┘y=2└┘z=348.以下说法正确的是()。A.输入项可以为一个实型常量,如scanf(”%f”,3.5);B.只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=5d”);C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%4.2f”,&f);D.当输入数据时,必须指明变量的地址,如scanf(”%f”,&f);49.根据定义和数据的输入方式,输入语句的正确形式为:()。(注:└┘代表空格)已有定义:floatx,y;数据的输入方式:1.23回车4.5回车A.scan(”%f,%f”,&x,&y);B.scanf(”%f%f”,&x,&y);C.scanf(”%3.2f└┘%2.1f”,&x,&y);D.scanf(”%3.2f%2.1f”,&x,&y);50.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为()。#include”stdio.h”main(){chars1,s2,s3;输入语句;printf(”%c%c%c”,s1,s2,s3);}输入形式:A└┘B└┘C回车(注:└┘代表空格)输出形式:A└┘BA.scanf(”%c%c%c”,&s1,&s2,&s3);B.scanf(”%c└┘%└┘c%c”,&s1,&s2,&s3);C.scanf(”%c,%c,%c”,&s1,&s2,&s3);D.scanf(”%c%c”,&s1,&s2,&s3);51.以下程序的执行结果是:()。#include”stdio.h”main(){intx=2,y=3;printf(”x=%%d,y=%%d\n”,x,y);}A.x=%2,y=%3B.x=%%d,y=%%dC.x=2,y=3D.x=%d,y=%d52.以下程序的输出结果是()。(注:└┘代表空格)#include”stdio.h”main(){printf(”\nstring1=%15s*”,”programming”);printf(”\nstring2=%-5s*”,”boy”);printf(”string3=%2s*”,”girl”);}A.string1=programming└┘└┘└┘└┘*B.string1=└┘└┘└┘└┘programming*string2=boy*string2=boy└┘└┘*string3=gi*string3=gi*C.string1=programming└┘└┘└┘└┘*D.string1=└┘└┘└┘└┘programming*string2=└┘└┘boy*string3=girl*string2=boy└┘└┘*string3=girl*53.根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是