《C语言程序设计-第四章最简单的C程序设计练习题【附答案】.docx》由会员分享,可在线阅读,更多相关《C语言程序设计-第四章最简单的C程序设计练习题【附答案】.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章最简单的C程序设计练习题第四章最简单的C程序设计4.1选择题【题4.1】putchar函数可以向终端输出一个。A) 整型变量表达式值B) 实型变量值C) 字符串D) 字符或字符型变量值【题4.2】以下程序的输出结果是。main()printf(“n*s1=%15s*”, “chinabeijing”);printf(“n*s2=%-5s*”, “chi”);A)*s1=chinabeijing *B)*s1=chinabeijing * *s2=*chi* *s2=chi *C)*s1=*chinabeijing*D)*s1= chinabeijing* *s2=chi* *s2=chi
2、 *【题4.3】printf函数中用到格式符5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式【1】;如果字符串长度小于5,则输出按方式【2】。A) 从左起输出该字串,右补空格B) 按原字符长从左向右全部输出C) 右对齐输出该字串,左补空格D) 输出错误信息【题4.4】已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是。A) 整型变量的输出格式符只有d一种B) x是格式符的一种,它可以适用于任何一种类型的数据C) x是格式符的一种,其变量的值按十六进制输出,但8lx是错误的D) 8lx不是错误的格式符,其中数字8规定了输出字段的宽
3、度【题4.5】以下C程序正确的运行结果是。main()long y=-43456;printf(“y=%-8ldn”,y);printf(“y=%-08ldn”,y);printf(“y=%08ldn”,y);printf(“y=%+8ldn”,y);A)y= -43456B)y=-43456 y=- 43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+-43456C)y=-43456D)y= -43456 y=-43456 y=-0043456 y=-0043456 y=00043456 y= -43456 y=+43456【题4.6】以下C程序
4、正确的运行结果是。main()int y=2456;printf(“y=%3on”,y);printf(“y=%8on”,y);printf(“y=%#8on”,y);A)y= 2456B)y= 4630 y= 2456 y= 4630 y=#2456 y=#4630C)y=2456D)y=4630 y= 2456 y= 4630 y= 02456 y= 04630【题4.7】以下C程序正确的运行结果是。main()long y=23456;printf(“y=%3xn”,y);printf(“y=%8xn”,y);printf(“y=%#8xn”,y);A)y=5ba0B)y= 5ba0C)
5、y=5ba0D)y=5ba0 y= 5ba0 y= 5ba0 y=5ba0 y= 5ba0 y= 0x5ba0 y= 0x5ba0 y=0x5ba0 y=#5ba0【题4.8】若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);【题4.9】已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从
6、第一列开始输入数据时,正确的数据输入方式是。int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);A)10A 20BB)10 A 20 BC)10A20BD)10A20 B【题4.10】已有定义int x; float y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数据12345 678,则x的值为【1】,y的值为【2】。【1】A)12345B)123C)45D)345【2】A)无定值B)45.000000C)678.000000D)123.000000【题4.11】已有如下定义和输入语句,若要求a1,a2
7、,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是。int a1,a2; char c1,c2;scanf(“%d%d”,&a1,&a2);scanf(“%c%c”,&c1,&c2);A)1020ABB)10 20 ABC)10 20 ABD)10 20AB【题4.12】已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为。main()int a; float f;printf(“nInput number:”);输入语句printf(“nf=%f,a=%dn”,f,a);Input number:4.5 2A) scanf(“%d,%f”,&a
8、,&f);B) scanf(“%f,%d”,&f,&a);C) scanf(“%d%f”,&a,&f);D) scanf(“%f%d”,&f,&a);【题4.13】根据定义和数据的输入方式,输入语句的正确形式为。已有定义:float f1,f2;数据的输入方式:4.523.5A) scanf(“%f,%f”,&f1,&f2);B) scanf(“%f%f”,&f1,&f2);C) scanf(“%3.2f %2.1f”,&f1,&f2);D) scanf(“%3.2f%2.1f”,&f1,&f2);【题4.14】阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为。main()in
9、t x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);A) x+y+z=48B) x+y+z=35C) x+z=35D) 不确定值【题4.15】阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是。main()int x; float y;printf(“enter x,y:”);输入语句输出语句输入形式enter x,y:2 3.4输出形式x+y=5.40A) scanf(“%d,%f”,&x,&y);printf(“nx+y=%4.2f”,x+y);B) scanf(“%d%f”,&x,&y);printf(“nx+y
10、=%4.2f”,x+y);C) scanf(“%d%f”,&x,&y);printf(“nx+y=%6.1f”,x+y);D) scanf(“%d%3.1f”,&x,&y);printf(“nx+y=%4.2f”,x+y);【题4.16】以下说法正确的是。A) 输入项可以为一实型常量,如scanf(“%f”,3.5);B) 只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);C) 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D) 当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);【题4.17】根据
11、下面的程序及数据的输入方式和输出形式,程序中输入语句的正确的形式应该为。main()char ch1,ch2,ch3;输入语句printf(“%c%c%c”,ch1,ch2,ch3);输入形式:A B C输出形式:A BA) scanf(“%c%c%c”,&ch1,&ch2,&ch3);B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);C) scanf(“%c %c %c”,&ch1,&ch2,&ch3);D) scanf(“%c%c”,&ch1,&ch2,&ch3);【题4.18】有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的
12、值为1,b为3,c为2,从键盘输入数据的正确形式应当是。A) 132B) 1,3,2C) a=1 b=3 c=2D) a=1,b=3,c=2【题4.19】以下能正确地定义整型变量a,b和c并为其赋初值5的语句是。A)int a=b=c=5;B)int a,b,c=5;C)a=5,b=5,c=5;D)a=b=c=5;【题4.20】已知ch是字符型变量,下面不正确的赋值语句是。A)ch=a+b;B)ch=0;C)ch=7+9;D)ch=5+9;【题4.21】已知ch是字符型变量,下面正确的赋值语句是。A)ch=123;B)ch=xff;C)ch=08;D)ch=“”;【题4.22】若有以下定义,则
13、正确的赋值语句是。int a,b; float x;A)a=1,b=2,B)b+;C)a=b=5D)b=int(x);【题4.23】设x、y均为float型变量,则以下不合法的赋值语句是。A)+x;B)y=(x%2)/10;C)x*=y+8;D)x=y=0;【题4.24】设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是。A)x=10B)x=10C)x=10D)x=10 y=15 y=10 y=10 y=5 z=10 z=10 z=15 z=10【题4.25】设有说明:double y=0.5,z=1.5; int x=10;则能够正确使用C语言库函
14、数的赋值语句是。A) z=exp(y)+fabs(x);B) y=log10(y)+pow(y);C) z=sqrt(y-z);D) x=(int)(atan2(double)x,y)+exp(y-0.2);4.2填空题【题4.26】以下程序的输出结果为。main()short i;i=-4;printf(“ni:dec=%d,oct=%o,hex=%x,unsigned=%un”,i,i,i,i);【题4.27】以下程序的输出结果为。main()printf(“*%f,%4.3f*n”,3.14,3.1415);【题4.28】以下程序的输出结果为。main()char c=x;printf(
15、“c:dec=%d,oct=%o,hex=%x,ASCII=%cn”,c,c,c,c);【题4.29】已有定义int d=-2;执行以下语句后的输出结果是。printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*n”,d,d,d);printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*n”,d,d,d);【题4.30】已有定义int d=-2;执行以下语句后的输出结果是。printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*n”,d,d,d);printf(“*d(4)=%x*d(5)=%6x*d(6)=%-6x*n”,d,d,d);【题4.
16、31】已有定义float d1=3.5,d2=-3.5;执行以下语句后的输出结果是。printf(“*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*n”,d1,d1,d1);printf(“*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*n”,d2,d2,d2);【题4.32】以下程序的输出结果为。main()int x=1,y=2;printf(“x=%d y=%d *sum*=%dn”,x,y,x+y);printf(“10 Squared is:%dn”,10*10);【题4.33】以下程序的输出结果为。#include main()int x=10; fl
17、oat pi=3.1416;printf(“(1) %dn”,x);printf(“(2) %6dn”,x);printf(“(3) %fn”,56.1);printf(“(4) %14fn”,pi);printf(“(5) %en”,568.1);printf(“(6) %14en”,pi);printf(“(7) %gn”,pi);printf(“(8) %12gn”,pi);【题4.34】以下程序的输出结果为。#include main()float a=123.456; double b=8765.4567;printf(“(1) %fn”,a);printf(“(2) %14.3fn
18、”,a);printf(“(3) %6.4fn”,a);printf(“(4) %lfn”,b);printf(“(5) %14.3lfn”,b);printf(“(6) %8.4lfn”,b);printf(“(7) %.4fn”,b);【题4.35】以下printf语句中*号的作用是【1】,输出结果是【2】。#include main()int i;for(i=1;i=5;i+) printf(“#%*dn”,i,i);【题4.36】以下printf语句中-号的作用是【1】,该程序的输出结果是【2】。#include main()int x=12; double a=3.1415926;p
19、rintf(“%6d#n”,x);printf(“%-6d#n”,x);printf(“%14.10lf#n”,a);printf(“%-14.10lf#n”,a);【题4.37】以下程序的输出结果为。#include main()int a=325; double x=3.1415926;printf(“a=%+06d x=%+en”,a,x);【题4.38】以下程序的输出结果为。#include main()int a=252;printf(“a=%o a=%#on”,a,a);printf(“a=%x a=%#xn”,a,a);【题4.39】以下程序段的输出结果为。int x=7281;
20、printf(“(1) x=%3d,x=%6d,x=%6o,x=%6x,x=%6un”,x,x,x,x,x);printf(“(2) x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%06dn”,x,x,x,x,x);printf(“(3) x=%+3d,x=%+6d,x=%+08dn”,x,x,x);printf(“(4) x=%o,x=%#on”,x,x);printf(“(5) x=%x,x=%#xn”,x,x);【题4.40】假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。a+=【1】; b=a-【2】; a-=【3】;【题4.41】
21、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即:把b中的值给a,把c中的值给b,把a中的值的给c。例如:交换前,a=10,b=20,c=30;交换后,a=20,b=30,c=10。请填空。【1】; a=b; b=c; 【2】;【题4.42】设x、y和z都是int型变量,m为long型变量,则在16位微型机上执行下面赋值语句后,y值为【1】,z值为【2】,m值为【3】。y=(x=32767,x-1);z=m=0xFFFF;【题4.43】若x为int型变量,则执行以下语句后x的值是【】。x=7;x+=x-=x+x;【题4.44】若a和b均为int型变量,则以下语句
22、的功能是【】。a+=b; b=a-b; a-=b;【题4.45】在scanf函数调用语句中,可以在格式字符和号之间加一星号,它的作用是【1】;当输入以下数据:10 20 30 40(此处每个数据之间有两个空格),下面语句的执行结果是【2】。int a1,a2,a3;scanf(“%d%*d%d%d”,&a1,&a2,&a3);【题4.46】有一输入函数scanf(“%d”,k);其不能使float类型变量k得到正确数值的原因是【1】和【2】。【题4.47】已有定义int a; float b,x; char c1,c2;为使a=3,b=6.5,x=12.6,c1=a,c2=A,正确的scanf
23、函数调用语句是【1】,输入数据的方式为【2】。【题4.48】若有以下定义和语句,为使变量c1得到字符A,变量c2得到字符B,正确的格式输入形式是。char c1,c2;scanf(“%4c%4c”,&c1,&c2);【题4.49】执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,正确的数据输入形式是。main()int a,b; float x,y; char c1,c2;scanf(“a=%d b=%d”,&a,&b);scanf(“x=%f y=%f”,&x,&y);scanf(“c1=%c c2=%c”,&c1,&c2);pr
24、intf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c”,a,b,x,y,c1,c2);【题4.50】已有定义int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是。scanf(“%o%x%e”,&i,&j,&x);第四章最简单的C程序设计答案第四章最简单的C程序设计【题4.1-4.25】 DD(BC)DC DADA(BB) DDBDB DADAA BBBAD【题4.26】 i:dec=-4,oct=177774,hex=fffc,unsigned=65532【题4.27】 *3.140000,3
25、.142*【题4.28】 c:dec=120,oct=170,hex=78,ASCII=x【题4.29】 *d(1)=-2*d(2)=-2*d(3)=-2*d(4)=177776*d(5)=177776*d(6)=177776*【题4.30】 *d(1)=-2*d(2)=-2*d(3)=-2*d(4)=fffe*d(5)=fffe*d(6)=fffe*【题4.31】 *d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=3.500e+00*d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00*【题4.32】 x=1 y=
26、2 *sum*=310 Squared is: 100【题4.33】 (1) 10(2) 10(表示空格)(3) 56.100000(4) 3.141600(5) 5.68100e+02(6) 3.14160e+00(7) 3.1416(8) 3.1416【题4.34】 (1) 123.456000(2) 123.457(3) 123.4560(4) 8765.456700(5) 8765.457(6) 8765.4567(7) 8765.4567【题4.35】 【1】可以使同一输出语句中的输出宽度得以改变。【2】#1#2#3#4#5【题4.36】 【1】输出数据左对齐【2】12#12#3.1
27、41592600#3.141592600#【题4.37】 a=+00325x=+3.14159e+00【题4.38】 a=374a=0374a=fca=0xfc【题4.39】 (1) x=7281,x=7281,x=16161,x=1c71,x=7281(2) x=7281,x=7281,x=$7281,x=$007281,x=%06d(3) x=+7281,x=+7281,x=+0007281(4) x=16161,x=016161(5) x=1c71,x=0x1c71【题4.40】 【1】b【2】b【3】b【题4.41】 【1】t=a【2】c=t【题4.42】 【1】32766【2】-1【
28、3】65535【题4.43】 -14【题4.44】 不借助任何中间变量把a、b中的值进行交换。【题4.45】 【1】跳过对应的输入数据【2】当输入以下数据时:10203040将把10赋给a1,跳过20,把30赋给a2,把40赋给a3【题4.46】 【1】未指明变量k的地址【2】格式控制符与变量类型不匹配scanf语句的正确形式应该是:scanf(“%f”,&k);【题4.47】 【1】scanf(“%d%f%f%c%c”,&a,&b,&c1,&c2);【2】36.512.6aA【题4.48】 AB【题4.49】 a=3b=7x=8.5y=71.82c1=Ac2=a【题4.50】 -12c4.1034e+02