C语言程序设计题

基础程序设计题

1.计算圆周率近似值

/**
 * 计算圆周率的近似值,直到最后一项绝对值小于10的-6次方为止
 * PI=4*(1-1/3+1/5-1/7+1/9.....)
 */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    float pi = 0.0, t = 1.0, n = 1.0;
    while (1 / n >= 1e-6)
    {
        pi = pi + t * 1.0 / n;
        t = -1 * t;
        n = n + 2;
    }
    pi = pi * 4;
    printf("pi=%f\n", pi);
    system("pause");
    return 0;
}
#include <stdio.h>
#include<math.h>
#include <stdlib.h>
int main(){

    float a=0.0,b=1.0,t=1.0;
    for(int i=3;fabs(b)>1e-6;i+=2){
        a=a+b;
        t=-t;
        b=t/i;
    }
    printf("PI=%f",a*4);
    system("pause");
    return 0;
}

2.输入6个学生的5门成绩,求每个人的平均成绩

/**
 * 从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩
 */
#include <stdio.h>
#include <stdlib.h>
#define M 6
#define N 5

void input(double scores[][N], int row, int col);
void average(double scores[][N], int row, int col, double avgs[]);
void output(double avgs[], int size);
int main()
{
    double scores[M][N];
    double avgs[M];
    input(scores, M, N);
    average(scores, M, N, avgs);
    output(avgs, M);
    system("pause");
    return 0;
}
void input(double scores[][N], int row, int col)
{
    int i, j;
    printf("请输入%d个学生的%d门成绩,每个学生成绩在一行,以空格分割成绩:\n", row, col);
    for (i = 0; i < row; i++)
    {
        for (j = 0; j < col; j++)
        {
            scanf("%lf", &scores[i][j]);
        }
    }
}
void average(double scores[][N], int row, int col, double avgs[])
{
    int i, j;
    for (i = 0; i < row; i++)
    {
        avgs[i] = 0.0;
        for (j = 0; j < col; j++)
        {
            avgs[i] += scores[i][j];
        }
        avgs[i] /= col;
    }
}
void output(double avgs[], int size)
{
    int i;
    printf("%6s%10s\n", "序号", "平均成绩");
    printf("--------------\n");
    for (i = 0; i < size; i++)
    {
        printf("%6d%10.2lf\n", i + 1, avgs[i]);
    }
}

3.计算字符串s中最大连续相同的字符个数的函数

/**
 * 编写函数int maxSameChars(char *s);
 * 该函数计算字符串s中最大连续相同的字符个数
 */
#include <stdio.h>
#include <stdlib.h>

int maxSameChars(char *s);
int main()
{
    char s1[] = "aaadddd";
    printf("%d", maxSameChars(s1));
    system("pause");
    return 0;
}
int maxSameChars(char *s) // 相同字符出现个数
{
    int sum = 0;
    int max = 0;
    for (int i = 0; s[i] != '\0'; i++)
    {
        for (int j = 0; s[j] != '\0'; j++)
        {
            if ((int)s[i] == (int)s[j]) // 转型,比较各自对应的 int 值
            {
                sum++; // 相等时 sum++,记录每次循环对应字符出现的次数
            }
        }
        if (sum > max) //比较字符出现最多的次数与此次循环对应字符出现的次数
        {
            max = sum; // 记录字符串中字符出现最多的次数
        }
        sum = 0; // 每次循环对应字符出现的次数清0
    }
    return (max); // 返回结果
}

4.从键盘输入10个整数,以二进制形式输出到文件"outFile"中

/**
 * 从键盘输入10个整数,以二进制形式输出到文件outFile中
 */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    int num;
    // 打开文件
    fp = fopen("outFile.txt", "wb");
    printf("请输入10个整数:\n");
    for (int i = 0; i < 10; i++)
    {
        scanf("%d", &num);
        // 将整数以二进制形式输出到文件中
        fwrite(&num, sizeof(int), 1, fp);
    }
    // 关闭文件
    fclose(fp);
    printf("已将10个整数以二进制形式输出到文件.\n");
    system("pause");
    return 0;
}

