c语言 电子狗输入两个整数,[转载]C语言程序设计(2)

C语言程序设计(2)

程序的三种基本结构:

顺序结构、分支结构、循环结构

C语句(5种):1.表达式语句 2.函数调用语句 3.控制语句 4.复合语句 5.空语句

(一)顺序结构:

1.表达式语句:如x=y+z;赋值语句y+z;自增语句i++;

2.函数调用语句:函数名(实际参数表);

如printf("C

Program");调用库函数,输出字符串。

3.控制语句:控制程序的流程

(1) 条件判断语句 :

if语句,switch语句

(2) 循环执行语句 :do while语句,while语句,for语句

(3)

转向语句:break语句,goto语句,continue语句,return语句

4.复合语句

把多个语句用括号{}括起来组成的一个语句称复合语句。例如{

x=y+z;

a=b+c;

printf(“%d%d”,x,a);

}

复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。

5.空语句:“;”“()”

什么也不执行的语句。如

while(getchar()!='n');

只要从键盘输入的字符不是回车则重新输入。

a。赋值语句

一般形式为:变量=表达式;

注:变量说明中,int a=b=c=5

是错的必须写为 int

a=5,b=5,c=5;而赋值语句允许连续赋值。

三、数据输出语句:

printf函数调用形式:printf(“格式控制字符串(%d/%c等)”,输出表列(a,b))

void

main() {

int a=88,b=89;

printf("%d

%dn",a,b); ---》88 89printf("%d,%dn",a,b); ---》88,89

printf("%c,%cn",a,b); ---》88对应的ASCII码字母,89对应的ASCII码字母

printf("a=%d,b=%d",a,b); ---》a=88,b=89

}

b.格式字符串:

d 以十进制形式输出带符号整数(正数不输出符号)

o 以八进制形式输出无符号整数(不输出前缀O)

x 以十六进制形式输出无符号整数(不输出前缀OX)

u 以十进制形式输出无符号整数

f 以小数形式输出单、双精度实数

e 以指数形式输出单、双精度实数

g 以%f%e中较短的输出宽度输出单、双精度实数

c 输出单个字符

s 输出字符串

c.标志字符:-、+、#、空格四种

- 左对齐,右空格

+ 输出符号(正号或负号)正为空格,负时冠以负号

# 对c,s,d,u类无影响;对o类,在输出时加前

缀o 对x类,在输出时加前缀0x;对e,g,f

类当结果有小数时才给出小数点

d.输出最小宽度:实际位数>定义宽度:按实际位数输出

实际位数

e.精度(*.十进制整数):*输出数字:表示小数位数;*输出字符:表示字符个数;实际位数>定义精度数:截去超过部分。

f.长度(h,l):

h表示按短整型量输出,l表示按长整型量输出。

void main(){

int a=15;

float b=138.3576278;

double c=35648256.3645687;

char d='p';

printf("a=%d,%5d,%o,%xn",a,a,a,a); ---》a=15,15 ,略

printf("b=%f,%lf,%5.4lf,%en",b,b,b,b);

printf("c=%lf,%f,%8.4lfn",c,c,c);

printf("d=%c,%8cn",d,d);

}

int i=8;

printf("%d%d%d%d%d%d",++i,--i,i--,i++,-i--);

运行结果为:78787

注:求值顺序从右到左,输出顺序从左到右

四、数据输入语句:

一、scanf函数一般形式:scanf(“格式控制字符串”,地址表列(&a,&b));

void main(){

int a,b,c;

printf("input

a,b,cn"); ----》input a,b,c

scanf("%d%d%d",&a,&b,&c); ----》键盘输入88 89 90 printf("a=%d,b=%d,c=%d",a,b,c); ----》a=88,b=89,c=90

}

1.格式字符串

格式字符串的一般形式为:

%[*][输入数据宽度][长度]类型

类型:表示输入数据的类型d 输入十进制整数

o 输入八进制整数

x 输入十六进制整数

u 输入无符号十进制整数

f或e 输入实型数(用小数形式或指数形式)

c 输入单个字符

s 输入字符串

2.“*”符:跳过该输入值。 如 scanf("%d %*d

%d",&a,&b);当输入为:1 2 3

时,把1赋予a,2被跳过,3赋予b。

3.宽度

如: scanf("%5d",&a);

若输入12345678 只把12345赋予变量a,其余部分被截去。

又如:

scanf("%4d%4d",&a,&b); 输入12345678

将把1234赋予a,而把5678赋予b。4.长度(l,h)l表示输入长整型数据(如%ld)

和双精度浮点数(如%lf)。h表示输入短整型数据。

使用scanf函数还必须注意以下几点:

a. scanf函数中无精度控制,如: scanf("%5.2f",&a);

是非法的。

b. scanf("%d",a);是非法的,应改为scnaf("%d",&a);才是合法的。

c.

在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。(如对“%d”输入“12A”时,A即为非法数据)

d.在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。例如:

scanf("%c%c%c",&a,&b,&c);

输入为:d e f 把'd'->a,

'f'->b,'e'->c。只有当输入为:def时,才能把'd'->a,'e'->b,'f'->c。若加入空格作为间隔,如

scanf ("%c %c

%c",&a,&b,&c);则输入时各数据之间可加空格。void

main(){

char a,b;

printf("input character

a,bn"); ---》 input character a,b

scanf("%c%c",&a,&b); ---》若输入 MN ; 若输入M

N

printf("%c%cn",a,b); ---》则MN ; 则输出M

}void main(){

long a;

printf("input a long integern");scanf("%ld",&a); 输入类型应与输出类型一致printf("%ld",a);

}

运行结果为:

input a long integer

1234567890

1234567890

五、键盘输入输出函数

getchar、putchar函数:

getchar();只能输入一个字符 putchar();只能输出一个字符char

c;

c=getchar();

举例:#include

void main(){

char c;

printf("input a charactern");

c=getchar();

putchar(c);

}

(二)分支结构:

1.关系运算符和表达式:

< 小于

<= 小于或等于

> 大于

>= 大于或等于

== 等于

!= 不等于

优先级:算术运算符>

关系运算符的 > 赋值运算符。

例如:a+b>c-d,x>3/2,'a'+1

是关系表达式

也允许出现嵌套的情况,例如:a>(b>c),a!=(c==d)等。关系表达式的值是“真”和“假”,用“1”和“0”表示。void

main(){

char c='k';

int i=1,j=2,k=3;

float x=3e+5,y=0.85;

printf("%d,%dn",'a'+5=k+1); ----》略

printf("%d,%dn",1

printf("%d,%dn",i+j+k==-2*j,k==j==i+5); ----》0,0

}

2.逻辑运算符和表达式:

&& 与运算 || 或运算 !

非运算 (优先级:非运算! >

与运算&& > 或运算|| )

a>b &&

c>d <===> (a>b) && (c>d)

!b==c||d ((!b)==c)||(d

a+b>c && x+y ((a+b)>c) && ((x+y)

void main(){

char c='k';

int i=1,j=2,k=3;

float x=3e+5,y=0.85;

printf("%d,%dn",!x*!y,!!!x); ----->0,0

printf("%d,%dn",x||i&&j-3,i1,0

printf("%d,%dn",i==5&&c&&(j=8),x+y||i+j+k); ---->0,1

}

4.if语句

(1)若为真,则...

if(条件)

语句1;语句2void main(){

int a,b,max;

printf("n input two numbers: ");

scanf("%d%d",&a,&b);

max=a;

if (max

}

输入两个整数,输出其中的大数。

(2)if-else形式if(表达式)

语句1;

else 语句2;void main(){

int a, b;

printf("input two numbers: ");

scanf("%d%d",&a,&b);if(a>b)

printf("max=%dn",a);

else

printf("max=%dn",b);

}输入两个整数,输出其中的大数。

(3)if-else-if形式(多分支)if(表达式1)

语句1;

else if(表达式2)

语句2;

else if(表达式m)

语句m;else

语句n;如果所有的表达式均为假,则执行语句n

#include"stdio.h"

void main(){

char c;

printf("input a character: ");

c=getchar();if(c<32)

printf("This is a control charactern");

else if(c>='0'&&c<='9')

printf("This is a digitn");

else if(c>='A'&&c<='Z')

printf("This is a capital lettern");

else if(c>='a'&&c<='z')

printf("This is a small lettern");

else

printf("This is an other charactern");

}

本例要求判别键盘输入字符的类别。

if语句的嵌套

if(表达式)

if语句;

或者为

if(表达式)

if语句;

else

if语句;

else 总是与它前面最近的if配对

举例:比较两个数的大小关系。void main(){

int a,b;

printf("please input A,B: ");

scanf("%d%d",&a,&b);

if(a!=b)

if(a>b) printf("A>Bn");

else printf("A

else printf("A=Bn");

}

5。条件运算符和条件表达式

符号:?*:*,条件表达式的一般形式为:表达式1?

表达式2: 表达式3

例如条件语句:

if(a>b) max=a;

else

max=b; <========> max=(a>b)?a:b;

如a>b为真,则把a赋予max,否则把b

赋予max。

运算优先级:赋值符

< 条件运算符 < 关系运算符 < 算术运算符。

所以max=a>b?a:b <====>

max=(a>b)?a:b

条件表达式结合方向:从右向左

例如:a>b?a:c>d?c:d应理解为a>b?a:(c>d?c:d)

void main(){

int a,b,max;

printf("n input two numbers: ");

scanf("%d%d",&a,&b);

printf("max=%d",a>b?a:b);

}

用条件表达式对上例重新编程,输出两个数中的大数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值