首页 > 编程语言 >c/c++零基础坐牢第三天

c/c++零基础坐牢第三天

时间:2023-04-17 21:00:12浏览次数:43  
标签:输出 int scanf 第三天 c++ 坐牢 printf 格式 输入

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

相关文章

  • C++重载的奥义之运算符重载
    0、引言        重载,顾名思义从字面上理解就是重复装载,打一个不恰当的比方,你可以用一个篮子装蔬菜,也可以装水果或者其它,使用的是同一个篮子,但是可以用篮子重复装载的东西不一样。        正如在之前的文章《重载的奥义之函数重载》中介绍的类似,函数的重载是指利......
  • c++打卡练习(9)
    二分法查找数据所在位置流程图:伪代码:源代码:#include<stdio.h>#defineN10intmain(){ inti,a[N]={-3,4,7,9,13,45,67,89,100,180},low=0,high=N-1,mid,k=-1,m; printf("a数组中的数据如下:\n"); for(i=0;i<N;i++) printf("%d",a[i]); printf("\n"); pr......
  • c++打卡第7天
    一、总共有五本书,分给A,B,C三个人,一人一本,问一共有几种分法。二、设计思路。①、代码大体通过for循环实现。三种书都可以是从1循环到5,并判断是否三个人分到的书编号相同,如果不同,则不成立。②、当A和B的书所分到的编号不同的话,无论c分到的是什么书都是不成立的。所以我们可以通......
  • C++ Primer Plus——第四章 复合类型
    C++PrimerPlus——第四章复合类型复合类型数组字符串结构共用体枚举拼接字符串常量C++允许拼接字符串字面值,即将两个用引号括起来的字符串合并成一个,事实上任何两个由空白(空格、制表符和换行符)分隔的字符串常量都将自动拼接成一个。另外第一个字符串末......
  • 团队冲刺第三天
    今天我计划用两个小时时间完成今日任务,结果因为一些问题弄了一天也没有成功。       今日完成:下载kotlin组件       明日目标:能成功引入kotlin组件并实现人脸识别       遇到问题(已解决或未解决):人脸开发要用到kotlin这门语言,但今天我......
  • C++每日打卡
    计算长方形面积和表面积第一个函数计算长方形的面积,其中x和y是长和宽。第二个函数计算长方体的表面积,x,y和z是长,宽和高。 #include<iostream>#include<string>using namespace std;int area(int x,int y){    int a;    a=x*y;    return a;}int area(in......
  • opencv c++ 保存为位深度为1的png
    vector<int>compression_params;compression_params.push_back(IMWRITE_PNG_COMPRESSION);compression_params.push_back(3);compression_params.push_back(IMWRITE_PNG_BILEVEL);compression_params.push_back(1);imwrite("text2.png&......
  • 功能不够用?使用C++编写通达信插件及接入Python(二)
    参考:https://zhuanlan.zhihu.com/p/613157262一、准备工作(参考上一篇)安装VS2019 安装pycharm下载 http://help.tdx.com.cn/book.asp《通达信DLL函数编程规范.rar》二、下载python3.x的32位版本,http://www.python.org,随便找个32位版就行了。我准备下载Windowsembeddabl......
  • C#模拟C++模板特化对类型的值的支持
    概述C++的模板相比于C#的泛型,有很多地方都更加的灵活(虽然代价是降低了编译速度),比如C++支持变长参数模板、支持枚举、int等类型的值作为模板参数。C++支持枚举、int等类型的值作为模板参数,为C++的静态多态编程提供了很好的帮助,比如根据枚举值编译期确定某个对象的行为策略等(下文......
  • vscode c++ 配置
    //vscodeC++环境配置//三个配置文件c_cpp_properties.json{"configurations":[{"name":"Win32","includePath":["${workspaceFolder}/**"],......