课后作业
题目
1)编写示例程序,从界面上输入一个字符串,计算字符串的长度。如果输入的是"abcdaaf",显示的结果是7。
2)编写示例程序,从界面上输入一个字符串,把字符串的每个字符从左到右一个一个的显示出来,如果输入的是"abcdaaf",显示的结果是:a b c d a a f。
3)编写示例程序,从界面上输入一个字符串,把字符串的每个字符从右到左一个一个的显示出来,如果输入的是"abcdaaf",显示的结果是:f a a d c b a。
4)编写示例程序,某班有10个学生,定义一个一维数组,从界面上输入每个学生的成绩,最后显示这个班的平均成绩。
5)编写示例程序,某年级有两个班,每班有8名学生,定义一个二维数组,从界面上输入每个学生的成绩,最后显示每个班的平均成绩和年级的平均成绩。
6)编写示例程序,定义一个可以存放10个字符串的数组,字符串的有效长度是30个字符,从界面上输入10个字符串并存放在数组中,然后把这10个字符串显示出来。
以下题难难度较大,可以等到以后功力提升的时候再做。
7)如果还觉得不过隐,可以挑战一下三维数组,某学校有两个年级,每个年级有三个班,每个班有四名学生,从界面上输入每个学生的成绩,最后显示每个班的平均成绩、年级的平均成绩和全校的平均成绩。
示例
1)
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
scanf("%s", str);
printf("str len is: %zd", strlen(str));
return 0;
}
2),3)
#include <stdio.h>
#include <string.h>
int main() {
char str[200];
scanf("%s", str);
int ii = 0;
int len = strlen(str);
for (ii = 0; ii < len; ii++) {
printf("%c ", str[ii]);
}
printf("\n");
for (len = len - 1; len >= 0; len--) {
printf("%c ", str[len]);
}
printf("\n");
return 0;
}
4)
#include <stdio.h>
int main() {
int scores[10];
int ii = 0;
int sum = 0;
for (ii = 0; ii < 10; ii++) {
printf("plz input %d student's score!", ii);
scanf("%d",&scores[ii]);
sum += scores[ii];
}
printf("avg score is %d\n", sum / 10);
return 0;
}
#include <stdio.h>
int main() {
int scores[2][8];
int ii = 0;
int jj = 0;
int sum1 = 0;
int sum2 = 0;
for (ii = 0; ii < 2; ii++) {
printf("now plz input class %d students' scores!\n", ii+1);
sum1 = 0;
for (jj = 0; jj < 8; jj++) {
printf("plz input students %d' score:",jj+1);
scanf("%d", &scores[ii][jj]);
sum1 += scores[ii][jj];
}
printf("class %d avg scores is: %d\n",ii+1, sum1 / 8);
sum2 += sum1;
}
printf("all students avg score is: %d\n", sum2 / 16);
return 0;
}
#include <stdio.h>
int main() {
char strs[10][31];
int ii = 0;
for (ii = 0; ii < 10; ii++) {
printf("plz input string which length is 30\n");
scanf("%s",strs[ii]);
}
for (ii = 0; ii < 10; ii++) {
printf("str is %s\n", strs[ii]);
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
int ii, jj, kk;
double scores[2][3][4];
double classsum = 0;
double gradesum = 0;
double totalsum = 0;
for (ii = 0; ii < 2; ii++) {
gradesum = 0;
for (jj = 0; jj < 3; jj++) {
classsum = 0;
for (kk = 0; kk < 4; kk++) {
printf("请输入%d年级,%d班级,%d学生的分数:\n", ii+1, jj+1, kk+1);
scanf("%lf",&scores[ii][jj][kk]);
classsum += scores[ii][jj][kk];
gradesum += scores[ii][jj][kk];
totalsum += scores[ii][jj][kk];
}
printf("第%d年级,第%d班级,学生平均分数是:%lf\n",ii + 1, jj+1, classsum / 4);
}
printf("第%d年级学生平均分数是:%lf\n", ii + 1, gradesum / 12);
}
printf("all students avg scores is: %lf \n", totalsum / 24);
return 0;
}