C语言期中测试试题(AB组-2014)
信管专业2014级《C语言程序设计》期中测试试题(AB组)
注意:B组题目适用于偶数学号的同学。
本次测试共5题,每题20分,共计100分,附加题选做。
题1:使用getchar()函数从键盘上输入多个字符(以#作为输入结束),统计其中的字母、数字和其他字符的个数,运行效果如图所示。
#include
void main()
{ int zm=0,sz=0,other=0;
char ch;
printf("输入多个字符(以#结束):");
ch=getchar();
while(ch!='#')
{ if(ch>='A' && ch<='Z'||ch>='a' && ch<='z')
zm++;
else if(ch>='0'&&ch<='9')
sz++;
else other++;
ch=getchar();
}
printf("字母=%d,数字=%d,其他=%d\n",zm,sz,other);
}
题1:使用getchar()函数从键盘上输入多个字符(以#作为输入结束),将其中的字母和数字字符显示出来,运行效果如图所示。
#include
void main()
{ char ch;
printf("输入多个字符(以#结束):");
ch=getchar();
while(ch!='#')
{ if(ch>='A' && ch<='Z'||ch>='a' && ch<='z'||ch>='0'&&ch<='9')
putchar(ch);
ch=getchar();
}
printf("\n");
}
题2:从键盘上按照规定格式输入一个闭区间的上下限值,求这个区间内能被3或7整除的数的个数及和值。运行效果如图所示。
#include
void main()
{ int x,y,k,sum=0,count=0;
printf("按照[x,y]格式输入数值区间:");
scanf("[%d,%d]",&x,&y);
for(k=x;k<=y;k++)
if(k%3==0||k%7==0)
{ sum+=k;
count++;
}
printf("count=%d,sum=%d\n",count,sum);
}
题2:从键盘上按照规定格式输入一个闭区间的上下限值,求这个区间内能被3整除或个位为3的数的个数与和值。运行效果如图所示。
#include
void main()
{ int x,y,k,sum=0,count=0;
printf("按照[x,y]格式输入数值区间:");
scanf("[%d,%d]",&x,&y);
for(k=x;k<=y;k++)
if(k%3==0||k%10==3)
{ sum+=k;
count++;
}
printf("count=%d,sum=%d\n",count,sum);
}
题3:从键盘上输入一个大于100的整数x,试求[50,x]区间内最大的10个素数的和值。运行效果如图所示。
#include
#include
void main()
{ int x,n,k,sum=0;
printf("x=");
scanf("%d",&x);
for(n=0;n<10 && x>=50;x--)
{
for(k=2;k<=sqrt(x);k++)
if(x%k==0)
break;
if(k>sqrt(x))
{ sum+=x;
n++;
}
}
printf("sum=%d\n",sum);
}
题3:从键盘上输入一个小于100的整数x,试求[x,200]区间内最大的10个素数的和值。运行效果如图所示。
#include
#include
void main()
{ int x,n,m,k,sum=0;
printf("x=");
scanf("%d",&x);
m=200;
for(n=0;n<10 && m>=x; m--)
{
for(k=2;k<=sqrt(m);k++)
if(m%k==