C程序设计(第二版) 第八章习题

本文提供了C语言实现的几个编程练习,包括:输入字符串并反序存放、输入四位数并间隔输出、找出一行中最长的单词、求学生和课程的平均分、按职工号排序及折半查找、16进制转10进制、整数转字符串以及计算日期等实用功能。
摘要由CSDN通过智能技术生成

 程序来自配套的习题解答一书

8.5写一函数,使输入的字符串反序存放,在主函数中输入和输出字符串

#include <stdio.h>
#include <string.h>
void main()
{
 void inverse(char str[]);
 char str[100];
 printf("Input String:");
 scanf("%s",str);
 inverse(str);
 printf("Inverse string:%s/n",str);
}
void inverse(char str[])
{
 char t;
 int i,j;
 for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--)
 {
  t=str[i];
  str[i]=str[j-1];
  str[j-1]=t;
 }
}

8.8写一函数,输入一个4位数,要求输出这4个数字字符,但每两个数字间有一个空格。例:输入1990输出1 9 9 0
#include <stdio.h>
#include <string.h>
void main()
{
 char str[80];
 void insert(char str[]);
 printf("/nInput four digit:");
 scanf("%s",str);
 insert(str);
}
void insert(char str[])
{
 int i;
 for(i=strlen(str);i>0;i--)
 {
  str[2*i]=str[i];
  str[2*i-1]=' ';
 }
 printf("/nOutput:%s/n",str);
}

8.10写一函数,输入一行字符,将此字符串中最长的单词输出
#include <stdio.h>
#include <string.h>
int alphabetic(char c)//判断当前字符是否是字母
{
 if((c>='a' && c<='z')||(c>='A' && c<='Z'))
  return 1;
 else
  return 0;
}

int longest(char string[])//寻找最长单词的起始位置

 int len=0,i,length=0,flag=1,place=0,point;
 for(i=0;i<=strlen(string);i++)
 {
  if(alphabetic(string[i]))
  {
   if(flag)//flag表示新单词是否已开始,flag=0表示未开始,flag=1表示开始
   {
    point=i;//point代表当前单词的起始位置(用下标表示)
    flag=0;
    len++;//len表示当前单词已累计的字母个数
   }
   else
    len++;
  }
  else
  {
   flag=1;
   if(len>=length

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值