C语言程序常考题.docx
《C语言程序常考题.docx》由会员分享,可在线阅读,更多相关《C语言程序常考题.docx(14页珍藏版)》请在冰豆网上搜索。
C语言程序常考题
1将成绩分为A,B,C等的程序
#include
voidmain()
{
intscore;
chargrade;
printf("Pleaseinputascore:
\n");
scanf("%d",&score);
grade=score>=90?
'A':
(score>=60?
'B':
'C');
printf("%dbelongsto%c\n",score,grade);
}
2判断是数字,字母,还是其他字符
#include
voidmain()
{
charc;
printf("Pleaseinputacharacter:
");
c=getchar();
if(c>='A'&&c<='Z'||c>='a'&&c<='z')
printf("%cisletter\n",c);
elseif(c>='0'&&c<='9')
printf("%cisdigit\n",c);
else
printf("%cisothercharacter\n",c);
}
3三角形面积
#include
#include
voidmain()
{
floata,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);
printf("area=%7.2f,s=%7.2f\n",area,s);
}
4输入数字,即可得到相应星期单词
#include
voidmain()
{
intx;
printf("Inputintegernumber:
");
scanf("%d",&x);
switch(x)
{case1:
printf("Monday\n");break;
case2:
printf("Tuesday\n");break;
case3:
printf("Wednesday\n");break;
case4:
printf("Thursday");break;
case5:
printf("Friday\n");break;
case6:
printf("Saturday\n");break;
case7:
printf("Sunday\n");break;
default:
printf("error\n");
}
}
5圆的周长,面积,球的体积,表面积,圆柱体积
#include
#definePI3.1415926
voidmain()
{floatr,h,l,s,sq,vq,vz;
printf("请输入圆半径r,圆柱高h:
\n");
scanf("%f,%f",&r,&h);
l=2*PI*r;
s=PI*r*r;
sq=4*PI*r*r;
vq=4.0/3.0*PI*r*r*r;
vz=PI*r*r*h;
printf("圆周长:
l=%6.2f\n",l);
printf("圆面积:
s=%6.2f\n",s);
printf("圆球表面积:
sq=%6.2f\n",sq);
printf("圆球体积:
sv=%6.2f\n",vq);
printf("圆柱体积:
sz=%6.2f\n",vz);
}
6某分段函数,输入X求解Y的值
#include
voidmain()
{
floatx,y;
printf("Pleaseinputx:
");
scanf("&f",&x);
if(x<-1)
y=1;
else
if(x<=1)
y=2*x-5;
else
y=5*x*x-1;
printf("y=%10f\n",y);
}
7比较输入的两个数,并输出较大值
#include
voidmain()
{
floatx,y,max;
printf("Pleaseinputtwonumberx,y:
");
scanf("%f,%f",&x,&y);
if(x>y)
max=x;
else
max=y;
printf("max=%7.2f",max);
}
例5.10 求两个整数的最大公约数和最小公倍数。
#include
void main( )
{
int m,n,p,t,r;
scanf(“%d,%d”,&m,&n);
if(n{
t=n;
n=m;
m=t;
}
p=m*n;
while(m!
=0)
{
r=n%m;
n=m;
m=r;
}
printf(“m和n的最大公约数:
%d\n”,n);
printf(“m和n的最小公倍数:
%d\n”,p/n);
}
课后2、计算1-10之间的奇数和偶数之和并分别输出。
#include
void main( )
{
int a,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2;)
{
a+=I;
b=i+1;
c+=b;
}
printf(“偶数之和=%d\n”,a);
printf(“奇数之和=%d\n”,c-11);
}
3、求100-200间的全部素数并输出,输出十个数后换行。
#include
#include
void main( )
{
int m,flag,i,n;
for(m=101;m<200;m=m+2;)
{
flag=1;
for(i=2;iif(m%i==0)
{
flag=0;
break;
}
if(flag= =1)
{printf(“%d”,m);
N=n+1
}
If(n%10==0) printf(“\n”);
}
}
4、输出100以内能被3整除且个位数为6的所有整数。
#include
void main( )
{
int i,j;
for(i=0;i<=9;i++)
{
j=i*10+6;
if(j%3!
=0) continue;
printf(“%d”,j);
}
printf(“%\n”);
}
例6.4应用冒泡排序法将数组中的五个数据按升序排列。
#include
void main( )
{
int i,j,t,a[5];
printf(“please input the array:
”);
for(i=0;i<5;i++)
scanf(“%d”,&a[i]);
for(i=0;i<4;i++)
for(j=0;j<4-I;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf(“the result is:
”);
for(i=0;i<5;i++)
printf(“%d”,a[i]);
printf(“\n”)
}
例6.7将3*4的二维数组中的第0列和最后一列的元素的数值交换,第一列和第二列元素的值相交换。
#include
void main( )
{
int a[3][4]={{5,8,9,1},{4,2,6,7},{12,13,14,10}},i,j,k;
for(i=0;i<3;i++)
for(j=0;j<4/2;j++)
{
k=a[i][j];
a[i][j]=a[i][3-j];
a[i][3-j]=k;
}
for(i=0;i<3;i++)
{
printf(“\n”);
for(j=0;j<4;j++)
printf(“%4d”,a[i][j]);
}
printf(“\n”);
}
例6.8求3*3矩阵主对角线和次对角线上各元素之和。
#include
void main( )
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},I,j,sum=0;
for(i=0;i<3;i++)
sum+=a[i][j];
for(i=0;i<3;i++)
for(j=2;j>=0;j--)
if(i+j==2)
sum+= a[i][j];
sum=sum-a[3/2][3/2];
printf(“sum=%d\n”,sum);
}
请编写函数fun,其功能是求2+4+6+8+…+20的和
#include
voidNONO();
intfun()
{
intsum=0;
for(inti=2;i<21;i++)
{sum+=i;
i++;}
returnsum;
}
voidmain()
{
printf("%d\n",fun());
NONO();
}
voidNONO()
{FILE*wf;
wf=fopen("j5.out","w");
fprintf(wf,"%d\n",fun());
fclose(wf);
}
用指向二维数组元素的指针变量,找出二维数组中值最大的元素,并指出。
#include
voidmain()
{
inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int*p;
intmax;
max=a[0][0];
for(p=&a[0][0];p<&a[0][0]+12;p++)
if(*p>max)max=*p;
printf("max=%d\n",max);
}
用字符型指针变量输出字符数组中的字符串
#include
voidmain()
{
chars[]="HELLO!
";
char*p;
p=s;
while(*p!
='\0')
{
printf("%c",*p);
p++;
}
printf("\n");
}
定义一个求字符串长度的函数,输出由键盘输入的字符串的长度。
#include
#include
intmystrlen(char*s)
{
intlen=0;
while(*s++)
len++;
returnlen;
}
voidmain()
{
intk;
chara[80];
gets(a);
k=mystrlen(a);
printf("%d\n",k);
}
把“FORTRAN”、“BASIC”、“C++”、“VB”、“C”五个字符串,用指针数组存放它们的首地址,并用指向指针的指针变量把它们输出。
#include
voidmain()
{
inti;
char*c[5]={"FORTRAN","BASIC","C++","VB","C"};
char**p;
p=c;
for(i=0;i<5;i++)
{
printf("%s\n",*p);
p++;
}
}
调用max函数返回数组各元素中值最大的元素地址。
#include
int*max(intb[],intn)
{
inti,*q=b;
for(i=1;iif(*q
returnq;
}
voidmain()
{
int*p,a[10]={-7,5,19,13,14,38,-2,11,10,-6};
p=max(a,10);
printf("max:
%d\n",*p);
}
用指针变量指向一维数组中的最大值,并输出最大值。
#include
voidmain()
{
inta[8]={-2,8,9,12,15,17,25,-8};
inti,*p;
p=a;
for(i=1;i<8;i++)
if(*pprintf("%d\n",*p);
}
例4.9编写程序,判断某一年是否是闰年
#include
voidmain()
{
intyear,flag;
printf(“Pleaseinputyear:
”);
scanf(“%d”,&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
flag=1;
else
flag=0;
}
else
flag=1;
}
else
flag=0;
if(flag)
printf(“%disaleapyear\n”,year);
else
printf(“%disnotaleapyear\n”,year);
}
2.输出一个字符,判别它是否是大写字母,如果是大写字母,将其转换为小写字母,否则就不转换,最后输出
#include
voidmain()
{
charch;
scanf(“%c”,&ch);
ch=(ch>=’A’&&ch<=’Z’?
(ch+32):
ch);
printf(“%c”,ch);
}
3.有一个函数:
y={
x(x<1)
2x-1(1<=x<10)
3x-11(x>=10)
根据该分段函数写程序,输入一个x,输出对应y的值
#include
voidmain()
{
floatx,y;
printf(“Pleaseinputx:
”);
scanf(“%f”,&x);
if(x<1)
y=x;
elseif(x<10)
y=2*x-1;
else
y=3*x-11;
printf(“y=%10f\n”,y);
}
例5.4任意输入10个整数,找出其中最大值并输出
#include
voidmain()
{
inta,max;
inti;
scanf(“%d”,&a);
max=a;
for(i=1;i<10;i++)
{
scanf(“%d”,&a);
if(a>max)max=a;
}
printf(“max=%d\n”,max);
}
例5.5输入一个大于3的整数给m,判断m是否为素数
#include
#include
voidmain()
{
intm,i,flag;
printf(“请输入要判断的正整数m;”);
scanf(“%d”,&m);
flag=1;
for(i=2;i<=sqrt(m);i++)
if(m%i==0)
{
flag=0;
break;
}
if(flag==1)
printf(“%d是素数\n”,m);
else
printf(“%d不是素数\n”,m);
}
例5.6将300~400之间既能被3整除,又能被5整除的数输出,要求一行输出5个数
#include
voidmain()
{
intn,i=0;
for(n=300;n<=400;n++)
{
if(n%3!
=0||n%5!
=0)
continue;
printf(“6%d”,n);
i++;
if(i%5==0)printf(“\n”);
}
printf(“\n”);
}
例5.7输出如图所示的九九乘法口诀
#include
voidmain()
{
inti,j;
for(i=1,i<=9;i++)
{for(j=1;j<=i;j++)
printf(“%d*%d=%2d”,i,j,i*j);
printf(“\n”);
}
}
友情提示:
本资料代表个人观点,如有帮助请下载,谢谢您的浏览!