第二章C语言基础与程序结构一、选择题。(注:所有题目中的空格用□表示,回车用↙表示)1、C语言属于(D)A)机器语言B)低级语言C)中级语言D)高级语言2、C语言程序能在不同的操作系统下运行,这说明C语言具有很好的(B)A)适应性B)移植性C)兼容性D)操作性3、一个C语言程序的执行总是起始于(C)A)程序的第一个函数B)包含文件中的第一个函数C)main函数D)程序中的第一条语句4、C语言源程序经过编译后生成的文件名的后缀为(B)A).docB).objC).exeD).cpp5、C语言源程序经过链接后生成的文件名的后缀为(C)A).docB).objC).exeD).cpp6、C语言编译程序的首要工作是(A)A)检查语法错误B)检查逻辑错误C)检查程序的完整性D)生成exe文件7、下面选项中2个标识符都是不合法的选项是(C)A)Wp_1B)_abcsumC)a-1intD)x1DO8、下列哪组标识符是正确的(B)A)a3,7dB)_x1,tempC)for,maxD)f(x),b29、下列不是C语言关键字的选项是(B)。A)ifB)printfC)caseD)while10、下列四组选项中,均不是C语言关键字的选项是(A)。A)VoidIFmianB)getccharprintfC)includecasescanfD)whilegopow11、C语言中基本的数据类型不包括(D)。A)整型B)实型C)字符型D)数组12、C语言中基本的数据类型包括(B)。A)整型、实型、指针、枚举型B)整型、实型、字符型、枚举型C)整型、字符型、数组、枚举型D)整型、实型、空类型、字符型13、自增、自减运算符能用于(C)A)整型常量B)表达式C)整型变量D)浮点型常量14、下面选项中2个整型常量都是合法的选项是(A)A)250xffB)03a2e5C)0x3612,456D)068-0xcd15、下面选项中2个浮点数都是合法的选项是(B)A)0.5e3B)16.1e-6C).252e1.5D)0.01516、如果要把常量327存入变量a中,a不能定义成哪些类型?(B)A)intB)charC)longD)float17、下面正确的字符常量是(D)。A)“c”B)‘\\’’C)‘’D)‘K’18、C语言的赋值表达式中,赋值号的左侧必须是(B)。A)常量B)变量C)表达式D)函数19、在C语言中,要求运算数必须是整型的运算符是(D)A)/B)C)&&D)%20、下列表达式中,结果为0的是(C)A)5%6B)5*-1C)5/10D)5+-2/321、已知inta=6;则执行a+=2;语句后,a的值为(B)A)6B)8C)12D)3622、设有说明语句:charc=’\72’;则变量c(A)A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法23、以下叙述正确的是(C)。A)在C程序中,每行只能写一条语句。B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。C)在C程序中,%是只能用于整数运算的运算符。D)在C程序中,无论是整数还是实数,都能被准确无误地表示。24、以下叙述不正确的是(C)A)空字符串(即两个双引号连写)只占一个存储单元B)字符型常量可以放在字符型变量中C)字符串常量可以放在字符串变量中D)字符型常量可以与整数混合运算,而字符串常量不可以25、若有定义inta=12,则表达式a+=a-=a*=a的值是(A)A)0B)-264C)-144D)13226、若变量a是int型,执行语句a=’A’+1.6;则以下描述正确的是(D)A)a的值是字符’C’B)a的值是’A’的ASCII值加1.6,结果是66.6C)不允许字符型和浮点型相加D)a的值是’A’的ASCII值加1.6,再取整,结果是6627、若有定义:inty=7,x=12,则能使值为3的表达式是(D)A)x%=(y%=5)B)x%=(y-y%5)C)x%=y-y%5D)(x%=y)-(y%=5)28、若有定义:intc1=2,c2=2;则表达式1.0/c2*c1的值是(C)A)0B)0.5C)1.0D)0.2529、若定义:doublex=1,y;执行y=x+3/2;则y的值是(C)A)1B)2C)2.0D)2.530、若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值(C)A)0B)1C)12D)631、若有定义:chara;intb;floatc;doubled;,则表达式a*b+d-c值的类型为(B)A)floatB)doubleC)charD)int32、设有变量定义:inta=5;则以下程序段的输出结果是(D)a=(2*3,a*4,a+5);printf(“%d\n”,a);A)6B)24C)11D)1033、设有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(B)A)0.0B)2.5C)2.75D)3.534、已知x=y=3,y=x++-1,则printf(“%d%d”,x,y);的输出结果是(B)A)54B)42C)32D)4435、关于C语言的主函数描述正确的是(B)A)C程序可以有多个main函数B)C程序有且只有一个main函数C)C程序可以没有main函数D)C程序不一定从main函数开始执行36、在C语言中,使用输入、输出函数要求引入的头文件是(A)。A)stdio.hB)string.hC)math.hD)stdlib.h37、下面程序段的输出结果是(C)shorti=32769;printf(“%d”,i);A)32767B)32769C)-32767D)输出随机数38、设有以下程序段,若输入数据形式为5,8(回车),则输出结果是(D)intx,y;scanf(“x=%dy=%d”,&x,&y);printf(“%d\n”,x+y);A)5B)8C)13D)随机数39、若有说明:inta;则正确的输出语句为(B)。A)printf(%d,&a);B)printf(%d,a);C)scanf(%f,&a);D)scanf(%d,&a);40、以下程序段的输出结果是(C)intx=3,y=3,z=3;printf(%d,%d\n,(++x,y++),z+2);A)4,3B)3,4C)3,5D)4,541、以下程序段,其输出结果为(B)。inta=5;printf(%d,++a);A)5B)6C)4D)742、以下程序段的输出结果是(A)intx=5,y=10;printf(“%d,%d\n”,x++,--y);A)5,9B)6,9C)5,10D)6,1043、若有说明:doublea;则正确的输入语句为(C)。A)scanf(%lf,a);B)scanf(%d,&a);C)scanf(%lf,&a);D)scnaf(%d,a);44、以下程序段的输出结果为(C)。floata=3.1415;printf(%6.0f,a);A)3.1415B)□□□3.0C)□□□□□3D)□□□□3.45、语句printf(“a\bre\’hi\’y\\\bou\n”);的输出结果是(C)A)a\bre\’hi\’y\\\bouB)a\bre\’hi\’y\bouC)re’hi’youD)abre’hi’y\bou46、以下程序段的输出结果是(B)inta=3366;printf(a=%-08d,a=%08d,a=%3d\n,a,a,a);A)a=33660000,a=00003366,a=3366B)a=3366□□□□,a=00003366,a=3366C)a=-00003366,a=00003366,a=336D)a=3366□□□□,a=□□□□3366,a=33647、以下程序段的输出结果是(C)floata=3.1415926;printf(a=%f,a=%4.1f,a=%2.3f,a=%.0f\n,a,a,a,a);A)a=3.1415926,a=3.14,出错,a=3B)a=3.141592,a=3.1□,出错,a=3.0C)a=3.141593,a=□3.1,a=3.142,a=3D)a=3.141593,a=3.14,a=3.141a=3.048、执行scanf(“%d%d”,&x,&y);从键盘输入数据时,不能作为两个整数的分隔符是(D)A)空格B)Tab键C)回车D)逗号49、若有以下定义和语句,则输出结果是(B)inta=010,b=0x10,c=10;printf(“%d,%d,%d\n”,a,b,c);A)10,10,10B)8,16,10C)8,l0,10D)8,8,1050、执行scanf(“a=%d,b=%f”,&a,&b);欲将18和2.5分别赋给a和b,正确的输入是(A)A)a=18,b=2.5B)a=18□b=2.5C)18,2.5D)18□2.551、若有inta,b;设用户输入为111222333↙,结果a的值是111,b的值是33,则以下正确的输入语句是(C)A)scanf(“%3d%2d”,&a,&b);B)scanf(“%3d%*3d%d”,&a,&b);C)scanf(“%3d%*3d%2d”,&a,&b);D)scanf(“%3d%2d%*3d”,&a,&b);52、设x,y,z是整型变量,键盘输入数据格式为25,13,10↙,以下程序段的输出结果是(D)scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);A)x+y+z=25B)x+y+z=38C)x+y+z=48D)无法确定53、若要求变量a1,a2,c1,c2的值分别是10、20、’A’、’B’,则正确的输入格式是(C)inta1,a2;charc1,c2;scanf(%d%c%d%c”,&a1,&c1,&a2,&c2);A)10□A□20□BB)10A□20□BC)10A20BD)10□A20B54、已有定义charch1,ch2,ch3;执行scanf(“%1c%2c%3c”,&ch1,&ch2,&ch3);设键盘输入为A□BC□DEF↙,则ch1,ch2,ch3的值分别是(D)A)‘A’,‘B’,‘D’B)‘A’,‘B’,‘C’C)‘A’,‘□’,‘B’D)‘A’,‘□’,‘C’55、已有定义intx;floaty;执行scanf(“%3d%f”,&x,&y);设键盘输入为12345□678↙,则x,y的值分别是(A)A)123,45.0B)123,678.0C)12345,678.0D)123,45.67856、以下描述错误的是(D)A)文件包含是编译预处理命令B)文件包含不占用程序的运行时间C)文件包含命令以#开头D)文件包含命令可以写在main函数中57、在下列有关宏替换的叙述中,正确的说法是(D)A)宏替换占用运行时间B)宏名有类型C)带参数的宏替换和函数等价D)宏替换只是字符替换58、用宏定义来计算表达式4*x+3,下列宏定义正确的是(B)A)#defineF(x)4*x+3B)#defineF(x)4*(x)+3C)#defineF(4*x+3)D)#defineF(x)4*x+359、以下描述正确的是(C)A)在程序的一行中可以出现多个有效的预处理命令行B)使用带参数的宏时,实参的类型应与宏定义时的一致C)宏替换不占用运行时间,只占用编译时间D)在宏定义中,宏名可以由任意的字符组成60、设有宏定义:#definePI3.14159,其含义是用宏名PI代替一个(A)A)常数3.14159B)float型数据3.14159C)double型数据3.14159D)字符串3.1415961、以下程序的运行结果是(C)#defineD(r)r*rvoidmain(){intm=2,n=4,s;s=D(m+n);printf(“%d\n”,s);}A)36B)12C)14D)1662、若有以下宏定义,则执行语句z=N+Y(5);后z的值是(C)#defineN2#defin