prinTf("密码是沁ε%c%c%c%cn",c1.c2,c3,c4.c5) 结果 密码是(l 3.8例3.6能否改成如下 (原为 解:可以。因为在可输出的字符范围内,用整型和用字符型作用相同。 3.9求下面算术表达式的值。 设x=2.5,a=7 (2)(float)(a+b). 2-+(int)x%(int)y 解 (1)2.5 3.10写出程序运行的结果 ntf (%d, %d, %d, %d",ij. 解:运行结果为 3.11写出下面赋值的结果。格中写了数值的是要将它赋给其他类型的变量,将所有空 格填上赋值后的数值
d 76 65535 53.65 68 解 10 char float 99000010.0000d06.000053.6568.0000042.00065535.0000 65535 3.12写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 6) 解 (6)0
第4章最简单献C潤序设計 一题序温序设计 4.1C语言中的语句有哪几类?C语言与其他语言中的语句有哪些异问? 解;略 4.2怎样区分表达式和表达式语句?C语言为什么要设表达式语句?什么时候用表达 式,什么时候用表达式语句? 4.3C:语言为什么"把输入输出的功能作为函数,而不作为语言的基本部分 解:略 4.4若a=3.b=4,c=5,x=1.2,y=2.4,z=3.6,u=51274,n=128765,c1=a,c2 b′想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出) 要求输出的结果如下 LU2 .20u凵z+x--2.4 uLL cl-a or 97(AsCll c2=hu, or,, 98(ASCII) int d b c ong int un; char c printf( \n): printf("x=%8,6,y=%8.6,z一坏9.6n",x,y,z) printi( x+y: 25. 2fy+2-203. 2fz+x. 5. 2f\n. x+yy+4.2+x)
printf"u=%6ldn-=%9ld\n",u,n) printf("cl-%cor %d(ASCID)\n,cl,cl); printiCc2=%c or %d(ASCII)\n", c2, c2); 4.5请写出下面程序的输出结果: float x-67.8564,y=-789.124; unsigned u=65535 printf( %d%od\n,a, b) printf("%f, %A\n,x,y) pint(%-10,%-10fn”,x,y); pnt(”%8.2f,%8.2f,%4,%4,%3f,%3fn",x,y,x,y,x,y); 10.2e\n",x,y) pin(”%,%,%,%xn",c,c,c,e); printf("%s, y5 3s\n","COMPUTER", "COMPUTER") 运行结果 67.856400,-789.124023 67.856400,-789.124023 67.86,-789.12,67.856400,-789.124023,67.856400,-789.124023 6.78564e+01,-7.9e+02 A,65,101,4 1234567,4553207,d687 65535,177777,fff,-1 COMPUTER, COM 4.6用下面的 scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A,c2='a 问在键盘上如何输人? chat cl, c2 18
scanf(a=%d b=%d",&a, &b); scanf”%f%e",8.x,8y) scanf(L%cL%c&cl, &c2); printf(a=d,b <yd, x=%fy= %f, cl=yc, c2:=%c\n,a,b, x,y,cl, c2) 解:可按如下方式在键盘上输人: 输出为 a=3,b=7,x=8.500000,y=71.820000,cl=A.c2=a 请注意:在第三个 scanf函数双引号中第一个字符为空格字符。如果没有这个 空格字符,而写成 an("%c%c",8.c1,&c2) 按以上的输入,输出就会变成以下两行: a=3b=7,x=8.50000,y=71.820000,cl= 这是因为在输入完第二行数据后按的回车键被作为一个字符送到内存输入缓 冲区中,因此笫三个 scanf函数中的第一个变量c读入了回车符(实际上是回车符 的ASCI码)。笫三行输入的笫一个字符A被c2读取,所以在执行 printf函数输 出cl时,就输出一个回车符,输出c2时就输出字符A。我们在程序第三个 scanf函 数双引号中第一个字符处放了一个空格字符,这样第二行末尾输入的回车符就不会 输入给c1,而是与该空格字符对应,笫三行输入的第一个字符A就被cl读取。也 可以不在 scanf函数中加空格,而在第三个函数前加一个 getchar函数; getchar(); 注意要相应地在程序开头加:# include<stdo.h>)用它将前而的回车符“吃 在一个函数中如果有几个sanf函数,在输入数据时往往会出现一些想象不到 的情况(例如前碰到的情况),其中一个重要的原因就是由回车符引起的:C语言 很灵活,书上不可能把一切细节都讲到,读者在遇到类似情况时,上机多试验一下就 可以找出规律来。 4.7用下面的 scanf函数输人数据,使a=10.h=20,c1='A',c2='a',x=1.5,y= 3.75,z=67,8,请问在键盘上如何输入数据? scanf("%5d%5d%c%c%f%f%*f,%f,8a,8.b,&c1,&c2,8x,8y,8z) int a, b; float x, y, zi san("%5d%5%c%c为%%*,%f,8a,8b,&cl,8-c2,8x,8y,8z); 19