当前位置:   article > 正文

C#入门练习题(1-7例)_c#练习题

c#练习题

C语言练习题

1.矩形的面积与周长

对于一个给定长和宽的矩形,输出它的周长和面积。

输入格式

你的程序将会接受一组由空格分隔开的整数,表示矩形的长和矩形的宽(长和宽均大于 0,小于等于 1000)。

输出格式

  • 输出第一行是这个矩形的周长。
  • 输出的第二行是这个矩形的面积。
  • 请注意不要多输出任何要求之外的内容。

习题目的

  • 练习使用 scanf
  • 练习基本运算
  • 练习使用 printf

小贴士

虽然程序将会接受的一组整数是由空格分隔开的,我们无需在 scanf 中将描述输入格式的第一个参数写成 "%d %d" 或者 "%d %d\n",而只需要写 "%d%d" 即可。这是因为 scanf 在处理输入时,如果格式占位符不是用于读入单个字符的 %c,它就会将空白字符(空格符、制表符和换行符)都视为一次输入的终止标记。

例如,当我们输入形如 3 5 这样的输入时,"%d%d" 会先用第一个 %d 匹配到 3,遭遇到一个空白字符(空格符)后,第二个 %d 会再匹配到 5,完成两个数字的读入。如果,我们的输入不是 3 5 而是先输入 3,回车后再输入 5,最终完成的输入效果也会是一样的(因为回车带来的换行符 \n 也是一个等效的空白字符)。

样例输入1

3 4
  • 1

样例输出1

14
12
  • 1
  • 2

样例输入2

4 12
  • 1

样例输出2

32
48
  • 1
  • 2