5.输出一个浮点数整数部分的最右边

/**
 * 读取一个浮点数,然后显示其整数部分的最右边的数字
 * 例如:输入235.46,输出5
 */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    float num = 0.0;
    int int_part = 0;
    int int_right = 0;
    printf("请输入一个浮点数:\n");
    scanf("%f", &num);
    // 提取整数部分
    int_part = (int)num;
    // 提取最右边的数字
    int_right = int_part % 10;
    printf("整数部分最右边的数字为:%d\n", int_right);
    system("pause");
    return 0;
}

6.实现华氏温度与摄氏温度的转换按要求输出

/**
 * 华氏温度与摄氏温度的转换
 * 要求输出32度到212度每隔20度的摄氏温度
 */
#include <stdio.h>
#include <stdlib.h>

#define F_LOW 32
#define F_MAX 212
#define STEP 20

int main()
{
    typedef float REAL;
    REAL fahrenheit, celsius;

    fahrenheit = F_LOW;
    printf("华氏\t摄氏\n\n");
    while (fahrenheit <= F_MAX)
    {
        celsius = (fahrenheit - 32.0) / 1.8;
        printf("%4.1f    %4.1f\n", fahrenheit, celsius);
        fahrenheit += STEP;
    }
    system("pause");
    return 0;
}

7.计算欧拉数e的值,按要求输出

/**
 * 计算欧拉数e的值
 * 要求计算到项数值小于0.000001为止
 */
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char const *argv[])
{
    int n, k;
    double e, t, p;
    e = 1.0;
    n = 1;
    do
    {
        /* code */
        p = 1.0;
        for (k = 1; k <= n; k++)
        {
            p = p * k;
        }
        t = 1.0 / p;
        e = e + t;
        n++;

    } while (/* condition */ t >= 1e-6);
    printf("e=%lf\n", e);

    system("pause");
    return 0;
}

8.佛洛伊德三角(输入行数输出结果)

/**
 * 佛洛伊德三角形
 */
#include <stdio.h>
#include <stdlib.h>

int Sum(int n);
int main()
{
    int i = 0, j = 1, row = 0, n = 1, tmp = 0, count = 1;
    printf("请输入行数:>");
    scanf("%d", &row);
    int sum = Sum(row); // 计算结尾的数字
    for (i = 1; i <= sum; i++)
    {
        count = 1; // 每次循环好一遍后,使count=1,否则会出现下图所示的结果
        for (; count <= n; j++)
        {
            printf("%d   ", j);
            count++;
        }
        i = j; // 让i=j,否则会得不到想要的结果,反而会得到一个出乎意料的结果
        printf("\n");
        n++; // 记录行的变化
    }
    system("pause");
    return 0;
}

int Sum(int n)
{
    int i = 0, sum = 0; // 这里的sum=0很重要,否则算出来的答案就是错误的
    for (i = 1; i <= n; i++)
    {
        sum = sum + i;
    }
    return sum;
}

9.10座城市的12月中的日最高温度,键入城市和温度,输出温度最高和最低的城市和日期

/**
 * 10座城市的12月中的日最高温度,键入城市和温度,输出温度最高和最低的城市和日期
 */
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
    char *cities;
    char *max_tmp_city;
    char *min_tmp_city;
    int min_tmp_day = 0;
    int max_tmp_day = 0;
    int min_tmp = INT_MIN;
    int max_tmp = INT_MAX;

    int tmp = 0;
    for (int i = 0; i < 10; i++)
    {
        scanf("%s", &cities);
        for (int j = 0; i < 31; j++)
        {
            scanf("%d", &tmp);
            if (tmp > max_tmp)
            {
                max_tmp = tmp;
                max_tmp_city = cities;
                max_tmp_day = j + 1;
            }
            if (tmp < min_tmp)
            {
                min_tmp = tmp;
                min_tmp_city = cities;
                min_tmp_day = j + 1;
            }
        }
    }
    printf("max:%s,%d", max_tmp_city, max_tmp_day);
    printf("min:%s,%d", min_tmp_city, min_tmp_day);
    system("pause");
    return 0;
}

10.输出问句,接收一个答案如果答案正确退出程序,不正确提示再输入一次,三次答案仍不正确,显示答案停止运行

/**
 * 输出问句,接收一个答案如果答案正确退出程序,不正确提示
 * 再输入一次,三次答案仍不正确,显示答案停止运行
 */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char str2[100] = "马云";
    char str1[100];
    int i = 0;
    while (1)
    {
        printf("谁是阿里巴巴的创始人?\n");
        gets(str1);
        if (cmp(str1, str2) == 1)
        {
            printf("true");
            return 0;
        }
        else
        {
            printf("Try Again\n");
            i++;
        }
        if (i == 3)
        {
            printf("错误3次,答案是马云");
            return 0;
        }
    }
    system("pause");
    return 0;
}

int cmp(char *a, char *b)
{
    int i = 0;
    while (a[i] != "\0")
    {
        if (a[i] != b[i])
        {
            return 0;
            i++;
        }
        return 1;
    }
}

11.递归实现斐波那契数列,输入项数,输出数列

// 斐波那契数列:请输入项数,输出具体数列
#include<stdlib.h>
#include<stdio.h>
int fibonacii(int);
int main(){
    int num;
    scanf("%d",&num);
    printf("%d",fibonacii(num));
    system("pause");
    return 0;
}

//递归实现斐波那契数列
int fibonacii(int n){
    if(n==1||n==2){
        return 1;
    }
    return fibonacii(n-1)+fibonacii(n-2);
}

12.读取一个字符,统计字符在文件中出现的次数

/**
 * 12.读取一个字符,统计字符在文件中出现的次数
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char ch, temp;
    int sum = 0;
    FILE *fp = fopen("data.txt", "r");
    if (fp == NULL)
    {
        printf("data is not\n");
        exit(-1);
    }
    ch = getchar();
    while (!feof(fp))
    {
        fscanf(fp, "%c", &temp);
        if (temp == ch)
            sum++;
    }
    printf("the number of %c:%d", ch, sum);
    system("pause");
    return 0;
}

13.计算涨薪后的员工工资

/**
 * 计算员工的工资
 */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    float salary, sum;
    printf("请输入员工的原始工资\n");
    scanf("%f", &salary);
    if (salary < 0)
    {
        printf("输入有误\n");
    }
    else if (salary >= 1000)
    {
        sum = salary + salary * 0.2;
        printf("涨薪后的工资为:%f", sum);
    }
    else if (salary < 1000 && salary >= 500)
    {
        sum = salary + salary * 0.15;
        printf("涨薪后的工资为:%f", sum);
    }
    else if (salary < 500)
    {
        sum = salary + salary * 0.1;
        printf("涨薪后的工资为:%f", sum);
    }

    system("pause");
    return 0;
}

14.输入一门成绩,输出对应等级

/**
 *输入成绩,输出等级
 */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    float n = 0.0;
    printf("请输入一个成绩\n");
    scanf("%f", &n);
    int a = (int)n / 10;
    if (n >= 0 && n <= 100)
    {
        switch (a)
        {
        case 10:
        case 9:
            printf("等级为A\n");
            break;
        case 8:
            printf("等级为B\n");
            break;
        case 7:
            printf("等级为C\n");
            break;
        case 6:
            printf("等级为D\n");
            break;
        default:
            printf("等级为E\n");
            break;
        }
    }
    else
    {
        printf("无效成绩\n");
    }
    system("pause");
    return 0;
}

15.输入20位学生的姓名 成绩,按成绩从大到小输出

/**
 * 输入学生姓名成绩,按成绩大小排序输出
 */
#include <stdio.h>
#include <stdlib.h>
#define N 20

int compare();

struct student
{
    char name[20];
    int score;
} stu[N];

int main()
{
    // 输入学生信息
    for (int i = 0; i < N; i++)
    {
        printf("请输入第%d个学生的信息:", i + 1);
        scanf("%s %d", stu[i].name, &stu[i].score);
    }
    // 排序
    qsort(stu, N, sizeof(struct student), compare);

    // 输出
    printf("按成绩从大到小排序结果:\n");
    for (int i = 0; i < N; i++)
    {
        printf("%s %d\n", stu[i].name, stu[i].score);
    }

    system("pause");
    return 0;
}

int compare(const void *a, const void *b)
{
    struct student *sa = (struct student *)a;
    struct student *sb = (struct student *)b;
    if (sa->score > sb->score)
    {
        return -1;
    }
    else if (sa->score < sb->score)
    {
        return 1;
    }
    else if (sa->score == sb->score)
    {
        return 0;
    }
}
/**
 * 2
 */
#include <stdio.h>
#include <stdlib.h>
#define N 20
struct student
{
    char name[20];
    float score;
};
int main()
{
    struct student stu[N];
    struct student temp;
    int i, j, k;
    for (i = 0; i < N; i++)
    {
        printf("请输入第%d个学生的信息:",i+1);
        scanf("%s %f", stu[i].name, &stu[i].score);
    }
    for (i = 0; i < N - 1; i++)
    {
        k = i;
        for (j = i + 1; j < N; j++)
        {
            if (stu[j].score > stu[k].score)
            {
                k = j;
            }
            if (k != i)
            {
                temp = stu[k];
                stu[k] = stu[i];
                stu[i] = temp;
            }
        }
    }
    //输出
    printf("按从小到大的排列\n");
    for (i = 0; i < N; i++)
    {
        printf("%s %f", stu[i].name, stu[i].score);
        printf("\n");
    }
    system("pause");
    return 0;
}

16.编写一个判断素数的函数,输出2-1000的所有素数

/**
 *
 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 1001
int IsPrime();
int main()
{
    int s[N];
    printf("输出2-1000的所有素数\n");
    
    for (int i = 2; i < N; i++)
    {
        s[i] = i;
    }

    // 判断s[]是否为素数
    for (int i = 2; i < N; i++)
    {
        if (IsPrime(s[i]) == 1)
        {
            printf("%d", s[i]);
            printf("\n");
        }
    }
    system("pause");
    return 0;
}

// 如果返回1是素数
int IsPrime(int num)
{
    int flag = 0;
//num能完成所有循环就是素数
    for (int i = 2; i < num; i++)
    {
        if (num % i == 0)
        {
            flag++; // 素数个数加1
        }
    }

    if (flag == 0)
    {
        return 1;
    }
}

17.输入3个数,输出中间那个不大不小的数

/**
 * 输入三个整数,输出那个不大不小的数
 */

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int x, y, z;
    int max, min;
    int mid;
    printf("请输入三个整数\n");
    scanf("%d %d %d", &x, &y, &z);
    max = (x > y) ? x : y;
    max = (max > z) ? max : z;
    min = (x < y) ? x : y;
    min = (min < z) ? min : z;

    mid = x + y + z - min - max;
    printf("中间数是%d", mid);
    system("pause");
    return 0;
}

18.输入一个整数,输出用汉字表示

/**
 * 输入一个整数,求各位数字对应的汉字
 */
#include <stdio.h>
#include <stdlib.h>

void output();
int main()
{
    int n;
    printf("请输入一个整数\n");
    scanf("%d", &n);
    output(n);
    system("pause");
    return 0;
}
void output(int n)
{
    int a[10];
    int i = 0;
    while (n)
    {
        a[i++] = n % 10;
        n /= 10;
    }
    while (--i >= 0)
    {
        switch (a[i])
        {
        case 0:
            printf("零");
            break;
        case 1:
            printf("一");
            break;
        case 2:
            printf("二");
            break;
        case 3:
            printf("三");
            break;
        case 4:
            printf("四");
            break;
        case 5:
            printf("五");
            break;
        case 6:
            printf("六");
            break;
        case 7:
            printf("七");
            break;
        case 8:
            printf("八");
            break;
        case 9:
            printf("九");
            break;
        }
    }
    printf("\n");
}

19.输入一些数字(0-4),统计输入得到个数

/**
 * 输入一些0-4的数字,以-1结束,统计各个数字的个数
 */

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a, b, c, d, e, i, m;
    a = b = c = d = e = 0;
    i = 0;
    printf("输入一些0-4的数字,输入-1结束\n");
    while (1)
    {
        i++;
        if (i >= 100)
        {
            break;
        }
        printf("输入第%d个数:\n", i);
        scanf("%d", &m);
        if (m == -1)
        {
            break;
        }
        switch (m)
        {
        case 0:
            a++;
            break;
        case 1:
            b++;
            break;
        case 2:
            c++;
            break;
        case 3:
            d++;
            break;
        case 4:
            e++;
            break;
        default:
            printf("输入有误\n");
            break;
        }
    }
    printf("0的个数为%d,1的个数为%d,2的个数为%d,3的个数为%d,4的个数为%d", a, b, c, d, e);

    system("pause");
    return 0;
}
/**
 * 输入一些0-4的数字,以-1结束,统计各个数字的个数
 */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a, b, c, d, e;
    a = b = c = d = e = 0;
    int n[100];
    for (int i = 0; i < 100; i++)
    {
        printf("输入第%d个数", i + 1);
        scanf("%d", &n[i]);
        if (n[i] == -1)
        {
            break;
        }
    }
    for (int i = 0; i < 100; i++)
    {
        if (n[i] == 0)
            a++;
        if (n[i] == 1)
            b++;
        if (n[i] == 2)
            c++;
        if (n[i] == 3)
            d++;
        if (n[i] == 4)
            e++;
        if (n[i] == -1)
            break;
    }
    printf("0的个数是%d,1的个数是%d,2的个数是%d,3的个数是%d,4的个数是%d", a, b, c, d, e);

    system("pause");
    return 0;
}

20.将十进制数字转换为十六进制字符串,输出0-1024对应的十六进制字符串

/**
 * 将一个十进制的数转换为十六进制字符串
 */
#include <stdio.h>
#include <stdlib.h>

void decimalToHex(int d)
{
    int a[100];
    int i = 0;
    int m = 0;
    char hex[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    printf("%d", d);
    while (d > 0)
    {
        a[i++] = d % 16;
        d = d / 16;
    }
    printf("转化为十六进制后:");
    for (i = i - 1; i >= 0; i--)
    {
        m = a[i];
        printf("%c", hex[m]);
    }
    printf("\n");
}
int main()
{
    printf("0-1024十进制数对应的十六进制分别是\n");
    int count = 0;
    for (int i = 0; i < 1024; i++)
    {
        count++;
        decimalToHex(i);
        if (i % 10 == 0)
        {
            printf("\n");
        }
    }
    system("pause");
    return 0;
}

21.输入年月日,计算该日是该年的第几天

/**
 * 输入年月日,计算该日是该年的第几天
 */
#include <stdio.h>
#include <stdlib.h>
int dm();
int main()
{
    int day, year, month;
    printf("请输入年月日:\n");
    scanf("%d %d %d", &year, &month, &day);
    dm(year, month, day);
    system("pause");
    return 0;
}
int dm(int year, int month, int day)
{
    int flag = 0;

    if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
    {
        flag = 1;
    }
    else
    {
        flag = 0;
    }
    int a = 0;
    switch (month - 1)
    {
    case 11:
        a += 30;
    case 10:
        a += 31;
    case 9:
        a += 30;
    case 8:
        a += 31;
    case 7:
        a += 31;
    case 6:
        a += 30;
    case 5:
        a += 31;
    case 4:
        a += 30;
    case 3:
        a += 31;
    case 2:
        a += 28 + flag;
    case 1:
        a += 31;
        break;
    default:
        printf("Please input others\n");
    }
    a += day;
    printf("这是%d年第%d天.\n", year, a);
    return 0;
}

22.输入2个矩阵求和

/**
 * 输入两个三行三列矩阵,求两个矩阵的和
 */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int matrix1[3][3], matrix2[3][3], sum[3][3];
    int i, j;

    // 输入第一个矩阵
    printf("请输入第一个矩阵:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &matrix1[i][j]);
        }
    }

    // 输入第二个矩阵
    printf("请输入第二个矩阵:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &matrix2[i][j]);
        }
    }

    // 计算两个矩阵的和
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            sum[i][j] = matrix1[i][j] + matrix2[i][j];
        }
    }

    // 输出结果
    printf("两个矩阵的和为:\n");
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            printf("%d ", sum[i][j]);
        }
        printf("\n");
    }
    system("pause");
    return 0;
}

