初学者入门训练刷题篇——1
Posted 林慢慢i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学者入门训练刷题篇——1相关的知识,希望对你有一定的参考价值。
前言:该专题为编程入门级别,适合初学者,题目涉及编程基础语法,基本结构等,先来十道简单题试试手(选自牛客网编程入门题)。
文章目录
初学者入门练习题1:公务员面试
思路:先输入7个数,进行求和的同时需要找出最大和最小值,后续便于直接扣除。最终输出时小数点后保留两位,用"%.2f\\n"。
int main()
{
int i = 0;
int sum = 0;
int max = 0;
int min = 100;
int score = 0;
for (i = 0; i < 7; i++)
{
scanf("%d ", &score);
sum += score;
if (score > max)
max = score;
if (score < min)
min = score;
}
printf("%.2f\\n", (sum - min - max) / 5.0);
return 0;
}
初学者入门练习题2:上三角矩阵判定
思路:先输入n行n列的矩阵,然后判断矩阵的下三角部分是否全是0。
#include <stdio.h>
int main()
{
int n=0;
int flag=0;
int arr[10][10]={0};
int i=0;
int j=0;
scanf("%d ",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
{
if(arr[i][j]!=0)
flag=1;
}
}
if(flag==0)
printf("YES\\n");
else
printf("NO\\n");
return 0;
}
初学者入门练习题3:最高身高
思路:输入n行m列,找出最大的数,并输出这个数对应的n、m,但是要记得加一,因为数组是从0开始,方阵是从1开始的。
#include <stdio.h>
int main()
{
int m=0;
int n=0;
int x=0;
int y=0;
int i=0;
int j=0;
int arr[10][10]={0};
scanf("%d",&n);
scanf("%d",&m);
int max=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d ",&arr[i][j]);
if(max<arr[i][j])
{
max=arr[i][j];
x=i;
y=j;
}
}
}
printf("%d %d",x+1,y+1);
return 0;
}
初学者入门练习题4:台阶问题
思路:
因为走到第三个楼梯的时候可以从第一阶和第二阶直接走上来;
同理,第四个楼梯的时候可以从第二阶和第三阶直接走上来;
第五个楼梯的时候可以从第三阶和第四阶直接走上来;
… …所以可以得出公式
a[i]=a[i-1]+a[i-2]
其中有a[0]=0,a[1]=1,a[2]=2;
#include <stdio.h>
int main()
{
int a[31]={0};
int n=0;
int i=0;
a[0]=0;
a[1]=1;
a[2]=2;
scanf("%d ",&n);
for(i=3;i<=n;i++)
{
a[i]=a[i-1]+a[i-2];
}
printf("%d ",a[n]);
return 0;
}
初学者入门练习题5:缩短二进制
思路:输出时用下格式控制串即可。
格式控制串
"%d"表示以十进制整数形式输出
"%o"表示以八进制形式输出
"%x"表示以十六进制输出
"%X"表示以十六进制输出,并且将字母(A、B、C、D、E、F)换成大写
"%e"表示以科学计数法输出浮点数
“%E"表示以科学计数法输出浮点数,而且将e大写
“%f"表示以十进制浮点数输出,在”%f"之间加上”.n"表示输出时保留小数点后面n位printf可以使用使用格式控制串“%md”输出域宽为m的十进制整数。
float 对应%f
double 对应%lf
#include <stdio.h>
int main()
{
int a=0;
a=1234;
printf("0%o 0X%X",a,a);
return 0;
}
初学者入门练习题6:printf的返回值
思路:
本题考查printf函数的返回值,printf函数原型为int printf (char *format,args,···),返回值为输出的字符个数,如果出错则返回负数。
#include <stdio.h>
int main()
{
int n=0;
n=printf("Hello world!");
printf("\\n");//这个换行只能放这了!
printf("%d\\n",n);
return 0;
}
初学者入门练习题7:学生基本信息输入输出
思路:
重点要注意浮点数的输入,输出格式,输出中%f之间.n代表小数点后有n位。
- int scanf(const char *format, …) 函数从标准输入流 stdin 读取输入,并根据提供的 format 来浏览输入。
- int printf(const char *format, …) 函数把输出写入到标准输出流 stdout ,并根据提供的格式产生输出。
- format 可以是一个简单的常量字符串,但是您可以分别指定 %s、%d、%c、%f 等来输出或读取字符串、整数、字符或浮点数。还有许多其他可用的格式选项,可以根据需要使用。
#include <stdio.h>
int main()
{
int n = 0;
float x,y,z;
//scanf("%d ", &n);
scanf("%d;%f,%f,%f",&n,&x,&y,&z);
//printf("The each subject score of No.%d is %.2f, %.2f, %.2f.", n, x, y, z);
printf("The each subject score of No. %ld is %.2f, %.2f, %.2f.", n, x, y, z);
return 0;
}
初学者入门练习题8:计算一元二次方程
思路:多组输入用EOF判断,平方根用sqrt函数
#include <stdio.h>
int main() {
double a, b, c;
//循环读入a b c
while(scanf("%lf %lf %lf", &a, &b, &c) != EOF) {
//计算delta
double delta = b*b - 4*a*c;
//判断a为零的情况
if(a == 0.0) {
printf("Not quadratic equation\\n");
continue;
}
//delta小于0,则有两个虚数根
if(delta < 0.0) {
double x1 = -b / (2 * a);
double x2 = sqrt(-delta) / (2 * a);
printf("x1=%.2lf-%.2lfi;x2=%.2lf+%.2lfi\\n", x1, x2, x1, x2);
}
else if(delta == 0.0) { //delta等于0有重根
double x1 = (-b) / (2 * a);
printf("x1=x2=%.2lf\\n", x1, x1);
}
else { //否则有两个实数根
double x1 = (-b - sqrt(delta)) / (2 * a);
double x2 = (-b + sqrt(delta)) / (2 * a);
printf("x1=%.2lf;x2=%.2lf\\n", x1, x2);
}
}
return 0;
}
初学者入门练习题9:字符金字塔
解法一:直接输出
#include <stdio.h>
int main()
{
char n=0;
scanf("%c",&n);
printf(" %c \\n",n);
printf(" %c %c \\n",n,n);
printf(" %c %c %c \\n",n,n,n);
printf(" %c %c %c %c\\n",n,n,n,n);
printf("%c %c %c %c %c\\n",n,n,n,n,n);
return 0;
}
解法二:循环嵌套
int main()
{
char a;
int b;
int c;
int d;
int e;
scanf("%c", &a);
for (b = 5, c = 1; c <= b; c++)
{
for (d = 5 - c; d > 0; d--)
printf(" ");
for (e = 1; e <= c; e++)
printf("%c ", a);
printf("\\n");
}
return 0;
}
初学者入门练习题10:你能活几秒
这道题的知识点就是C的数据类型。
类型 | 存储大小 | 值范围 |
---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 |
unsigned char | 1 字节 | 0 到 255 |
signed char | 1 字节 | -128 到 127 |
int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
unsigned int | 2 或 4 字节 | 0 到 65,535 或 0 到 4,294,967,295 |
short | 2 字节 | -32,768 到 32,767 |
unsigned short | 2 字节 | 0 到 65,535 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字节 | 0 到 4,294,967,295 |
#include<stdio.h>
int main(){
long int age,second;//需用到长整型
scanf("%ld",&age);
second = age * 31560000 ;
printf("%ld",second);
return 0;
}
如果内容对你有帮助的话,记得给我三连(点赞、收藏、关注)——做个手有余香的人。
以上是关于初学者入门训练刷题篇——1的主要内容,如果未能解决你的问题,请参考以下文章