牛客网C语言题目练习

牛客网C语言专题练习

    • BC1 实践出真知
    • BC2 我是大V
    • BC3 有容乃大
    • BC6 小飞机
    • BC7 缩短二进制
    • BC8 十六进制转十进制
    • BC9 十六进制转十进制
    • BC11 学生基本信息输入输出
    • BC12 字符金字塔
    • BC13 ASCll码
    • BC14 出生日期的输入输出
    • BC15 按照格式输入并交换输出
    • BC16 字符相应的ASCII码
    • BC17 计算表达式的值
    • BC18 计算带余除法
    • BC19 反向输出一个四位数

该专题为编程入门级别,适合大一大二同学使用,题目涉及编程基础语法,基本结构等,每道题带有练习模式和考试模式,可还原考试模式进行模拟,也可通过练习模式进行练习。

BC1 实践出真知

于老师经常告诉我们“学习编程最好的办法就是上机实践,因为你要对计算机下指令,想让计算机帮你干活,就得多和计算机‘交流’,实践才能出真知。”
输入描述:

输出描述:

Practice makes perfect!

#include
int main()
{
    printf("Practice makes perfect!");
    return 0;
}

BC2 我是大V

题目描述
每个人都想成为大V (VIP:Very Important Person),但要一点一点积累才行,先从小v做起。要求输出由小写字母v组成的大V。
输入描述:

输出描述:

v v
v v
v

备注:

换行使用转义字符‘\n’

#include
int main()
{
    printf("v   v\n");
    printf(" v v\n");
    printf("  v\n");
    return 0;
}

BC3 有容乃大

题目描述
确定不同整型数据类型在内存中占多大(字节),输出不同整型数据类型在内存中占多大(字节)。

输入描述:

输出描述:

不同整型数据类型在内存中占多大(字节),具体格式详见输出样例,输出样例中的?为不同整型数据类型在内存中占的字节数。输出样例如下:
The size of short is ? bytes.
The size of int is ? bytes.
The size of long is ? bytes.
The size of long long is ? bytes.

#include
int main()
{
    printf("The size of short is %d bytes.\n",sizeof(short));
    printf("The size of int is %d bytes.\n",sizeof(int));
    printf("The size of long is %d bytes.\n",sizeof(long));
    printf("The size of long long is %d bytes.\n",sizeof(long long));
    return 0;
}

BC6 小飞机

题目描述
KiKi学会了printf在屏幕输出信息,他想输出一架小飞机。请帮他编写程序输出这架小飞机。

输入描述:

输出描述:

牛客网C语言题目练习_第1张图片

#include
int main()
{
    printf("     **     \n");
    printf("     **     \n");
    printf("************\n");
    printf("************\n");
    printf("    *  *    \n");
    printf("    *  *    \n");
    return 0 ;
}

BC7 缩短二进制

题目描述
我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。

输入描述:

输出描述:

十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。

备注:

printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示加粗样式

#include
int main()
{
    int a=1234;
    printf("0%o 0X%X\n",a,a);
    return 0;
}

BC8 十六进制转十进制

题目描述
BoBo写了一个十六进制整数ABCDEF,他问KiKi对应的十进制整数是多少。

输入描述:

输出描述:

十六进制整数ABCDEF对应的十进制整数,所占域宽为15。

备注:

printf可以使用使用格式控制串“%md”输出域宽为m的十进制整数。

#include
int main()
{
	int a= 0xABCDEF;
    printf("%15d\n",a);
    return 0;    
}

BC9 十六进制转十进制

题目描述
KiKi写了一个输出“Hello world!”的程序,BoBo老师告诉他printf函数有返回值,你能帮他写个程序输出printf(“Hello world!”)的返回值吗?

输入描述:

输出描述:

包括两行:
第一行为“Hello world!”
第二行为printf(“Hello world!”)调用后的返回值。

BC11 学生基本信息输入输出

题目描述
依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩。

输入描述:

学号以及3科成绩,学号和成绩之间用英文分号隔开,成绩之间用英文逗号隔开。

输出描述:

学号,3科成绩,输出格式详见输出样例。
示例1

输入

17140216;80.845,90.55,100.00

输出

The each subject score of No. 17140216 is 80.85, 90.55, 100.00.

