C 程序设计教程(17)—— 循环结构程序设计练习题

C 程序设计教程(17)—— 循环结构程序设计练习题

在这里插入图片描述

该专栏主要介绍 C 语言的基本语法,作为《程序设计语言》课程的课件与参考资料,用于《程序设计语言》课程的教学,供入门级用户阅读。

一、选择题

1、有以下程序:

#include<stdio.h>
int main() 
{
    
    
	int i,j,s=0;
	for(i=1;i<=15;i+=4)  //循环4次 
		for (j=3;j<=19;j+=4) //循环5次 
		    s++;
	printf("%d\n",s);
	return 0;
}

输出结果为(C)。

A、12 B、15 C、20 D、25

2、有以下程序:

#include<stdio.h>
int main() 
{
    
    
	int n=10;
	while(n>7)
	{
    
    
		n--;
		printf("%d  ",n);
	 } 
	return 0;
}

输出结果为(B)。

A、10 9 8 B、9 8 7 C、10 9 8 7 D、9 8 7 6

3、有以下程序:

#include<stdio.h>
int main() 
{
	int x=3;
	do
	{
		printf("%3d",x-=2);
	} 
	while(!(--x));
	return 0;
}

输出结果为(C)。

A、1 B、3 0 C、1 -2 D、死循环

4、有以下程序:

#include<stdio.h>
int main() 
{
    
    
	int j,sum;
	for(j=1;j<=6;j++) sum+=j;
	printf("%d\n",sum);
	return 0;
}

输出结果为(C)。

A、12 B、15 C、不确定 D、0

5、有以下程序:

#include<stdio.h>
int main() 
{
    
    
	int y=10;
	for(;y>0;y--) 
		if(y%3==0){
    
    
			printf("%d  ",--y);
			continue;
		}
	return 0;
}

输出结果为(B)。

A、17 4 1 B、8 5 2 C、9 6 3 D、8 7 5 4 2

6、有以下程序:

#include<stdio.h>
int main() 
{
    
    
	int j;
	for(j=1;j<=5;j++) 
	{
    
    
		if(j%2) printf("*");
		else continue;
		printf("#");
	}
	printf("$\n");
	return 0;
}

输出结果为(A)。

A、*#*#*#$ B、#*#*#*$ C、*#*#$ D、#*#*$

7、有以下程序:

#include<stdio.h>
int main() 
{
    
    
	int c;
	while((c=getchar())!='\n')
	switch(c-'2'){
    
    
		case 0:
		case 1:putchar(c+4);
		case 2:putchar(c+4);break;
		case 3:putchar(c+3);
		default:putchar(c+2);break;
	}
	printf("\n");
	return 0;
}

当输入2476后,输出结果为(A)。

A、66898 B、668966 C、66778777 D、6688766

二、填空题

1、有以下程序:

#include<stdio.h>
int main() 
{
    
    
	float s=1.0;
	int k,n=1000;
	for(k=1;k<=n;k++)
    	s=s+1.0/(k*(k+1));
	printf("%f\n",s);
	return 0;
}

请填空,使下面程序的功能完全与上面的程序相同。

#include<stdio.h>
int main() 
{
    
    
	float s=1.0, d;
	int k=0,n=1000;
	do {
    
    
    	s=s+d;
    	________________  //此处填写:k++
    	d=1.0/(k*(k+1));
	}
	while (____________);  //此处填写:k<=n
	printf("%f\n",s);
}

2、下面程序运行时输入数据 3.6 和 2.4,则输出的结果为(1.600000)。

#include<stdio.h>
#include<math.h>
int main() 
{
    
    
	float x,y,z;
	scanf("%f,%f",&x,&y); //输入:3.6和2.4 
	z=x/y;   //z=3.6/2.4=1.5
	while(1)
	{
    
    
		if (fabs(z)>1.0)
		{
    
    
			x=y;  //x=2.4,y=1.5,z=2.4/1.5=1.6
			      //x=1.5,y=1.6,z<1.0
			y=z;
			z=x/y;
		}
		else break;
	}
	printf("%f\n",y);  //y=1.6
}

3、在执行以下程序时,如果从键盘输入 ABCdef 后回车,则输出为(abcDEF)。

#include<stdio.h>
int main() 
{
    
    
	char ch;
	while((ch=getchar())!='\n')
	{
    
    
		if(ch>='A' && ch<='Z') ch=ch+32;
		else if(ch>='a' && ch<='z') ch=ch-32;
		printf("%c",ch);
	}
	printf("\n"); 
}

4、设 a 为整型变量,执行循环语句 while(a++<5); 后,a 的值为(6)。

三、编程题

1、输入两 个正整数 m 和 n,求其最大公约数和最小公倍数。

程序如下:

#include<stdio.h>
int main() 
{
    
    
	int p,r,m,n,temp;
	printf("请输入两个正整数:");
	scanf("%d,%d",&m,&n);
	if(m<n){
    
    
		temp=m;
		m=n;
		n=temp;
	}
	p=m*n; 
	while(n!=0)
	{
    
    
		r=m%n;
		m=n;
		n=r;
	}
	printf("最大公约数为:%d\n",m); 
	printf("最小公倍数为:%d\n",p/m); 
}

以上程序的执行结果如下:

在这里插入图片描述

2、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

程序如下:

#include<stdio.h>
int main() 
{
    
    
	char ch;
	int letters=0,space=0,digit=0,other=0;
	printf("请输一行字符:\n");
	while((ch=getchar())!='\n')
	{
    
    
		if(ch>='a' && ch<='z' || ch>='A' && ch<='Z') {
    
    
			letters++;
		} else if(ch>='0' && ch<='9')
		{
    
    
			digit++;
		} else if(ch==' ')
		{
    
    
			space++;
		} else
		{
    
    
			other++;
		}
	}
	printf("英文字母个数为:%d\n",letters); 
	printf("数字个数为:%d\n",digit); 
	printf("空格个数为:%d\n",space); 
	printf("其它字符个数为:%d\n",other); 
}

以上程序的执行结果如下:

在这里插入图片描述

3、输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个“水仙花数”,因为:153=13+53+33

程序如下:

#include<stdio.h>
#include<math.h>
int main() 
{
    
    
	int i,j,k,n;
	for(n=100;n<1000;n++)
	{
    
    
		i=n/100;
		j=(n-i*100)/10;
		k=n%10;
		if (n==pow(i,3)+pow(j,3)+pow(k,3))
		{
    
    
			printf("%10d",n);
		}
	}
}

以上程序的执行结果如下:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44377973/article/details/128710313
今日推荐