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

头条号 cuter科利 喜提头条号黄V,有兴趣的朋友可以关注一波,主写IT领域。

习题31

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

实现思路: 使用switch语句,如果第1个字母一样,则判断用情况语句或if语句判断第2个字母。 也可以使用条件判断语句,实现相近。

代码如下:

1#include<stdio.h> 2 3int main(){ 4 char i, j; 5 printf("请输入一个字母:\n"); 6 i = getchar(); 7 getchar(); 8 switch(i){ 9 case 'M': 10 printf("今天是星期一"); 11 break; 12 case 'T': 13 printf("请输入第二个字母:\n"); 14 j = getchar(); 15 switch(j){ 16 case 'u': 17 printf("今天是星期二"); 18 break; 19 case 'h': 20 printf("今天是星期四"); 21 default: 22 printf("输入错误"); 23 break; 24 } 25 break; 26 case 'W': 27 printf("今天是星期三"); 28 break; 29 case 'F': 30 printf("今天是星期五"); 31 break; 32 case 'S': 33 printf("请输入第二个字母:\n"); 34 j = getchar(); 35 switch(j){ 36 case 'a': 37 printf("今天是星期六"); 38 break; 39 case 'u': 40 printf("今天是星期天"); 41 break; 42 default: 43 printf("输入错误"); 44 break; 45 } 46 break; 47 default: 48 printf("输入错误"); 49 break; 50 } 51 52 return 0; 53}

打印:

1请输入一个字母: 2S 3请输入第二个字母: 4a 5今天是星期六

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

习题32

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

实现思路: 逐个遍历字符并判断。

代码如下:

1#include<stdio.h> 2#include <string.h> 3 4int main(){ 5 char originStr[256]; 6 char ch; 7 int i = 0, j = 0; 8 printf("Please input a string:\n"); 9 ch = getchar(); 10 while(ch != '\n'){ 11 originStr[i++] = ch; 12 ch = getchar(); 13 } 14 printf("Please input the character to delete:\n"); 15 ch = getchar(); 16 for(i = 0; i < strlen(originStr); i++){ 17 if(ch != originStr[i]){ 18 originStr[j++] = originStr[i]; 19 } 20 } 21 originStr[j] = '\0'; 22 printf("New String is:\n%s\n", originStr); 23 24 return 0; 25}

打印:

1Please input a string: 2I like programming!! 3Please input the character to delete: 4i 5New String is: 6I lke programmng!! 7

习题33

判断一个数是否为质数。

实现思路: 抽离用函数实现。

代码如下:

1#include <stdio.h> 2#include <math.h> 3 4int main(){ 5 int isPrime(int n); 6 int num; 7 printf("Please input a number:\n"); 8 scanf("%d", &num); 9 int result = isPrime(num); 10 if(result){ 11 printf("%d is a prime number\n", num); 12 } 13 else{ 14 printf("%d is not a prime number\n", num); 15 } 16 17 return 0; 18} 19 20int isPrime(int n){ 21 int i, prime = 1; 22 for(i = 2; i <= sqrt(n); i++){ 23 if(n % i == 0){ 24 prime = 0; 25 } 26 } 27 28 return prime; 29}

打印:

1Please input a number: 2125 3125 is not a prime number 4

习题34

实现函数的多层调用。

实现思路: 多层调用即可。

代码如下:

1#include <stdio.h> 2 3int main(){ 4 void hello_3(); 5 hello_3(); 6 7 return 0; 8} 9 10void hello_3(){ 11 void hello(int n); 12 int i; 13 for(i = 0; i < 10; i++){ 14 hello(i); 15 } 16} 17 18void hello(int n){ 19 printf("%d.Hello World!!!\n", n); 20}

打印:

10.Hello World!!! 21.Hello World!!! 32.Hello World!!! 43.Hello World!!! 54.Hello World!!! 65.Hello World!!! 76.Hello World!!! 87.Hello World!!! 98.Hello World!!! 109.Hello World!!! 11

习题35

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

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

代码如下:

1#include <stdio.h> 2 3 int main(){ 4 void reverse(char* s); 5 char s[] = "I love C"; 6 printf("%s =>\n", s); 7 reverse(s); 8 printf("%s\n", s); 9 return 0; 10} 11 12void reverse(char* s){ 13 int len = 0; 14 char* p = s; 15 while (*p != 0){ 16 len++; 17 p++; 18 } 19 20 int i = 0; 21 char c; 22 while (i <= len / 2 - 1){ 23 c = *(s + i); 24 *(s + i) = *(s + len - 1 - i); 25 *(s + len - 1 - i) = c; 26 i++; 27 } 28}

打印:

1I love C => 2C evol I 3

本文原文首发来自博客专栏C语言实战,由本人转发至https://www.helloworld.net/p/gRDSa3hzOF2P,其他平台均属侵权,可点击https://blog.csdn.net/CUFEECR/article/details/106626151查看原文,也可点击https://blog.csdn.net/CUFEECR浏览更多优质原创内容。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Opencv中Mat矩阵相乘——点乘、dot、mul运算详解

Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593

Linux查看GPU信息和使用情况

1、Linux查看显卡信息:lspci|grepivga2、使用nvidiaGPU可以:lspci|grepinvidia!(https://oscimg.oschina.net/oscnet/36e7c7382fa9fe49068e7e5f8825bc67a17.png)前边的序号"00:0f.0"是显卡的代