首页 > 其他分享 >C语言习题整理收录3

C语言习题整理收录3

时间:2022-11-21 20:55:49浏览次数:73  
标签:dstStr int C语言 char 收录 str 习题 month srcStr

0

从键盘任意输入一个整型表示的月份值,用指针数组编程输出该月份的英文表示,若输入的月份值不在1~12之间,则输出“Illegal month”。

**输入格式要求:"%d" 提示信息:“Input month number:”
**输出格式要求:“month %d is %s\n”
“Illegal month”, “January”, “February”, “March”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “December”

程序运行示例1如下:
Input month number:5
month 5 is May

程序运行示例2如下:
Input month number:13
Illegal month

#include<stdio.h>
int main()
{
	int n;
	const char* month[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
	printf("Input month number:");
	scanf_s("%d", &n);
	if (n < 1 || n>12)
		printf("Illegal month");
	else
		printf("month %d is %s\n", n, month[n - 1]);   //传递给%s的应该是一个地址,而不是*month[n-1]
}

————————————————
版权声明:本文为CSDN博主「尘封.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_52275610/article/details/113887027

1

利用一个字符数组作函数参数,实现字符串(最大长度为80个字符 )的逆序存放。
要求如下:
(1)在子函数Inverse中实现字符串的逆序存放。函数原型为:
void Inverse(char str[]);
(2)在主函数中
从键盘输入字符串(使用gets函数)
然后,调用Inverse函数,
最后,输出逆序后的字符串。
(3)**输入提示信息:“Input a string:\n”
**输出提示信息:“Inversed results:\n”
**输出格式:"%s\n"
注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用int main和return 0。

#include<stdio.h>
#include<string.h>
#define N 80
void Inverse(char str[]);

main()
{
    char str[N];
    printf("Input a string:\n");
    gets(str);
    Inverse(str);
    printf("Inversed results:\n");
    printf("%s\n",str);
}

void Inverse(char str[])
{
    int a = strlen(str), i;
    char temp;
    for(i = 0;i < a/2; i++)
    {
        temp = str[i];
        str[i] = str[a - 1 - i];
        str[a - 1 - i] = temp;
    }
}

————————————————
版权声明:本文为CSDN博主「星海燚燚」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45700528/article/details/105185514

2

任意输入英文的星期几,通过查找星期表,输出其对应的数字,
若查到表尾,仍未找到,则输出错误提示信息。

**输入格式要求:"%s" 提示信息:“Please enter a string:\n”
**输出格式要求:"%s is %d\n" “Not found!\n”
查找表中信息:
“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”

程序运行示例1如下:
Please enter a string:
Monday
Monday is 1

程序运行示例2如下:
Monkey
Not found!

#include<stdio.h>
#include<string.h>
int main()
{
    int i, count = 0;
    const char* Weekday[8] = { 0,"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday","Sunday" };
    char day_name[30];
    printf("Please enter a string:\n");
    scanf("%s", day_name);
    for (i = 1; i < 8; i++)
    {
        if (!(strcmp(day_name, Weekday[i])))     //strcmp为字符串比较函数,传递两个数组名(地址)过去比较
        {
            count = i;     
            break;
        }
    }
    if (i == count)           //验证是否找到了输入的该星期名
        printf("%s is %d\n", day_name, count);
    else
        printf("Not found!\n");
}

————————————————
版权声明:本文为CSDN博主「尘封.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_52275610/article/details/113906516

3

原教材例题对奥运会参赛国国名按字典排序
例10.4(C语言程序设计第四版)P264

#include<string.h>
#define MAXLEN 10
#define N 150
void SortString(char str[][MAXLEN],int n);
int main()
{
    int i,n;
    char name[N][MAXLEN];
    printf("How many countries?");
    scanf("%d",&n);
    getchar();
    printf("Input their names:\n");
    for(i=0;i<n;i++)
    {
        gets(name[i]);
    }
    SortString(name,n);
    printf("Sorted results:\n");
    for(i=0;i<n;i++)
    {
        puts(name[i]);
    }
    return 0;
}
//函数功能:用交换法实现字符串按字典顺序排序
void SortString(char str[][MAXLEN],int n)
{
    int i,j;
    char temp[MAXLEN];
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
            {
                if(strcmp(str[j],str[i])<0)
                {

                    strcpy(temp,str[i]);
                    strcpy(str[i],str[j]);
                    strcpy(str[j],temp);
                }
            }
    }
}

