首页 > 其他分享 >C语言控制流练习题

C语言控制流练习题

时间:2024-07-04 18:59:53浏览次数:16  
标签:练习题 main ch int 控制流 C语言 char printf include

当用户输入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;
}

标签:练习题,main,ch,int,控制流,C语言,char,printf,include
From: https://blog.csdn.net/qq_52741275/article/details/140187350

相关文章

  • C语言课设-电话订餐管理系统
    一、设计需求        某餐厅有大、中、小三种餐桌各5个,餐桌号分别为A1-A5,B1-B5,C1-C5,大餐桌可供8-10人用餐,中餐桌可供5-7人用餐,小餐桌可供1-4人用餐。电话订餐信息包括:订餐编号、订餐者姓名、订餐者电话、用餐时间、用餐人数、订餐是否成功,如下表所示。订餐编号订......
  • 【数据结构】(C语言):二叉搜索树(不使用递归)
    二叉搜索树:非线性的,树是层级结构。基本单位是节点,每个节点最多2个子节点。有序。每个节点,其左子节点都比它小,其右子节点都比它大。每个子树都是一个二叉搜索树。每个节点及其所有子节点形成子树。可以是空树。C语言实现:(使用链表实现,不使用递归) 创建结构体数据类型(记录二叉......
  • 【C语言】break 关键字
    当在C语言中使用break关键字时,它通常用于两种主要情况:在循环中和在switch语句中。让我们详细看看每种情况下的用法和作用。在循环中的使用:在循环中,break语句的作用是立即终止当前所在的循环,然后跳出循环体执行循环后面的代码。这对于在达到某个条件后停止循环非常有用。......
  • C语言函数静态库和动态库的创建和使用
    使用库函数是源码的一种保护???<我猜的.>库函数其实不是新鲜的东西,我们一直都在用,比如C库.我们执行pringf()这个函数的时候,就是调用C库的函数. 下面记录静态库和动态库的生成和使用. 静态库:libxxx.a动态库:libxxx.so 静态库: 在程序编译的时候,将库编译进可......
  • java第三十课 —— 面向对象练习题
    面向对象编程练习题第一题定义一个Person类{name,age,job},初始化Person对象数组,有3个person对象,并按照age从大到小进行排序,提示,使用冒泡排序。packagecom.hspedu.homework;importjava.util.SortedMap;publicclassHomework01{publicstaticvo......
  • 【C语言小知识】备选拼写:iso646.h头文件
    备选拼写:iso646.h头文件C语言中有3种逻辑运算符:逻辑运算符含义&&与||或!非假设exp1和exp2是俩个简单的关系表达式,那么当且仅当exp1和exp2都为真时,exp1&&exp2才为真。如果exp1或exp2为真,则exp1||exp2为真。如果exp1为假,则!exp为真;如果exp1为真,则!exp为假。i......
  • 【C语言】指针经典例题
    题1: #include<stdio.h>intmain(){inta[5]={1,2,3,4,5};int*ptr=(int*)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));return0;}//程序的结果是什么?解答如下:  题2:#include<stdio.h>//这里告知结构体的大小是20个字节stru......
  • 【C语言】指针和数组经典练习题(一)
    //一维数组inta[]={1,2,3,4};printf("%d\n",sizeof(a));printf("%d\n",sizeof(a+0));printf("%d\n",sizeof(*a));printf("%d\n",sizeof(a+1));printf("%d\n",sizeof(a[1]));printf("%d\n",sizeof(&a......
  • #C语言基础 笔记三
     指针和数组直接访问:按变量的地址存取变量的值(通过数组名访问)间接访问:通过存放变量的地址的变量去访问元素(通过指针访问)1.指针和一维数组inta[5]={1,2,3,4,5};int*p=a;直接访问:inta[5]={5,4,3,2,1};int*p=a;printf("%p%p%p\n",......
  • C语言两个较大数字相加
    C语言两个较大数字相加思路分析由于C语言中的基本数据类型(如int、long等)有固定的大小,无法直接处理非常大的数字(如数百位的数字)。因此,我们需要采用字符串或数组来表示大数字,并逐位进行加法操作。具体思路如下:输入处理:将两个大数字以字符串的形式输入,并将其反转,以方便从低......