关于计算机二级c语言真题c语言, 这幅图中的%-6.2e是什么?那个1.23e+002又怎么看?求解

我查的荧光定量PCR技术(HBV-DNA)结果是1.23E+002请问是什么意思,是否正常?谢谢了
患者信息:女
病情描述:患者信息:男21岁河南濮阳病情描述(发病时间、主要症状等):我查的荧光定量PCR技术(HBV-DNA)结果是1.23E+002请问是什么意思,是否正常?谢谢了
最佳回答百姓健康网53487位专家为您在线解答
病情分析:目前结果还可以,问题不大的,注意观察
回答时间:
Ta帮助了358人
回答列表(1)
Ta帮助了3274人
病情分析:你好,从你的检查结果来看,你这时乙肝病毒含量是在正常范围内的,这个并没有什么问题这时建议可以在化验一下肝功能看看,如果这时肝功能是正常的,可先不用做治疗的,定期复查就行了
回答时间:
猪猪侠客女
48岁提问时间:
病情描述:右侧屁股上面一点大腿胀痛,拔火罐能不能治好
医生建议:你好,根据你的描述考虑是疖子,是金黄色葡萄球菌感染,和上火,长时间骑坐有关系的,可以去医院外科检查,配合消炎治疗,清淡饮食,多吃蔬菜水果,多喝热水,适当按摩
26岁提问时间:
病情描述:男性,26岁,阴茎勃起11cm,又短又小,想做增长增长手机。大概多少钱
医生建议:你好,正常的阴茎勃起,只要能达到10cm左右,那就是正常的。
15岁提问时间:
病情描述:我也不知道怎么回事,最近脸上一直长痘痘,所以我来问一下这痘痘会不会影响?还有这个痘痘是不是很严重?
医生建议:您好,你的年龄正处在青春期,青春期由于体内激素的缘故,导致油脂分泌也旺盛。
18岁提问时间:
病情描述:减肥瘦下来了腿没瘦是怎么回事?我168cm,原来120斤现在94斤,但是腿感觉没有变化
医生建议:你好,如果减肥瘦下来了,这个应该是整体都瘦的,不可能腿没有瘦。
沧海一声笑女
14岁提问时间:
病情描述:夏天脸上老出油,脸上的痘痘,有大的有小的,有时会很痒,现在脸上,额头上,甚至下巴也长出了许多
医生建议:你好从你所说的这种情况来看,一般多见于座疮常由于青春期内分泌失调所引起的这种现象应适当的用药物以调理。"c语言中正确是1还是0"的糗事
你可能感兴趣:
糗事百科为大家收集了很多的c语言中正确是1还是0的糗事,各种关于c语言中正确是1还是0的爆笑经历、尴尬时刻和开心视频,想持续关注c语言中正确是1还是0的糗事就收藏本页吧.
扫码下载糗事百科app 上传我的文档
 下载
 收藏
粉丝量:251
本店资源来源于互联网,版权为原作者所有。若侵犯到您的版权, 请提出指正, 我们将立即删除。
 下载此文档
C语言教学课件
下载积分:600
内容提示:C语言教学课件
文档格式:PPT|
浏览次数:284|
上传日期: 08:06:15|
文档星级:
全文阅读已结束,如果下载本文需要使用
 600 积分
下载此文档
该用户还上传了这些文档
C语言教学课件
关注微信公众号C语言中0和1e-6的区别是什么,为什么有时候可以替换有时候却不可以?_百度知道
C语言中0和1e-6的区别是什么,为什么有时候可以替换有时候却不可以?
适用条件是什么?
**************************************************************8
#include&stdio.h&
#include&math.h&
void main()
double n,t,
t=1;pi=0;n=1.0;s=1;
while(fabs(t)&1e-6)//换为0就错!!!
我有更好的答案
  C语言中0和1e-6的区别很微小。  实数在计算和存储过程中会有一些微小的误差,对于一些与零作比较的语句来说,有时会因误差而导致原本是等于零但结果却小于零之类的情况发生,所以常用一个很小的数如1e-6代替0。
