2022年通过scanf函数从键盘输入数据 .pdf
通过 scanf 函数从键盘输入数据1)当调用scanf 函数从键盘输入数据时,最后一定要按下回车键,scanf 函数才能接受键盘输入的数据。2)输入数据值当键盘输入数据时,输入的数值数据之间用间隔符隔开。列1020 此处间隔符可以是空格符、制表符(Tab) 、回车符。3)跳过输入数据的方法可以在格式字符和%之间加上一个 * ,它的作用是跳过对应的输入数据。列Int a1,a2, a3; Scanf(%d%d*%d%d%d,&a1,&a2,&a3); 当输入如下数据时:10 20 30 40 将把 10 赋给 a1,跳过 20,把 30 赋给 a2,把 10 赋给 a3 4)在格式字符串中插入其他字符如果想在屏幕上输入字符串来提示,应该使用printf 函数,如果在scanf 的格式控制字符串中插入其他字符,则在输入时要求按一对一的位置原样输入这些字符列 1 Int a1,a2,a3; Scanf( “inpat a1,a2,a3:%d%d%d”,&a1,&a2,&a3 ); 要求按以下形式进行输入Input a1,a2,a3:102030 列 1 以下程序由终端出入两个整数给变量x 和 y,在交换 x 和 y 的值后,在输出x 和 y,验证两个变量中的数是否正确的进行了交换。#inclube stdio.h Main() int x,y,t; Printf(enter x&y:n); Scanf(%d %d,&x,&y); Printf9(x=%d y=%dn,x,y); T=x;x=y;y=t; Printf(x=%d y=%dn,x,y); 列 2 输入一个doulbe 类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入后处理,然后输出此数,以便验证处理是否正确。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - Main() double x Printf(enter x:); Scanf(%1f,&x); Printf ( “ (1) x=%fn ”,x); X=x*100 /*123.456*100=12345.6*/ X=x+0.5 /*12345.6+0.5=12346.1*/ X=(int)x; /*12346*/ X=x/100 /* 123.46*/ Printf(2) x=%fn,x); 习题列 1 已有定义: int x;执行以下语句后的输出结果是X=11/3 ;y=5; Printf(%d,%dn,x,y); /*%d %3*/ 列 2 有以下程序段:Int a=0,b=0,c=0; Scanf(%d,&a);scanf(%d,&b);scanf(%d,&c); 执行以上语句时从键盘输入:22 6.59 则变量 a 中的值是 22,b 中的值是 6,c 中的值是 0. 3:以下合法的c 语言赋值语句是()A a=b=58 B k=int(a+b) C a=58,b=58 D-i -i i=i-i 自加自减列 4:若变量以正确定义,要将a 和 b 中的数进行交换,下面选项中不正确的是(c)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - A、a=b+a, b=a-b, a=a-b B、T=a,a=b,b=t C、A=t,t=b,b=a; D、T=b,b=a,a=t; 关系运算符和关系表达式一、基本概念1 C 语言中提供了可以进行逻辑判断的选择结构,由选择语句构成的选择结构将根据逻辑判断的结果决定程序的不同流程。2 C 语言中的逻辑值1)关系表达式和逻辑表达式,其运算结果都会得到一个逻辑值。2)C 语言中,没有专门的 逻辑值 ,而是用非零来表示“真” ,用零来表示“假”,只要值是非零,无论是正数还是负数,都代表一个真值。二、关系运算符和关系表达式1/ 概念:所谓的关系运算符实际上就是“比较运算”,将两个数进行比较,判断比较的结果是否符合指定的条件。ab a0 cd 2 C 语言中的关系运算符1)C 语言提供了 6 种关系运算符,属双目运算符,自左向右的结合性(两字符间不可以有空格) 小于大于=大于等于= =等于!=不等于2)以上运算符的优先级 小于大于=大于等于同级 优先级别高= =等于!=不等于同级优先级别低3)关系运算符、算术运算符和赋值运算符之间,优先的次序是:(高)算术运算符关系运算符赋值运算符(低)4)关系表达式及关系表达式的值有关系运算符组成的表达式,称为关系表达式。关系运算符两边的运算对象可以是 C 语言中任意合法的表达式。关系运算的结果是一个整数值:0 或 1.用 0代表假“假”,非零代表真。2 当关系运算符两边的值的类型不一致时短整型长整形名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 整形长整形有符号无符号整形实型注若 x 和 y 都是实行数,应当避免使用x= =y 这样的关系表达式, 因为通常存放在内存当中的实行数是有误差的,因此不能精确相等,这将导致关系表达式x= =y 的值总是 0. 典型列题a=3,b=2,c=1,则:关系表达式“(ab)= =c”的值为“真”,因为 ab的值为 1,等于 c 的值,表达式的值为 1. 逻 辑 运算 符 和 逻 辑表达式一C 语言中的逻辑运算符1、C 语言中的逻辑运算符1)& 逻辑“与”2)|逻辑“或”3)逻辑! “非”2、逻辑运算符中逻辑与和逻辑或是双目运算符,逻辑非是单目运算符,位于运算对象的左侧。3、优先等级!& | 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 高低4、逻辑运算符与赋值运算符、算术运算符、关系运算符之间的优先次序。! 、算术运算符、关系运算符、& 、|、赋值运算符高低二逻辑表达式和逻辑表达式的值(丢了一节课%_3&2|8b)&(n=cb) 当 a=1,b=2,c=3,d=4,m 和 n 的原值为 1 时,由于“ ab”的值为 0,因此 m=0,而“n=cb”不被执行,因此n 的值不是 0 而仍保持原值 1.m=0,n=1. 2)要判别某一年 year是否闰年,闰年的条件是否符合下面二者之一:1 能被 4 整除 ,但不能被 100 整除 2 能被 4 整除,又能被 400 整除。可用一个逻辑表达式来表示:(year%4= =0&year%100!=0)|!(year%400= =0) !(year%4= =0&year%100!=0)|!(year%400= =0)费闰年(Year%400!=0)|(year%100= =0&year%4!=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 选择语句的使用If(xy)printf(%d,x) 如果 xy 那么输出 x 的值. Elce printf(%d,y) 否则输出 y 的值If(a!=0)printf(%d,a!=0) 如果 a!=0 输出 a!=0 Else printf(%d,a=0) 否则输出a=0 也就是说 if 后面的语句只有一条会被执行到两种形式的 if语句中在 if后面都有“表达式”,表达式的类型可以是任意合法的 C语言表达式,也可以是任意类型的数据;在执行if语句时先对表达式求解若表达式的值为0,按“假”处理,若表达式的值为非0,按“真”处理,执行指定的语句。If (x0) Printf(%f,x); Elsc Printf(%f,-x); 但因当注意,以上语句各有一个分号,但属于一条if语句3)if语句后只能接一条语句, 注意:if 语句的表达式后不能加分号否则将成为空语句, elsc 后面不能接表达式例If (ab) ;Printd(%d,a);4) 如果子句中需要多个语句,则用花括号把一组语句扩起来围成复合语句,注意“”后面不能加分号;例If (ab) printf(%d,a); Printf(%d,b); 3. 例题1) Main()int x,y; Printf(enter x&y:n); Scanf(%d%d,&x&x); Printf(x,y:%d %dn,x,y); If(xy)printf(x=%dn,x); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - If(yx)printf(y=%dn,y) If(x=y)printf|(x=y%d:n,x) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -