C语言控制流练习题

当用户输入5的时候,使用嵌套循环产生下列图案(5行美元符号,每行递增一个字符

#include<stdio.h>
int main(void)
{
  int line;//输入行数
  scanf("%d",&line);
  int i;
  for(i=1;i<=line;i++)//从每行开始打印
  {
      for(int j=1;j<=i;j++)//每一行需要打印数
      {
          printf("$");
      }
      printf("\n");
  }
  return 0;
}

1、编写一个程序,要求用相应的控制流语句往屏幕打印26个小写字母。

#include <stdio.h>

int main(int argc, char const *argv[])
{
    char ch='a';
    for(int i=0;i<26;i++){
        printf("%c ",ch);
        ch++;
    }
    printf("\n");
    return 0;
}

2、编写一个程序,用户输入某个大写字母,产生一个金字塔图案。例如用户输入字母 E,则产生如下图案:

#include <stdio.h>

int main(int argc, char const *argv[])
{
    char ch;
    scanf("%c", &ch);
    int line =ch -'A' +1;//获取输入的行数
    for(int i=1;i<=line;i++){
        for(int j=0;j<line-i;j++){//打印前面空格
            printf(" ");
        }
        for(int j=0;j<i;j++){
            printf("%c",'A'+j);//打印升序字母
        }
        if(i>1){
            for(int j=i-2;j>=0;j--){
                printf("%c",'A'+j);//打印降序字母
            }
        }
        printf("\n");
    }
    return 0;
}

3、编写一个程序,该程序读取输入直到遇到#字符,然后报告读取的空格数目、读取的换行符数目以及读的所有其他字符数目。

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int  space =0;//空格数量
    int line =0;//换行数量
    int bigletter =0;//大写字母数量
    int smallletter =0;//小写字母数量
    char ch;
    while((ch=getchar())!='#'){//读取字符,直到读取到#结束
        if(ch==' '){
            space++;
        }
        else if(ch=='\n'){
            line++;
        }
        else if(ch>='A'&&ch<='Z'){
            bigletter++;
        }
        else if(ch>='a'&&ch<='z'){
            smallletter++;
        }
    }
    printf("空格数量:%d\n",space);
    printf("换行数量:%d\n",line);
    printf("大写字母数量:%d\n",bigletter);
    printf("小写字母数量:%d\n",smallletter);
    return 0;
}

4、编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数。

#include <stdio.h>
#include<stdbool.h>
#include<math.h>
bool is_prime(int n){//判断一个数是否是素数
    if(n<=1) return false;
    for(int i=2;i<=sqrt(n);i++){
        if(n%i==0) return false;
    }
    return true;
}
int main(int argc, char const *argv[])
{
    int n;
    scanf("%d",&n);
    printf("小于等于%d的素数有:" ,n);
    for (int i = 2; i < n; i++)
    {
        if(is_prime(i)) {
            printf("%d ",i);
        }
    }
    printf("\n");
    return 0;
}

5、输入一个华氏温度,要求输出摄氏温度。要求结果保留2位小数。
转换公式为:c=5(F-32)/9

#include <stdio.h>
int main(int argc, char const *argv[])
{
    float f_temperature;
    scanf("%f", &f_temperature);
    printf("华氏温度转换为摄氏温度为:%.2f\n", (f_temperature-32)*5/9 );
    return 0;
}

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int row;//行数
    scanf("%d", &row);
    //打印上半部分
    for ( int i = 1; i <= row; i++)
    {
        for (int  j = 0; j < row -i; j++){//打印空格
            printf(" ");
        }
        for(int j = 0; j < 2*i-1; j++){//打印星号
            printf("*");
        }
        printf("\n");
    }
    //打印下半部分
    for ( int i = row-1; i > 0; i--)
    {
        for (int  j = 0; j < row -i; j++){//打印空格
            printf(" ");
        }
        for(int j = 0; j < 2*i-1; j++){//打印星号
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值