采纳率:91%
来自团队:
区别很微小。这涉及到实数在计算和存储过程中会有一些微小的误差,对于一些与零作比较的语句来说,有时会因误差而导致原本是等于零但结果却小于零之类的情况发生,所以常用一个很小的数如1e-6代替0。解决办法是多调试。
本回答被提问者和网友采纳
这不是很简单吗 1e-6 不等于 0 不能用0的原因是 计算误差!计算机里没有那么高的精确度
1e-6其实就是0.000001,和0的区别很明显,你上面的程序中改为0会死循环的。
其他1条回答
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。学海无涯,活到老学到老!!!!!!!!!!!!!!
所有的程序在《C与C++程序设计学习与实验系统 2010》中运行过:
例10.2 输入a和b两个整数,按先大后小的顺序输出a和b..c
#include "stdio.h"void main(){& int *p1,*p2,*p,a,b;& scanf("%d,%d",&a,&b);& p1=&a;& p2=&b;& & if(a&b)& {& &p=p1;& &p1=p2;& &p2=p;& }& printf("a=%d,b=%d\n\n",a,b);& printf("max=%d,min=%d\n",*p1,*p2);}
例10.1 通过指针变量访问整型变量.c
#include "stdio.h"void main(){& int a,b;& int *pointer_1,*pointer_2;& a=100;b=10;& pointer_1=&a;& /*把变量a的地址赋给pointer_1*/& pointer_2=&b;& printf("%d,%d\n",a,b);& printf("%d,%d\n",*pointer_1,*pointer_2);}
例10.3& 对输入的两个整数按大到小顺序输出.现在用函数处理,而且用指针类型的数据作函数参数.c
#include "stdio.h"void main(){& void swap(int *p1,int *p2);& int a,b;& int *pointer_1,*pointer_2;& scanf("%d,%d",&a,&b);& pointer_1=&a;& pointer_2=&b;& if(a&b)& swap(pointer_1,pointer_2);& printf("\n%d,%d\n",a,b);& }void swap(int*p1,int*p2){&& temp=*p1;& *p1=*p2;& *p2=}
函数调用的简单例子
#include "stdio.h"void main(){& & void printstar();&&&& /*& 对一排星状物函数进行声明.*/& void print_message(); /* 对一行信息函数进行声明.*/& printstar();&&&&&&&&& /* 调用printstar函数*/& print_message();&&&&& /* 调用 print_message函数.*/& printstar();&&&&&&&& /* 调用printstar函数 */}&void printstar() /* 定义printstar函数 */&&{&&printf("******************************\n");&}&void print_message()& /* 定义print_message 函数 */&{&&printf("& How do you do! \n");&}运行结果是:******************************&&&&&&& How do you do!******************************
输入的两个整数按小到大顺序输出.现在用函数处理,而且用指针类型的数据作函数参数.c
#include "stdio.h"void main(){& void swap(int * p1,int * p2);& int a,b;& int * pointer_1,* pointer_2;& scanf("%d,%d",&a,&b);& pointer_1=&a;& pointer_2=&b;& if(a&b)& swap(pointer_1,pointer_2);& printf("\n%d,%d\n",* pointer_1,* pointer_2);&& }void swap(int * p1,int * p2){&int *&p=p1;&p1=p2;&p2=p;}
例10.4 输入a,b,c这个整数按大到小的顺序输出.c
#include "stdio.h"void main(){& void exchange(int * q1,int * q2,int * q3);& int a,b,c,* p1,* p2,* p3; & scanf("%d,%d,%d",&a,&b,&c);& p1=&a;p2=&b;p3=&c;& exchange(p1,p2,p3);& printf("\n%d,%d,%d\n",a,b,c); }void exchange(int *q1,int * q2,int * q3){&void swap(int * pt1,int *pt2);&if(* q1& * q2) swap(q1,q2);&if(* q1& * q3) swap(q1,q3);&if(* q2& * q3) swap(q2,q3);}void swap(int * pt1,int * pt2){&&temp= * pt1;&* pt1= * pt2;&* pt2=}
有3个字符串,要求找出其中最大者.
有3个字符串,要求找出其中最大者。
&今设一个二维的字符数组str,大小为3*20,既有3行20列,每一行可以容纳20个字符。
&如前所述,可以把str[0],str[1],str[2]看作3个一维字符数组,它们各有20个元素。可以把它们如同一维数组那样进行处理。今用gets函数分别读入3个字符串。经过两次比较,就可以得到值最大者,把它放在一维字符数组string中。
程序如下:#include "stdio.h"void main(){& char string[20];& char str[3][20];/* 二维的字符数组str,大小为3*20,既有3行20列。*/&& for(i=0;i&3;i++)&&&& gets(str[i]);& if(strcmp(str[0],str[1])&0) /*& strcmp,比较;&& strcpy,复制&& */&&&& strcpy(string,str[0]);& else&&& strcpy(string,str[1]);& if(strcmp(str[2],string)&0)&&& strcpy(string,str[2]);&& printf("\n the largest string is: \n %s\n",string);& }
运行结果如下:CHINA&&& HOLLANDAMERICA&& (输入3句字符串,做比较大小。)&&&&& the largest string is:&&&&&&&&&&& HOLLAND
&&&&&&&&&&&&&&&&&&&&& 简单的C程序设计
1.理解C语言程序的顺序结构
2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。
例1:按格式要求输入/输出数据字符变量:用来存放字符常量,它只能放一个字符,不要以为在一个字符变量中可以放一个字符串(包括若干个字符).
#include "stdio.h"void main(){ int a,b;float x,y;/*定义x,y为单精度浮点数*/char c1,c2;/*定义c1,c2为字符变量*/scanf("%d,%d",&a,&b);/*输入两个整数分别给a和b:*/scanf("%f,%e",&x,&y);scanf(" %c,%c",&c1,&c2);/*注意头个%c要空一格*/printf("a=%d,b=%d,x=%f,y=%e,c1=%c,c2=%c\n",a,b,x,y,c1,c2);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }
运行本程序后: (注意:在scanf("%d,%d",&a,&b);中不能加a=%d,3,7L(输入)&&&&&&&& 否则得不到想要的结果.) 8.5,71.82L(输入)a,AL(输入)a=3,b=7,x=8.500000,y=7.1,c1=a,c2=A
&scanf(" %c,%c",&c1,&c2);/*注意头个%c要空一格*/& 注意头个%c要空一格,否则结果是"c1=,".这是因为在输入完第2行数据后按的回车键被作为一个字符送到内存输入缓冲区.因此第3个scanf函数读取第1个变量c1读入了回车符(实际上是回车符的ASCII码),第3行输入的第1个字符A被c2读取.所以在执行printf函数输出c1时,就输出一个回车符,输出c2时就输出字符A.在程序第3个scanf函数双引号内的第一个%c前面放了一个空格字符,这样第2行末尾输入的回车符就不会输入给c1,而是与该空格字符对应,第3行输入的第1个字符A就被c1读取.
这一句就错了,没有空一格:scanf("%c,%c",&c1,&c2);按这一句输入,输出就会变成两行:&& a=3,b=7,x=8.500000,y=7.1,c1=,c2=A
用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a.问在键盘上如何输入?
#include "stdio.h"void main(){&int a,b;&float x,y;&char c1,c2;&scanf("%d,%d",&a,&b);&scanf("%f,%e",&x,&y);&scanf(" %c,%c",&c1,&c2);&printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%&&&&&&&&&& c\n",a,b,x,y,c1,c2); /*这一句最后加上的,原本就没有.*/& }运行本程序后:3,78.5,71.82A,aa=3,b=7,x=8.500000,y=71.=A,c2=a
#include "stdio.h"void main(){ int a,b;
scanf("a=%d,b=%d",&a,&b);/*输入两个整数分别给a和b:*/&&&&&&&&&&&&&&&&&&&&&&& printf("a=%d,b=%d\n",a,b);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }运行本程序后:& 10,20L(输入)a=1245068, b=4211528
&如果改成:scanf("%d,%d",&a,&b);运行本程序后: 10,20L(输入)a=10,b=20
例2:输入三角形三边长,求三角形面积。
#include "stdio.h"#include "math.h"void main()
float a,b,c,s,
scanf("%f ,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f",area);&&& }运行本程序后:3.1,3.3,4.4(输入)area=5.107054
例3:已知圆半径,圆柱高,求圆周长,圆柱体积。
/*用#define宏定义P代表常量3.1415926.*/
/*'l'是小写字母,大写为L.*/
/*声明部分,定义r,h,l,v为单精度浮点数*/
/*输入两个单精度浮点数分别给r和h.*/l=2*P*r;/*l(小写字母)等于2乘以3.1415926乘以r(输入的小数)
v=P*r*r*h;/*v等于3.145926乘以r再乘以r再乘以h*/
/*%6.2f相当于%m.nf代表:m表示(一个正整数)数据最小宽度,(若
以0来代表m结果也一样.n表示(一个正整数)对实数,输出n(代表几
)位小数;对字符串,表示截取的字符个数.(例如:本程序用%6.2f表
示,结果是19.48;如果用%0.3f表示,结果是19.478.如果再加-%
0.3f来表示的话,结果也一样.)
#include "stdio.h"#define P 3.1415926void main() {&&&&&&&&&&& &float r,h,l,v;&printf("请输入两个单精度浮点数:\n");&scanf("%f,%f",&r,&h);&& l=2*P*r;&& v=P*r*r*h;&printf("圆周长为:%6.2f\n",l);&printf("圆柱体积为:%6.2f",v);
}(本程序运行后的结果如下:)请输入两个单精度符点数:3.1,3.3圆周长为:19.48圆柱体积为:99.63(本程序改成以下的内容,运行后的结果如下:)printf("圆周长为:%-10.5f\n",l);&&&&&&&&&&&&&&&&&& (%0.5f表示小数点后要有5位整数输出)printf("圆柱体积为:%-6.2f",v);请输入两个单精度符点数:3.1,3.3圆周长为:19.47787圆柱体积为:99.63
【例4】输入一个摄氏温度,要求输出华氏温度。公式为f=5/9*c+32.
#include "stdio.h"void main()
float c,f;
scanf("%f",&c);
f=5.0/9*c+32;/*f等于5.0除以9乘以20.1(假设)再加32*/
printf("%5.2f\n",f); /*如果改成:printf("%5.2f\n",c);*/&&&&&&&&&&&&&&&&&&&&& 运行本程序后:&& }&&&&&&&&&&&&&&&&&&&&&& 20.1(输入) 运行本程序后:&&&&&&&&&& 20.10(输出)&&&& 20.1(输入)43.17
1.已知圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
2.输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32).&#include "stdio.h"void main()&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&
float c,f;&&&&&&&&&&&&&&&&&&& f=33.3;
scanf("%f",&c);&&&&&&&&&&&&&&& b=5/9*(33.3-32);
c=5/9*(f-32);
printf("%5.2f\n",f);
}运行本程序后:20.1(输入)(不管输入任何数字,结果都一样)0.00(输出)
#include "stdio.h"void main()
int c,a;c=5;a=9;f=c/a;printf("%f\n",f);
}&&&&&&&& 运行本程序后:0.000000
&(2)要注意指针变量的当前值.看下面的例子& 例10.6 通过指针变量输出a数组的10个元素.c
#include "stdio.h"void main(){& int * p,i,a[10];& p=a;& for(i=0;i&10;i++)&&& scanf("%d",p++);& printf("\n");& for(i=0;i&10;i++,p++)& printf("%d\n",* p);& printf("\n");}
解决例10.6的办法是,只要在第二个for循环之前加一个赋值语句& p=a;.c
/* Note:Your choice is C IDE */#include "stdio.h"void main(){& int * p,i,a[10];& p=a;& for(i=0;i&10;i++)&&& scanf("%d",p++);& printf("\n");& p=a;& for(i=0;i&10;i++,p++)& printf("%d",* p);& printf("\n");& }
例10.6 通过指针变量输出a数组的10个元素.
(2)要注意指针变量的当前值.看下面的例子:例10.6 通过指针变量输出a数组的10个元素.有人写出以下程序:#include "stdio.h"void main(){& int * p,i,a[10];& p=a;& for(i=0;i&10;i++)&&& scanf("%d",p++);& printf("\n");& for(i=0;i&10;i++,p++)& printf("%d\n",* p);& printf("\n");}有的人即使已被告知此程序有问题,还是找不出它有什么问题.&(本程序在《C与C++程序设计学习与实验系统 2010》中)运行的情况如下:输入:1 2& 3 4 5 6 7 8 9 0输出:012450521245120419908114394672439451220971842097184
& (在不同的编译系统运行的结果可能与上面有所的不同)
&显然输出的结果并不是a数组中个元素的值。原因是指针变量的初值为a数组首元素(即a[0])的地址。但经过第一个for循环读入数据后,p已指向数组的末尾。因此,在执行第二个循环时,p的起始值不是&a[0]了,而是a+10.由于执行第二个for循环时,每次要执行p++,因此p指向的是a数组下面的10个元素,而这些存储单元中的值是不可预料的.
& 解决这个问题的办法是,只要在第二个for循环之前加一个赋值语句: p=a;
使p的初始值回到&a[0],这样结果就对了.程序如下:#include "stdio.h"void main(){& int * p,i,a[10];& p=a;& for(i=0;i&10;i++)&&& scanf("%d",p++);& printf("\n");& p=a;& for(i=0;i&10;i++,p++)& printf("%d",* p);& printf("\n");& }&(本程序在《C与C++程序设计学习与实验系统 2010》中)运行的情况如下:输入:1 2& 3 4 5 6 7 8 9 0输出:
&&(字节数: 12873) [原创
15:23:06]&&&&&&&&&&&&&&&&&&&&&&& 简单的C程序设计
1.理解C语言程序的顺序结构
2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。
例1:按格式要求输入/输出数据字符变量:用来存放字符常量,它只能放一个字符,不要以为在一个字符变量中可以放一个字符串(包括若
干个字符).
(所有程序在《C与C++程序设计学习与实验系统 2010》中)运行的情况如下:
#include "stdio.h"void main(){ int a,b;float x,y;/*定义x,y为单精度浮点数*/char c1,c2;/*定义c1,c2为字符变量*/scanf("%d,%d",&a,&b);/*输入两个整数分别给a和b:*/scanf("%f,%e",&x,&y);scanf(" %c,%c",&c1,&c2);/*注意头个%c要空一格*/printf("a=%d,b=%d,x=%f,y=%e,c1=%c,c2=%c\n",a,b,x,y,c1,c2);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }
运行本程序后: (注意:在scanf("%d,%d",&a,&b);中不能加a=%d,3,7L(输入)&&&&&&&& 否则得不到想要的结果.) 8.5,71.82L(输入)a,AL(输入)a=3,b=7,x=8.500000,y=7.1,c1=a,c2=A
&scanf(" %c,%c",&c1,&c2);/*注意头个%c要空一格*/& 注意头个%c要空一格,否则结果是"c1=,".这是因为在输入完第2行数据后按的回车键被作为一个字符送到
内存输入缓冲区.因此第3个scanf函数读取第1个变量c1读入了回车符(实际上是回车符的ASCII码),第3行
输入的第1个字符A被c2读取.所以在执行printf函数输出c1时,就输出一个回车符,输出c2时就输出字符A.
在程序第3个scanf函数双引号内的第一个%c前面放了一个空格字符,这样第2行末尾输入的回车符就不会
输入给c1,而是与该空格字符对应,第3行输入的第1个字符A就被c1读取.
这一句就错了,没有空一格:scanf("%c,%c",&c1,&c2);按这一句输入,输出就会变成两行:&&
a=3,b=7,x=8.500000,y=7.1,c1=,c2=A
用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a.问在键盘上如何输入?
#include "stdio.h"void main(){&int a,b;&float x,y;&char c1,c2;&scanf("%d,%d",&a,&b);&scanf("%f,%e",&x,&y);&scanf(" %c,%c",&c1,&c2);&printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%&&&&&&&&&& c\n",a,b,x,y,c1,c2); /*这一句最后加上的,
原本就没有.*/& }运行本程序后:3,78.5,71.82A,aa=3,b=7,x=8.500000,y=71.=A,c2=a
#include "stdio.h"void main(){ int a,b;
scanf("a=%d,b=%d",&a,&b);/*输入两个整数分别给a和b:*/&&&&&&&&&&&&&&&&&&&&&&& printf("a=%d,b=%d\n",a,b);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }运行本程序后:& 10,20L(输入)a=1245068, b=4211528
&如果改成:scanf("%d,%d",&a,&b);运行本程序后: 10,20L(输入)a=10,b=20
例2:输入三角形三边长,求三角形面积。
#include "stdio.h"#include "math.h"void main()
float a,b,c,s,
scanf("%f ,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f",area);&&& }运行本程序后:3.1,3.3,4.4(输入)area=5.107054
例3:已知圆半径,圆柱高,求圆周长,圆柱体积。
/*用#define宏定义P代表常量3.1415926.*/
/*'l'是小写字母,大写为L.*/
/*声明部分,定义r,h,l,v为单精度浮点数*/
/*输入两个单精度浮点数分别给r和h.*/l=2*P*r;/*l(小写字母)等于2乘以3.1415926乘以r(输入的小数)
v=P*r*r*h;/*v等于3.145926乘以r再乘以r再乘以h*/
/*%6.2f相当于%m.nf代表:m表示(一个正整数)数据最小宽度,(若
以0来代表m结果也一样.n表示(一个正整数)对实数,输出n(代表几
)位小数;对字符串,表示截取的字符个数.(例如:本程序用%6.2f表
示,结果是19.48;如果用%0.3f表示,结果是19.478.如果再加-%
0.3f来表示的话,结果也一样.)
#include "stdio.h"#define P 3.1415926void main() {&&&&&&&&&&& &float r,h,l,v;&printf("请输入两个单精度浮点数:\n");&scanf("%f,%f",&r,&h);&& l=2*P*r;&& v=P*r*r*h;&printf("圆周长为:%6.2f\n",l);&printf("圆柱体积为:%6.2f",v);
}(本程序运行后的结果如下:)请输入两个单精度符点数:3.1,3.3圆周长为:19.48圆柱体积为:99.63(本程序改成以下的内容,运行后的结果如下:)printf("圆周长为:%-10.5f\n",l);&&&&&&&&&&&&&&&&&& (%0.5f表示小数点后要有5位整数输出)printf("圆柱体积为:%-6.2f",v);请输入两个单精度符点数:3.1,3.3圆周长为:19.47787圆柱体积为:99.63
【例4】输入一个摄氏温度,要求输出华氏温度。公式为f=5/9*c+32.
#include "stdio.h"void main()
float c,f;
scanf("%f",&c);
f=5.0/9*c+32;/*f等于5.0除以9乘以20.1(假设)再加32*/
printf("%5.2f\n",f); /*如果改成:printf("%5.2f\n",c);*/&&&&&&&&&&&&&&&&&&&&& 运行本程序后:&& }&&&&&&&&&&&&&&&&&&&&&& 20.1(输入) 运行本程序后:&&&&&&&&&& 20.10(输出)&&&& 20.1(输入)43.17
1.已知圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
2.输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32).&#include "stdio.h"void main()&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&
float c,f;&&&&&&&&&&&&&&&&&&& f=33.3;
scanf("%f",&c);&&&&&&&&&&&&&&& b=5/9*(33.3-32);
c=5/9*(f-32);
printf("%5.2f\n",f);
}运行本程序后:20.1(输入)(不管输入任何数字,结果都一样)0.00(输出)
#include "stdio.h"void main()
int c,a;c=5;a=9;f=c/a;printf("%f\n",f);
}&&&&&&&& 运行本程序后:0.000000
求余:50%23:
#include&stdio.h&
void main()
&printf("%d",a);
#include "stdio.h"void main(){& int a=45,b=32,sum=0;//定义变量a,b,sum为基本整型.& sum=a+b;//45和32是整型常量,两数的和等于sum.& printf("sun=%d",sum); //输出的结果是整型常量.}结果是:77
1. 符号常量的使用:#define PRICE 20 //本行定义PRICE代表常量20,此后凡在本程序 #include&stdio.h&& 中出现的PRICE
都代表20,可以和常量一样进void main()&&&&&&& 行运算.&&& {&int num=25,//这是声明部分,定义两个基本整型数据.&total=num*PRICE;&printf("total=%d\n",total);}运行后的结果:500(即25乘以20的积)
2.符号常量的使用:#define PRICE 30& //定义常量30(30可以随意改变)为标识符#include "stdio.h"void main(){&int num,//这是声明部分,定义两个基本整型数据&num=10;//num等于10.&total=num*PRICE;//相当与10乘以30=300.(如果30改变后,PRICE&&&&&&&&&&&&&&&&&& 的值也随着改变;
乘号也可改变,但结果就不&&&&&&&&&&&&&&&&&&& 一样.)&printf("total=%d\n",total);//输出total的值.}运行后的结果:300
#include "stdio.h"#define AA printf//用宏代表输出格式.void main(){&AA("运行后的结果是:\n");&AA("你好!!!C 语言!!!\n");&AA("我是教真!!!");}运行后的结果是:你好!!!C 语言!!!我是教真!!!
#include "stdio.h"#define AA printfvoid main(){& AA("运行后的结果是:\n");& AA("& ********************\n");& AA("\n");& & AA("&&&& 许教真:\n");& AA("\n");& AA("& ********************\n");& AA("\n");& AA("&&&& 自学C程序设计;\n");& AA("\n");& AA("& ********************\n");& AA("\n");& AA("&&&& 自学3D MAX设计;\n");& AA("\n");& AA("& ********************\n");& AA("\n");& AA("&&&& 自学PhotShop图象处理软件.\n");& AA("\n");& AA("& ********************\n");& AA("\n");& AA("&&&& 创真科技:\n");& AA("\n");& AA("& ********************\n");& AA("\n");& AA("&&& 科技:创造真真的未来;实现理想!\n");& AA("\n");& AA("& ********************\n");& AA("\n");& AA("   丽真珠宝!!!\n");& AA("\n");& AA("& ********************\n");& AA("\n");&&AA("&&& 珠宝:美丽动人,展现富贵高雅!\n");& AA("\n");& AA("& ********************\n");& }
运行后的结果是:&& ********************&& &&&&&& 许教真:& && ********************& &&&&& 自学C程序设计;& && ********************& &&&&&& 自学3D MAX设计;& && ********************& &&&&& 自学PhotShop图象处理软件.& && ********************& &&&&&& 创真科技:
&& ********************& &&&&& 科技:创造真真的未来;实现理想!& && ********************& &    丽真珠宝!!!
&& ********************
&&&& 珠宝:美丽动人,展现富贵高雅!& && ********************
#include "stdio.h"#define AA printfvoid main(){& int z=10,a=456,sum=z+a;& AA("运行后的结果是:\n");& AA("sum is %d\n",sum);&& }运行后的结果是:sum is 466
第1.&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 第2.#include "stdio.h"&&&&&&&&&&&&&&&&&&&&&&&&& #include "stdio.h"&&&&&& #define P printf&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& #define P printf#define S scanf&&&&&&&&&&&&&&&&&&&&&&&&&&&&& #define S scanf void main()&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& void main()&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& {& int z,a=456,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& int z,a=456,&&& & P("请输入一个数字:\n");&&&&&&&&&&&&&&&&&&&&& sum=z+a;&& & S("%d",&z);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& P("请输入一个数字:\n");& sum=z+a;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& S("%d",&z);& P("运行后的结果是:\n");&&&&&&&&&&&&&&&&&&&& P("运行后的结果是:\n");& P("sum is %d\n",sum);&&&&&&&&&&&&&&&&&&&&& P("sum is %d\n",sum); }&&&&&&&&&&&&&&&&&&&&&&&&&& }&&& 请输入一个数字:100&&&&&&&&&&&&&&&& 请输入一个数字:100&&&&&& 运行后的结果是:556&&&&&&&&& 运
行后的结果是:1245524两条程序是相同的内容,但书写格式不相同,结果也不一样.第1的结果是正确的.
#include "stdio.h"void main(){&& &&&&& printf("%d",'a');}程序执行后的结果是:97.
#include "stdio.h"void main(){&int a,b,c,d;/*指定a,b,c,d为基本整型*/&/*指定u为无符号整型.*/&a=20;b=-30;u=15;&c=a+u;d=b+u;&printf("a+u=%d\n",c,d);&printf("b+u=%d\n",c,d);&& }a+u=35b+u=35
VC整型数据的溢出:#include"stdio.h"void main(){& int x,y;& x=32764;& y=x+5;& printf("x=%d,y=%d\n",x,y);}& x=32764,y=32769
#include "stdio.h"void main(){& int a,b;& a=32767;& b=a+1;& printf("%d,%d\n",a,b);& }
长整型数据:
#include "stdio.h"void main(){& long a,b;//定义a,b为长整型数据& a=32767;& b=a+100;& printf("%d,%d\n",a,b);& }
把字符串转换成长整型:#include &stdlib.h& #include &stdio.h&
int main(void) { & &char *str = "12345.67"; &n = atoi(str); & printf("string = %s integer = %d\n", str, n); & return 0; &} string = 12345.67&&&& integer = 12345
输出字符和整型数字:
#include "stdio.h"void main(){int c1,c2; //定义c1,c2为基本整型数据.&c1=97;// 97和98在ASCLL代码为小写字母a和b.&c2=98;&printf("%c %c\n",c1,c2);//%c表示输出字符,\n表示换行.&printf("%d %d\n",c1,c2);//%d表示输出整型数据.&}
无符号数据的输出:
#include "stdio.h" void main()&&&&&&&&&& {&& &unsigned int a=65535;&int b=-2;&&&&&&&&&&&& &printf("a=%d,%o,%x,%u\n",a,a,a,a); &printf("b=%d,%o,%x,%u\n",b,b,b,b); }&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& %d表示以十进制形式输出,a结果是65535.&&&&&&&&&&&&&&&&&&&&& %o表示以八进制整数形式输出,本程序a的结果为:177777.%x表示以十六进制数形式输出整数,a的结果为:ffff.%u表示用来输出unsigned(无符号)型数据,a的结果为:65535.
%d表示以十进制形式输出,b结果是-2.用%o格式来求b的值:.%x来求b的值:fffffffe.%u来求b的值:.
求z的值:#include "stdio.h"void main(){& int z=1;&& z=z+2;printf("z=%d",z);}z=3
3.9 求下面算术表达式的值:设 a=7,x=2.5,y=4.7#include "stdio.h"void main(){& int a=7;& float x=2.5,y=4.7;& x+a%3*(int)(x+y)%2/4;& printf("%f",x);}结果是:2.50000
解: x+a%3*(int)(x+y)%2/4&& =2.5+7%3*(int)(2.5+4.7)%2/4&& =2.5+1*7%2/4&& =2.5+1*1/4&& =2.5+0&& =2.5
求4个数:余,乘法,加法,余和除法:#include "stdio.h"void main(){& int a=7,x=3,y=2,c=4;& scanf("%d,%d",&a,&c);& printf("%d",a%x*(x+y)%y/c);& }结果是:0
#include "stdio.h"void main(){& int a=5;&& printf("输出的结果是:\n");&& printf("a\t a\n\101\t\x21\n");/*\t相当于Tab键(按一下等于3个字的空格);\101代表ASCII代码(八
进制数)为101的字符'A'.&&&& }& &&&输出的结果是:a& a/*中间有4个空格(而\t就相当于3个空格),原因就在于&&&&&&&&&&& (a\t a)\t到a之间有一个空格.*/A&&&&&& !
101在八进制数代表'A';在十进制数代表'65';
"□"表示两个空格.
例题2:#include "stdio.h"void main(){& printf("运行后的结果:\n");&& printf(" ab c\t de\rf\tg\n"); & printf("h\ti\b\bj k\n"); }运行后的结果:(这个结果不是按照自己的思路而得到的.)f□□□□gde 等于:printf(" ab c\t de\rf\tg\n");h□□□j□k 等于:printf("h\ti\b\bj k\n");
#include "stdio.h"void main(){& printf("运行后的结果:\n");&& printf(" ab c\t \g\de\rf\n"); & printf("h\ti\b\bj k\n"); }运行后的结果:(这个结果不是按照自己的思路而得到的.)fab□c□□gde 等于: printf(" ab c\t \g\de\rf\n");h□□□□j□k 等于: printf("h\ti\b\bj k\n");
例题4:#include "stdio.h"void main(){& printf("运行后的结果:\n");&& printf(" ab c\t \g\de\rf\n"); & printf("h\ti\b\j\i\k\n"); }运行后的结果:fab□c□□gdeh□□□□jik
#include "stdio.h"void main(){& int a,b;&& scanf("%d,%d",&a,&b);& f=a/b;& printf("%0.3f",f);&& }结果是: (输入)5,3 (输出)1.000&&&&&&& (输入)-5,3 (输出)1.000&&&
例题:&&&&&&&&&&&&&&&&&&&&&&&&& #include "stdio.h"&&&&&&&&&&&&&&&& (结合方向)void main()&&&&&&&&&&&&&&&&&&& a*b/c-1.5+'a'(自左至右){&&&&&&&&&&&&&&&&&&&&&&&&&&&& =b*2/3-1.5+97 & int a=6,b=2,c=3;&&&&&&&&&&& =4-1.5+97& &&&&&&&&&&&&&&&&&&&& =99.5& char d='a';& f=a*b/c-1.5+d;& printf("%0.3f",f); /* "%0.3f"表示求小数点后的3个数字 */}运行的结果:99.500
#include "stdio.h"void main(){&/* x为单精度型 */&& /* i为基本整型 */& x=6.3; & i=(int)x; /* 先运算(int)x,即小数6.3转换成整数6,i=6.*/& printf("x=%0.3f,i=%d",x,i);& }运行结果:x=6.300,i=6
#include "stdio.h"void main(){& int i=3,a=i++,b=i++,c=i++,d=a+b+c;& printf("%d",d); }
例题2:#include "stdio.h"void main(){& int i=3,a,b,c,d;& a=i++;& b=i++;& c=i++;& d=a+b+c;& printf("%d",d);&& }两条程序的结果是:12
#include "stdio.h"void main(){&& int i=3,j;&& j=i++;&& printf("%d,%d",j,i); }结果:3,4&&
例题2:#include "stdio.h"void main(){&& int i=3,j;&& j=i++;&& printf("%d,%d",i,j++); }结果:4,3
例题3:#include "stdio.h"void main(){&& int i=3,j;&& j=i++;&& printf("%d,%d",j,i++); }结果:3,4
#include "stdio.h"void main(){& int a=3;& printf("运行后的结果:");& printf("%d",--a);& }运行后的结果:2 (在执行a=a-1后的结果就是求--a的值)
#include "stdio.h"void main(){& int a=3;& printf("运行后的结果:");& printf("%d",a--);& }运行后的结果:3
#include "stdio.h"&&&&&&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&&&&&&& void main(){&&&&&&&&&&&&&&&&&&&&&&&&&&&& {& int a=3,j=a--;&&&&&&&&&&&&&&& int a=3,j=a--; & printf("运行后的结果:");&&&&& printf("运行后的结果:");& printf("%d %d",a,j);&&&&&&&&& printf("j=%d,a=%d",j,a); }&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }运行后的结果:2 3&&&&&&&&&&&&&& 运行后的结果:j=3,a=2
#include "stdio.h"void main(){& int a=3,j=a--;& printf("运行后的结果:");& printf("j=%d,a=%d");& //这里没有指定要输出的变量.}&&&&&&&&&&&&&&&&&&&&&&&&& 运行后的结果也就不一样.运行后的结果:j=2097184,a=2097184
#include "stdio.h"void main(){& int a=3,j=--a;& printf("运行后的结果:");& printf("j=%d,a=%d",j,a); //这里的j和a是指定要输出的变&&&&&&&&&&&&&&&&&&&&&&&&&&&& 量. }运行后的结果:j=2,a=2
带负号运行的程序:#include "stdio.h"void main(){& int a=3;& printf("运行后的结果:");& printf("a=%d",-a--);& }运行后的结果:-3#include "stdio.h"void main(){& int a=3;& printf("运行后的结果:");& printf("a=%d",-(--a));& }运行后的结果:-2
#include "stdio.h"void main(){& int i,a,b,c,d;& i=3;& a=i--;& b=i--;& c=i--;& d=a-b-c;& printf("结果是:");& printf("%d",d);&&& }结果是:0
#include "stdio.h"&&&&& 例2. #include "stdio.h"void main()&&&&&&&&&&&&&&&&& void main()& {&&&&&&&&&&&&&&&&&&&&&&&&&& {& & int i,a,b,d,c;&&&&&&&&&&&&& int i,a;& i=3;&&&&&&&&&&&&&&&&&&&&&&& i=3; & a=i--;&&&&&&&&&&&&&&&&&&&&& a=i--;& b=i--;&&&&&&&&&&&&&&&&&&&&& printf("结果是:");& d=i--;&&&&&&&&&&&&&&&&&&&&& printf("i=%d a=%d ",i,a); & c=a+b+d;&&&&&&&&&&&&&&&&& }& & printf("结果是:");&&&&&&&&&& 结果是:i=2& a=3&&& &printf("a=%d b=%d d=%d c=%d",a,b,d,c);&&& }结果是:a=3 b=2 d=1 c=6[如果a=3,i=a--;先将a的值3赋给i,i的值为3,然后a变为2(如例2)]
#include "stdio.h"void main(){& int i,a,b,c,d;& i=3;& a=i--;//3-1=2 [如果a=3,i=a--;先将a的值3赋给i,i的值为3,& b=i--;//2-1=1& 然后a变为2(如例2)即i连续减三次1得0.]& c=i--;//1-1=0& d=a-b-c;& printf("结果是:");& printf("i=%d a=%d b=%d c=%d d=%d",i,a,b,c,d);&&& }结果是:i=0& a=3 b=2 c=1 d=0
& [两者运行后的结果有所不同,主要在于换行符号(\n).]
#include "stdio.h"&&&&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&&&&&&&&& void main(){&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& { & int i=3,j;&&&&&&&&&&&&&&&&&&&&&&&&&&& int i=3,j=++i;& printf("结果是:\n");&&&&&&& printf("结果是:");& printf("%d",++i);&&&&&&&&&&&&&& printf("%d",j); }&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }结果是:&&&&&&&&&&&&&&&&&&&&& 结果是:4&&&&&&&&& 4&&&&&&&&&&&&&&&&&&&&&&&&&&&
#include "stdio.h"&&&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&&&& void main(){&&&&&&&&&&&&&&&&&&&&&&&&& { & int i=3;&&&&&&&&&&&&&&&&&& int i=3;& printf("结果是:");&&&&&&&& printf("结果是:");& printf("%d",++i);&&&&&&&&& printf("%d",i++);& }&&&&&&&&&&&&&&&&&&&&&&&&&& }结果是:4&&&&&&&&&&&&&&&&&& 结果是:3&& #include "stdio.h"&&&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&&&& void main(){&&&&&&&&&&&&&&&&&&&&&&&&& {& int i=3;&&&&&&&&&&&&&&&&&& int i=3;& printf("结果是:");&&&&&&&& printf("结果是:");&& & printf("%d",-(++i));&&&&&& printf("%d %d",i,i++);}&&&&&&&&&&&&&&&&&&&&&&&&&& }结果是:-4&&&&&&&&&&&&&&&&& 结果是:3 3& 3、&&&&&& 两者的区别就在于++i和i++.&& #include "stdio.h"&&&&&&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&&&&&&& void main(){&&&&&&&&&&&&&&&&&&&&&&&&&&&& {& int i=3,j;&&&&&&&&&&&&&&&&&&& int i=3,j; & printf("结果是:");&&&&&&&&&&& printf("结果是:");& & printf("%d",++i);&&&&&&&&&&&& printf("%d",i++); }&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }结果是:4&&&&&&&&&&&&&&&&&&&&& 结果是:3
4、#include "stdio.h"void main(){& int i=3,j=i++; // 先将i的值3赋给j,j的值为3,然后i变为4.& printf("结果是:");& printf("%d %d",j,i);& }结果是:3 4
5、&&& 两者的区别就在于j=i++和j=++i.
#include "stdio.h"&&&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&&&& void main() {&&&&&&&&&&&&&&&&&&&&&&&&& {& & int i=3,j;&&&&&&&&&&&&&&&& int i=3,j;& printf("结果是:");&&&&&&&& printf("结果是:");& printf("%d ",j=i++);&&&&&& printf("%d ",j=++i); }&&&&&&&&&&&&&&&&&&&&&&&&&& }结果是:3&&&&&&&&&&&&&&&&&&& 结果是:4
6、&&&&&&& 两者的区别就在于j=i++和j=++i.
#include "stdio.h"&&&&&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&&&&&& void main()&& {&&&&&&&&&&&&&&&&&&&&&&&&&&& {& int i=3,j=i++;&&&&&&&&&&&&&& int i=3,j=++i;&& & printf("结果是:");&&&&&&&&&& printf("结果是:"); & printf("%d ",j);&&&&&&&&&&&& printf("%d ",j);}&&&&&&&&&&&&&&&&&&&&&&&&&&&& }结果是:3&&&&&&&&&&&&&&&&&&&& 结果是:4&&&&&
7、& 带负号的程序:#include "stdio.h"&&&&&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&&&&&& void main(){&&&&&&&&&&&&&&&&&&&&&&&&&&& {& int i=3;&&&&&&&&&&&&&&&&&&&& int i=3; & printf("结果是:");&&&&&&&&&& printf("结果是:");& & printf("%d",-i++);&&&&&&&&&& printf("%d",-(i++)); }&&&&&&&&&&&&&&&&&&&&&&&&&&& }& 结果是:-3&&&&&&&&&&&&&&&&&&& 结果是:-3
#include "stdio.h"&&&&&&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&&&&&&& void main(){&&&&&&&&&&&&&&&&&&&&&&&&&&&& {& int i=3,a=i++;&&&&&&&&&&&&&&& int i=3; & printf("结果是:");&&&&&&&&&&& printf("结果是:");& printf("%d %d",-i++,a);&&&&&& printf("%d %d",i,++i);&&& }&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }结果是:-4 3&&&&&&&&&&&&&&&&&& 结果是:4 4&&&
#include "stdio.h"void main(){& int i=3,a=i++;& printf("结果是:");& printf("%d %d",-i++,i++);& }结果是:-4 4
#include "stdio.h"void main(){& int i=3,a=i++,b=i++,c=i++,d=a+b+c;& printf("结果是:");& printf("d=%d",d);& }结果是:d=12#include "stdio.h"void main(){& int i,a,b,c,d;& i=3;& a=i++;& b=i++;& c=i++;& d=a+b+c;& printf("结果是:");& printf("%d",d);&&& }结果是:12
#include "stdio.h"void main(){& int i=3,a=i++,b=i++,c=i++,d=a+b+c;& printf("结果是:");& printf("%d",-++i);& }结果是:-7
#include "stdio.h"void main(){& int i=3,a=i++,b=i++,c=i++,d=a+b+c;& printf("结果是:");& printf("%d",++i);& }结果是:7
#include "stdio.h"void main(){& int i=3,a=i++,b=i++,c=i++,d=a+b+c;& printf("结果是:");& printf("%d",-i++);& }
结果是:-6#include "stdio.h"void main(){& int i=3,a=i++,b=i++,c=i++,d=a+b+c;& printf("结果是:");& printf("%d",i++);& }结果是:6
#include "stdio.h"void main(){& int i=3,d=(i++)+(i++)+(i++);& printf("结果是:");& printf("%d",d);& }结果是:9(在Turbo C运行后的结果) 12(在Turbo C++3.0运行后的&&&&&& 结果) 9(在Visual C++6.0运行
#include "stdio.h"void main(){& int i=3,d=(++i)+(++i)+(++i);& printf("结果是:");& printf("%d",d);& }结果是:16(在Visual C++6.0运行后的结果)
#include "stdio.h"void main(){& int i=3,a=i++,b=i++,c=i++,d=a+b+c;& printf("结果是:");& printf("%d %d",i,i++);& }结果是:6 6
#include "stdio.h"void main(){& int i=3,a=i++,b=i++,c=i++,d=a+b+c;& printf("结果是:");& printf("%d %d",d,i++);& }结果是:12 6
#include "stdio.h"void main(){& int i,a,b,c,d;& i=3;& a=i++;& b=i++;& c=i++;& d=a+b+c;& printf("结果是:");& printf("i=%d a=%d b=%d c=%d d=%d",i,a,b,c,d);&&& }结果是:i=6 a=3 b=4 c=5 d=12
#include "stdio.h"&&&&&& #include "stdio.h"void main()&&&&&&&&&&&&& void main(){&&&&&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& int i,a;& i=3;&&&&&&&&&&&&&&&&&&&& i=3;& i=(i++)+(i++)+(i++);&&&& a=(i++)+(i++)+(i++);&& & printf("结果是:");&&&&&& printf("结果是:");& printf("i=%d",i);&&&&&&& printf("i=%d a=%d",i,a);& }&&&&&&&&&&&&&&&&&&&&&&&& }结果是:i=12&&&&&&&&&&&&&& 结果是:i=6 a=9i=(i++)+(i++)+(i++);表示i=3+4+5=12.a=(i++)+(i++)+(i++);表示a=3+3+3=9.&i=6等于(i++)+(i++)+(i++)即3+1+1+1=6,连续加三次1.
#include "stdio.h"void main(){& int i,j,m,n;& i=8;& j=10;& m=++i;& n=j++;& printf("%d,%d,%d,%d",i,j,m,n);& }结果是:9,11,9,10
#include "stdio.h"void main(){& float c,f;& c=e5;/*e5=*(10个5相乘).&&&&&&&&&&&&&&&&&&&& */& f=c+20;& e5=&&&&&& & printf("%f\n",f);
}本程序运行后:.000000(在Turbo C 2.0)&&&&&&&&&&&& .000000(在Visual C++6.0)
例题2.#include "stdio.h"void main()
int c,a;float f,b;c=1;a=3;f=3.0;b=c/a*f;/*printf("%f\n",b);
}本程序运行后:0.000000如果改成: b=c/f*a;& 结果是:1.000000
#include "stdio.h"void main(){ & int z,b,a;& z=b=a=5;& printf("%d,%d,%d",z,b,a ); }5,5,5
(3)将一个double(双精度)型数据赋给float(单精度)变量时,截取其前面7位有效数字,存放到float变量的存储单元(4个字节)中.但应注意数值范围不能溢出.例如:&&&&&&&&&&&&&&& #include "stdio.h"&&&&&&&&&&&&&&& void main()&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& double d=123.;&&&&&&&&&&&&&&&&& f=d;&&&&&&&&&&&&&&&&& printf("%f",f);& &&&&&&&&&&&&&&&& }运行后的结
000.000000
就出现溢出的错误.
&& #include "stdio.h"&&&&&&&&&&&&& void main()&&&&&&&&&&&&& {&&&&&&&&&&&&&&&& int i=289;&&&&&&&&&&&&&&&& char c='a';&&&&&&&&&&&&&&&& c=i;&&&&&&&&&&&&&&&& printf("%d",c);/* 如果将"%d"改成"%c",结果是:! */&&&&&&&&&&&&&& }&结果是:33&&如果将"%d"改成"%c",结果是:"!"(其ASCII码为33).
&反之,若将一个long型数据赋给一个int型变量,只将long型数据中低16位原封不动的送到整型变量(即截断).例如:#include "stdio.h"&&&&&&&& void main(){&& long b=8;& a=b;& printf("%d",a);& }结果是:8&如果b=65536(八进制数0200000),则赋值后a值为0,见图3-14.(书中第61页)如果b=(八进制数),赋值后a值也为0.
#include "stdio.h"void main(){& unsigned int a=65535;&& b=a;& printf("%d",b);/* 在Turbo C++中的结果是-1.*/& }结果是:65535 (Visual c++)&&&&&&&& (如果将"b"改成"a"结果也是-1.)
将a整个送到b中(图3-15),由于b是int型,第1位是符号位,因此b成了负数 .根据补码知识可知,b的值为-1,可以用 printf("%d",b); 来验证.
例题3.9 有符号数据传送给无符号变量.#include "stdio.h"void main(){&&&& int a=-1;&& i=a;&& printf("%u",i); /* 将"i"改成"a",结果也一样.*/}(在Turbo C++)结果是:65535 (在Visual c++)结果是:& & 以上的赋值规则看起来比较复杂,其实,不同类型的整型数据间的赋值归根到底就是一条:按存储单元中的存储形式直接传送.只要学过补码知识的,对以上规则是不难理解.由于C语言使用灵活,在不同类型数据之间赋值时,常常会出现意想不到的结果,而编译系统并不提示出错,全靠程序员的经验来找出问题.这就要求编程人员对出现问题的原因有所了解,以便迅速排除故障.
3.复合的赋值运算符
在赋值符"="之前加上其他运算符,可以构成复合的运算符.如果在"="前加一个"+"运算符就成了复合运算符"+=".例如:&&& i+=1 等于 i=i+1&&&&&&&&&&&&& a+=3 等于 a=a+3&& x*=b+2& 等于 x=x*(b+2)&&&&&& c%=2& 等于 c=c%2
程序如下:&&&&&&&&&&&&&&&&&&&&&&& #include "stdio.h"#include "stdio.h"&&&&&&&&&&&&&& void main()&&&&&&&&&&&& void main()&&&&&&&&&&&&&&&&&&&&& {{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& int x=2,b=3;/*如果没赋值.*/& int i=1; /*如果没赋值.*/&&&&&&&& x*=b+2; & i+=3;&&&&&&&&&&&&&&&&&&&&&&&&&&& printf("%d",x); & printf("%d",i);&&&&&&&&&&&&&&&& }}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 结果是:10结果是:4&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&& 1245071&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& #include "stdio.h"例题:求余:7%4=3&&&&&&&&&&&&&&&&& void main()#include "stdio.h"&&&&&&&&&&&&&& {void main()&&&&&&&&&&&&&&&&&&&&&&& int c,a;{&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& printf("请输入两个数字(7,4):");&int c=7;&&&&&&&&&&&&&&&&&&&&&&&&& scanf("%d,%d",&c,&a);&c%=4;&&&&&&&&&&&&&&&&&&&&&&&&&&&& c%=a; &printf("%d",c);&&&&&&&&&&&&&&&&&& printf("%d",c);}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }结果是:3&&&&&&&&&&&&&&&&&&&&&&& 结果是:(输入)7,4 (输出)3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (输入)9,6 (输出)3
以"i+=1"为例来说明:它相当于使i进行一次自加的操作.即先使i加1,再赋给
i.同样,x*=b+2的作用是使x乘以(b+2),再赋给x.
将"China"译成密码.密码规律:用原来的字母后面第4个字母代替
原来的字母.例如,字母"A"后面第4个字母是"E",用"E"代替"A".因
此,"China"应译为"Glmre".编一程序:用赋初值的方法使
c1,c2,c3,c4,c5这5个变量的值分别为C,h,i,n,a.经过运算,使
c1,c2,c3,c4,c5分别变为G,l,m,r,e.并输出.(如以下程序)
#include "stdio.h"void main(){& char c1='C',c2='h',c3='i',c4='n',c5='a';& c1+=4; /* c1=c1+4等于 & c2+=4;& c3+=4;& c4+=4;& c5+=4;& printf("%c,%c,%c,%c,%c\n",c1,c2,c3,c4,c5);& }程序运行后的结果是:G,l,m,r,e
#include "stdio.h"void main(){& char c1='C',c2='h',c3='i',c4='n',c5='a';& c1+=4; /* 将"c1+=4;"改成"c1='C';" 等于67.*/& c2+=4;& c3+=4;& c4+=4;& c5+=4;& printf("%d,%d,%d,%d,%d\n",c1,c2,c3,c4,c5);&& }运行后的结果是:71,108,109,114,101
#include "stdio.h"void main(){& int a=3,b,c;& b=a; /* b是左值 */& c=b; /* b也是右值 */& printf("%d,%d",b,c);& }结果是:3,3
#include "stdio.h"void main(){& int a,b,c;& a=b=c=5;& printf("%d,%d,%d",a,b,c); }运行后的结果:a,b,c值均为5
#include "stdio.h"void main(){& int a,c;& a=5+(c=6);& printf("%d,%d",a,c);& }运行后的结果:a值为11,c值为6
#include "stdio.h"void main(){& int a,b,c;&& a=(b=4)+(c=6);& printf("%d,%d,%d",a,b,c);& }运行后的结果:a值为10,b值为4,c值为6
#include "stdio.h"void main(){& int a,b,c;&& a=(b=10)/(c=2);& & printf("%d,%d,%d",a,b,c);}运行后的结果:a值为5,b值为10,c值为2
&请分析下面的赋值表达式:&&&& (a=3*5)=4*3 (不能运行)& 改成以下例题:& #include "stdio.h"void main(){& int a=3*5,b=4*3;& a=b;& printf("%d",a);& }运行后的结果:12
#include "stdio.h"void main(){&& a=3*5;& a=4*3;& printf("%d",a);& }运行后的结果:12
#include "stdio.h"void main(){& int a=12;& a+=a-=a*a;& printf("%d",a); }运行后的结果:-264
#include "stdio.h"void main(){&&i=(100 * (1+100))/2;&printf("%d",i);}5050
注意:在scanf(" %d,%d",&b,&i);中不能用:scanf(" %f,%d",&f,&i);这是错误的.同一句语句中不能用%d
和 %f来求两个变量的值.1.本程序运行后的结果是错误的:#include "stdio.h"void main(){& int b,i;& float f,e;& double d,s;/*没有给以赋初值*/& char c='a';& scanf(" %d,%d",&b,&i);& scanf(" %f,%f",&f,&e);& scanf(" %f",&d);& s=b+c+i*f-d/e;& printf("s=%0.2f",s);}本程序运行后的结果:10,30 (输入)30.2,20.0,2.0& (输入)s=1013.00本程序只运算到s=b+c+i*f(s=10+97+30*30.2)这一部分,而减d/e的商就没有运算了.怪了,怪了,怪了,怪
2.#include "stdio.h" (本程序只有给d赋初值,运行后的结果才正void main()&&&&&&&&& 确:如例题1,5,6这三条题所示.){& int b,i;&& double d=20,s;/*给d赋初值就得到了结果.*/& char c='a';/*'a'在ASCII代码表中代表97.*/& scanf(" %d,%d",&b,&i);& scanf(" %f",&f);& s=b+c+i*f-d; /* 10+97+20*20.1-20 */& printf("s=%0.2f",s);}本程序运行后的结果:10,20 (输入)20.1& (输入)s=489.00
3.#include "stdio.h"void main(){& int b,i;& float f,e;& double d=20.0,s;& char c='a';& scanf(" %d,%d",&b,&i);& scanf(" %f,%f",&f,&e);& s=b+c+i*f-d/e;& printf("s=%0.2f",s);}本程序运行后的结果:10,20 (输入)20.0,2.0& (输入)s=497.00
4.#include "stdio.h"void main(){& int b,i;& float f,e;& double d=20.0,s;& char c='a';& scanf(" %d,%d",&b,&i);& scanf(" %f,%f,%f",&f,&e,&d); & s=b+c+i*f-d/e;&&&&&&&&&& /*10+97+906-10*/& printf("s=%0.2f",s);}本程序运行后的结果:10,30 (输入)30.2,2.0& (输入)s=1003.00
5.本程序运行后的结果是错误的:#include "stdio.h"void main(){& int b=10,i;/*给b赋初值,结果也没运算减d/e的商.*/& float f,e;& double d,s;& char c='a';& scanf(" %d",&i);& scanf(" %f,%f,%f",&f,&e,&d);& s=b+c+i*f-d/e;& printf("s=%0.2f",s);}
6.本程序运行后的结果是错误的:#include "stdio.h"void main(){& int b,i;& float f,e=2.0;/*给e赋初值,结果也没运算减d/e的商.*/& double d,s;& char c='a';& scanf(" %d,%d",&b,&i);& scanf(" %f,%f",&f,&d); & s=b+c+i*f-d/e;& printf("s=%0.2f",s);}
7.#include "stdio.h"void main(){& int b=10,i;& float f,e;& double d=20.0,s;& char c='a';& scanf(" i=%d",&i);/*注意:本语句要求输入"i="的形式*/& scanf(" f=%f,e=%f",&f,&e);& s=b+c+i*f-d/e;& printf("s=%0.2f",s);& }
本程序运行后的结果:i=30 /*注意:按要求输入i=的数字.否则就出错.*/f=30.2,e=2.0s=1003.00
已知a=3,求逗号表达式z=(a=a+3,3*4,a=4*a,a+6)的值计算过程:a=a+3等于 a=63*4&& 对计算逗号表达式的值没有意义,因为其中没有aa=4*a等于a=4*6&& 等于& a=24a+6等于24+6=30所以z=30
程序如下:
#include "stdio.h"void main(){&int a=3,z;&z=(a=a+3,3*4,a=4*a,a+6);&printf("z=%d",z);&& }z=30
① a=(b=3,6*3):#include "stdio.h"void main(){& int a,b;& printf("%d",a=(b=3,6*3));& }结果是:18② a=b=3,6*3#include "stdio.h"void main(){& int a,b;& printf("%d",a=b=3,6*3);& }结果是:3
#include "stdio.h"void main(){& int a=1,b=2,c=3;& printf("%d,%d,%d",(a,b,c),b,c); }结果是:3,2,3
#include "stdio.h"void main(){& int a=1,b=2,c=3;& printf("%d",(a,b,c)); }结果是:3
#include "stdio.h"void main(){&& a=3*5,a*4;& printf("%d",a=3*5,a*4);& }结果是:15 /在C/C++程序设计学习与实验系统中运行后的结果./
#include "stdio.h"void main(){&& a=3*5,a*4;& printf("%d",a);}结果是:15 /在C/C++程序设计学习与实验系统中运行后的结果./
#include "stdio.h"void main(){&& a=3*5,a=a*4;& printf("%d",a);}结果是:60/在C/C++程序设计学习与实验系统中运行后的结果./
#include "stdio.h"void main(){&& printf("%d",(a=3*5,a*4),a+5);& }结果是:60/在C/C++程序设计学习与实验系统中运行后的结果./
#include "stdio.h"void main(){& int a=1,b=2,c=3;& printf("%d",(a,b,c)); }3
#include "stdio.h"void main(){& int a,b,c;& scanf("%d,%d,%d",&a,&b,&c);& printf("%d",(a,b,c));& }输入:1,2,3& 输出:3
①%md :m为指定的输出字段的宽度.如果数据的为数小于m,则左端补以空格,若大于m,则按实际位数输出.
例如:printf("a=%4d,b=%4d,c=%4d\n",a,b,c);(程序如下)
#include&stdio.h&void main(){&& &int a=123,b=12345,c=578;&&&&&&&&&&&&&&&&&&&&& &printf("a=%4d,b=%4d,c=%4d\n",a,b,c); /*& */}运行后的结果:a= 123,b=12345,c= 578(a= 123:a的值只有3位数,但要求以4位数输出,所以a的值共好4位,一位以空格补上.如b=12345,超过要求
以4位数输出,所以不用补上空格)
②%ld(l是小写字母,大写是L):表示输出长整型数据.例如:&long a=135790,b;&&&& /* 定义a为长整型变量 */&printf("%ld",a);& (程序如下)#include "stdio.h"void main(){&& long a=135790,b=300000;&&&& /* 定义a为长整型变量 */&printf("%ld",a+b);& }结果是:435790
&如果用"%d"输出,就会发生错误,因为整型数据的范围为-3.对(long)长整型数据应当用"%
ld"格式输出.对(long)长整型数据也可以指定字段宽度,如将上面中的"%ld"改为"%8ld"则输出为:
435790 (在前面补两个空格共好8位数).
&一个基本整型数据可以用"%d"或"%ld"格式输出.(程序如下)& #include "stdio.h"void main(){&int a=135790,b=300000;&&&& /* 定义a和b为基本整型变量 */&printf("%8ld",a+b);& }结果是: 435790 (在前面补两个空格共好8位数).
(2)%o(小写字母o)表示以八进制整数形式输出.由于是将内存中的各位的值(0或1)按八进制形式输出,因
此输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出.例如:#include "stdio.h"void main(){&int a=-1;&&&& /* 定义a为基本整型变量 */&printf("%d,%o",a,a);& }-1, (在Visual C++系统中运行的结果)(-1,177777& 在Turbo C系统中运行的结果)
&-1在内存单元中的存放形式(以补码形式存放)如下:&&&&& __________________&&&& | 1 | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |&&&&  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄&& 不会输出带负号的八进制整数.对长整数(long型)可以用"%lo"格式输出.同样可以指定字段宽度,例如:#include "stdio.h"void main(){&int a=-1;&&&& /* 定义a为基本整型变量 */&printf("a=%12o",a);& }a= (数字前有1个空格)
(3)%x 表示:以十六进制数形式输出整数,同样不会出现负的十六进制数.例如: (程序如下)
#include "stdio.h"void main(){&int a=-1;&&&& /* 定义a为基本整型变量 */&printf("a=%o,a=%x",a,a);& }a=(11位),a=ffffffff(8位)a=-1&&&&&&&&&&& (在Visual C++系统中运行的结果)&&&&&&&&&&&&&&
&( a=177777,a=ffff,a=-1 在Turbo C系统中运行的结果)
&同样可以用"%lx"输出长整型数,也可以指定输出字段的宽度,如"%12x".(程序如下)#include "stdio.h"void main(){& int a=-1;&&&& /* 定义a为基本整型变量 */&printf("a=%o,a=%12x",a,a);& }
a=177777,a=&&&&&&& ffff(12位)在Turbo C系统中运行的结果
a=(11位),a=&&& ffffffff(12位)(在前面补上4个空格)&& (在Visual C++系统中运行的结果
)&&&&&&&&&& (4)%u 表示:用来输出unsigned(无符号)型数据,即无符号数,以十进制整数形式输出.一个signed(有符号
)整数(int)型也可以用"%u"格式输出;反之,一个unsigned型数据也可以用"%d"格式输出.按相互赋值的规
则处理(见第3章3.9节).unsigned型数据也可以用%o或%x格式输出.例题4.3 无符号数据的输出.#include "stdio.h"void main(){& unsigned int a=65535;& int b=-2;& printf("a=%d,%o,%x,%u\n",a,a,a,a);& printf("b=%d,%o,%x,%u\n",b,b,b,b);& }a=,ffff,65535b=-2,,fffffffe,&&&&&& (在Visual C++系统中运行的结果)
{ a=-1,177777,ffff,65535 在Turbo C系统中运行的结果&b=-2,177776,fffe,65534&& }
(5)%c 表示用来输出一个字符.例如: (程序如下)#include "stdio.h"void main(){& char c='a';& & printf("%c",c);}结果是:a &输出字符'a'.注意:"%c"中的c是格式符,逗号右边的c是变量名,不要搞混了.一个整数只要它的值在0至
255范围内,也可以用"%c"使之按字符形式输出.在输出前,系统会将改整数作为ASCII码转换成相应的字符
.反之,一个字符数据也可以用整数形式输出.例题4.4 字符数据的输出:#include "stdio.h"void main(){& char c='a';& & int i=97;& printf("%c,%d\n",c,c);& & printf("%c,%d\n",i,i); }a,97a,97
也可以指定输出字数宽度,比如:printf("%4c",c);#include "stdio.h"void main(){& char c='a';& & printf("c=%4c",c);& }c=& a (即a变量输出占4列,在前面补3个空格).&(6)%s表示用来输出一个字符串.有几种用法:& ① printf("%s","CHINA");输出字符串CHINA(不包括双引号).#include "stdio.h"void main(){& printf("c=%s","CHINA");& }c=CHINA (不包括双引号)& &②%ms表示输出的字符串占m列,如字符串本身长度大于m,则突破m的限制,将字符串全部输出.若串长小于
m,则左边补空格.#include "stdio.h"void main(){& printf("c=%6s","CHINA");&& }c= CHINA (在左边补1个空格)
#include "stdio.h"void main(){& printf("c=%3s","CHINA");&& }c=CHINA (则突破3的限制,将字符串全部输出.)
&③%-ms 表示:如果串长小于m,则在m列范围内,字符串向左靠,右补上空格.#include "stdio.h"void main(){& printf("c=%-1s","CHINA");&& }c=CHINA (在-1以上的数,结果不变)
&④%m.ns:输出占m列,但只取字符串中左端n个字符.这n个字符输出在m列的右边,左边补上空格.#include "stdio.h"void main(){&printf("c=%1.2s","CHINA");&& }c=CH (只取字符串中左端n个字符,即只取2个字符.)
#include "stdio.h"void main(){&printf("c=%6.3s","CHINA");&& }c=& CHI(要求6位数字和取3个字符.这3个字符输出在6列的右边,左边补上空格.)
⑤%-m.ns,其中m,n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n&m,则m自动取n值,即保证
n个字符正常输出.例4.5& 字符串的输出.#include "stdio.h"void main(){&printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");&& }运行后的结果是:CHINA,(7个空格)CH,CHIN,CHI(2个空格)例题4.5.1#include "stdio.h"void main(){&printf("%-5.3s\n","CHINA");&& }运行后的结果是:CHI(2个空格)/*在右边补上两个空格*/例题4.5.2#include "stdio.h"void main(){&printf("%5.3s\n","CHINA");&& }运行后的结果是:(2个空格)CHI&&& /*在左边补上两个空格*/
在"例4.5"其中第3个输出项,格式说明为"%.4s",即只指定了n,没指定m,自动使m=n=4,故占4列.
(7)f格式符:用来输出实数(包括单,双精度),以小数形式输出.有以下几种用途法:
①%f,不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小数.应当注意,在输出的数字中
并非全部数字都是有效数字.单精度实数的有效位数一般为7位.例题4.6& 输出实数时的有效位数.#include "stdio.h"void main(){&float x=,y=;&printf("%f\n",x+y);&& }结果是:125&&显然,只有前7位数字是有效数字.千万不要以为凡是计算机输出的数字都是准确的.双精度数也可以用%f
格式输出,它的有效位数一般为8位,给出小数6位.例题4.7& 输出单精度数时的有效位数.#include "stdio.h"void main(){&float x=1.,y=2.;&printf("%f\n",x+y);&& }结果是:0.000000 (在C/C++程序设计学习与实验系统中运&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 行后的结果)例题4.8输出双精度数时的有效位数:#include "stdio.h"void main(){& double x=1.,y=2.;&&&&&& &printf("%f\n",x+y);&&&& }结果是:3.333000
可以看到最后3位小数(超过16位)是无意义的。
②%m.nf,指定输出的数据共占m列,其中有位n小数。如果数值长度小于m,则左端补空格。
③%-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。
例题4.9 输出实数时指定小数位数。#include "stdio.h"&&&&&&&&&&&& void main(){&float f=123.456;&printf("%f& %10f& %10.2f& %.2f& %-10.2f\n",f,f,f,f); /* 4个f以两个空格分开 */ }&&&&&&& 将上题拆开分成以下:
#include "stdio.h"void main(){ &float f=123.456;&printf("%f\n",f);&& }123.456001
#include "stdio.h"void main(){ &float f=123.456;&printf("%10f",f);&& }123.456001
#include "stdio.h"void main(){ &float f=123.456;&printf("%10.2f",f);&& }(4个空格)123.46
#include "stdio.h"void main(){ &float f=123.456;&printf("%.2f",f);&& }123.46
#include "stdio.h"void main(){ &float f=123.456;&printf("%-10.2f",f);&& /* 如果改为-10.3,结果是: 123.456 */}123.46
&f的值应为123.456,但输出为123.456001,这是由于实数在内存中的存储误差引起的.
(8) e格式符: 以指数形式输出实数.可用以下形式:
& ①%e:不指定输出数据所占的宽度和数字部分的小数位数,有的编译系统自动指定给出数字部分的小数
位数为6位,指数部分占位(如e+002),其中"e"占1位,指数符号占1位,指数占3位.数值按规范化指数形式输
出(即小数点前必须有而且只有1位非零数字).&&&&&&&&&&&&& 例如以下程序:&&&&&&&&&&&&&&&&&&&&&&&& ( float f=123.456;没有添加也一样 )#include "stdio.h"&&& (有两种程序表示) void main(){ &printf("%e",123.456);&& }
#include "stdio.h"void main(){&float f=123.456;&printf("%e",f);&&&&& }
结果是:1.2 (在Visual C++系统中的结果)1.23456e+02 (在Turbo C 系统中的结果)
所输出的实数共占13列宽度.(注意:不同的系统结果有所不同)
&②%m.ne和%-m.ne, m,n和" - "(负)字符的含义与前相同.此处n指以输出的数据的小数部分(又称尾数)
的小数位数.若f=123.456,则:#include "stdio.h"void main(){ &float f=123.456;&printf("%e",f);&&&&& }1.2 (13列:表示13位数)
#include "stdio.h"void main(){ &float f=123.456;&printf("%10e",f);&&&&& }1.2 (13列)
#include "stdio.h"void main(){ &float f=123.456;&printf("%10.2e",f);&&&&& }(空1个空格)1.23e+002 (10列)
#include "stdio.h"void main(){ &float f=123.456;&printf("%.2e",f);&&&&& }1.23e+002 (9列)
#include "stdio.h"void main(){ &float f=123.456;&printf("%-10.2e",f);&&&&& }1.23e+002(空1个空格) (10列)
&& 第2个输出项按%10e输出,即只指定了m=10,未指定n,凡未指定n,自动使n=6,整个数据长13列,超过给定的10列,乃突破10列的限制,按实际长度输出.第3个
数据共占10列,小数部分占2列.第4个数据按"%.2e"格式输出,只指定n=2,未指定m,自动使m等于数据应占的长度,今为9列.第5个数据应占10列,数值只有9列,由于是"%-10.2e",数值向左靠,右补一个空格.&&&&&&&&&&&&&&&&&&&&& (注意:不同的系统结果有所不同)
(9)g格式符: 用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且
不输出无意义的零. 例如: f=123.456,则:#include "stdio.h"void main(){ &float f=123.456;&printf("%f,%e,%g",f,f,f);&&&&& }123..2,123.456(空3个空格)
& 用%f格式输出占10列,用%e格式输出占13列,用%g格式时,自动从上面两种格式中选择短者(今以%f格式
为短),故占10列,并按%f格式用小数形式输出,最后3个小数位为无意义的0,不输出.因此输出123.456,然
后右补3个空格.%g格式用得较少.&&&&&&&& &&&&&&&&&&& 以上介绍了9种格式符,归纳如下表所示&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& printf格式字符格式字符&&&&&& 说&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 明&&&&& &&&&&&& &&&& d,& i ――&&&&& 以带符号的十进制形式输出整数(整数不输出符号)
&&&& o&&& ――&&&&&&& 以八进制无符号形式输出整数(不输出前导符0)&&&&&& &&&& x,X ――&&&&&& 以十六进制无符号形式输出整数(不输出前导符0x),用x则输出&&&&&&&&&&&&&&&&
&&&&&&&&& 十六进制数的a--f时以小写形式输出.用X时,则以大写字母输出&&& &&&& u&& ――&&&&&&& 以无符号十进制形式输出整数
&&&& c& ――&&&&&&&& 以字符形式输出,只输出一个字符&&&&& s&& ――&&&&&&&& 输出字符串
&&&& f&&& ――&&&&&&&& 以小数形式输出单,双精度数,隐含输出6位小数
&&& e,E& ――&&&&&&& 以指数形式输出实数,用e时指数以"e"表示(如1.2e+02),用E时指&&&&&&&&&&&&&&
&&&&&&&&&&&&&& 数以"E"表示(如1.2E+02)
&&& g,G& ――&&&&&&& 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0.&&&&&&&&&&&&&&&
&&&&&&&&&& 用G时,若以指数形式输出,则指数以大写表示
&&& 在格式说明中,在%和上述格式字符间可以插入以下几种附加符号(又称修饰符),见下表&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& printf的附加格式说明字符& 字& 符&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 说&&&&&&&&&&&&&&&&&&&& 明
&& l(小写字母(L))&&&&&&&&&&&&&&& 于长整形整数,可加在格式符d,o,x,u前面&&& &&& & m(代表一个正整数)&&&&&& 数据最小宽度
& n(代表一个正整数)&&&&&&& 对实数,表示输出n位小数;对字符串,表示截取的字符&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 个数
&& --&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 输出的数字或字符在域内向左靠
&&&&&&&& 在用 printf函数输出时,务必注意数据类型应与上述格式说明匹配,否则将会出现错误.
& 对使用函数还要说明以下几点.
&(1)除了X,E,G外,其它格式字符必须用小写字母,如%d不能写成%D.
&(2)可以在printf函数中的"格式控制"字符串内包含第3章3.5节3.5.1小节中的"转义字符",
如"\n","t","\b","\r","\f","\377"等.
&(3)上面介绍的d,o,x,u,c,s,f,e,g等字符,如用在"%"后面就作为格式符号.一个格式说明以"%"开头,以
上述个格式字符之一为结束,中间可以插入附加格式字符(也称修饰符).&&&&&&&& 例如:
&&&&&&&&&&&&&&& printf("c=%cf=%fs=%s",c,f,s);&&&&& (不懂)
第一个格式说明为"%c"而不包括其后的f;第二个格式说明为"%f",不包括其后的s;第三个格式说明为%s.
其它的字符为原样输出的普通字符.
(4)如果想输出字符"%",则应该在"格式控制"字符串中用连续两个%表示,如:&&&&&&&&&&&&&&&&&&&&&&& printf("%f%%",1.0/3);&&& 程序如下:#include "stdio.h"void main(){&&printf("%f%%",1.0/3);&& }输出:0.33333%&&&&&&&&&&&&&&&&&&&&
用scanf函数输入数据:#include "stdio.h"void main(){&int a,b,c;&scanf("%d%d%d",&a,&b,&c);&&&& /*表示输入3个整数,分别给a,b,c.*/&& &printf("%d,%d,%d,",a,b,c);&&&&&&&&&& /*表示输出3个整数.*/}结果是:1 2 3(输入a,b,c的值)1,2,3(输出a,b,c的值)
&(2) 可以指定输入数据所占的列数,系统自动按它截取所需数据,例如:&&scanf("%3d%3d",&a,&b);& 123456(输入)程序如下:#include "stdio.h"void main(){&int a,b;&scanf("%3d%3d",&a,&b);&& &printf("%d,%d",a,b);} 123456(输入)123,456(输出)
系统自动将123赋给变量a,456赋给变量b.此方法也可用于字符型:&&&&&&& scanf("%3c",&ch);程序如下:#include "stdio.h"void main(){&&scanf("%3c",&ch);&& &printf("%c",ch);}abc(输入)a(输出)&如果从键盘连续输入3个字符"abc",由于ch只能容纳一个字符,系统就把第一个字符'a'赋给字符变量ch.
&(3)如果在%后有一个"*"附加说明符,表示跳过它指定的列数.例如:&& scanf("%2d %*3d %2d",&a,&b);程序如下:#include "stdio.h"void main(){&int a,b;&scanf("%2d %*3d %2d",&a,&b);& &printf("%d,%d",a,b);}12 345 67(输入)12,67(输出)
系统会将12赋给整型变量a,%*3d表示读入3位整数但不赋给任何变量.然后在读入2位整数67赋给整型变量
b.也就是说第2个数据"345"被跳过.在利用现成的一批数据时,有时不需要其中某些数据,可用此法"跳过"
如果是:& scanf("%d:%d:%d",&a,,&x,&b);& 输入应该用这样的形式:& 1:2:3
如果是: scanf("a=%d,x=%d,b=%d",&a,&x,&b); 输入的形式:a=1,x=2,b=3& 程序如下:#include "stdio.h"void main(){&int a,x,b;&&scanf("a=%d,x=%d,b=%d",&a,&x,&b);&printf("%d,%d,%d",a,x,b);}&& 采用这种形式是& 为了使用户输入数据时添加必要的信息,使含义清楚,不易发生输入数据的错误.
&(4) 在输入数据时,遇以下情况时认为该数据结束.&&&&&&&& ①遇空格,或按"回车"或"跳格"(Tab)键;&&&&&&&& ②按指定的宽度结束,如"%3d",只取3列;&&&&&&&& ③遇非法输入.&例如:&&& scanf("%d%c%f",&a,&b,&b);& 假如输入:1234&&&&& a&&&&& 123o.26&& 第一个数据对应%d格式,在输入1234之后遇字符'a',因此认为数值1234后已没有数字了,第一个数据到此结束,把1234送给变量a.字符'a'送给变量b,由于%c只要求输入一个字符,因此输入字符a之后不需要加空格,后面的数值应送给变量c.如果由于疏忽把本来要输入为1230.26错写成123o.26,由于123后面出现字符'o',就认为该数值数据到此结束,将123送给c.
#include "stdio.h"void main(){char *p,str[20];scanf("%s", p);& /*&&&&& ascanf("%s", str); /*&&&& bprintf("p=%s\n", p); /*& p=a&&&& printf("p=%6s\n", p); /* p=&&&& a 表示5个加一个字母共6个空格.*/printf("p=%06s\n", p); /*p=00000aprintf("p=%2s\n", p); /*p= aprintf("p=%s\n", p);& /*p=aprintf("str=%6.4s\n",str); /*str=&&&& bprintf("str=%ls\n", str);& /*str=bB?printf("str=%18.16ls\n",str);/*str=&&&&&&&&&&& bB?&&& printf("str=%s\n", str); /*str=bprintf("str=%s\n", str); /*str=b& }
#include "stdio.h"void main(){&char c='\x41';int a=1234;float f=3.;double x=0.54321;
printf("a=%d\n", a); /*结果输出十进制整数a=1234*/printf("a=%6d\n", a); /*结果输出6位十进制数a= 1234*/printf("a=%06d\n", a); /*结果输出6位十进制数a=001234*/printf("a=%2d\n", a); /*a超过2位, 按实际值输出a=1234*/printf("f=%f\n", f); /*输出浮点数f=3.141593*/printf("f=%6.4f\n", f); /*输出6位其中小数点后4位的浮点数f=3.1416*/printf("x=%lf\n", x); /*输出长浮点数x=0.123457*/printf("x=%18.16lf\n",x); /*输出18位其中小数点后16位的长浮点数x=0.5432*/printf("c=%c\n", c); /*输出字符c=A*/printf("c=%x\n", c); /*输出字符的ASCII码值c=41*/&& }(上面结果中的地址值在不同计算机上可能不同。)
例题:字符串的输出.#include "stdio.h"void main(){
printf("%3s,%7.2s,%.4s,%-5.3s\n","XUJIZ","XUJIZ","XUJIZ","XUJIZ");
}本程序运行后的结果:XUJIZ,(5个空格)XU,XUJI,XUJ(两个空格)&&
#include "stdio.h"void main(){float f=10.002;printf("%3s,%7.2f,%.4s,%-5.3s.\n","XUJIZ",f,"XUJIZ","XUJIZ");
}XUJIZ,& 10.00,XUJI,XUJ& .
#include "stdio.h"void main(){& int a=3,b=4,c=5;& float x=1.2,y=2.4,z=-3.6;& long int u=51274,n=128765;& char c1='a',c2='b';& c2=c2-32;& printf("a=%2d& b=%2d& c=%2d\n",a,b,c);& & printf("x=%.6f,y=%.6f,z=%.6f,x+y=%5.2f,& y+z=%5.2f,& z+x=%.2f\n",x,y,z,x+y,y+z,z+x);& printf("u=%6ld& n=%9ld\n",u,n);& printf("c1='%c' or %d(ASCII)\n",c1,c1);& printf("c2='%c' or %d(ASCII)\n",c2,c2);}
输入三角形的三边长,求三角形面积:& 为简单起见,设输入的三个边长a,b,c能构成三角形。从数学知识已知求三角形面积的公式为& :
area= s(s-a)(s-b)(s-c)
其中s=(a+b+c)/2,据此编写程序如下:#include "stdio.h"#include "math.h"void main(){&float a,b,c,s,&scanf("%f,%f,%f",&a,&b,&c);&s=1.0/2*(a+b+c);&area=sqrt(s*(s-a)*(s-b)*(s-c));&printf("a=%7.2f,& b=%7.2f,& c=%7.2f& s=%7.2f\n",a,b,c,s);&printf("area=%7.2f",area);&& }
运行情况如下:3,4,6a=&& 3.00,&&& b=&& 4.00,& c=&& 6.00& s=&&& 6.50area=&&& 5.33
& 程序第8行中sqrt函数是求平方根的函数。由于要调用数学函数库中的函数,必须在程序的开头加一条
#include 命令。把头文件"math.h"包含到程序中来。注意,以后凡在程序中要用到数学函数库中的函数
都应当包含“math.h”头文件。
例题4.11& 从键盘输入一个大写字母,要求改用小写字母输出。前面已介绍过大小写字母间转换的方法,根据此思路编写出下面的程序:#include "stdio.h"void main(){& char c1,c2;& c1=getchar();& printf("%c,%d\n",c1,c1); & c2=c1+32;& printf("%c,%d",c2,c2); }A(输入)A,65(输出)a,97(输出)
&用getchar函数得到从键盘上输入的字母‘A’,赋给字符变量c1。将c1分别用字符形式(‘A’)和整
数形式(65)输出。再经过运算得到字母‘a’,赋给字符变量c2,将c2分别用字符形式(‘a’)和整
数形式(97)输出。
&&&&&&&&&&&&&&&&&&&&&&& 例题4.12&& 求ax(的二次方)+bx+c=0方程的根。a,b,c从键盘中输入 ,设b(的二次方)-4ac&o.& 程序如
下:#include "stdio.h"#include "math.h"void main(){& float a,b,c,disc,x1,x2,p,q;& scanf("a=%f,b=%f,c=%f",&a,&b,&c);& disc=b*b-4*a*c;& p=-b/(2*a);& q=sqrt(disc)/(2*a);& x1=p+q;x2=p-q;& printf("x1=%5.2f\nx2=%5.2f",x1,x2);}a=1,b=3,c=2(输入)x1=-1.00 (输出)x2=-2.00(输出)
#include "stdio.h"void main(){&int x=2,y=3,z;&&&&&&&&&&&& &if(x&y)&&& &&& z=x;&&& &else&&& z=y;printf("%d",z);& }运行的结果是:3
程序2:#include "stdio.h"void main(){& int x=3,y=2,z;& if(x&y)&&& &&& z=x;&&& &else&&& z=y; & printf("%d",z);& }运行的结果也是:3
& (当x大于y时,z的值就等于x;否则,z的值就等于y.)& (例如:x=3,y=2时;3大于2,z的值就等于3.)& (x=2,y=3时;2小于3,z的值就等于3.)
&其中x&y是一个"判断条件",z=x;和z=y;是两个语句,这两个语句是内嵌在if()……else……语句中的.这
个if()……else……:语句的作用是:先判断条件"x&y"是否成立,如果x&y成立,就执行内嵌语句"z=x;";否
则就执行内嵌语句"z=y;".
2.函数调用语句:由一个函数调用加一个分号构成,例如:&&&&&& printf("你好!!!许哥!!!");
3.表达式语句:由一个表达式加一个分号构成,最典型的是,由赋值表达式构成一个赋值语句.例如: & x=3& 是一个赋值表达式,而 x=3; 是一个赋值语句 可以看到一个表达式的最后加一个分号就成了一个语句.一个语句必须在最后出现分号,分号是语句中不
可缺少的组成部分,而不是两个语句间的分隔符号.例如:&& i=i+1& (是表达式,不是语句)&& i=i+1; (是语句)&任何表达式都可以加上分号而成为语句.例如:&& i++;&是一个语句,作用是使的i值加1.又例如:& x+y;&也是一个语句,作用是完成x+y的操作,它是合法的.但并不是把x+y的和赋给另一变量,所以它并无实际意
义.& & 表达式能构成语句是C语言的一个重要特色.其实"函数调用语句"也是属于表达式语句,因为函数调用(
如sin(x))也属于表达式的一种.只是为了便于理解和使用,才把"函数调用语句"和"表达式语句"分开来说
明.由于C程序中大多数语句是表达式语句(包括函数调用语句),所以有人把C语言称做"表达式语言".
4.空语句.下面是一个空语句:&; 即只有一个分号的语句,它什么也不做.有时用来做流程的转向点(流程从程序其他地方转到此语句
处),也可以用来作为循环语句中的循环体(循环体是空语句,表示循环体什么也不做).
5.复合语句:可以用大括号"{}"把一些语句括起来成为复合语句(又称分程序).例如下面是一个复合语句:#include "stdio.h"void main(){& int x=100,y=100,z;&& z=x+y;& t=z/100;& printf("%0.2f",t);& }
&注意:复合语句中最后一个语句中最后的分号不能忽略不写.&&C语言允许一行写几个语句,也允许一个语句拆开写在几行上,书写格式无固定要求.& 在本节中将介绍几种顺序执行的语句,在执行这些语句的过程中不会发生流程的控制转移.
#include "stdio.h"void main(){& int a=1,b=3,t;& if((a=b)&0)& t=a;& printf("%d",t);& }结果是:3
#include "stdio.h"void main(){& int a,b,t;& scanf("%d,%d",&a,&b);& if((a=b)&0)&& {& && & t=a; &&&& printf("%d",t);}& else&&&& && printf("错误!!");}
getchar 函数函数名: getchar 功& 能: 从stdin流中读字符 用& 法: int getchar(void);
#include &stdio.h&& int main(void) { &&& && while ((c = getchar()) != '\n') && {printf("%c", c); &&& } && return 0; }
s(输入)s(输出)
输出单个字符:#include "stdio.h"void main(){& char a='B',b='O',c='Y';& putchar(a);putchar(b);putchar(c);putchar('\n');}本程序运行后的结果:BOY
将例题1的程序改为:#include "stdio.h"void main(){& char a='B',b='O',c='Y';& putchar(a);putchar('\n');putchar(b);putchar('\n');&&&&&& putchar(c);putchar('\n');}本程序运行后的结果:BOY
用putchar函数可以输出能在屏幕上显示的字符,也可以输出控制字符,如putchar('\n');的作用是输出一
个换行符,使输出的当前位置移到下一行的开头.(如上题所示.)
也可以输出其它转义子符:putchar('\101'); 输出字符'A'.
putchar('\'');&& 输出单引号字符'''.
putchar('\105'); 输出字符'E'.&&&&&&&&&&&&&&&&&
#include "stdio.h"void main(){& char a='B',b='O',c='Y';& putchar('\'');putchar('\101');putchar('\n');putchar& ('\105');putchar('\n');& putchar(a);putchar('\n');;putchar(b);putchar& ('\n');putchar(c);putchar('\n');putchar
('\105');}本程序运行后的结果:&&&&&&&&&&&&&&& 'AEBOYE
#include "stdio.h"void main(){& char c1,c2;& c1=getchar();& printf("%c,%d\n",c1,c1);& c2=c1+32;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & printf("%c,%d",c2,c2); }
本程序运行后的结果:A(输入)&& (输入A并按回车键,字符才送到内存中去)A,65(输出) (输出c1的字符值和整数的值)a,97(输出)c1=getchar();/*c1的值是从键盘输入的一个字符.*/
例题3.输入一个大写字母,按要求输出小写字母和换成数字#include "stdio.h"void main(){&& c=getchar();& printf("%c,%d\n",c,c);& c=c+32;& printf("%c,%d",c,c);&&& }本程序运行后的结果与上一例相同.
例题4.输入一个大(小)写字母后照样输出:(输入单个字符:)&如果从键盘中输入A并按回车键,就会在屏幕上看到输出的字符A.#include "stdio.h"void main(){&& c=getchar();& putchar(c);/* 输出(从键盘中输入)c的值. */& putchar('\n');/* 换行 */&&& }本程序运行后的结果:A(输入) a (输入A(a)并按回车键,字符才送到内存中去)A(输出) a& (输出变量c的值A(a))
&注意: getchar函数只能接受一个字符.getchar函数得到的字符可以赋给一个字符变量或整型变量,也可
以不赋给任何变量,作为表达式的一部分.
例如:上条程序中的第4和5行可以用下面一行代替:&
&&&&&&&&&&& putchar(getchar());
& 因为getchar函数的值为'a',因此putchar函数输出'a'.也可以用printf函数输出:&& printf("%
c",getchar());
例题5. 输入单个字符:#include "stdio.h"&&&&&&&&&& void main()&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&& & c=getchar();&&&&&&&&&&&&&&& & putchar(getchar());&&&&&&& & printf("%c",c);&&&&&&&& &&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&& 本程序运行后的结果:A(输入)A(输出)putchar(getchar());/* 这一句可以不写. */
#include "stdio.h"void main()&{ &&&&& c=getchar();& printf("%c",c);}( 两着的结果相同 )
#include "stdio.h"void main(){& & int a,b,c;& scanf("%d,%d,%d",&a,&b,&c);& if(a&b==c)b=1;else b==-1;/* 注意:区别在于"b==-1" */& printf("%d",b);}运行后的结果:(输入)0,1,2(输出)1例题2:#include "stdio.h"void main(){& & int a,b,c;& scanf("%d,%d,%d",&a,&b,&c);& if(a&b==c)b==1;else b=-1;/* 注意:区别在于"b==1" */& printf("%d",b);}运行后的结果:(输入)0,1,2(输出)-1
例题3:#include "stdio.h"&&& (5.1.2有做解释)void main(){& & int a,b,c;& scanf("%d,%d,%d",&a,&b,&c);& if(a&b==c)b=1;else b=-1;/* 注意:区别在于"b=-1" */& printf("%d",b);}运行后的结果:(输入)0,1,2(输出)-1
#include "stdio.h"void main(){& int a,b,x;& printf("请输入3个整数:");& scanf("%d,%d,%d",&a,&b,&x);& if((a&b)==x )&&&&&&&& /* 当a大于b时,就输出a,b,x的值.*/&&& printf("%d,%d,%d",a,b,x);& else&&&&&&&&&&&&&&&&& /* 否则输出x的值.*/& &&& printf("%d",x);& }请输入3个整数:1,2,3 (输出)3&& /*1小于2,就输出x的值为3 */&&&&&&&&&&&&& 3,2,1 (输出)3,2,1&#include "stdio.h"void main(){& int a,b,x;& printf("请输入3个整数:");& scanf("%d,%d,%d",&a,&b,&x);& if((a&b)==x ) &&& printf("%d",a);& else &&& printf("%d",x);& }请输入3个整数:3,2,1 (输出)3
#include "stdio.h"void main(){& int a,b,x;& printf("请输入3个整数:");& scanf("%d,%d,%d",&a,&b,&x);& if((a&b)==x ) &&& printf("%d",x);& }请输入3个整数:3,2,1 (输出)1
#include "stdio.h"void main(){& int a,b,x;& printf("请输入3个整数:");& scanf("%d,%d,%d",&a,&b,&x);& if((a&b)==x ) &&& printf("%d",a);& }请输入3个整数:3,2,1 (输出)3
#include "stdio.h"void main(){& int a,b,x;& printf("请输入3个整数:");& scanf("%d,%d,%d",&a,&b,&x);& if((a&b)==x ) &&& printf("%d",b);& }请输入3个整数:3,2,1 (输出)2
#include "stdio.h"void main(){& int a,b,x;& printf("请输入3个整数:");& scanf("%d,%d,%d",&a,&b,&x);& if((a&b)==x ) &&& printf("%d",x); & else&& printf("error(错误:因为a小于b.)!");&&& }请输入3个整数:4,5,6 (输出)error(错误:因为a小于b.)!&&&&&&&&&&&&& 6,5,4 (输出)error(错误:因为a小于b.)!
#include "stdio.h"void main(){& int a,b,x;& printf("请输入3个整数:");& scanf("%d,%d,%d",&a,&b,&x);& if((a&b)==x ) &&& printf("%d",x); & else&& printf("error(错误:因为a小于b.)!");&&& }请输入3个整数:3,2,1 (输出)1&&&&&&&&&&&&& 1,2,3 (输出)error(错误:因为a小于b.)!#include "stdio.h"void main(){& int a,b,c;& scanf("%d,%d,%d",&a,&b,&c);& if((a&b)==c ) &&& printf("%d,%d,%d",a,b,c); & else&& printf("%d",a);&&& }请输入3个整数:3,2,1 (输出)3,2,1&&&&&&&&&&&&& 1,2,3 (输出)1&&&&&&&&&&&&& 11,12,13 (输出)11&&&&&&&&&&&&& 9,8,1& (输出)9,8,1&&&&&&&&&&&&& 8,7,1& (输出)8,7,1&&&&&&&&&&&&& 7,8,9& (输出)7
#include "stdio.h"void main(){& int a,b,c;& scanf("%d,%d,%d",&a,&b,&c);& if((a&b)==c ) &&& printf("%d",c); & else&& printf("%d",a);&&& }输入3个整数:11,10,1& (输出)1&&&&&&&&&&& 11,12,13 (输出)11&&&&&&&&&&& 9, 8, 1& (输出)1&&&&&&&&&&& 7, 9, 1& (输出)7
#include "stdio.h"void main(){& int a,b,c;& scanf("%d,%d,%d",&a,&b,&c);& if((a&b)==c ) &&& printf("正确!"); & else&& printf("错误.");&&& }输入3个整数:11,10,1& (输出)正确!&&&&&&&&&&& 10,1,11& (输出)错误.&&&&&&&&&&& 7, 9, 1& (输出)错误.&&&&&&&&&&& 9, 8, 1& (输出)正确!
#include "stdio.h"void main(){& & int a,b,c;& scanf("%d,%d,%d",&a,&b,&c);& if(b=a&c)b=1;else b=-1;& printf("%d",b);}运行后的结果:(输入)3,2,1(输出)1
例题5:#include "stdio.h"}

我要回帖

更多关于 计算机二级c语言真题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信