.
第四章
4.1 C语言的句子有哪些种类?c句子和其他语言的句子有什么区别?
(1)控制语句
(2)函数调用语句
(3)式句
(四)空文
(5)复合句
在c语言中,一行可以写多个句子。 也可以把一个句子分成几行来写。 虽然格式没有固定,但是其他语言一般对格式的要求很严格。
4.2公式和公式语句如何区分?c语言为什么要设定公式语句?什么时候使用公式,什么时候使用公式语句
公式中没有分号,句子中有分号,在公式中加上分号就成为公式句子。 两者最大的不同在于,公式只是一个值,公式句是指令,完成指定的操作。
c语言设定式句子的作用是使用短命令代替复杂的函数演算,程序的执行效率很高。
表达式是为求值运算设置的表达式,用于语句,但不构成完整的语句。 必须使用表达式语句才能完成此运算。
4.3 C语言为什么不是通过语言的基本部分而是通过函数来实现输入输出的功能呢?
输入输出的对象是数据,数据是以介质为载体的,因此进行输入输出时需要与各种外部设备交往。 由于不同系统的I/o差异很大,因此必须使用函数与操作系统交互才能访问不同的设备文件。
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’。 想得到以下输出形式和结果时,请写下程序。
请求输出结果如下所示
a=3 b=4 c=5
x=1.200000,y=2.400000,z=-3.600000
x y=3.60 y z=-1.20 z x=-2.40
u=51274 n=128765
C1=’a’or97 (ascii )
C2=’b’or98 (ascii )
int main ()
装模作样
int a=3,b=4,c=5;
双精度x=1.2,y=2.4,z=-3.6;
unsigned int u=51274,n=128765;
char c1=a,c2=b;
printf('a=-b=-c=-\n ',a,b,c );
printf('x=%f,y=%f,z=%f\n ',x,y,z );
printf (' x y=% 5.2 fby z=% 5.2 fbyx=% 5.2f\n ',xy,yz,z x );
printf('u=%6UN=u\n ',u,n );
printf('c1=%cor%d(ascii)\n ',c1,c1 );
printf('c2=%cor%d(ascii)\n ',c2,c2 );
return 0;
以下称为
4.5请写下以下程序的输出结果
int main ()
装模作样
int a=5,b=7;
浮点x=67.8564,y=-789.124;
char c=A;
long n=1234567;
unsigned u=65535;
printf('%d%d\n”,a,b );
printf('==\n ',a,b );
printf('%f,%f,%f\n ',x,y );
printf('%-10f,%-10f\n ',x,y );
printf (“% 8.2f”% 8.2f”%.4f、%.4f、%?x、y、x、y、x、y;
printf('%e”, 2e\n”,x,y );
printf('%c,%d,%o,%x\n ',c,c,c );
printf('%ld”,%lo,%x\n”,n,n );
printf('%u,%o,%x,%d\n ',u,u,u );
printf('%s”,%5.3s\n”,“计算机”)
return 0;
以下称为
57
5 7
67.856400,-789.124023
67.856400,-789.124023
67.86,- 789.12,67.8564,- 789.1240,67.856400,-789.124023
6.785640e 001、-7.89e 002
a,65,101,41
1234567,455307,12d 687
65535,177777,ffff,65535
COMPUTER,COM
4.6使用以下scanf函数输入a=3、b=7、x=8.5、7=71.82、c1=’a’和c2=’a’的数据,并询问键盘如何输入
int main ()
装模作样
int a,b;
浮点x,y;
char c1,c2;
scanf (“% d”d % f % c % c,a,b,x,y,c1,c2);
printf('%d%d\n”,a,b );
printf('%f%f\n”,x,y );
printf('%c%c\n”,c1,c2);
return 0;
以下称为
4.7使用以下scanf函数输入数据: a=10,b=20,C1=’a’,C2=’a’,x=1.5,y=-3.75,z=67.8。 如何在键盘上输入数据?
int main ()
装模作样
int a,b;
char c1,c2;
浮点x,y,z;
scanf (“% d”d % c % f % f”,a,b,c1,c2,x,y,z );
printf('%d%d\n”,a,b );
printf('%f%f%f\n”,x,y,z );
printf('%c%c\n”,c1,c2);
return 0;
以下称为
设定4.8圆半径r=1.5、圆柱高度h=3,求出圆周长、圆面积、球表面积、球体积、圆柱体积. 用scanf输入数据,输出计算结果。 输出时需要文本说明,取小数点后2位的数字,请编制程序。
#define Pi 3.1415926
int main ()
装模作样
double r,h;
scanf('%lf%lf”,r,h );
printf ('圆的周长=%.2f\n ',2*Pi*r );
printf ('圆的面积=%.2f\n ',Pi*r*r;
printf ('球表面积=%.2f\n ',Pi*r*r/6 );
printf ('球体积=%.2f\n ',4*Pi*r*r*r/3 );
printf ('圆柱体积=%.2f\n ',Pi*r*r*h );
return 0;
以下称为
4.9输入华氏温度的读数f,要求输出摄氏温度的读数c。 公式是
C=5(F-32)/9
输出需要文本说明,取小数点后两位。
#include
双核心模型(double Fahrenheit )
int main ()
装模作样
双精度f;
printf ('华氏温度:');
scanf('%lf”,f );
printf ('摄氏温度为%.2f\n ',CentigradeTemperature(F );
return 0;
以下称为
doublecentigraderature (double Fahrenheit )
装模作样
return 5*(Fahrenheit-32)/9;
以下称为
4.10编程:使用getchar函数读入两个字符c1、c2,使用putchar函数和printf函数输出两个字符,(1)考虑用字符类型和整数的哪一个来定义变量c1、c2,或者用两者来定义(2)c1和c2的ASCII编码器putchar函数还是printf函数? (3)整数变量和字符变量在任何情况下都可以替换? 这将是:
char c1,c2;
int c1、c2和
没有条件等价吗?
int main ()
装模作样
char c1,c2;
c1=getchar ();
c2=getchar ();
putchar(c1)
putchar(c2)
printf('\n%c%c\n ',c1,c2);
return 0;
以下称为
(一)两者均为。
(在printf函数中将printf('\n%c%c\n ',c1,c2 )更改为printf('\n%d%d\n ',c1,c2 )即可。
(3)不过,整数可以代替字符类型,但字符不能完全替换整数。
第五章
5.1什么是算术运算? 什么是关系运算? 什么是逻辑运算?
算术运算:- */% --
关系运算:==!=
逻辑运算: ||
5.2 C语言如何表示真伪? 系统如何判断一个量的真伪?
c语言用整数1和0表示真伪
5.3写入下列各逻辑式的值,设a=3、b=4、c=5。
(1) a bc b==c
(2) a||b c b-c
(3)! (ab )! c! 1
(4)! (x=a) (y=b) 0
(5)! (a b) c-1 b c/2
(1) 0(2) 1(3) 0(4) 0(5) 1
5.4有3个整数a、b、c,通过键盘输入,输出其中的最大数。
int Max3(int a、int b、int c )
int main ()
装模作样
int a、b、c;
scanf (“% d”d % d,a,b,c );
printf ('最大数量为%d\n ',Max3(a,b,c );
return 0;
以下称为
int Max3(int a、int b、int c )
装模作样
int temp;
temp=ab? a:b;
return tempc? temp:c;
以下称为
有5.5个函数
编写程序,输入x并输出y值。
双精度(双精度x )
int main ()
装模作样
double x,y;
scanf('%lf”,x );
y=funcy(x )
printf ('最大数量为%lf\n ',y );
return 0;
以下称为
双精度(双精度x )
装模作样
if(x1) return x;
else
if(x10) return 2*x-1;
else return 3*x-11;
以下称为
5.6的成绩,要求输出成绩等级‘a’、‘b’、‘c’、‘d’、‘e’。 90分以上为’a’,81~89分为’b’,70~79分为’c’,60~69分为’d’,60分以下为’e’。
int main ()
装模作样
双核心;
scanf('%lf”,score );
if(score100 || score0) return 0;
if(score=90) printf('A\n ' );
else
if(score=80)printf('b\n ' );
else
if(score=70)printf('c\n ' );
else
if(score=60) printf('D\n ' );
else printf('E\n ' );
return 0;
以下称为
5 .给出7位以下的正整数,(1)要求它是数位,(2)分别打印各位的数字,(3)按相反顺序打印各位的数字,例如,原来的数字是321,必须输出123。
int main ()
装模作样
int i,k;
int a[5];
unsigned int x;
scanf('%u”,x );
if(x99999 || x0) return 0;
a[0]=x/10000;
a[1]=(x-a[0]*10000)/1000;
a [2]=(x-a [0] * 10000-a [1] * 1000 )/100;
a [3]=(x-a [0] * 10000-a [1] * 1000-a [2] * 100 )/10;
a [4]=x-a [0] * 10000-a [1] * 1000-a [2] * 100-a [3] * 10;
/*求其数量*/
printf('(1): ' )
if(a[0]) printf('5位\n ' );
else
if(a[1]) printf('4位\n ' );
else
if(a[2]) printf('3位\n ' );
else
if(a[1]) printf('2位\n ' );
else printf('1位\n ' );
/*无效的零个数*/
k=0;
while(k5 a[k]==0) k;
/*列印每位数字*/
printf('(2): ' )
for(i=k; i5; I)printf('%d”,a[i] )
printf('\n ' );
/*反向列印各位数字*/
printf('(3): ' )
for(i=4; i=k; i--)printf('%d”,a[i] )
printf('\n ' );
return 0;
以下称为
5.8企业发放的奖金按利润发放。 利润(I )在10万元以下时,奖金为10%; 利润超过十万元,低于二十万元(100000 )。