完整代码:
#include <stdio.h>
int main() {
int a, b, C, S;
    scanf("%d %d\n", &a, &b);
    C  =  (a + b)*2;
    S  = a * b;
    printf("%d\n%d\n", C, S);

    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2.三角形的面积与周长

对于一个给定底和高的直角三角形,输出它的周长和面积。

提示:根据我们中学学习过的知识,直角三角形周长是两条直角边的长度 a, ,b 加一条斜边的长度 c,斜边的长度 c 可以由勾股定理计算获得:
c 2 = a 2 + b 2 c^2=a^2+b^2 c2=a2+b2

输入格式

你的程序将会接受一组由空格分隔开的实数,表示直角三角形的底和高(底和高均是大于 0.0,小于等于 1000.0 的实数)。

输出格式

  • 输出第一行是这个直角三角形的周长,保留小数点后 2 位数字(四舍五入)。
  • 输出的第二行是这个直角三角形的面积,保留小数点后 2 位数字(四舍五入)。
  • 请注意不要多输出任何要求之外的内容。

习题目的

  • 练习使用 double 类型的变量确保计算精度
  • 练习使用 math.h 引入数学库,并使用平方根函数 sqrt 和勾股定理完成斜边长计算
  • 尝试使用 "%lf %lf" 作为 scanf 的第一个参数,浮点数变量获取值的占位符
  • 尝试使用 "%.2f\n" 作为 printf 的第一个参数,确保输出的数字保留小数点后 2 位数字

样例输入1

3.0 4.0
  • 1

样例输出1

12.00
6.00
  • 1
  • 2

样例输入2

5.0 7.0
  • 1

样例输出2

20.60
17.50
  • 1
  • 2
完整代码:
#include <stdio.h>
#include<math.h>
int main() {
    double a, b, c, C, S;
    scanf("%lf %lf",&a, &b);
    c = sqrt(a * a + b * b);
    C = a + b + c;
    S = (a * b)/2;
    printf("%.2f\n%.2f", C, S);
    

    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3.圆形的面积与周长

对于一个给定的半径 r,计算对应圆的周长和面积。在计算过程中,π 的值请近似地取 3.14159。

提示 1:圆的周长公式是
2 ∗ π ∗ r 2*π*r 2πr
提示 2:圆的面积公式是
∗ π ∗ r 2 *π*r^2 πr2
输入格式

你的程序将会接受一个实数,表示圆的半径(半径是大于 0.0,小于等于 1000.0 的实数)。

输出格式

  • 输出第一行是这个圆的周长,保留小数点后 3 位数字(四舍五入)。
  • 输出的第二行是这个圆的面积,保留小数点后 3 位数字(四舍五入)。
  • 请注意不要多输出任何要求之外的内容。

习题目的

  • 复习 #define 宏替换
  • 输入、输出浮点数
  • 尝试使用 "%.3f\n" 作为 printf 的第一个参数,确保输出的数字保留小数点后 3 位数字

样例输入1

3.4
  • 1

样例输出1

21.363
36.317
  • 1
  • 2

样例输入2

6.0
  • 1

样例输出2

37.699
113.097
  • 1
  • 2
完整代码:
#include <stdio.h>
#define PI 3.14159
int main() {
 double r, C, S;
    scanf("%lf\n", &r);
    C = 2 * r * PI;
    S =  PI * r * r;
    printf("%.3f\n%.3f\n", C, S);
    
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

4.N阶数字

(1.N阶数字正方形

对于给定的整数 n。输出一个 n 行数字,n* 行数字中的第 ii 行包含 n 个由空格隔开的整数 i(1≤in)。

提示:请注意每行的末尾不要有多余的空格。

输入格式

你的程序将会接受一个整数,表示 n(0<n≤30)。

输出格式

  • 输出 n行数字
  • 对于 n行数字中的第 i 行包含 n个由空格隔开的整数 i

习题目的

  • 练习使用循环
  • 练习循环嵌套
  • 练习使用 if 控制行尾是否输出空格

样例输入1

1
  • 1

样例输出1

1
  • 1

样例输入2

3
  • 1

样例输出2

1 1 1
2 2 2
3 3 3
  • 1
  • 2
  • 3
完整代码:
#include <stdio.h>
int main() {
     int n;  
    int i, j;   
    int c; /* i value and number of row and column, j value in row */  
    scanf("%d", &n);  
    for (i = 1; i <= n; i++)  
    {  
        printf("%d", i);  
        for (j = i,c = 1; c < n; c++)  
        {  
            if (c <= n-1)  
            {  
                printf(" ");  
            }  
            printf("%d",j);  
        }  
        if (i <= n-1)  
        {  
            printf("\n");  
        }  
    }  
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
(2.N阶数字三角形

给定一个整数 n。输出一个 n 行数字,n 行数字中的第 i 行包含 ni*+1 个由空格隔开的整数 i*( 1≤in)。

提示:请注意每行的末尾不要有多余的空格。

输入格式

你的程序将会接受一个整数,表示 n*(0 <*n≤30)。

输出格式

  • 输出 n 行数字
  • 对于 n* 行数字中的第 ii 行包含 n - i + 1 个由空格隔开的整数 i*(1≤i≤*n)
  • 如果对输出格式理解有一定困难,请参考样例输出

习题目的

  • 练习使用循环
  • 练习循环嵌套
  • 练习使用 if 控制行尾是否输出空格

​ 样例输入1

2
  • 1

样例输出1

1 1
2
  • 1
  • 2

样例输入2

4
  • 1

样例输出2

1 1 1 1
2 2 2
3 3
4
  • 1
  • 2
  • 3
  • 4
完整代码:
#include <stdio.h>
int main() {
    int n, c;
    int i, j;
    
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        printf("%d", i);
        for (j = i, c = n - i; c > 0; c--)
        {
            if (i < n)
            {
                printf(" ");
            }            
            printf("%d", j);                      
        }
        if (i < n)
            {
                printf("\n");
            }
    }

    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
(3.N阶数字递减三角形

给定一个整数 n。输出一个 n 行数字,n行数字中的第 i行包含 n - i + 1个由空格隔开的整数,其中第一个数为 n - i + 1,之后每一个数都比前一个数小 1(1 ≤i≤n)。

提示:请注意每行的末尾不要有多余的空格。

输入格式

你的程序将会接受一个整数,表示 n(0 <n≤30)。

输出格式

  • 输出一个 n* 行数字
  • n 行数字中的第 ii 行包含 n - i + 1 个由空格隔开的整数(1 ≤in
  • 每行第一个数为 n - i + 1,之后每一个数都比前一个数小 1(1≤in
  • 如果对输出格式理解有一定困难,请参考样例输出

习题目的

  • 练习使用循环
  • 练习循环嵌套
  • 练习使用 if 控制行尾是否输出空格

样例输入1

2
  • 1

样例输出1

2 1
1
  • 1
  • 2

样例输入2

4
  • 1

样例输出2

4 3 2 1
3 2 1
2 1
1
  • 1
  • 2
  • 3
  • 4
完整代码:
#include <stdio.h>
int main() {
    int n;
    int i, j;
    scanf("%d", &n);
    for (i = n; i > 0; i--) {
        printf("%d", i);
        if (i > 1) {
            printf(" ");
        }
        for (j = i-1; j > 0; j--){
            printf("%d", j);
            if (j > 1)  {
                printf(" ");
            }
        }
        if (j = 1){
            printf("\n");
        }
    }

    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

5.乘法表

通过使用两层循环,我们可以打出小学时候就曾经背过的乘法表。这一节,你需要独立输出一个 N×N的乘法表。

例如当 N = 3时,你需要输出一个3×3 的乘法表:

1*1=1   1*2=2   1*3=3
2*2=4   2*3=6
3*3=9
  • 1
  • 2
  • 3

输入格式

测评机会反复运行你的程序。每次程序运行时,你的程序仅需输入一个正整数 N(可以确定测评机输入的 N 小于 40),用于描述你需要输出的乘法表的规模。

输出格式

输出为题目描述中的乘法表,包括 N 行。其中第 r 行(r≥1)应该有 N−(r−1) 个乘法等式,每两个乘法等式之间用一个制表符\t分隔,最后一个等式后面不需要输出制表符\t。请注意,每一个乘法等式的*之前的数字应与行号 r 相同。

习题目的

  • 练习使用循环
  • 练习循环嵌套
  • 练习使用 if 控制行尾是否输出空格

样例输入1

2
  • 1

样例输出1

1*1=1   1*2=2
2*2=4
  • 1
  • 2

样例输入2

3
  • 1

样例输出2

1*1=1   1*2=2   1*3=3
2*2=4   2*3=6
3*3=9
  • 1
  • 2
  • 3
完整代码:
#include <stdio.h>
int main() {
int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        for(int j=i;j<=n;j++){
            printf("%d*%d=%d",i,j,i*j);
            if(j!=n){
                printf("\t");
            }
        }
        printf("\n");
    }
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

6.字符计数

在 30 个字符组成的一行输入中包括了大写字母、小写字母、数字和空格(值包含``,不包含\t一类的字符)。我们通过循环将这 30 个字符读入了循环,并将读入的 30 个字符传入了无需返回值的四个函数。

请完成这四个函数,分别在四个函数中输出 30 个字符中的大写字母(upper_case_count 函数)、小写字母(lower_case_count 函数)、数字(digit_count)和空格(space_count)。

输入格式

你的程序将需要接受一行字符输入,输入为大写字母、小写字母、数字和空格组成的共 30 个字符。

输出格式

  • 每个函数中均按照要求输出该种字符的总数并换行
  • 主函数已经完成的部分会保证最终输出的顺序为大写字母数、小写字母数、数字数、空格数

习题目的

  • 练习对字符的操作和使用
  • 练习使用 if,结合查询的 ASCII 码学会判断字符类型
  • 练习自定义函数的实现,强化对自定义函数调用的理解
  • 从给出的代码中学习数组做函数参数的传参方式

样例输入

1728SHr29 kselEs 28Jr8S919dKrz
  • 1

样例输出

6
10
12
2
  • 1
  • 2
  • 3
  • 4
完整代码:
#include <stdio.h>
void upper_case_count(char arr[31]) {
    // 请在下面实现统计并输出大写字母个数的功能
    int t = 0;
    for(int i = 0; i < 30; i++) {
        if(arr[i] >= 'A' && arr[i] <= 'Z') {
            t++;
        }
    }
    printf("%d\n", t);
}
void lower_case_count(char arr[31]) {
    // 请在下面实现统计并输出小写字母个数的功能
    int t = 0;
    for(int i = 0; i < 30; i++) {
        if(arr[i] >= 'a' && arr[i] <= 'z') {
            t++;
        }
    }
    printf("%d\n", t);

}
void digit_count(char arr[31]) {
    // 请在下面实现统计并输出数字个数的功能
    int t = 0;
    for(int i = 0; i < 30; i++) {
        if(arr[i] >= '0' && arr[i] <= '9') {
            t++;
        }
    }
    printf("%d\n", t);

}
void space_count(char arr[31]) {
    // 请在下面实现统计并输出空格个数的功能
    int t = 0;
    for(int i = 0; i < 30; i++) {
        if(arr[i] == ' ') {
            t++;
        }
    }
    printf("%d\n", t);

}
int main() {
    char string[31];
    int i;
     i = 0;
     for(i = 0; i < 30; i++) {
        scanf("%c", &string[i]);
        }
    
    upper_case_count(string);
    lower_case_count(string);
    digit_count(string);
    space_count(string);
    return 0;
    
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

7.最大公约数与最小公倍数

我们学习了函数和函数的递归调用后,我们可以用它们来实现一个求两个整数最大公因数和最小公倍数的程序。

我们都知道,对于两个整数 n,m,它的最大公因数 gcd(n,m) 是 nn 和 mm 最大的公共因数。我们可以通过 辗转相除法 的方式将它求出。

而最小公倍数 lcm(n,m) 则是 nm 的公共倍数中最小的数。可以通过下面的式子求出:
l c m ( n , m ) = ( n ∗ m ) / g c d ( n , m ) lcm(n,m)=(n*m)/gcd(n,m) lcm(n,m)=(nm)/gcd(n,m)
在这里,你完成的程序将被输入两个正整数 nm(你可以认为测评机给出的 nm 均小于 1000),程序需要求出 nm 最大公因数和最小公倍数,并把它们输出出来。

输入格式

测评机会反复运行你的程序。每次程序运行时,输入为一行,包括一组被空格分隔开的符合描述的正整数 mn

输出格式

输出为两行,每行为一个数字。第一行为 nm 的最大公因数,第二行为 n* 和 m 的最小公倍数。

习题目的

  • 练习函数定义
  • 练习函数嵌套调用
  • 练习函数递归调用

样例输入1

12 33
  • 1

样例输出1

3
132
  • 1
  • 2

样例输入2

131 7
  • 1

样例输出2

1
917
  • 1
  • 2
完整代码:
#include <stdio.h>
int gcd(int n, int m);
int lcm(int n, int m);
int main() {
    int n, m;
    scanf("%d%d", &n, &m);  
    printf("%d\n", gcd(n, m));
    printf("%d\n", lcm(n, m));
    return 0;
}
int gcd(int n, int m) {
    if (m <= n) {
    // 请在这里继续完成 gcd 函数
    int c = 1;
        while( c ){
            c = n % m;
            n = m;
            m = c;
        }
        return n;
    } else {
        return gcd(m, n);
    }
}
int lcm(int n, int m) {
// 请在这里继续完成 lcm 函数
int c = 0;
		for (c = n;; c++)
		{
			if ((c%n == 0) && (c%m == 0))
			{
				break;
			}
		}
		return c;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/40331
推荐阅读
相关标签
  

闽ICP备14008679号