5、 输入一英文句子,将其中所有单词首字符转换成大写后输出。(C语言)
#include <stdio.h>
int main(int argc, const char * argv[])
{
char str[100]; //申明一个字符数组
int i=0;
int word=0;//标识是否为单词 0表示为单词,1表示不是单词
int count=0;//统计单词个数
printf("请输入一句英文:\n");
//从键盘输入英文单词
gets(str);
printf("当前输入的英文句子是:");
puts(str);
//循环遍历
while (str[i] != '\0') {
if(str[i] == ' '){
//设置为单词
word=0;
}else if (word == 0){
count++;
//将单词字母大写
str[i]=str[i]-32;
word=1;
}
i++;
}
printf("所有单词首字符转换成大写后输出后的英文句子是:");
puts(str);
return 0;
}
6、 在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
#include<stdio.h>
int main(){
char str[100]="it is necessary for us all to make efforts to cultivate good manners";
int length=0;//定义计算单词长度计数器
int maxLength=0;//定义单词最大长度
int index=0;//定义单词最后一位字符的下标
int i=0;
//循环查找最大单词的多字母的下标
for(i=0;str[i] != '\0';i++){
if(str[i] !=' '){
length++;
if(length>maxLength){
index=i;
maxLength=length;
}
}else{
length=0;
}
}
printf("当前英文句子:\n%s\n",str);
printf("最长单词:\n");
//循环打出最长单词
for(i=maxLength;i != 0;i--){
printf("%c",str[index-i+1]);
}
printf("\n");
}
7、 输入两个数,打印(printf)这两个数的和、差、积、商、以及余数。(C语言编程题)
#include<stdio.h>
int main(){
int a=0,b=0;
int sum=0;//和
int cha=0;//差
int cj=0;//乘积
int shang=0;//商值
int ys=0;//余数
printf("请输入两个数并且以','号隔开:");
scanf("%d,%d",&a,&b);
// scanf("%d",&b);
sum=a+b;
cha=a-b;
cj=a*b;
if(b != 0){
shang=a/b;
ys=a%b;
}else{
printf("b不能为0\n");
}
printf("两数之和为%d\n",sum);
printf("两数之差为%d\n",cha);
printf("两数之积为%d\n",cj);
printf("两数之商为%d\n",shang);
printf("两数之余为%d\n",ys);
}
8、 编写一个int string_len(char *s),返回字符串s的字符长度(不包括\0) (C语言编程题)
#include<stdio.h>
//求字符串的长度
int string_len(char *s){
int length=0;
int i;
for(i=0;s[i] != '\0';i++){
length++;
}
return length;
}
int main(){
char str[100];
int len=0;
printf("请输入字符串\n");
gets(str);
len= string_len(str);
printf("字符串的字符长度是%d\n",len);
}
9、 从键盘输入6个字符串(仅仅包含英文字母和数字),对这6个字符串从小到大排列并输出结果。(C语言)
#include<stdio.h>
#include<string.h>
int main(){
int i=0,j=0;
char str[6][50];
for(i=0;i<6;i++){
printf("请输入第%d个字符串(仅仅包含英文字母和数字):",i+1);
scanf("%s",str[i]);
}
//比较字符串
for(i=0;i<6;i++){
for(j=0;j<5;j++){
if(strcmp(str[i],str[j])<0){
char tem[50];
strcpy(tem,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],tem);
}
}
}
printf("这6个字符串从小到大排列并输出结果:\n");
for(i=0;i<6;i++){
printf("第%d个字符串:%s\n",i+1,str[i]);
}
printf("\n");
}
10、 小明从2006年1月1日开始,每三天结识一个美女两天结识一个帅哥,编程实现当输入2006年1月1日之后的任意一天,输出小明那天是结识美女还是帅哥(注意润年问题)(C语言)
#include<stdio.h>
int sumOfDays(int y,int m,int d);
int main(){
int year,month,day;
do{
printf("请输入2006年1月1日以后的某一天:\n");
scanf("%d%*c%d%*c%d",&year,&month,&day);
}while(year<2006 || (month<1 || month>12) || (day<1 || day>31));
sumOfDays(year,month,day);
}
int sumOfDays(int y,int m,int d)
{
int i,j;
int sumDays=0;//总天数
int DaysOfYear=0;//年总天数
int DaysOfMonth=0;//月总天数
int leapYearMonths[12]={31,29,31,30,31,30,31,31,30,31,30,31}; // 闰年的每月天数
int simpleYearMonths[12]={31,28,31,30,31,30,31,31,30,31,30,31}; // 平年每月天数
int xcYear=y-2006;//相差的年数
int xcMonth=m-1;
//求相差年总天数
for(i=0;i<xcYear;i++)
{
if((2006+i)%4==0 && (2006+i)%100 !=0)
{
DaysOfYear+=366;
}else if((2006+i)%400==0){
DaysOfYear+=366;
}else
{
DaysOfYear+=365;
}
}
//求相差月总天数
for(i=1;i<xcMonth;i++)
{
if(y%4==0 && y%100 !=0)
{
DaysOfMonth=leapYearMonths[i-1];
}else if(y%400==0)
{
DaysOfMonth=leapYearMonths[i-1];
}else
{
DaysOfMonth=simpleYearMonths[i-1];
}
}
//总天数
sumDays = DaysOfYear + DaysOfMonth + d;
//判断那天认识的人
if(sumDays %2 ==0){
printf("小明结识帅哥了\n");
}else if(sumDays %3 == 0){
printf("小明结识了美女\n");
}else{
printf("小明没有结识美女也没有结识帅哥\n");
}
}
|