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);
}