24.输出9*9乘法口诀(本题就是考察对for循环的操作,以及输出的格式)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
for (int i = 1; i < 10; i++)
{
for (int j =1 ; j < i+1; j++)
{
printf("%d*%d=%2d ",i,j, i*j);
}
printf("\n");
}
getch();
}
25.从键盘上输入100人的姓名、性别和年龄,分别统计0-29岁、30-59、60以上的男、女人数。(本题笔者感觉考察的是结构体的运用,用结构体数组保存数据,同时还有分支结构的考察,弄清楚各种情况的分界点)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct Person
{
char name[20];
int age;
char xingbie;
}arr[100];
void inputs(struct Person peolep[])
{
for (int i = 0; i <100; i++)
{
printf("请输入第%d个人的信息\n",i+1);
printf("请输入姓名");
scanf("%s",peolep[i].name);
printf("\n请输入年龄");
scanf("%d", &peolep[i].age);
printf("\n请输入性别");
scanf(" %c",&peolep[i].xingbie); //在这里%c前面有一个空格,我在这里就出错了加空格屏蔽了空白字符,另外千万注意加&。
}
}
int print(struct Person peolep[])
{
int Mp29 = 0, Fp29 = 0, Mp59 = 0, Fp59 = 0, Mp60=0,Fp60=0;
for (int i = 0; i < 100; i++)
{
if (peolep[i].age>=0&& peolep[i].age<=29)
{
if (peolep[i].xingbie=="M")
{
Mp29++;
}
else
{
Fp29++;
}
}
else
{
if (peolep[i].age >= 30 && peolep[i].age <= 59)
{
if (peolep[i].xingbie == "M")
{
Mp59++;
}
else
{
Fp59++;
}
}
else
{
if (peolep[i].xingbie == "M")
{
Mp59++;
}
else
{
Fp59++;
}
/*printf("%s%d%c", peolep[i].name, peolep[i].age, peolep[i].xingbie);*/
}
}
}
printf("0-29岁的男生的人数为%d\n",Mp29);
printf("0-29岁的女生的人数为%d\n",Fp29);
printf("30-59岁的男生的人数为%d\n",Mp59);
printf("30-59岁的女生的人数为%d\n",Fp59);
printf("60岁以上的男生的人数为%d\n", Mp60);
printf("60岁以上的女生的人数为%d\n", Fp60);
}
int main()
{
struct Person *p= arr;
inputs(p);
print(p);
getch();
}
26.从键盘上输入字符串1,将字符串1中除去数字字符‘0’-‘9’之后的其他字符保留在字符串2中,并输出字符串2.
方法一:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
void print(char *str1,char *str2)
{
int j = 0;
for (int i = 0; i < strlen(str1); i++)
{
if (str1[i]>='0'&&str1[i]<='9')
{
continue;
}
else
{
str2[j] = str1[i];
j++;
}
}
printf("%s", str2);
}
int main()
{
char str1[100];
char str2[100] = {'\0'}; //注意这里的数组的初试化很重要,不然会出现乱码的情况。
scanf("%s", str1);
print(str1, str2);
getch();
}
方法二:优化点的
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
int main()
{
char str1[100], str2[100];
int i = 0, j = 0;
gets(str1);
while (str1[i])
{
if (str1[i]<'0' || str1[i]>'9')
str2[j++] = str1[i];
i++;
}
str2[j] = '\0';
printf("%s", str2);
getch();
return 0;
}