C语言基础习题50例(七)31-35

简介: 文章目录习题31习题32习题33习题34习题35

习题31

请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

实现思路:

使用switch语句,如果第1个字母一样,则判断用情况语句或if语句判断第2个字母。

也可以使用条件判断语句,实现相近。、


代码如下:

#include<stdio.h>
int main(){
  char i, j;
  printf("请输入一个字母:\n");
  i = getchar();
  getchar();
  switch(i){
    case 'M':
      printf("今天是星期一");
      break;
    case 'T':
      printf("请输入第二个字母:\n");
      j = getchar();
      switch(j){
        case 'u':
          printf("今天是星期二");
          break;
        case 'h':
          printf("今天是星期四");
        default:
          printf("输入错误");
          break;  
      }
      break;
    case 'W':
      printf("今天是星期三");
      break;
    case 'F':
      printf("今天是星期五");
      break;
    case 'S':
      printf("请输入第二个字母:\n");
      j = getchar();
      switch(j){
        case 'a':
          printf("今天是星期六");
          break;
        case 'u':
          printf("今天是星期天");
        break;
        default:
          printf("输入错误");
          break;
      }
      break;
    default:
      printf("输入错误");
      break;
  }
    return 0;
}


打印:

请输入一个字母:
S
请输入第二个字母:
a
今天是星期六

输入第一个字母之后,又输入了回车,所以需要有一个getchar()函数来接收输入的换行符,后面才能接收到新输入的字符。

习题32

删除一个字符串中的指定字母,如:字符串ACA,删除其中的一个字母。

实现思路:

逐个遍历字符并判断。

代码如下:

#include<stdio.h>
#include <string.h>
int main(){
  char originStr[256];
  char ch;
  int i = 0, j = 0;
  printf("Please input a string:\n");
  ch = getchar();
  while(ch != '\n'){
    originStr[i++] = ch;
    ch = getchar();
  }
  printf("Please input the character to delete:\n");
  ch = getchar();
  for(i = 0; i < strlen(originStr); i++){
    if(ch != originStr[i]){
      originStr[j++] = originStr[i];
    }
  }
  originStr[j] = '\0';
  printf("New String is:\n%s\n", originStr);
    return 0;
}


打印:

Please input a string:
I like programming!!
Please input the character to delete:
i
New String is:
I lke programmng!!

习题33

判断一个数是否为质数。

实现思路:

抽离用函数实现。

代码如下:

#include <stdio.h>
#include <math.h>
int main(){
  int isPrime(int n);
  int num;
  printf("Please input a number:\n");
  scanf("%d", &num);
  int result = isPrime(num);
  if(result){
    printf("%d is a prime number\n", num);
  }
  else{
    printf("%d is not a prime number\n", num);
  }
    return 0;
}
int isPrime(int n){
  int i, prime = 1;
  for(i = 2; i <= sqrt(n); i++){
    if(n % i == 0){
      prime = 0;
    }
  }
  return prime;
}


打印:

Please input a number:
125
125 is not a prime number
• 1
• 2
• 3
• 4

习题34

实现函数的多层调用。

实现思路:

多层调用即可。

代码如下:

#include <stdio.h>
int main(){
  void hello_3();
  hello_3();
    return 0;
}
void hello_3(){
  void hello(int n);
  int i;
  for(i = 0; i < 10; i++){
    hello(i);
  }
}
void hello(int n){
  printf("%d.Hello World!!!\n", n);
}

打印:

0.Hello World!!!
1.Hello World!!!
2.Hello World!!!
3.Hello World!!!
4.Hello World!!!
5.Hello World!!!
6.Hello World!!!
7.Hello World!!!
8.Hello World!!!
9.Hello World!!!

习题35

字符串反转,如将字符串blog.csdn.net/CUFEECR反转为RCEEFUC/ten.ndsc.golb

实现思路:

使用指针实现,即交换字符串中字符的指针。

代码如下:

#include <stdio.h>
 int main(){
  void reverse(char* s);
    char s[] = "I love C";
    printf("%s =>\n", s);
    reverse(s);
    printf("%s\n", s);
    return 0;
}
void reverse(char* s){
    int len = 0;
    char* p = s;
    while (*p != 0){
        len++;
        p++;
    }
    int i = 0;
    char c;
    while (i <= len / 2 - 1){
        c = *(s + i);
        *(s + i) = *(s + len - 1 - i);
        *(s + len - 1 - i) = c;
        i++;
    }
}

打印:

I love C =>
C evol I


相关文章
TU^
|
6月前
|
存储 C语言
C语言习题~day35
C语言习题~day35
TU^
31 1
|
4月前
|
机器学习/深度学习 C语言
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
要保持最小的步数,每一次汉诺塔问题(无论是最初还是递归过程中的),如果此时初始柱盘子数为偶数,我们第一步是把最上面的盘子移动到中转柱,如果为奇数,我们第一步则是将其移动到目标柱。
96 0
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
TU^
|
6月前
|
编译器 C语言
C语言习题~day31
C语言习题~day31
TU^
24 2
TU^
|
6月前
|
算法 程序员 C语言
C语言习题~day36
C语言习题~day36
TU^
43 1
TU^
|
6月前
|
存储 C语言
C语言习题~day34
C语言习题~day34
TU^
34 1
TU^
|
6月前
|
算法 C语言
C语言习题~day33
C语言习题~day33
TU^
30 1
TU^
|
6月前
|
C语言
C语言习题~day32
C语言习题~day32
TU^
19 1
TU^
|
6月前
|
C语言
C语言习题~day30
C语言习题~day30
TU^
24 1
TU^
|
6月前
|
自然语言处理 C语言 C++
C语言习题~day29
C语言习题~day29
TU^
25 1
TU^
|
6月前
|
存储 C语言
C语言习题~day28
C语言习题~day28
TU^
21 1