23.输入一个矩阵,输出矩阵的转置

#include <stdio.h>
#include <stdlib.h>

#define ROWS 3 // 定义矩阵行数
#define COLS 4 // 定义矩阵列数

int main()
{
    int a[ROWS][COLS]; // 定义一个 ROWS 行 COLS 列的矩阵
    int i, j;

    // 读入矩阵元素
    printf("请输入矩阵元素:\n");
    for (i = 0; i < ROWS; i++)
    {
        for (j = 0; j < COLS; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }

    // 转置矩阵
    printf("转置后的矩阵:\n");
    for (i = 0; i < COLS; i++)
    {
        for (j = 0; j < ROWS; j++)
        {
            printf("%d ", a[j][i]);
        }
        printf("\n");
    }
    system("pause");

    return 0;
}

24.输出某范围内能同时被2个数整除的一批数,并规定打印格式

/**
 * 打印100-1000之间能被7整除的数又能被5整除,每行打印5个数
*/
#include<stdio.h>
#include<stdlib.h>

int main()
{
    int count = 0;
    for (int i = 100; i <= 1000; i++)
    {
        if (i % 5 == 0 && i % 7 == 0)
        {
            printf("%d ", i);
            count++;
            if (count % 5 == 0)
            {
                printf("\n");
            }
        }
    }
    system("pause");
    return 0;
}

25.计算按照折扣信息后应付的金额

/**
 * 计算折扣后的价格
*/
#include <stdio.h>
#include <stdlib.h>

float conter(float n, int t);
int main()
{
    float a = 0.0;
    float money;
    int t;
    printf("请输入顾客的购买金额,机加工用数字1,手工制品用数字2,用空格隔开\n");
    scanf("%f %d", &a, &t);
    money = conter(a, t);
    printf("顾客的应付金额为%f\n", money);
    system("pause");
    return 0;
}

float conter(float n, int t)
{
    float a;
    if (n >= 0 && n <= 100)
    {
        if (t == 1)
        {
            a = n;
        }
        else if (t == 2)
        {
            a = n - (n * 0.05);
        }
    }

    if (n >= 101 && n <= 200)
    {
        if (t == 1)
        {
            a = n - (n * 0.05);
        }
        else if (t == 2)
        {
            a = n - (n * 0.075);
        }
    }

    if (n >= 201 && n <= 300)
    {
        if (t == 1)
        {
            a = n - (n * 0.075);
        }
        else if (t == 2)
        {
            a = n - (n * 0.1);
        }
    }

    if (n > 300)
    {
        if (t == 1)
        {
            a = n - (n * 0.1);
        }
        else if (t == 2)
        {
            a = n - (n * 0.15);
        }
    }
    return a;
}

26.按要求输出星号打印出等腰三角形

/**
 打印:
    *
   ***
  *****
 *******
 */
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, j, k, n = 4;//n是行数,可改为变量控制等腰三角形高度
    for (i = 1; i <= n; i++)
    {
        for (k = 1; k <= n - i; k++)//控制空格
        {
            printf(" ");
        }
        for (j = 1; j <= 2 * i - 1; j++)//控制*数
        {
            printf("*");
        }
        printf("\n");
    }

    system("pause");
    return 0;
}