部分字符串处理函数的设计

复制


//向函数传递字符串

void MyStrcpy(char dstStr[],char srcStr[])
{
    int i=0;
    while(srcStr[i]!='\0')
    {
        dstStr[i]=srcStr[i];
        i++;
    }
    dstStr[i]='\0';//在字符串dstStr末尾添上结束标志
}

//使用指针
void MyStrcpy(char *dstStr,char *srcStr)
{
    while(*srcStr!='\0')
    {
        *dstStr=srcStr;
        srcStr++;
        dstStr++;
    }
    *dstStr='\0';
}

计算字符串长度

int myStrlen(char *str)
{
    int i=0;
    while(*str!='\0')
    {
            i++;
            str++;
    }
    return i;
}

字符串连接

char *MyStrcat(char *dstStr,char *srcStr)
{
    char *pStr=dstStr;//保存字符串dstStr的首地址
    //将指针移到字符串dstStr的末尾
    while(*dstStr!='\0')
    {
        dstStr++;
    }
    //将字符串srcStr复制到字符串dstStr的后面
    for(;*srcStr!='\0';dstStr++,srcStr++)
    {
        *dstStr=*srcStr;
    }
    *dstStr='\0';
    return pStr;//返回连接后的字符串的首地址
}

标签:dstStr,int,C语言,char,收录,str,习题,month,srcStr
From: https://www.cnblogs.com/20031004wzy/p/16913190.html

相关文章

  • javascript - 练习题:事件练习 - 扫雷
    HTML<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="w......
  • c语言实现【青蛙跳台阶问题】
    【青蛙跳台阶问题】c语言实现1.问题描述青蛙跳台阶问题是指:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。2.问题分析假设......
  • C语言中union类型学习
    union指的是C语言的共用体(联合体)aunionisacontainerofoverlappingobject共用体它表示几个变量共用同一个内存位置,在不同的时间保存不同的数据类型和不同长度的......
  • c语言实现【汉诺塔问题】
    【汉诺塔问题】c语言实现1.问题描述汉诺塔问题是指:一块板上固定三个木杆:A、B、C。A赶上套有若干个大小不等的圆盘,按照大的在下、小的在上的顺序排列,要把这些圆盘从A......
  • javascript - 练习题:事件练习 - 贪吃蛇
    贪吃蛇原生JS(非面向对象的方式),渡一教学的笔记;地图坐标{0,0}{1,0}{2,0}{3,0}{4,0}{0,1}{1,1}{2,1}{3,1}{4,1}{0,2}{1,2}{2,2}{3,2}{4,2}{0,3}{1,3}{2,3}{3,3}{4,3}{0,4}{1,4}......
  • C语言标准ISO9899的各个版本
    C90ISO/IEC9899:1990219PagesISO/IEC9899:1990/AMD1:199551PagesISO/IEC9899:1990/COR1:19948PagesISO/IEC9899:1990/COR2:19961PagesC99ISO/IEC9899:......
  • 2013-11-11 Oracle 课堂测试 练习题 例:BULK COLLECT及return table
    --1)查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的--学生编号、学生名称、图书编号、图书名称、借出日期;selects.stuid,s.stuname,b.bid,b.ti......
  • C语言的介绍
    C语言的介绍1.1什么是计算机程序一组计算机能识别和执行的指令集。每一条指定可以让计算机执行特定的操作。计算机会自动执行各条指令,有条不紊的进行工作1.2什么是计......
  • C语言实验手册
    在三位整数(100~999)中寻找符合条件的整数,并以此从小到大存到数组当中,它既是完全平方数,又是两位数字相同,例如144,676等。#include<stdio.h>#include<math.h>intisSquare......
  • C语言打印节表--PE文件解析
    voidFuncation4(){char*file_buffer;longfile_size=0;FILE*fp;fp=fopen("notepad-32bit.exe","rb");fseek(fp,0,SEEK_END);fi......