c/c++从入门到入土(3)
开始时间2023-04-17 19:07:20
结束时间2023-04-17 20:53:40
前言:经过三天的算法训练,大家肯定对后面的编程知识产生浓厚的兴趣,有了前两章的知识铺垫,我们今天来学习一下如何从键盘输入和屏幕输出!以下是自制思维导图参考于苏小红C语言程序设计(第四版):
作业三 输入输出
【C0067】设有定义:long x = 123456L ; ,则以下能够正确输出变量x值的语句是_______。 A.printf( "x=%d\n" , x ) ; B.printf( "x=%ld\n" , x ) ; C.printf( "x=%8dL\n" , x ) ; D.printf( "x=%LD\n" , x ) ;
答案:B
体会:printf()的一般格式printf(格式控制字符串);printf(格式控制字符串,输出值参数表);
格式控制字符串是用双引号括起来的字符串,也称转换控制字符串,输出值参数表中可有多个输出值,也可没有(只输出一个字符串时)。
一般情况下,格式控制字符串包括两部分:格式转换说明和需原样输出的普通字符。
格式转换说明由%开始,并以转换字符结束,用于指定各输出值参数的输出格式。
该题考差格式转换说明,x为长整型数据,格式转换说明为%ld
【C0068】若有以下程序段 int m = 0xabc , n = 0xabc ; m -= n ; printf( "%X\n" , m ) ; 执行后输出结果是_______。 A.0X0 B.0x0 C.0 D.0XABC
答案:C
体会:格式转换说明%X为以无符号十六进制整数形式(大写)输出,不输出前导符0x。本题中很明显m=n,通过m-=n;语句变量m的值变为0,最后输出0;
【C0069】已知char a = '\103' ;则语句printf( "%3d" , a ) ; 执行后的输出结果为_______。 A.67 B.'C' C. 67 D.103
答案:C
体会:字符型变量a的值被赋为'\103',‘ddd’为1到3位八进制ascll码值所代表的字符,3*1+1*64=67,所以变量a为C。输出格式为“%3d”,这里指定输出想输出时所占的列数并输出基本整型。
若m为正整数,当输出数据宽度小于m时,在域内向右靠齐,左边多余位补空格;当输出数据宽度大于m时,按实际宽度全部输出;若m有前导符0,则左边多余位补0。
若m为负整数,则输出数据在域内向左靠齐。
“%3d”,x为67,向右靠齐,左边补一个空格。
【C0070】已知a、b、c为int类型,执行语句:scanf( "a=%d, b=%d, c=%d" , &a , &b , &c ) ; ,若要使得a为1,b为2,c为3。则以下选项中正确的输入形式是_______。 A.a=1 b=2 c=3 B.1, 2, 3 C.a=1, b=2, c=3 D.1 2 3
答案:C
体会:scanf(格式控制字符串,参数地址表),其中格式控制字符串是用双引号括起来的字符串,它包括格式转换说明符和分隔符两个部分。函数scanf()的格式转换说明符通常由%开始,并以一个格式字符结束,用于指定各参数的输入格式。
注意!如果函数scanf()的格式控制字符串中存在除格式说明符以外的其他字符,那么这些字符必须在输入数据时由用户从键盘原样输入。
【C0071】已知i、j、k为int型变量,若从键盘输入:1,2,3↙,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_______。 A.scanf( "%2d%2d%2d" , &i , &j , &k ) ; B.scanf( "%d %d %d" , &i , &j , &k ) ; C.scanf( "%d,%d,%d" , &i , &j , &k ) ; D.scanf( "i=%d,j=%d,k=%d" , &i , &j , &k ) ;
答案:C
体会:考查原样输入。
【C0072】x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是_______。 A.INPUT x、y、z ; B.scanf( "%d,%d,%d" , &x , &y , &z ) ; C.scanf( "%d,%d,%d" , x , y , z ) ; D.read( "%d,%d,%d" , &x , &y , &z ) ;
答案:B
体会:考查输入格式。
【C0073】若有int a ; float b ; scanf( "%d,%f" , &a , &b ) ; 使a、b的值分别为30和5.5,则正确的输入是_______。 A.30 5.5 B.30, 5.5 C.a=30, b=5.5 D.a=30 b=5.5
答案:B
体会:原样输入。
【C0074】根据以下定义语句和数据的输入方式,scanf语句的正确形式应为_______。 已有定义:float f1 , f2 ; 数据的输入方式:4.52↙ 3.5↙ A.scanf( "%f, %f" , &f1 , &f2 ) ; B.scanf( "%f%f" , &f1 , &f2 ) ; C.scanf( "%3.2f %2.1f" , &f1 , &f2 ) ; D.scanf( "%3.2f%2.1f" , &f1, &f2 ) ;
答案:B
体会:scanf( "%f%f" , &f1 , &f2 ) ;以下五种输入格式输入数据,效果一样
1)以回车符作为数据分隔符
2)以空格符作为数据分隔符
3)以逗号作为数据分隔符
4)以制表符作为数据分隔符
5)以字符-作为数据分隔符
【C0075】以下针对scanf( )函数的叙述中,正确的是_______。 A.输入项可以为一实型常量,如scanf( "%f" , 3.5 ) ; B.只有格式控制,没有输入项,也能进行正确输入,如scanf( "a=%d, b=%d" ) ; C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如:scanf( "%4.2f" , &f ) ; D.当输入数据时,必须指明变量的地址,如scanf( "%f" , &f ) ;
答案:D
体会:Ascanf后参数必须是一个指针,也就是取地址符加一个变量,不能是一个常量;B只有格式控制,没有输出项不能正确输入;C当输入一个实型数据时,scanf只能指定数据的长度不能指定数据输入的精度。
【C0076】有以下程序 #include<stdio.h> int main( ){ char c1 = '1' , c2 = '2' ; c1 = getchar( ) ; c2 = getchar( ) ; putchar( c1 ) ; putchar( c2 ) ; } 当运行时输入a↙后,以下叙述正确的是_______。 A.变量c1被赋予字符a,c2被赋予回车符 B.程序将等待用户输入2个字符 C.变量c1被赋予字符a,c2中仍是原有字符2 D.变量c1被赋予字符a,c2中将无确定值
答案:A
体会:getchar()和putchar()是C标准函数库中专门用于字符输入/输出的函数。函数putchar()的作用是把一个字符输出到屏幕当前光标位置,而函数getchar()的作用是从键盘读字符。当程序调用getchar()时,程序就等待用户按键,用户从键盘输入的字符会被首先放到输入缓冲区中,直到用户按下回车键为止(回车符也会被放到输入缓冲区)。当用户键入回车后,getchar()才开始从标准输入流中读取字符,并且每次调用只读取一个字符,其返回值是用户输入的字符的ascll码,若遇到文件结尾(End-Of-File),则返回-1,且将用户输入的字符回显到屏幕上。如果用户在按回车之前输入了多个字符,那么其他字符会继续留在输入缓存区中,等待后续getchar()函数调用来读取,即后续的getchar()调用直接从缓冲区中读取字符,直到缓冲区中的字符(包括回车)全部读取完后,才会等待用户按键,只要缓冲区中有字符就不会等待用户的按键操作。
注意!函数getchar()没有参数,函数的返回值就是从终端键盘读入的字符。
【C0077】已知float f = 123.467 ; ,则执行语句printf( "%.2f\n" , f ) ; ,输出结果是123.47。 【C0078】已知字符'A'的ASCII值为十进制65,变量c为字符型,则执行语句c = 'A' + '6' - '3' ; printf( "%c\n " , c ) ; ,输出结果是D。 【C0079】scanf( )函数在输入数据时默认的分隔符有回车、Tab、空格。 【C0080】已知:int i = 10 , j = 1 ; 则执行语句 printf( "%d,%d" , i++ , ++j ) ; 后,输出结果10,2。
【C0081】下面程序的运行结果是261。 #include<stdio.h> int main( ){ int m = 177 ; printf( "%o\n" , m ) ; return 0 ; }
分析:%o形式输出,即以无符号的八进制整数形式输出,不输出前导符0。
【C0082】下面程序的运行结果是20。 #include<stdio.h> int main( ){ int n = 0 ; n += ( n = 10 ) ; printf( "%d\n", n ) ; return 0 ; }
分析:最后输出n的基本整型,n先被赋初值为10,然后进行+=运算为20.
【C0083】下面程序的运行结果是201,10。 #include<stdio.h> int main( ){ int a = 201 , b = 012 ; printf( "%2d,%2d\n" , a , b ) ; return 0 ; }
分析:最后以逗号分隔以2为域宽输出a,b的值。
【C0084】下面程序的运行结果是y=4630y= 4630。 #include<stdio.h> int main( ){ int y = 2456 ; printf( "y=%3o" , y ) ; printf( "y=%8o\n" , y ) ; return 0 ; }
分析:注意域宽。
【C0085】下面程序的运行结果是*3.140000,3.142*。 #include <stdio.h> int main( ){ printf( "*%f,%4.3f*\n" , 3.14 , 3.1415 ) ; return 0 ; }
【C0086】下面程序的运行结果c:dec=120,oct=170,hex=78,ASCII=x。 #include<stdio.h> int main( ){ char c = 'x' ; printf( "c:dec=%d,oct=%o,hex=%x,ASCII=%c\n" , c , c , c , c ) ; return 0 ; }
【C0087】下面程序的运行结果是x=1 y=2 *sum*=310 squared is : 100。 #include<stdio.h> int main( ){ int x = 1 , y = 2 ; printf( "x=%d y=%d *sum*=%d" , x , y , x + y ) ; printf( "10 squared is : %d\n" , 10 * 10 ) ; return 0 ; }
【C0088】下面程序的运行结果是2 48 20.0 20.0。 #include<stdio.h> int main( ){ int n = 100 ; char c ; float f = 10.0 ; double x ; x = f *= n /= ( c = 48 ) ; printf( "%d %d %3.1f %3.1f\n" , n , c , f , x ) ; return 0 ; }
【C0089】下面程序的运行结果是x+y+z=48。 运行时从键盘输入:25 13 10↙。 #include<stdio.h> int main( ){ int x , y , z ; scanf( "%d%d%d" , &x , &y , &z ) ; printf( "x+y+z=%d\n" , x + y + z ) ; return 0 ; }
【C0090】下面程序的运行结果是55, ,A。 运行时从键盘输入:55 A B↙。 #include <stdio.h> int main( ){ int k = 0 ; char c1 = 'a' , c2 = 'b' ; scanf("%d%c%c" , &k , &c1 , &c2 ) ; printf( "%d,%c,%c\n" , k , c1 , c2 ) ; return 0 ; }
编程题!!
第一题
7-1 【C0091】编写一个程序,读入一个字母,输出与之对应的ASCII码值 分数 10 作者 C语言程序设计,沈国荣,浙江大学出版社 单位 石家庄铁道大学 编写一个程序,读入一个字母,输出与之对应的ASCII码值。 输入格式: 以以下些格式输入一个字母: 请输入一个字母:<字母> 输出格式: 对于输入的字母,以以下格式输出该字母的ASCII码值: <字母>的ASCII码为<字母的ASCII码> 输入样例: 请输入一个字母:A 输出样例: A的ASCII码为65 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
#include<stdio.h> int main() { char a; scanf("请输入一个字母:%c",&a); printf("%c的ASCII码为%d\n",a,a); return 0; }
----------分割线----------
第二题
7-2 【C0092】输入圆的半径,圆柱的高,计算圆周长、圆面积和圆柱体积 分数 10 作者 C语言程序设计,沈国荣,浙江大学出版社 单位 石家庄铁道大学 编写一个程序,从键盘输入圆半径r,圆柱高h,分别计算圆周长cl、圆面积cs和圆柱体积cv,输出计算结果时要求保留小数点后4位。。 输入格式: 以以下些格式输入半径和高: 请输入圆半径和圆柱高:<半径r>,<高h> 输出格式: 以以下些格式输出圆周长cl、圆面积cs和圆柱体积cv,要求计算结果保留小数点后4位: 圆周长=<圆周长cl> 圆面积=<圆面积cs> 圆柱体积=<圆柱体积cv> 输入样例: 请输入圆半径和圆柱高:1,1 输出样例: 在这里给出相应的输出。例如: 圆周长=6.2832 圆面积=3.1416 圆柱体积=3.1416 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
#include<stdio.h> #define PI 3.1416 int main() { double r,h; double cl,cs,cv; r=1; h=1; cl=2*PI*r; cs=PI*r*r; cv=PI*r*r*h; printf("圆周长=%.4lf\n",cl); printf("圆面积=%.4lf\n",cs); printf("圆柱体积=%.4lf\n",cv); return 0; }
----------分割线----------
第三题
7-3 【C0093】输入一个三位数,分别求出这个三位数的个位、十位和百位上的数字 分数 10 作者 C语言程序设计,沈国荣,浙江大学出版社 单位 石家庄铁道大学 【C0093】编写一个程序,输入一个三位数,分别求出这个三位数的个位、十位和百位上的数字。 输入格式: 以以下格式输入一个三位整数: 输入三位整数:<三位数> 输出格式: 以以下格式输出该三位数的各位数字: 个位<个位数字>,十位<十位数字>,百位<百位数字> 输入样例: 输入三位整数:123 输出样例: 个位3,十位2,百位1 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
#include<stdio.h> int main() { int g,s,b,num; num=123; scanf("%d",&num); b=num/100; s=num%100/10; g=num%10; printf("个位%d,十位%d,百位%d\n",g,s,b); return 0; }
总结:从输入输出开始,你正式半步踏入编程的大门,接踵而来的是各种各样的“error”“warning”,它们会阻碍你向前迈进下一步。希望你可以遇到一个解决一个,虽然“子子孙孙无穷尽也”,但你一定也能在解决报错中感受到编程的乐趣,加油加油!
每天一mo:我试图与你重逢,在凌晨三点的旧梦里......
标签:输出,int,scanf,第三天,c++,坐牢,printf,格式,输入 From: https://www.cnblogs.com/R-f-12/p/17327477.html