C语言知识点整理1.docx
《C语言知识点整理1.docx》由会员分享,可在线阅读,更多相关《C语言知识点整理1.docx(15页珍藏版)》请在冰豆网上搜索。
C语言知识点整理1
有如下程序,输出结果?
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec++;
printf(“%d\n”,c);
}
输出结果:
2
有以下程序,求输出结果
main()
{inta=3,b=4,c=5,d=2;
if(a
if(bprintf(“%d”,d+++1);
elseprintf(“%d”,d);
}
输出结果:
3
若从键盘输入68,则以下程序输出结果是
main()
{inta;
scanf("%d",&a);
if(a>60)printf("%d",a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
}
输出结果:
686868
main()
{intx=20,y=30,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d,%d\n",x,y);
getch();
}
输出结果:
30,0
main()
{inta=6,b=21,m=0;
switch(a%3)
{case0:
m++;break;
case1:
m++;
switch(b%2)
{default:
m++;
case0:
m++;break;
}
}printf("%d",m);
}
输出结果:
1
main()
{intp,a=9;
if(p=a!
=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
输出结果:
1
输入四个整数,由小到大输出。
main()
{inta,b,c,d,t;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a>b)
{t=a;a=b;b=t;}
elseif(a>c)
{t=a;a=c;c=a;}
elseif(a>d)
{t=a;a=d;d=t;}
elseif(b>c)
{t=b;b=c;c=t;}
elseif(b>d)
{t=b;b=d;d=t;}
elseif(c>d)
{t=c;c=d;d=t;}
printf("%d,%d,%d,%d",a,b,c,d);
}
输入一行字符,分别统计出其中大写字母,小写字母,数字、空格和其他字符的个数。
#include
main()
{charc;
intbl=0,sl=0,space=0,num=0,other=0;
printf("Pleaseinputthechar:
");
while((c=getchar())!
='\n')
{if(c>='a'&&c<='z')
sl++;
elseif(c>='A'&&c<='Z')
bl++;
elseif(c=='')
space++;
elseif(c>='0'&&c<='9')
num++;
else
other++;
}
printf("bigletter=%d,smallletter=%d,space=%d,num=%d,other=%d",bl,sl,space,num,other);
getch();
}
由用户输入一个正数,并分别计算出小于或等于这个数的所有奇数的和,及所有偶数的和。
main()
{inta,js=0,os=0;
printf("Pleaseinputanint:
");
scanf("%d",&a);
if(a%2==0)
do
{os=os+a;
js=js+(a-1);
a-=2;
}
while(a>=0);
else
do
{js=js+a;
os=os+(a-1);
a-=2;
}
while(a>=0);
printf("oushuhe=%d,jishuhe=%d",os,js);
getch();
}
或者:
main()
{inta,i=1,js=0,os=0;
scanf("%d",&a);
while(i<=a)
{if(i%2==0)
os=os+i;
else
js=js+i;
i++;
}
printf("jishuhe=%d,oushuhe=%d",js,os);
getch();
}
提示用户输入一个正数,如果用户输入的是负数,再次提示用户重新输入,直到用户输入的是正数,给出相应的提示并退出程序。
main()
{inta;
printf("Pleaseinputazhengshu:
");
scanf("%d",&a);
while(a<0)
{printf("Youhaveinputafushu,pleaseinputagain:
");
scanf("%d",&a);
}
printf("Youhaveinputazhengshu!
");
getch();
}或者:
main()
{inta;
do
{printf("pleaseinput:
");
scanf("%d",&a);
}
while(a<0);
printf("Youhaveinputazhengshu.");
getch();
}
小明今年12岁,他母亲比他大20岁,编程求在几年后,他母亲的年龄比他大一倍,那时他们分别是多少岁?
main()
{inta=12,b=32,i=0;
while()
{a++;b++;i++;
if(b==a*2)
break;
}
printf(“%dnianhou,xiaoming%dsui,tamuqin%dsui”,i,a,b);
getch();
}
运行结果:
8nianhou,xiaoming20sui,tamuqin40sui
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1到100分,选手最后得分为去掉一个最高分和一个最低分后其余8个分数的平均值,请编写程序实现。
main()
{intsum=0,i,s,min=101,max=-1;
for(i=1;i<=10;i++)
{scanf("%d",&s);
if(sif(s>max)max=s;
sum=sum+s;
}
sum=sum-min-max;
printf("%d",sum/8);
getch();
}
●getchar函数只能接受单个字符,输入数字也按字符处理。
输入多于一个字符时,只接收第一个字符,多余的字符存入到缓冲区,若有下一个getchar函数语句,则直接从缓冲区读一个字符。
加密程序
#include"stdio.h"
main()
{charc;
while((c=getchar())!
='\n')
{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{c=c+4;
if(c>'Z'&&c<='Z'+4||c>'z')
c=c-26;
}
printf("%c",c);
}
}
解密程序
#include
main()
{charc;
while((c=getchar())!
='\n')
{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{c=c-4;
if(c<'A'||c<'a'&&c>'a'-4)
c=c+26;
}
printf("%c",c);
}
getch();
}
输入100个字符,再把这100个字符输出。
#include
main()
{charc;
inti=0;
while(i<100)
{c=getchar();
putchar(c);
i++;
}
getch();
}
从键盘输入一行字符,并显示出来
#include
main()
{charc;
while((c=getchar())!
='\n')
{putchar(c);}
}
main()
*1
*2
**3
{intnum=0;
while(num++<=1)运行结果:
printf("*%d\n",num);
printf("**%d\n",num);
}
main()
1
-2
{intx=3;
Do运行结果:
{printf(“%d\n”,x-=2);
}while(!
(--x));
}
●循环的嵌套:
一个循环结构中包含有另外一个循环结构。
外循环的循环变量增加一次,内循环则要执行完自己的循环一轮。
打印九九乘法表.
main()
{inti,j;
for(i=1;i<=9;i++)
{for(j=1;j
printf("%d*%d=%-2d",i,j,i*j);
printf("\n");
}
}
break语句在循环语句中的使用,其作用是退出本层循环。
continue语句只能用在循环体中
语义:
结束本次循环,转入下一次循环条件的判断与执行。
只结束本层本次的循环,并不跳出循环。
main()
{intn;
for(n=7;n<=100;n++)
{if(n%7!
=0)
continue;
printf("%d",n);
}
}
此程序的功能是:
打印出100以内能被7整除的数。
break和continue区别:
break,退出循环;continue,中断此次循环的执行,开始下一次。
main()
{intx;
for(x=1;x<=10;x++)
{if(x==5)
continue;
printf("%d\t",x);
}
}
main()
{intx;
for(x=1;x<=10;x++)
{if(x==5)
break;
printf("%d\t",x);
}
}
运行结果:
5运行结果:
1234678910
思考以下for循环的执行次数是(D)。
for(x=0,y=0;(y=123)&&(x<3);x++);
A.是无限循环B.循环次数不定
C.执行4次D.执行3次
#include
voidmain()功能:
检查输入的一行
{chara,b;
printf("inputastring:
\n");中有无相邻两字符相同
b=getchar();
while((a=getchar())!
='\n')
{if(a==b)
{printf("samecharacter\n");
break;
}b=a;
}
}
编写一个程序输入一行字符,并输出
#include
main()
{charc;
while((c=getchar())!
='\n')
{
putchar(c);
}
getch();
}
打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
例如,153是一个“水仙花数”,因为153=13+53+33
main()
{inti,j,k,m;
for(m=100;m<1000;m++)
{i=m/100;
j=(m-i*100)/10;
k=m%10;
if(m==i*i*i+j*j*j+k*k*k)
printf("%d",m);
}
getch();
}
已知xyz+yzz=532,其中x,y,z均是一位数字,编一个程序求出x,y,z分别代表什么数字?
main()
{intx,y,z;
for(x=0;x<=9;x++)
{for(y=0;y<=9;y++)
for(z=0;z<=9;z++)
{if((100*(x+y)+10*(y+z)+2*z)==532)
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
getch();
}
一个正整数与3的和是5的倍数,与3的差是6的倍数,编程求符合条件的最小数?
main()
{intm;
for(m=0;;m++)
{if(((m+3)%5==0)&&((m-3)%6==0))
{printf("%d",m);
break;
}
}
getch();
}