本章题比较多,有18题,分上下两部分
1.编写一个程序,创建一个包含26个元素的数组,并在其中存储26个小写字母.然后打印数组中的所有内容.
int main(int argc, char** argv)
{
char lets[26] = { 0 };
for (int i = 0;i < 26;i++)
{
lets[i] = 'a' + i;
}
for (int i = 0;i < 26;i++)
{
printf("%c", lets[i]);
}
printf("\n");
return 0;
}
2.使用嵌套循环,按下面的格式打印字符:
$
$$
$$$
$$$$
$$$$$
int main(int argc, char** argv)
{
for (int i = 0;i < 5;i++)
{
for (int j = 0;j <= i;j++)
{
printf("$");
}
printf("\n");
}
return 0;
}
3.使用嵌套循环,按下面的格式打印字母:
F
FE
FED
FEDC
FEDCB
FEDCBA
注意:如果你的系统不使用ASCII或其他以数字顺序编码的代码,可以把字符数组初始化为字母表中的字母:
char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
然后用下标选择单独的字母,例如lets[0]是'A',等等
int main(int argc, char** argv)
{
const char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 5;i >= 0;i--)
{
for (int j = 0;j <= 5 - i;j++)
{
printf("%c", lets[5- j]);
}
printf("\n");
}
return 0;
}
4.使用嵌套循环,按下面的格式打印字母:
A
BC
DEF
GHIJ
KLMNO
PQRSTU
如果你的系统不使用ASCII或其他以数字顺序编码的代码,请参照练习3的方案解决
int main(int argc, char** argv)
{
const char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int idx = 0;
for (int i = 0;i < 6;i++)
{
for (int j = 0;j <= i;j++)
{
printf("%c", lets[idx++]);
}
printf("\n");
}
return 0;
}
5.编写一个程序,提示用户输入大写字母.使用嵌套循环以下面金字塔型的格式打印字母:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
打印这样的图形,要根据用户输入的字母来决定.例如,上面的图形是用户输入E后的打印结果.
提示:用外层循环处理行,每行使用3个内层循环,分别处理空格、以升序打印字母、以降序打印字母.
如果你的系统不使用ASCII或其他以数字顺序编码的代码,请参照练习3的方案解决
int main(int argc, char** argv)
{
system("chcp 65001");
const char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char ch;
printf("请输入大写字母:");
scanf_s("%c", &ch, 1);
for (int i = 0;i <= ch - 'A';i++)
{
for (int j = 0;j < ch - 'A' - i;j++)
{
printf(" ");
}
for (int j = 0;j <= i;j++)
{
printf("%c", lets[j]);
}
for (int j = i - 1;j >= 0;j--)
{
printf("%c", lets[j]);
}
printf("\n");
}
return 0;
}
6.编写一个程序打印一个表格,每一行打印一个整数、该数的平方、该数的立方.要求用户输入表格的上下限.使用一个for循环.
int main(int argc, char** argv)
{
system("chcp 65001");
int min, max;
printf("请输入表格下限:");
scanf_s("%d", &min);
printf("请输入表格上限:");
scanf_s("%d", &max);
printf("|----------|----------|----------|\n| 整数| 平方| 立方|\n|----------|----------|----------|\n");
for (int i = min;i <= max;i++)
{
printf("|%10d|%10d|%10d|\n", i, i * i, i * i * i);
printf("|----------|----------|----------|\n");
}
return 0;
}
7.编写一个程序把一个单词读入一个字符数组中,然后倒序打印这个单词。提示:str1en()函数(第4章介绍过)可用于计算数组最后一个字符的下标。
int main(int argc, char** argv)
{
system("chcp 65001");
char word[100] = { 0 };
printf("请输入单词:");
scanf_s("%s", word, 100);
for (int i = strlen(word) - 1;i >= 0;i--)
{
printf("%c", word[i]);
}
return 0;
}
8.编写一个程序,要求用户输入两个浮点数,并打印两数之差除以两数乘积的结果。在用户输入非数字之前,程序应循环处理用户输入的每对值。
int main()
{
system("chcp 65001");
printf("请输入两个浮点数:");
double a = 0.0, b = 0.0;
while (scanf_s("%lf %lf", &a, &b) == 2)
{
printf("%f\n", (a - b) / (a * b));
}
}
9.修改练习8,使用一个函数返回计算的结果。
double Calculate(double a, double b)
{
return (a - b) / (a * b);
}
int main()
{
system("chcp 65001");
printf("请输入两个浮点数:");
double a = 0.0, b = 0.0;
while (scanf_s("%lf %lf", &a, &b) == 2)
{
printf("%f\n", Calculate(a, b));
}
}