1.题目描述:
输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
#include<stdio.h> #include<string.h> #include<stdlib.h> int main(void) { int english,space,number,other; english=0; space=0; number=0; other=0; int i; char str[100]; printf("请输入一行字符:"); gets(str); for(i=0;i<strlen(str);i++) { if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) { english++; }else if(str[i]==' ') { space++; }else if(str[i]>='0'&&str[i]<='9') { number++; }else{ other++; } } printf("英文字母的个数为%d\n",english); printf("空格的个数为%d\n",space); printf("数字的个数为%d\n",number); printf("其他字符的个数为%d\n",other); return 0; }
注意:读取字符串的时候不能用scanf()函数,scanf()函数是以空格来确定字符串的最后一位。用scanf不能判断空格的字数了。
2.题目描述:
#include<stdio.h> #include<stdlib.h> #include<string.h> struct student{ float english; float chinese; float math; float program; }; int main(void) { struct student student[3]; int i=0; float eaver=0; float caver=0; float maver=0; float paver=0; printf("请输入三个学生的各门成绩:"); for(i=0;i<3;i++) { scanf("%f%f%f%f",&student[i].english,&student[i].chinese,&student[i].math,&student[i].program); } for(i=0;i<3;i++) { eaver+=student[i].english; caver+=student[i].chinese; maver+=student[i].math; paver+=student[i].program; } printf("英语的平均成绩为:%f\n",eaver/3); printf("语文的平均成绩为:%f\n",caver/3); printf("数学的平均成绩为:%f\n",maver/3); printf("程序设计的平均成绩为:%f\n",paver/3); return 0; }
注意:结构体的变量名要和下面保持一致,注意细节。
**3.题目描述:**写一个函数,使输入的一个字符串按反序存放,如输入“CANADA”,输出“ADANAC”。在主函数中输入和输出字符串。
#include<string.h> #include<stdio.h> #include<stdlib.h> void reverse(char * str) { int end=strlen(str)-1; int start=0; char temp; while(start<=end) { temp=str[start]; str[start]=str[end]; str[end]=temp; start++; end--; } } int main(void) { char arr[100]; printf("请输入一个字符串:"); gets(arr); reverse(arr); puts(arr); return 0; }
注意:printf()函数多用一点,啰嗦一点比较好。
4.题目描述:
定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天。
#include<stdio.h> #include<stdlib.h> #include<string.h> struct date{ int year; int mouth; int day; }; int main() { int sumday=0; int day_tab[13]={0,31,28,31,30,35,30,31,31,30,31,30,31};//数组后面要带长度 int i; struct date date; printf("请分别输入年月日:\n"); scanf("%d%d%d",&date.year,&date.mouth,&date.day); for(i=0;i<date.mouth;i++) { sumday+=day_tab[i]; } sumday+=date.day; if((date.year%400==0)||(date.year%100!=0&&date.year%4==0)) { if(date.mouth>=3) { sumday++; } } printf("这是一年中的第%d天",sumday); return 0; }
注意:写完之后务必要把流程走一遍。