27.逆序输出整数

/**
 * 逆序输出整数
 */
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n, x;
    printf("请输入一段整数\n");
    scanf("%d", &n);
    printf("逆序输出后为:\n");

    while (n > 0)
    {
        x = n % 10;
        printf("%d", x);
        n = n / 10;
    }
    system("pause");
    return 0;
}

28.100-200的素数个数

/**
 * 统计100-200之间的素数个数
 */
#include <stdio.h>
#include <stdlib.h>

int isPrime(int n);
int main()
{
    int i, p = 0;
    for (i = 100; i <= 200; i++)
    {
        if (isPrime(i) == 1)
        {
            printf("%d是素数\n", i);
            p++;
        }
    }
    printf("素数个数是%d", p);
    system("pause");
    return 0;
}

int isPrime(int n)
{
    int flag = 0;
    // n能完成所有循环就是素数
    for (int i = 2; i < n; i++)
    {
        if (n % i == 0)
        {
            flag++;
        }
    }

    if (flag == 0)
    {
        return 1; // 是素数
    }
}

29.读取文件中的字符,统计小写字母个数

/**
 * 从文件a.txt中读取字符,并统计小写字母的个数。
 */
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char ch;
    int num = 0;
    FILE *fp = fopen("data.txt", "r");
    if (fp == NULL)
    {
        printf("data is not\n");
        return 1;
    }
    while ((ch = fgetc(fp)) != EOF)
    {
        if (ch >= 'a' && ch <= 'z')
        {
            num++;
        }
    }
    fclose(fp);
    printf("小写字母个数为:%d\n", num);
    system("pause");
    return 0;
}

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
说明:答案必须填写在答卡的相应位置上,否则不得分。 1.C语言中字符型(char)数据在内存中的存储形式是________。 A、原码 B、反码 C、补码 D、ASCII码 2.C语言中基本的数据类型包括________。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、 整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 3.在C语言中,int类型数据在内存中占用________。 A、2字节 B、4字节 C、由编译系统决定 D、由用户决定 4.运算符有优先级,C语言中关于运算符优先级的正确叙述是________。 A、逻辑运算符高于算术运算符,算术运算符高于关系运算符; B、算术运算符高于关系运算符,关系运算符高于逻辑运算符; C、算术运算符高于逻辑运算符,逻辑运算符高于关系运算符; D、关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。 5.下面关于C语言语句的叙述,错误的是________。 A、C语言一行可以允许写多条语句; B、C语言语句用分号结束; C、语句一行写不下时,可以用逗号换行 ; D、语句一行写不下时,可在任意一空格处回车换行 。 6.下面数据中不属于字符型常量的是________。 A、“\n” B、‘\0’ C、‘A’ D、‘\t’ 7.11.以下选项中,当x为大于1的奇数时,值为0的表达式__________ 。 A、 x%2==1 B、 x/2 C、x%2!=0 D、x%2==0 8.C语言源程序名的后缀是__________ 。 A 、 .exe B、 .C C、 .obj D、 .cp 9.设所有变量均为int型,则表达式(a=5,b=2,b++,a-b)的值是________。 A、7 B、8 C、6 D、2 10.若有说明语句:int a;float b;,以下输入语句正确的是________。 A、scanf("%f%f",&a,&b); B、scanf("%f%d",&a,&b); C、scanf("%d,%f",&a,&b); D、scanf("%6.2f%6.2f",&a,&b);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值