C语言作为一门非常重要的编程语言,被广泛应用于各种领域,如嵌入式系统、操作系统、数据库系统等,因此学好C语言对于计算机专业的学生来说至关重要。然而,C语言的学习并不容易,尤其是对于初学者来说,需要付出很多的时间和精力才能掌握它。而课后习题作为一种重要的学习方式,可以帮助学生更好地巩固所学的知识,提高自己的编程能力。本文将介绍一些精选的C语言课后习题,并给出相应的参考答案,希望能够帮助需要的同学们。
1.写一个程序,输出所有的素数
素数是指只能被1和自身整除的正整数,比如2,3,5,7,11,13等。编写程序输出1-100之间的素数。
参考答案:
#include
int main()
{
int i, j, flag;
for (i = 2; i <= 100; i++)
{
flag = 1;
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
printf("%d ", i);
}
return 0;
}
2.写一个程序,输入一个数字n,输出1~n之间每个数二进制位上1的个数
要求输出每个数二进制位上1的个数,并且每10个数换一行输出。
参考答案:
#include
int get_bit(int n)
{
int count = 0;
while (n)
{
if (n % 2 == 1)
count++;
n /= 2;
}
return count;
}
int main()
{
int n, i;
printf("Input a number n:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
printf("%d ", get_bit(i));
if (i % 10 == 0)
printf("\n");
}
return 0;
}
3.写一个程序,输入一组数,去掉其中的重复数字并输出
要求用数组存储输入的数字,然后去掉重复数字并输出。
参考答案:
#include
int main()
{
int a[100], i, j, n;
printf("Input the size of the array:");
scanf("%d", &n);
printf("Input the elements of the array:");
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n; i++)
{
for (j = i+1; j < n; j++)
{
if (a[i] == a[j])
a[j] = a[j+1];
}
}
printf("The output is:");
for (i = 0; i < n; i++)
printf("%d ", a[i]);
return 0;
}
4.写一个程序,输入一个字符串,判断它是否是回文字符串
回文字符串是指正序和倒序读起来都一样的字符串,比如“level”、“deed”等。编写程序输入一个字符串,判断它是否是回文字符串。
参考答案:
#include
#include
int main()
{
char a[100];
int i, n, flag = 1;
printf("Input a string:");
gets(a);
n = strlen(a);
for (i = 0; i < n/2; i++)
{
if (a[i] != a[n-i-1])
{
flag = 0;
break;
}
}
if (flag)
printf("It is a palindrome string.");
else
printf("It is not a palindrome string.");
return 0;
}
以上便是一些精选的C语言课后习题,相信能够帮助学生们更好地巩固所学的知识,提高自己的编程能力。当然,这只是一小部分题目,要想进一步提升自己的编程能力,需要多做题多练习,才能够真正地掌握C语言。