#include
int main()
{
    int num=0;
    float c = 0,math=0,english=0;
    scanf("%d;%f,%f,%f",&num,&c,&math,&english);
    printf("The each subject score of  No. %d is %.2f, %.2f, %.2f.\n",num,c,math,english);   
    return 0;
}

BC12 字符金字塔

题目描述
输入一个字符,用它构造一个三角形金字塔。

输入描述:

输入只有一行,一个字符。

输出描述:

该字符构成的三角形金字塔。

示例1
输入

1

输出

1
1 1
1 1 1
1 1 1 1
1 1 1 1 1

暴力美学:

#include
int main()
{
    char ch='0';
    scanf("%c",&ch);
    printf("    %C\n",ch);
    printf("   %C %c\n",ch,ch);
    printf("  %C %c %c\n",ch,ch,ch);
    printf(" %C %c %c %c\n",ch,ch,ch,ch);
    printf("%c %c %c %c %c\n",ch,ch,ch,ch,ch);
    return 0;
}

BC13 ASCll码

题目描述
BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,转换以下ASCII码为对应字符并输出他们。

73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33

输入描述:

输出描述:

转换输出题目中给出的所有ASCII到对应的字符。

#include
int main()
{
    int str[]={73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33};
    int sz=sizeof(str)/sizeof(str[0]);
    for(int i=0;i<sz;i++)
    {
        printf("%c",str[i]);
    }
    return 0;
}

BC14 出生日期的输入输出

题目描述
输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。

输入描述:

输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。

输出描述:

三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。

示例1
输入

20130225

输出

year=2013
month=02
date=25

备注:

通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。

#include
int main()
{
    int num=0;
    int year=0,mon=0,day=0;
    scanf("%d",&num);
    day=num%100;
    mon=num/100%100;
    year=num/10000;
    printf("year=%d\n",year);
    printf("month=%02d\n",mon);
    printf("date=%02d\n",day);
    return 0;
}

BC15 按照格式输入并交换输出

题目描述
输入两个整数,范围-231~231-1,交换两个数并输出。

输入描述:

输入只有一行,按照格式输入两个整数,范围,中间用“,”分隔。

输出描述:

把两个整数按格式输出,中间用“,”分隔。

示例1
输入

a=1,b=2

输出

a=2,b=1

备注:

如果格式控制串中有非格式字符则输入时也要输入该非格式字符。

#include
int main()
{
    int a=0,b=0,c=0;
    scanf("a=%d,b=%d",&a,&b);
    c=a;
    a=b;
    b=c;
    printf("a=%d,b=%d",a,b);
    return 0;
}

BC16 字符相应的ASCII码

题目描述
BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,输入一个字符,输出该字符相应的ASCII码。

输入描述:

一行,一个字符。

输出描述:

一行,输出输入字符对应的ASCII码。

示例1
输入

c

输出

99

#include
int main()
{
	char ch='0';
	scanf("%c", &ch);
	printf("%d\n", ch);
	return 0;
}

BC17 计算表达式的值

题目描述

请计算表达式“(-8+22)×a-10+c÷2”,其中,a = 40,c = 212。

输入描述:

无。

输出描述:

(-8+22)×a-10+c÷2计算之后的结果,为一个整数。

#include
int main()
{
    int a = 40,c = 212;
    printf("%d",(-8+22)*a-10+c/2);
    return 0;
}

BC18 计算带余除法

题目描述
给定两个整数a和b (-10,000 < a,b < 10,000),计算a除以b的整数商和余数。

输入描述:

一行,包括两个整数a和b,依次为被除数和除数(不为零),中间用空格隔开。

输出描述:

一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。

示例1
输入

15 2

输出

7 1

#include
int main()
{
    int a=0,b=0;
    scanf("%d %d",&a,&b);
    printf("%d ",a/b);
    printf("%d ",a%b);
    return 0;
}

BC19 反向输出一个四位数

题目描述
将一个四位数,反向输出。

输入描述:

一行,输入一个整数n(1000 <= n <= 9999)。

输出描述:

针对每组输入,反向输出对应四位数。
示例1

输入

1234

输出

4321

#include
int main()
{
    int a=0;
    int b,c,d,e;
    scanf("%d",&a);
    b=a%10;
    c=a/10%10;
    d=a/100%10;
    e=a/1000;
    printf("%04d",b*1000+c*100+d*10+e);
    return 0;
}

后面的题目 我抽空完善

你可能感兴趣的:(C语言入门学习,c语言)