第四章最简单的C程序设计 4.1选择题 【题4.1】 putchar函数可以向终端输出一个 A)整型变量表达式值 B)实型变量值 C)字符串 D)字符或字符型变量值 【题4.2】以下程序的输出结果是 main printf(“\n*s2=%-5s*”,“chi”) A)*sl=chinabeijing* 3) *sl=chinabei jing sk C) *sl=kchinabei* D)*s1 InabelJingi *s2=chi=k *s2=chi*k 【题4.3】 printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字 符串长度大于5,则输出按方式【1】:如果字符串长度小于5,则输出按方式【2】。 A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 )右对齐输出该字串,左补空格 D)输出错误信息 【题4.4】已有定义inta=-2;和输出语句: printf(“‰81x”,a);以下正确的叙述 是 A)整型变量的输出格式符只有%d一种 B)%x是格式符的一种,它可以适用于任何一种类型的数据 C)%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的 D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度 【题4.5】以下C程序正确的运行结果是 man long y=-43456 printf(“y=%-81dn”,y) (“y=%-081dn”,y)
第四章 最简单的 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 * 【题 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 规定了输出字段的宽度 【题 4.5】以下 C 程序正确的运行结果是 。 main() { long y=-43456; printf(“y=%-8ld\n”,y); printf(“y=%-08ld\n”,y);
printf(“y=%081dn”,y) printf(“y=%+8ld\n”,y) A)y=-43456 B)y=-43456 y=-43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+-43456 C)y=-43456 D)y=-43456 y=-43456 y=-0043456 y=00043456 【题4.6】以下C程序正确的运行结果是 printf(“y=%3on”,y) printf(“y=%8oⅦn”,y) printf(“y=%#8o\n”,y) A)y=2456 4630 ########2456 y=######4630 C)y=245 D)y=4630 2456 =4630 y=024 y=04630 【题4.7】以下C程序正确的运行结果是 long y=23456 printf(“y=%3xn”,y) printf(“y=%8xn”,y) printf(“y=%#8xn”,y) D) y=5ba0 bad Ox5ba0 y=0x5ba0 y=####5ba0 【题4.8】若x,y均定义为int型,z定义为 double型,以下不合法的 scanf函数调用语 句是
printf(“y=%08ld\n”,y); printf(“y=%+8ld\n”,y); } A)y= -43456 B)y=-43456 y=- 43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+-43456 C)y=-43456 D)y= -43456 y=-43456 y=-0043456 y=-0043456 y=00043456 y= -43456 y=+43456 【题 4.6】以下 C 程序正确的运行结果是 。 main() { int y=2456; printf(“y=%3o\n”,y); printf(“y=%8o\n”,y); printf(“y=%#8o\n”,y); } A)y= 2456 B)y= 4630 y= 2456 y= 4630 y=########2456 y=########4630 C)y=2456 D)y=4630 y= 2456 y= 4630 y= 02456 y= 04630 【题 4.7】以下 C 程序正确的运行结果是 。 main() { long y=23456; printf(“y=%3x\n”,y); printf(“y=%8x\n”,y); printf(“y=%#8x\n”,y); } A)y=5ba0 B)y= 5ba0 C)y=5ba0 D)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%1x,%le”,&x,&y,&z); B) scanf(“%2d*%d%f”,&x,&y,&z); D) scanf(“%x%o%6.2f”,&x,&y,&z) 【题4.9】已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B, 当从第一列开始输入数据时,正确的数据输入方式是 int al, a2: char cl c2 scanf(“%d%c%d%c”,&al,&cl,&a2,&c2); A)10A 20B B)10 A 20 B C) 10A20B D) 10A20 B 【题4.10】己有定义intx; float y:且执行 scanf(“‰3d%f”,&x,&y);语句,若从第一列 开始输入数据12345678,则x的值为【1】,y的值为【2】 1】A)12345B)123 D)345 【2】A)无定值B)45.000000C)678.000000D)123.000000 【题4.11】已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B, 当从第一列开始输入数据时,正确的数据输入方式是 int al, a2: char c1, c2 scanf(“%d%d”,&a1,&a2) scanf(“%c%c”,&c1,&c2); A)1020AB B)1020 AB D) 10 20AB A) scanf(“%d,%f”,&a,&f) B) scanf(“%f,%d”,&f,&a) C) scanf(“%d%f”,&a,&f) D) scanf(“%f%d”,&f,&a);
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, 当从第一列开始输入数据时,正确的数据输入方式是 。 int a1,a2; char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); A)10A 20B B)10 A 20 B C)10A20B D)10A20 B 【题 4.10】已有定义 int x; float y;且执行 scanf(“%3d%f”,&x,&y);语句,若从第一列 开始输入数据 12345 678,则 x 的值为【1】,y 的值为【2】。 【1】A)12345 B)123 C)45 D)345 【2】A)无定值 B)45.000000 C)678.000000 D)123.000000 【题 4.11】已有如下定义和输入语句,若要求 a1,a2,c1,c2 的值分别为 10,20,A 和 B, 当从第一列开始输入数据时,正确的数据输入方式是 。 int a1,a2; char c1,c2; scanf(“%d%d”,&a1,&a2); scanf(“%c%c”,&c1,&c2); A)1020AB B)10 20 AB C)10 20 AB D)10 20AB 【题 4.12】已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当 为 。 main() { int a; float f; printf(“\nInput number:”); 输入语句 printf(“\nf=%f,a=%d\n”,f,a); } Input number:4.5 2 A) scanf(“%d,%f”,&a,&f); B) scanf(“%f,%d”,&f,&a); C) scanf(“%d%f”,&a,&f); D) scanf(“%f%d”,&f,&a);
【题4.13】根据定义和数据的输入方式,输入语句的正确形式为 已有定义: float fI,f2; 数据的输入方式:4.52 A) scanf(“%f,%f”,&f1,&f2) B) scanf(“%f%f”,&f1,&f2) C) scanf(“%3.2f%2.lf”,&f1,&f2) D) scanf(“%3.2f%2.1f”,&f1,&f2) 【题4.14】阅读以下程序,当输入数据的形式为25,13,10<CR〉正确的输出结果 mall int X, y, Z scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\n”,x+y+z) A)x+y+z=48 B)x+y+z=35 D)不确定值 【题4.15】阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是 main int x: float printf(“ enter x,y:"”) 输入语句 输出语句 输入形式 enter x, y: 2 3 4 输出形式 A) scant(“%d,%f”,&x,&y); printf(“\nx+y=%4.2f”,x+y); B) scanf(“%d%f”,&x,&y) printf(“nx+y C) scanf(“%d%f”,&x,&y) (“\nx+y=%6.1f”,x+y) D) scanf(“%d%3.lf”,&x,&y);
【题 4.13】根据定义和数据的输入方式,输入语句的正确形式为 。 已有定义:float f1,f2; 数据的输入方式:4.52 3.5 A) 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() { int x,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\n”,x+y+z); } A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值 【题 4.15】阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是 。 main() { int x; float y; printf(“enter x,y:”); 输入语句 输出语句 } 输入形式 enter x,y:2 3.4 输出形式 x+y=5.40 A) scanf(“%d,%f”,&x,&y); printf(“\nx+y=%4.2f”,x+y); B) scanf(“%d%f”,&x,&y); printf(“\nx+y=%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】以下说法正确的是_。 )输入项可以为一实型常量,如 scanf(“%f”,3.5) B)只有格式控制,没有输入项,也能进行正确输入,如 nf(“a=%d,b=%d”) C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 scanf(“%4.2f”,&f) D)当输入数据时,必须指明变量的地址,如 scanf(“%f”,&f); 【题4.17】根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确的形式 应该为 mall char chl, ch2, ch3 输入语句 printf(“%c%c%c”,chl,ch2,ch3) 输入形式:ABC 输出形式:AB A) scanf(“%c%c%c”,&ch1,&ch2,&ch3) B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3); C) scanf(“%c%c%”,&ch1,&ch2,&ch3) D) scanf(“%c%c”,&chl,&ch2,&ch3) 【题4.18】有输入语句: scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b 为3,c为2,从键盘输入数据的正确形式应当是 A)132 B)1,3,2 D)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=4123’;B)ch=‘xff’;C)ch=‘08’;D)ch=“\
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】根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确的形式 应该为 。 main() { char ch1,ch2,ch3; 输入语句 printf(“%c%c%c”,ch1,ch2,ch3); } 输入形式:A B C 输出形式:A B A) 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 的值为 1,b 为 3,c 为 2,从键盘输入数据的正确形式应当是 。 A) 132 B) 1,3,2 C) a=1 b=3 c=2 D) 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】若有以下定义,则正确的赋值语句是 int a,b: float x A)a=1,b=2 B)b++; C)a=b=5 D) b=int(x) 【题4.23】设x、y均为 float型变量,则以下不合法的赋值语句是 A)++ 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=10 B)x=10 C)x=10 D)x=10 =10 y=10 z=10 z=10 =15 Z=10 【题4.25】设有说明: double y=0.5,z=1.5;intx=10;则能够正确使用C语言库函数的赋 值语句是 A)z=exp(y)+fabs(x) B) y=log10(y)+pow(y) C)z=sgrt(y-z D)x=(int)(atan2(double) x, y)+exp(y-0. 2)) 4.2填空题 【题4.26】以下程序的输出结果为 printf(“\ni:dec=%d,oct=%o,hex=%x, unsigned=‰un”,i,i,i,i) 【题4.27】以下程序的输出结果为 maino intf(“*%f,%4.3f*Ⅶn”,3.14,3.1415); 【题4.28】以下程序的输出结果为 printf(“c:dec=%d,oct=%o,hex=%x, ASCII=%cⅦn”,c,c,c,c)
【题 4.22】若有以下定义,则正确的赋值语句是 。 int a,b; float x; A)a=1,b=2, B)b++; C)a=b=5 D)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=10 B)x=10 C)x=10 D)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 语言库函数的赋 值语句是 。 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=%u\n”,i,i,i,i); } 【题 4.27】以下程序的输出结果为 。 main() { printf(“*%f,%4.3f*\n”,3.14,3.1415); } 【题 4.28】以下程序的输出结果为 。 main() { char c=‘x’; printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\n”,c,c,c,c); }
【题4.29】已有定义intd=-2;执行以下语句后的输出结果是 printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n”,d,d,d) printf(“*d(4)=%0*d(5)=%70*d(6)=%-70米n”,d,d,d) 【题4.30】已有定义intd=-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.31】已有定义 float dl=3.5,d2=-3.5;执行以下语句后的输出结果是 printf(“*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*n”,d1,d1,d); printf(“*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e米\n”,d2,d2,d2) 【题4.32】以下程序的输出结果为 main( int x- printf(“x=%dy=%d*sum*=%dⅦn”,x,y,x+y) printf(“10 Squared is:%d\n”,10*10); 【题4.33】以下程序的输出结果为 #include maino t x=10; float pi=3. 1416 printf(“(1)%d\n”,x) printf(“(2)%6d\n”,x) f(“(3)%f\n”,56.1); printf(“(4)%14fln”,pi) (“(6)%4en”,pi) printf(“(7)%gn”,pi) printf(“(8)%12gn”,pi) 【题4.34】以下程序的输出结果为 #include main float a=123. 456 double b=8765 4567 printf(“(2)%14.3fn”,a) printf(“(4)%lf\n”,b)
【题 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.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*=%d\n”,x,y,x+y); printf(“10 Squared is:%d\n”,10*10); } 【题 4.33】以下程序的输出结果为 。 #include main() { int x=10; float pi=3.1416; printf(“(1) %d\n”,x); printf(“(2) %6d\n”,x); printf(“(3) %f\n”,56.1); printf(“(4) %14f\n”,pi); printf(“(5) %e\n”,568.1); printf(“(6) %14e\n”,pi); printf(“(7) %g\n”,pi); printf(“(8) %12g\n”,pi); } 【题 4.34】以下程序的输出结果为 。 #include main() { float a=123.456; double b=8765.4567; printf(“(1) %f\n”,a); printf(“(2) %14.3f\n”,a); printf(“(3) %6.4f\n”,a); printf(“(4) %lf\n”,b);
printf(“(5)%14.31f\n”,b) printf(“(6)‰8.4lfln”,b) f(“(7)%.4f\n”,b) 【题4.35】以下 printf语句中*号的作用是【1】,输出结果是【2】。 #include for(i=1;i ma nt x=12: double a=3. 1415926 printf(“%6d#\n”,x) tf(“%-6d##Ⅶn”,x) printf(“%14.10lf#\n”,a) printf(“%-14.101f##Ⅶn”,a) 【题4.37】以下程序的输出结果为 #include int a=325: double x=3. 1415926 printf(“a=%+06dx=%+e\n”,a,x) 【题4.38】以下程序的输出结果为 #include int a=252 printf(“a=%oa=%#o\n”,a,a) printf(“a=%xa=%#x\n”,a,a) 【题4.39】以下程序段的输出结果为 int x=7281 tf(“(1)x=%3d,x=%6d,x=%60,x=%6x,x=%6u\n”,x,x,x,x,x)
printf(“(5) %14.3lf\n”,b); printf(“(6) %8.4lf\n”,b); printf(“(7) %.4f\n”,b); } 【题 4.35】以下 printf 语句中*号的作用是【1】,输出结果是【2】。 #include main() { int i; for(i=1;i main() { int x=12; double a=3.1415926; printf(“%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=%+e\n”,a,x); } 【题 4.38】以下程序的输出结果为 。 #include main() { int a=252; printf(“a=%o a=%#o\n”,a,a); printf(“a=%x a=%#x\n”,a,a); } 【题 4.39】以下程序段的输出结果为 。 int x=7281; printf(“(1) x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n”,x,x,x,x,x);
printf(“(2)x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%06dhn”,x,x,x,x,x); printf(“(3)x=%+3d,x=%+6d,x=%+08d\n”,x,x,x) printf(“(5)x=%x,x=%#x\n”,x,x) 【题4.40】假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交 换。请填空。 a+=【1】;b=a-【2】;a-=【3】 【题4.41】假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进 行交换,即:把b中的值给a,把c中的值给b,把a中的值的给c。例如:交 换前,a=10 C=30:交换后,a=20,b=30,c=10。请填空。 【1】 【题4.42】设x、y和z都是int型变量,m为long型变量,则在16位微型机上执行下面 赋值语句后,y值为【1】,z值为【2】,m值为【3】 y=(x=32767,x-1) Z=OxFFF 【题4.43】若x为int型变量,则执行以下语句后x的值是【】。 x=7 X+=X-=X+ 【题4.44】若a和b均为int型变量,则以下语句的功能是【】。 【题4.45】在 scanf函数调用语句中,可以在格式字符和%号之间加一星号,它的作用是 【1】:当输入以下数据:10203040<回车〉(此处每个数据之间有两个空 格),下面语句的执行结果是【2】 int al, a2 a3 scanf(“%d%*d%d%d”,&a1,&a2,&a3); 【题4.46】有一输入函数 scanf(“%d”,k);其不能使 float类型变量k得到正确数值的原 因是【1】和【2】。 【题4.47】已有定义inta; float b,x; char cl,c2;为使a=3,b=6.5,x=12.6,c1=‘a',c2 A’,正确的 scanf函数调用语句是【1】,输入数据的方式为【2】 【题4.48】若有以下定义和语句,为使变量c1得到字符‘A’,变量c2得到字符‘B’,正 确的格式输入形式是 canf(“%4c%4c”,&c1,&c2) 【题4.49】执行以下程序时,若从第一列开始输入数据,为使变量
printf(“(2) x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n”,x,x,x,x,x); printf(“(3) x=%+3d,x=%+6d,x=%+08d\n”,x,x,x); printf(“(4) x=%o,x=%#o\n”,x,x); printf(“(5) x=%x,x=%#x\n”,x,x); 【题 4.40】假设变量 a 和 b 均为整型,以下语句可以不借助任何变量把 a、b 中的值进行交 换。请填空。 a+=【1】; b=a-【2】; a-=【3】; 【题 4.41】假设变量 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 型变量,则以下语句的功能是【 】。 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 函数调用语句是【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,cl=‘A’,c2=‘a’,正确的数据输入形式 是 int a, b: float x, y; char cl, c2 scanf(“cl=%cc2=%c”,&c1,&c2) printf("a=%d, b=%d, x=%f, y=%f, c1=%c, c2=%c", a, b, x, y, cl, c2) 【题4.50】己有定义inti,j; float x;为将-10赋给i,12赋给j,410.34赋给x:则对 应以下 scanf函数调用语句的数据输入形式是 scanf(“%%x%e”,&i,&j,&x)
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); printf(“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);