目录
这篇文章就是带大家在牛客的题库之中寻找到一些C/C++语言基础题目来进行讲解,所有本篇将对新手非常的友好,也可以对C/C++知识起到一个很好的复习作用。可能题目会比较简单,但我相信随着题库的加深,后面肯定会出现一些有难度的题目的。
题目描述
第一题非常简单,你只需要按照样例输出一样的一句话就好了,注意大小写要一样哦
输入描述:
没有输入
输出描述:
输出hello nowcoder
这道题目考察的知识点就是我们在学习C/C++时所学习的printf或者cout的使用方法。
printf()函数的调用格式为: printf("<格式化字符串>", <参量表>) ;
cout的调用格式为:cout<<表达式1<<表达式2<<……<<表达式n ;
C语言:
- #include
-
- int main()
- {
- printf("hello nowcoder\n") ;
- }
C++:
- #include
-
- using namespace std ;
-
- int main()
- {
- cout << "hello nowcoder" << endl ;
- return 0 ;
- }
题目描述
牛牛刚刚出生,嗷嗷待哺,一开始他只能学说简单的数字,你跟他说一个整数,他立刻就能学会。
输入一个整数,输出这个整数。
输入描述:
输入一个整数,范围在32位有符号整数范围内
输出描述:
输出这个整数
示例1
输入
3
输出
3
这道题就是考察了我们输入输出运算符(printf,scanf以及cout,cin)的题目了;
由于前面以及讲过了输出符使用方法,所以现在讲解下输入符使用方法:
scanf() 函数的声明 : int scanf(const char *format, ...)
cin的调用格式为 :cin>>表达式1>>表达式2>>……>>表达式n ;
C语言:
- #include
-
- int main()
- {
- int i ;
- scanf("%d",&i) ;
-
- printf("%d",i) ;
- return 0;
- }
C++:
- #include
-
- using namespace std ;
-
- int main()
- {
- int n ;
- cin >> n ;
- cout << n << endl ;
-
- return 0 ;
- }
会说整数之后,牛牛开始尝试浮点数(小数)
输入一个浮点数,输出这个浮点数。
输入描述:
输入一个浮点数
输出描述:
输出一个浮点数,保留三位小数
示例1
输入
1.359578
输出
1.360
这道题目考察的是浮点数:float和double
其中
当中“%f”是浮点数float的格式输入,double的格式输入是“%lf”
当中的“.3f”是保留三位小数,如果保留两位小数就是“.2f”
C语言:
- #include
-
- int main()
- {
- float a;
- scanf("%f",&a);
- printf("%.3f",a);
- return 0 ;
- }
C++:
- #include
-
- using namespace std ;
-
- int main()
- {
- double a ;
- cin >> a ;
- printf("%.3lf",a) ;
- return 0 ;
- }
给你两个整数,要求输出这两个整数的和
输入描述:
输入两个整数 a, b (0 <= a, b <= 1000)
输出描述:
输出一个整数.
示例1
输入
1 2
输出
3
这道题就是考察我们加号运算符的使用方法。
+ 把两个操作数相加 使用方法:A+B 。
C语言:
- #include
-
- int main()
- {
- int a, b ;
- scanf("%d%d",&a,&b) ;
- printf("%d\n", a+b) ;
- return 0 ;
- }
C++:
- #include
-
- using namespace std ;
-
- int main()
- {
- int a, b ;
- cin >> a >> b ;
- cout << a+b << endl ;
-
- return 0 ;
- }
题目描述
输入两个整数a, b, 输出a/b的值,只保留整数部分
输入描述:
输入两个整数,在int范围内
输出描述:
输出一个整数
示例1
输入
5 2
输出
2
题目很简单就是考察了我们“ / ”的使用方法,即:a÷b = a/b ;
C语言:
- #include
-
- int main()
- {
- int a, b ;
- scanf("%d%d", &a, &b) ;
- int c = a/b ;
-
- printf("%d\n",c) ;
-
- return 0 ;
-
- }
C++:
- #include
-
- using namespace std ;
-
- int main()
- {
- int a, b ;
- cin >> a >> b ;
-
- cout << a/b << endl ;
-
- return 0 ;
- }
题目描述
输入两个整数a, b, 输出a 除以b的余数,5除以2的余数为1,10除以4的余数为2
输入描述:
输入两个整数,在int范围内
输出描述:
输出一个整数
示例1
输入
5 2
输出
1
这道题目考察了“ % ”的使用方法:
取余运算符,作用于两个整型数(正整数、负整数),运算结果是两数相除后的余数,运算结果为整数。要求:运算结果正负号与被除数符号一致并且被除数小于除数时,运算结果等于被除数。
C语言:
- #include
-
- int main()
- {
- int a, b ;
- scanf("%d%d",&a, &b) ;
- int c = a%b ;
-
- printf("%d\n",c) ;
-
- return 0 ;
- }
C++:
- #include
-
- using namespace std ;
-
- int main()
- {
- int a, b ;
- cin >> a >> b ;
- cout << a%b << endl ;
- return 0 ;
- }
题目描述
输入一个整数a, 求个位数
输入描述:
输入一个整数,在int范围内
输出描述:
输出一个整数
示例1
输入
102
输出
2
这道题目就稍微有点意思啦,题目问的是个位数,我们就要想,怎么才能算到个位数,这时我们发现,一个整数他对10去取余,取余的结果就是这个数的个位数了,那么同理可得,如果我们对100去进行取余,那么我们将得到后两位数了。
C语言:
- #include
-
- int main ()
- {
- int a, b ;
- scanf("%d",&a) ;
- b=a%10 ;
- printf("%d",b) ;
- }
C++:
- #include
-
- using namespace std ;
-
- int main ()
- {
- int a, b ;
- cin >> a ;
- b=a%10 ;
- cout << b << endl ;
- }
题目描述
输入一个整数,求其十位数
输入描述:
输入一个整数,在int范围内
输出描述:
输出一个整数
示例1
输入
123
输出
2
根据上一题我们讲到的,一个数%10得到的是个位,那么我们如果想得到十位应该怎么办呢?这时我们就应该想着如何去退位,也就是除以10,我们没除一个10我们的总位数就退一位,这样我们就可以去求得十位了。
C语言:
- #include
-
- int main()
- {
- int a;
- scanf("%d",&a);
- printf("%d",a/10%10);
- return 0;
- }
C++:
- #include
-
- using namespace std ;
-
- int main()
- {
- int a ;
- cin >> a ;
- cout << a/10%10 << endl ;
- return 0 ;
- }
题目描述
输入两个整数a, b, 输出a除以b的值,保留三位小数
输入描述:
输入两个整数,在int范围内
输出描述:
输出一个浮点数,保留三位小数
示例1
输入
5 2
输出
2.500
在这到题目中我们将用到强制转换的知识,我们在编程的时候可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,其使用方法如下:
(type_name) expression
这时我们只需创建两个整形的变量,在最后输出时用强制转换去转换为float类型即可。
C语言:
- #include
-
- int main()
- {
- int a , b ;
- scanf("%d%d",&a, &b) ;
- printf("%.3f",(float)a/b) ;
-
- return 0 ;
- }
C++:
- #include
-
- using namespace std;
-
- int main()
- {
- int a , b ;
- cin >> a >> b ;
- printf("%.3f",(float)a/b) ;
-
- return 0 ;
- }
题目描述
输入三个数,反序输出这三个数。
输入描述:
输入三个整数a, b , c 以空格隔开 0<=a,b,c<=231−10 <= a, b,c <= 2^{31}-10<=a,b,c<=231−1
输出描述:
输出一行,三个整数,以空格隔开
示例1
输入
2 6 9
输出
9 6 2
在这里,这道题目我提出两个思路,第一个就是直接创建三个变量,将三个变量输入与输出顺序反过来即可;第二个就是创建一个数组,利用for循环去写,先从前往后去储存,然后从后往前去输出。这两种方法都可以解决这个问题 。
C语言
方法一:
- #include
-
- int main()
- {
- int a, b, c ;
- scanf("%d%d%d",&a,&b,&c) ;
-
- printf("%d %d %d\n",c,b,a) ;
-
- return 0 ;
- }
方法二:
- #include
-
- int main()
- {
- int a[10] ;
- int i ;
- for(i=0; i<3; i++)
- {
- scanf("%d",&a[i]) ;
- }
-
- for(int i=2; i>=0; i--)
- {
- printf("%d ", a[i]) ;
- }
- printf("\n") ;
-
- return 0 ;
- }
C++
思路一:
- #include
-
- using namespace std ;
-
- int main()
- {
- int a, b, c ;
- cin >> a >> b >> c ;
- cout << c << " " << b << " " << a << endl ;
-
- return 0 ;
- }
思路二:
- #include
-
- using namespace std ;
-
- int main()
- {
- int a[10] ;
-
- for(int i=0; i<3; i++)
- {
- cin >> a[i] ;
- }
-
- for(int i=2; i>=0; i--)
- {
- cout << a[i] << " " ;
- }
- cout << endl ;
- return 0 ;
- }