main()
{char ch1,ch2; ch1=getchar();
if(ch1>='a'&&ch1<='z') ch2=ch1-32;
else if(ch1>='A'&&ch1<='Z') /*此处else不能缺省*/ ch2=ch1+32; else
ch2=ch1; putchar(ch2); } 解法2:
#include
ch=getchar();
if(ch>='a'&&ch<='z') ch=ch-32;
else if(ch>='A'&&ch<='Z') /*此处else不能缺省*/ ch=ch+32; putchar(ch);
}
8、从键盘输入一个字符,若为小写字母,则转化为大写字母;若为大写字母,则转化为小写字母;否则转化为ASCII码表中的下一个字符。 解法1:
#include
{char ch1,ch2; ch1=getchar();
if(ch1>='a'&&ch1<='z') ch2=ch1-32;
else if(ch1>='A'&&ch1<='Z') ch2=ch1+32; else ch2=ch1+1; putchar(ch2); } 解法2:
#include
ch=getchar();
if(ch>='a'&&ch<='z') ch=ch-32;
else if(ch>='A'&&ch<='Z') /*此处else不能缺省*/
ch=ch+32;
else ch=ch+1; putchar(ch); }
9、从键盘输入两个整数及一个运算符,分别求出其和差积商并输出。 (其中运算符在两个整数之间输入) 解法1: main() {int a,b,s; char ch;
scanf(\ if(ch=='+') s=a+b; /*单引号不可少*/ else if(ch=='-') s=a-b; else if(ch=='*') s=a*b; else if(ch=='/') s=a/b; printf(\}
解法2: main() {int a,b,s; char ch;
scanf(\ switch(ch)
{case '+':s=a+b;break; /*case之后要有空格,单引号不可少*/ case '-':s=a-b;break; case '*':s=a*b;break; case '/':s=a/b; }
printf(\}
10、从键盘输入一个百分制分数,将其转化为等级分输出。 解法1: main() {int score;
char ch;
scanf(\if(score>=90)
ch='A';
else if(score>=80) /*此处else不能缺省*/ ch='B';
else if(score>=70) /*此处else不能缺省*/ ch='C';
else if(score>=60) /*此处else不能缺省*/ ch='D';
else
ch='E';
printf(\}
解法2:
main()
{int g; /*g为整数*/ char ch;
scanf(\ switch(g/10) {case 10:
case 9:ch='A';break; case 8:ch='B';break; case 7:ch='C';break; case 6:ch='D';break; default:ch='E';break; }
printf(\} 解法3: main()
{float g; /*g为实数*/ char ch;
scanf(\ switch((int)g/10) {case 10:
case 9:ch='A';break; case 8:ch='B';break; case 7:ch='C';break; case 6:ch='D';break; default:ch='E';break; }
printf(\}
11、已知方程ax2+bx+c=0的系数值(设a≠0),求方程的根。 #include
{float a,b,c,d,p,q,x1,x2;
scanf(\ d=sqrt(b*b-4*a*c); if(d>=0)
{x1=(-b+sqrt(d))/(2*a); /*求两个实根*/ x2=(-b-sqrt(d))/(2*a); printf(\
printf(\
} else
{p=-b/(2*a); /*求两个复根的实部*/
q=sqrt(-d))/(2*a); /*求两个复根的虚部*/ printf(\ /*i为虚数单位*/ printf(\ } }
循环结构程序设计 1、求1+4+7+100之和。 解法1: main() {int s,i;
s=0;
for(i=1;i<=100;i+=3) s=s+i;
printf(\} 解法2: main() {int s,i; s=0; i=1;
while(i<=100) {s=s+i; i+=3; }
printf(\}
2、求1到100之间的奇数之和与偶数之和。 解法1: main() {int s1,s2,i; s1=s2=0; for(i=1;i<=100;i++) {if(i%2==1)
s1=s1+i; /*奇数之和*/ else
s2=s2+i; /*偶数之和*/ }
printf(\
}
解法2: main() {int s1,s2,i; s1=s2=0;
for(i=1;i<=99;i+=2)
s1=s1+i; /*奇数之和*/ for(i=2;i<=100;i+=2)
s2=s2+i; /*偶数之和*/ }
printf(\} 解法3: main() {int s1,s2,i; s1=s2=0;
i=1;
while(i<=99)
{s1=s1+i; /*奇数之和*/ i++;
s2=s2+i; /*偶数之和*/ i++; }
printf(\}
3、用循环程序求10的阶乘。 main()
{long p; /*int型取值范围太小*/ int i;
p=1; /*不能写作p=0;*/ for(i=1;i<=10;i++) p=p*i;
printf(\}
4、求1*3*5*...*19之积。 main() {float p; int i; p=1;
for(i=1;i<=19;i+=2) p=p*i;
printf(\}
5、从键盘输入一个正整数n,求1+2+3+...+n之和并输出。