C语言的经典习题及程序答案(7)

2019-04-16 14:48

i++;

}

printf(\到20的和是%d\\n\}

69.从键盘输入一行字符,统计出输入的字符个数(注:不要使用strlun函数编程)。 #include void main()

{ int alphabet=0,i=0; char str[100];

printf (\请输入一个字符串\\n\ gets(str);

for (i=0;str[i]!='\\0';i++) ++alphabet;

printf (\有%d个字母\\n\}

70.编程实现:任意输入10个数,计算所有正数的和,负数的和以及10个数的和。 #include void main() { int i;

float a[10];

printf(\请输入任意十个数\\n\for (i=0;i<10;i++) {

printf(\ scanf(\}

printf(\

printf(\原始数据为:\\n\for (i=0;i<10;i++) printf(\

float sum1=0, sum2=0, sum3=0; for (i=0;i<10;i++)

{if (a[i]>0) sum1=sum1+a[i]; else sum2=sum2+a[i]; sum3=sum1+sum2;}

printf(\正数的和是%f\printf(\负数的和是%f\printf(\总和是%f\}

71.编程实现:求任意20个数中的正数之和及正数的个数,并将结果输出。 #include void main() { int i; float a[20];

printf(\请输入任意二十个数\\n\for (i=0;i<20;i++) {

printf(\ scanf(\} int m=0; float sum=0; for (i=0;i<20;i++) {

if (a[i]>0) m++; }

for (i=0;i<20;i++)

sum=sum+a[i];

printf(\正数的个数是%d\

printf(\所有数的和是%f\}

72.编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。 如:2345 则:计算2*2+3*3+4*4+5*5 #include #include void main () {

printf (\请输入一个四位数\\n\ int x,a,b,c,d,s; scanf (\

a=x/1000; b=x/100-10*a; c=x/10-100*a-10*b; d=x;

printf (\ printf(\ printf (\ printf (\ s=a*a+b*b+c*c+d*d;

printf(\各位数字的平方和是%d\\n\

}

73.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程。 #include void main() {

int a=1020,c=0; do {a=a/2-2; c++;}

while (a!=0); printf(\}

74.编程实现:打印100以内个位数为6且能被3整除的所有数 。 #include void main() {int i;

for (i=0;i<100;i++)

{if (i==6&&i%3==0) printf(\} }

75.编程实现:从键盘输入若干个整数(数据个数应不少于50),其值在0至4的范围内,用-1作为输入结束的标志,统计每个整数的个数。

76.编写一个函数sort,将放到一维数组中的若干个数按从大到小的顺序排序;在主函数中输入若干个数到一个一维数组中,调用sort,对该数组进行排序,在主函数中将原数组和排好序的数组输出。

77.输入一个正整数,将其用质因子的乘积表示,并输出结果,格式为:12=2×2×3。 78.输入一个正整数,求出它的质因子的和,并输出结果,格式为:12的质因子和=2+2+3=7。 79.编写一个函数,判断一个正整数是否为完数:如果一个数的除它本身以外的所有因数之和等于它本身,则它就是完数。主函数中找出1000以内的所有完数。

80.编写函数GCD,求两个正整数的最大公约数,主函数中输入任意5个正整数,调用函数GCD,求出这5个数的最大公约数和最小公倍数。

81.编函数isprime判断正整m是否为素数;如果是素数,返回正整数1,否则返回0;主函数中调用isprime,找出2到1000之间的所有素数。 #include #include int isprime(int); void main()

{

int m;

for(m=2;m<=1000;m++) if(isprime(m)) printf(\}

int isprime(int a) { int i;

for(i=2;i<=sqrt(a);i++) if(a%i==0) return 0; return 1; }

82.一维数组a中的若干个数已按从小到大的顺序有序;在主函数中输入一个数,将其插入到该数组中,使得原数组依然按原序有序,分别输入原数组和插入新元素之后的数组。 #include void main()

{

int a[21],i,j,n,p,temp;

printf(\请输入数组元素的个数:\ scanf(\

printf(\请输入%d个整数:\\n\ for(i=0;i

for(j=0;j<=n-1-i;j++) if(a[j]>a[j+1]) {

temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } }

printf(\原数组为:\\n\ for(i=0;i<=n-1;i++) printf(\

printf(\请输入插入的数:\ scanf(\ for(i=0;i<=n-1;i++) if(p

{

temp=a[i]; a[i]=p; p=temp; }

a[n]=p;

printf(\插入元素后的数组为:\\n\ for(i=0;i<=n;i++) printf(\}

83.有5个国家名,编程实现按字母先后顺序排序,然后分别输出原数组和排序之后的数组。 #include #include

void main() {

char name[5][15],temp[15]; int i,j;

printf(\请输入国家名:\\n\ for(i=0;i<5;i++) gets(name[i]); for(i=0;i<5;i++) for(j=0;j<4-i;j++)

if(strcmp(name[i],name[j+1])>0) {

strcpy(temp,name[j]);

strcpy(name[j],name[j+1]); strcpy(name[j+1],temp); }

printf(\国家名排序后为:\\n\ for(i=0;i<5;i++)

printf(\}

84.有一行文字,要求删去其中的某个字符,此行文字和要删的字符均由键盘输入,分别输出原文字和删除之后的文字(注:原文字中的所有和要删除字符相同的字符完全删除)。 #include void main() {

int i,j;

char a[10],N='n';


C语言的经典习题及程序答案(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《人员素质与能力测评(第2版)》习题答案补充

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: