您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言第四章基础练习题
第四章基础练习题共4页第1页常立志不如立长志!第四章基础练习题知识点:1、C语句可分为以下五类:1表达式语句:由表达式加上分号“;”组成2函数调用语句:由函数名、实际参数加上分号“;”组成。其一般形式为:函数名(实际参数表);3控制语句:有九种控制语句。可分成以下三类:条件判断语句:if语句、switch语句;循环执行语句:dowhile语句、while语句、for语句;转向语句:break语句、goto语句、continue语句、return语句。4复合语句把多个语句用括号{}括起来组成的一个语句,在程序中应把复合语句看成是单条语句,而不是多条语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。5空语句2、putchar函数是字符输出函数,其功能是在显示器上输出单个字符。其一般形式为:putchar(字符变量)对控制字符则执行控制功能,不在屏幕上显示。3、getchar函数的功能是从键盘上输入一个字符。其一般形式为:getchar();通常把输入的字符赋予一个字符变量,构成赋值语句,getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。4、printf函数称为格式输出函数。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。printf函数调用的一般形式为:printf(“格式控制字符串”,输出表列)其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等非格式字符串在输出时原样照印,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。在TurboC中格式字符串的一般形式为:[标志][输出最小宽度][.精度][长度]类型类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:格式字符意义d以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀0)x,X以十六进制形式输出无符号整数(不输出前缀Ox)u以十进制形式输出无符号整数f以小数形式输出单、双精度实数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的输出宽度输出单、双精度实数c输出单个字符s输出字符串标志:标志字符为-、+、#、空格四种,其意义下表所示:标志意义-结果左对齐,右边填空格+输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号#对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f类当结果有小数时才给出小数点输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。5.长度:长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。练习1:main(){inta=15;floatb=123.1234567;doublec=12345678.1234567;chard='p';printf(a=%d,%5d,%o,%x\n,a,a,a,a);printf(b=%f,%lf,%5.4lf,%e\n,b,b,b,b);printf(c=%lf,%f,%8.4lf\n,c,c,c);printf(d=%c,%8c\n,d,d);}5、scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数的一般形式为:scanf(“格式控制字符串”,地址表列);其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。格式字符串的一般形式为:%[*][输入数据宽度][长度]类型类型:表示输入数据的类型,其格式符和意义如下表所示。格式字符意义d输入十进制整数o输入八进制整数x输入十六进制整数u输入无符号十进制整数第四章基础练习题共4页第2页常立志不如立长志!f或e输入实型数(用小数形式或指数形式)c输入单个字符s输入字符串“*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。如:scanf(%d%*d%d,&a,&b);当输入为:123时,把1赋予a,2被跳过,3赋予b。宽度:用十进制整数指定输入的宽度(即字符数)。长度:长度格式符为l和h,l表示输入长整型数据(如%ld)和双精度浮点数(如%lf)。h表示输入短整型数据。使用scanf函数还必须注意以下几点:scanf函数中没有精度控制,scanf中要求给出变量地址,在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格、TAB或回车作间隔。在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。例如:scanf(%c%c%c,&a,&b,&c);输入为:def则把'd'赋予a,''赋予b,'e'赋予c。如果格式控制串中有非格式字符则输入时也要输入该非格式字符。例如:scanf(%d,%d,%d,&a,&b,&c);其中用非格式符“,”作间隔符,故输入时应为:5,6,7如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。练习一、选择题:1、设整型变量a的值为20,则语句printf(“%x”,a);的输出结果是(B)。(A)20(B)14(C)014(D)0x14设有整型变量a、b和c,调用标准输入函数scanf(“%f%f%f”,&a,&b,&c)从键盘上读入实型2、变量a、b和c的值,则下列输入格式不正确的是(B)。(A)10(B)10,20,30(C)10.0(D)10.020.02020.030.030.0303、设整型变量a的值为–1,则语句printf(“%d,%u\n”,a,a);的输出结果是(D)。(A)–1,-1(B)–1,32767(C)–1,32768(D)–1,655354、已知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);5、putchar函数可以向终端输出一个:(D)A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值6、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B)A)从左起输出该字串,右补空格B)按原字符长从左向右全部输出C)右对齐输出该字串,左补空格D)输出错误信息7、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:(BD)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);8、阅读以下程序,当输入数据的形式为:25,13,10CR(注:CR表示回车),则正确的输出结果为D。main(){intx,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值9、已知ch是字符型变量,下面正确的赋值语句是A。A)ch=‘a+b’;B)ch=‘\0’;C)ch=‘7’+‘9’;D)ch=5+9;10、下列语句中,符合语法的语句是(D)A)a+b=3B)a=7C)a=c+d+5=6D)a=8,b=a+7;11、下述程序段的输出是(C)#includestdio.hvoidmain(){inta=012,b=012;printf(“%x,%o”,++a,b++);}A)13,12B)13,13C)b,12D)b,1312、以下程序的输出结果是(D)#includestdio.hmain(){intx=010,y=5;printf(“x=%d,y=%%d”,x,y,);}A)x=10,y=5B)x=%2,y=%3C)x=%%d,y=%%dD)x=8,y=%d13、以下程序段的输出结果是(C)#includestdio.hmain(){inta=1234;floatb=123.456;doublec=12345.54321;printf(“%2d,%2.1f,%2.1lf”,a,b,c);}第四章基础练习题共4页第3页常立志不如立长志!A)输出格式中位数不够,无输出B)输出结果为12,12.4,12.5C)输出结果为1234,123.5,1234.5D)输出结果为1234,123.4,1234.514、若使用下述程序段将整数12和浮点数13.6分别赋给变量a和b,那么输入应该是(B)inta;floatb;scanf(“a=%d,b=%f”,&a,&b);A)1213.6B)a=12,b=13.6C)12,13.6D)a=12b=13.615、若x为float型变量,则以下程序段的结果是(B)x=1234.6789;printf(“%-2.1f”,x);A)输出格式描述符域宽度不够,不能输出B)输出为1234.7C)输出为1234.6D)输出为-1234.616、对下面的程序说法正确的是(C)main(){intx=3,y=0,z=0;if(x=y+z)printf(“***”);elseprintf(“###”);}A)有语法错误,不能通过编译B)输出为***C)输出为###D)通过编译,但是不能通过连接,因而不能运行17、以下哪个不是正确的C语言赋值语句(D)A)a=a+1;B)i++;C)a*=1,b=8;D)a=318、下面的程序运行结果为(B)#includestdio.hmain(){inti=2;floaty=5.4;i=i*(5%i)+’B’;printf(“%c\n”,i);i=(int)y;printf(“y=%f,i=%d\n”,y,i);}A)DB)DC)DD)dY=5.4,i=5Y=5.400000,i=5Y=5.400000,i=5Y=5.400000,i=519、下面的程序运行结果为(C)#includestdio.hmain(){inta,b,c;a=b=c=5;a-=(b%=2)+(c-=1);printf(“%d,%d,%d\n”,a,b,c);}A)014B)-124C)0,1,4D)–1,2,420、下面的程序运行结果为(B)#includestdio.hmain(){charc1,c2;c1=’a’;c2=’\n’;printf(“%c%c”,c1,c2);}A)aaB)aC)a\nD)\n\n21、下列程序的运行结果为(C)#includestdio.h#includemath.hmain(){inta=1,b=4,c=2;floatx=5.5,y=9.0,z;z=(a+b)/c+sqrt((double)y)*1.2/c+x;printf(“%f\n”,z);}A)数据溢出B)9.3C)9.300000D)0.9322、执行下面程序中的输出语句后,a的值为(A)main(){inta;printf(“%d\n”,(a=65,20,15));}A)65B)20C)15D)10二、填空题1、若有定义语句“inta=25,b=14,c=19;”,以下语句的执行结果是()。if(a++=25&&b
本文标题:C语言第四章基础练习题
链接地址:https://www.777doc.com/doc-5442404 .html