第一次期中考试错题整理(程序题)

1.输入一个字符,判断字符是否为字母,如果是小写字母则转换为对应的大写字母,反之,其他字符不转换。(输入a,输出A)

答案:#include <stido.h>//利用函数

void fun(char a)

{if(a>='a'&&a<='z') a=a-32;

else if(a>='A'&&a<='Z') a=a=32;

printf(“%c”,a);

}

int main()

{char a;

scanf("%c",&a);

fun(a);

}

2.输入多个字符,以换行'\n'结束,统计其中字母(letter)个数,数字(number)个数,空格(space)个数及其他符号(others)个数。

输入:asjk1658456'.,

输出:letter=5

           number=6

           space=0

           others=3

答案:#include <stdio.h>

#include <string.h>

void fun(char*s)

{ int zm,sz,kg,qt;

zm=sz=kg=qt=0;

for(;*s!='\0';s++)//注意这里的结束条件,gets函数的结束条件永远是!='\0'

{

if(*s>='A'&&*s<='Z'||*s>='a'&&*s<='z') zm++;

else if(*s>='0'&&*s<='9') sz++;

else if(*s==' ') kg++;

else qt++;

}

printf("letter=%d\nnumber=%d\nspace=%d\nothers=%d",zm,sz,kg,qt);

}

int main()

{ char a[200];

gets(a);

fun(a);

}

3.输入n,输出n行以下图形:

输入:3

输出:

  *

 ***

*****

答案:#include <stdio.h>
int main(void)
{ int i,j,k,n;
scanf("%d",&n);
for(i=0;i<n;i++)//控制为n行
{for(k=0;k<n-i-1;k++)//控制该行空格数=n-该行行数
{printf(" ");}
for(j=0;j<2*i+1;j++)//控制该行输出的*数=2*该行数+1
{printf("*");}
printf("\n");
}
}

4.输入两个整数,输出这两个整数之间素数的个数

输入:3 10

输出:3

答案:#include <stdio.h>
int main()
{ int m,n,i,j,flag;
  int sum=0;
  scanf("%d%d",&m,&n);
  if(m==1) m++;//注意不要漏掉这种情况
  for(i=m;i<=n;i++)//控制数字从m到n
  {flag=1;//再用普通的求素数的方法即可
  for(j=2;j<=i-1;j++)
  if(i%j==0) {flag=0;break;}
  if(flag) sum++;
  }
  printf("%d",sum);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值