c语言编程试题.docx
- 文档编号:25125253
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:36
- 大小:22.64KB
c语言编程试题.docx
《c语言编程试题.docx》由会员分享,可在线阅读,更多相关《c语言编程试题.docx(36页珍藏版)》请在冰豆网上搜索。
c语言编程试题
1、输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。
然后输出最后得到的字符。
#include
intmain()
{
charc1;
printf("inputalatter:
\n");
scanf("%c",&c1);
if(c1>='A'&&c1<='Z')
c1=c1+32;
printf("%c",c1);
return0;
}
2、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include
intmain()
{
charc;
intletters=0,space=0,digit=0,other=0;
printf("Pleaseinputletters:
\n");
while((c=getchar())!
='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
elseif(c>='0'&&c<='9')
digit++;
elseif(c=='')
space++;
else
other++;
}
printf("字母数:
%d\n数字数:
%d\n空格数:
%d\n其他字母数:
%d\n",letters,digit,space,other);
return0;
}
3、编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果。
#include
intmain()
{
intn;floatc;
floatsum(intn);
scanf("%d",&n);
c=sum(n);
printf("%f\n",c);
}
floatsum(intn)
{
inti;
floatsum=0.0;
for(i=1;i<=n;i++)
sum=sum+1.0/i;
returnsum;
}
4、输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。
然后输出最后得到的字符。
#include
intmain()
{
charc1;
printf("inputalatter:
\n");
scanf("%c",&c1);
if(c1>='a'&&c1<='z')
c1=c1-32;
printf("%c",c1);
return0;
}
5、求S=a+aa+aaa+...+aa...a(n个a)之值。
其中a是一个数字,n代表a的位数。
例如:
2+22+222+2222+22222(此时n为5),n由键盘输入。
#include
intmain()
{
inti,a,b,c,n;
scanf("%d,%d",&a,&n);
c=b=a;
for(i=2;i<=n;i++)
{
b=10*b+a;
c=b+c;
}
printf("%d\n",c);
return0;
}
6、将一个二维数组行和列的元素互换,存到另外一个二维数组中。
#include
intmain()
{
inti,j;
inta[3][3]={1,2,3,4,5,6,7,8,9},b[3][3];
printf("arraya:
\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("\n");
printf("arrayb:
\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
printf("%5d",b[i][j]);
printf("\n");
}
return0;
}
7、有三个整数a,b,c,由键盘输入,输出其中最大者。
#include
intmain()
{
inta,b,c,d;
intmax(intx,inty,intz);
scanf("%d%d%d",&a,&b,&c);
d=max(a,b,c);
printf("%d\n",d);
return0;
}
intmax(intx,inty,intz)
{
intq,p;
if(x>y)q=x;
elseq=y;
if(z>q)p=z;
elsep=q;
returnp;
}
8、将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,4,3,2,0。
要求改为0,2,3,4,6,8。
#include
intmain()
{
inta[6]={8,6,4,3,2,0};
inti,b[6];
printf("arraya:
\n");
for(i=0;i<6;i++)
printf("%5d",a[i]);
printf("\n");
for(i=0;i<6;i++)
b[i]=a[5-i];
printf("\n");
printf("arrayb:
\n");
for(i=0;i<6;i++)
printf("%5d",b[i]);
printf("\n");
return0;
}
9、有分段函数:
当x<-5时,y=x+10;当-5≤x≤5时,y=x/2;当x>5时,y=2x-10.
编一程序,输入x的值,输出y的值。
#include
intmain()
{
floaty,x;
printf("请输入X的值");
scanf("%f",&x);
if(x<-5)
{
y=x+10;
printf("%3f,y=x+10=%f\n",x,y);
}
elseif(x>=-5&&x<=5)
{
y=x/2;
printf("%3f,y=x/2=%f\n",x,y);
}
else
{
y=2*x-10;
printf("%3f,y=2*x-10=%f\n",x,y);
}
return0;
}
10、用pi4≈1-1/3+1/5-1/7+...公式求pi的近似值,直到某一项的绝对值小于10的-6次方为止。
#include
#include
intmain()
{
intsign=1,count=0;
doublepi=0.0,n=1.0,term=1.0;
while(fabs(term)>=1e-8)
{
pi=pi+term;
n=n+2;
sign=-sign;
term=sign/n;
}
pi=pi*4;
printf("pi=%10.8f\n",pi);
return0;
}
11、输出以下图形
*
***
*****
*******
#include
intmain()
{inti,j,k;
for(i=0;i<=3;i++)
{for(j=0;j<=2-i;j++)
printf("");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}//下面的可以不要
/*for(i=0;i<=2;i++)
{for(j=0;j<=i;j++)
printf("");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}*/
return0;
}
12、输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。
#include
intmain()
{
inta,b,c,t;
printf("请输入a,b,c的值\n");
scanf("%d,%d,%d",&a,&b,&c);
if(a
{
t=a;
a=b;
b=t;
}
if(a { t=a; a=c; c=t; } if(b { t=b; b=c; c=t; } printf("%d,%d,%d,\n",a,b,c); return0; } 13、猴子吃桃问题。 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想吃时就剩一个桃子了。 求第一天共摘了多少个桃子。 #include intmain() { intday,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2; x2=x1; day--; } printf("total=%d\n",x1); return0; } 14、用冒泡排序法对输入的10个数进行升序排序,并存入数组中。 #include intmain() { inta[10],i,j,t; printf("pleaseinput10numbers: \n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=0;j<=9;j++) for(i=1;i<9-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf("thesortednumbers: \n"); for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); return0; } 15、输入三角形的三边长,求三角形面积。 求三角形面积的公式为area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2。 #include #include intmain() { floata,b,c,s,area; printf("pleaseinputa,b,c: \n"); scanf("%f,%f,%f",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%f\tb=%f\t%f\n",a,b,c); printf("area=%f\n",area); return0; } 16、一个数如果恰好等于它的因子之和,这个数就称为完数。 例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。 编程求1000以内所有完数。 #defineM1000 #include intmain() { intk1,k2,k3,k4,k5,k6,k7,k8,k9,k10; inti,a,n,s; for(a=2;a<=M;a++) {n=0; s=a;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 试题