1、请写出下面程序的输出结果:
#include
Void main()
{
Int a=5,b=7;
Float x=67.8564,y=-789.124;
Char c=’A’;
Long n=1234567;
Unsigned u=65535;
Printf(“%d%d\n”,a,b);直接输出57;
Printf(“%3d%3d\n”,a,b);57前面各补两个空格;
Printf(“%f,%f\n”,x,y);输出结果是小数点后有6位,若不满6位,系统随机补位;
Printf(“%-10f,%-10f\n”,x,y);左对齐,占10位(小数点也算),不够的话在后面补空格;Printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n”,x,y,x,y,x,y);
%8.2f:小数点后取两位,小数点前原样输出,加上小数点一共8位;
%.4f:小数点后取4位,小数点前原样输出,不足4位时,后面补0;
%3f:和%f一样,自动突破;
Printf(“%e,%10.2e\n”,x,y);
%e:小数点前保留一位,小数点后原样输出,后面e+001(进1位);
%10.2e:小数点前保留一位,小数点后保留两位,包括小数点共10位;
Printf(“%c,%d,%o,%x\n”,c,c,c,c);
%c:输出单个字符;
%d:输出字符的十进制ascii码;
%o:输出字符的八进制ascii码;
%x:输出字符的十六进制ascii码;
Printf(“%ld,%lo,%x\n”,n,n,n);
%ld:输出十进制长整形ascii码;
%lo:输出八进制长整形ascii码;
%x:输出十六进制ascii码;
Printf(“%u,%o,%x,%d\n”,u,u,u,u);
%u:输出十进制无符号整数;
%o:输出八进制无符号整数;
%x:输出十六进制无符号整数;
%d:输出十进制有符号整数;
Printf(“%s,%5.3s\n”,”COMPUTER”,”COMPUTER”);
%s:输出字符串;
%5.3s:输出占5列,但只取字符串中左端3个字符。这3个字符输出在5列的右侧,左补空格。
}
2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在
键盘上如何输入?
#include
Void main()
{
Int a,b;
Float x,y;
Char c1,c2;
Scanf(“a=%db=%d”,&a,&b);
Scanf(“%f%e”,&x,&y);
Scanf(“%c%c”,&c1,&c2);
}
3、输入一个华氏温度,要求输出摄氏温度。公式为
输出要有文字说明,取2位小数。
4、编程序,用getchar函数读入两个字符给c1,c2然后分别用putchar函数和printf函数输出这两个字符。
1、写出下面各逻辑表达式的值。设a=3,b=4,c=5.
1)a+b>c&&b==c 0
2)a||b+c&&b-c 1
3)!(a>b)&&!c||1 1
4)!(x=a)&&(y=b)&&0 0
5)!(a+b)+c-1&&b+c/2 1
2、有3个整数,a,b,c,由键盘输入,输出其中最大的数,请编程序。
#include
void main()
{
int w;
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
printf("max=");
if(a>b&&a>c)
printf("%d\n",a);
else if(b>c&&b>a)
printf("%d\n",b);
else if(c>a&&c>b)
printf("%d\n",c);
}
3、有一个函数:
y=
写一段程序,输入x,输出y。
#include
void main()
{
int x,y;
scanf("%d",&x);
if(x<1)
printf("y=%d\n",x);
else if(1<=x<10)
printf("y=%d\n",2*x-1);
else if(x>=10)
printf("y=%d\n",3*x-11);
}
1、给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80~89分
为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。
#include
void main()
{
int score;
scanf("%d",&score);
if(score>90)
printf("A\n");
else if(score>=80)
printf("B\n");
else if(score>=70)
printf("C\n");
else if(score>=60)
printf("D\n");
else
printf("E\n");
}
2、给一个不多于5位的正整数,要求:
1)求出它是几位数;
2)分别输出每一位数字;
3)按逆序输出各位数字,例如原数为321,应输出123。
#include
void main()
{
int num;
int a,b,c,d,e,m;
scanf("%d",&num);
if(num>9999)
m=5;
else if(num>999)
m=4;
else if(num>99)
m=3;
else if(num>9)
m=2;
else
m=1;
printf("输入的是%d位数\n",m);
a=num/10000;
b=(num-a*10000)/1000;
c=(num-a*10000-b*1000)/100;
d=(num-a*10000-b*1000-c*100)/10;
e=num-a*10000-b*1000-c*100-d*10;
printf("输入的数字为:%d\n",num);
}
#include
void main()
{
int num;
int a,b,c,d,e,m;
scanf("%d",&num);
if(num>9999)
m=5;
else if(num>999)
m=4;
else if(num>99)
m=3;
else if(num>9)
m=2;
else
m=1;
printf("输入的是%d位数\n",m);
a=num/10000;
b=(int)(num-a*10000)/1000;
c=(int)(num-a*10000-b*1000)/100;
d=(int)(num-a*10000-b*1000-c*100)/10;
e=(int)num-a*10000-b*1000-c*100-d*10;
printf("输入的数字为:%d\n",num);
switch(m);
{
case 5:
{
pintf("%d,%d,%d,%d,%d\n",a,b,c,d,e");
printf("逆序数字为:%d,%d,%d,%d,%d\n",e,d,c,b,a);
}
break;
case 4:
{
printf("%d,%d,%d,%d\n",b,c,d,e);
printf("逆序数字为:%d,%d,%d,%d\n",e,d,c,b);
}
break;
case 3:
printf("%d,%d,%d\n",c,d,e);
printf("逆序数字为:%d,%d,%d\n",e,d,c);
break;
case 2:
printf("%d,%d\n",d,e);
printf("逆序数字为:%d,%d\n",e,d);
break;
case 1:
printf("%d\n",e);
printf("逆序数字为:%d\n",e);
break;
}
}
1、求S n=a+aa+aaa+…+aa…a(n个a)之值,其中a是一个数字,n表示a的位数,例如:
2+22+222+2222+22222( 此时n=5)n由键盘输入。
2、输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于
该数本身。例如,153是一个水仙花数,因为153=13+53+33。
#include
void main()
{
int i,a,b,c;
for(i=101;i<999;i++)
{
a=i/100;
b=(i-a*100)/10;
c=i-a*100-b*10;
if(i==a*a*a+b*b*b+c*c*c)
printf("%d\n",i);
}
}
1、用选择法对10个整数排序。
#include
void main()
{
int a[10];
int i,j,t,m,min;
printf("请输入10个数字:\n");
for(m=0;m<=9;m++)
scanf("%d",&a[m]);
for(i=0;i<9;i++)
{
min=i;
for(j=i+1;j<=9;j++)
if(a[min]>a[j]) min=j;
t=a[i];a[i]=a[min];a[min]=t;
}
printf("重新排列的顺序为:\n");
for(i=0;i<10;i++)
printf("%3d\n",a[i]);
}
2、有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
1、输出以下的杨辉三角(要求输出10行)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
#include
void main()
{
int i,j,a[10][10];
for(i=0;i<11;i++)
for(j=0;i<20;j++)
a[i][j]=0;
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
{
if(j<1||j==i)
a[i][j]=1;
else if (i==0)
break;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
2、输出以下图案:
*****
*****
*****
*****
*****
3、编一个程序,将两个字符串连接起来,不要用strcat函数。
1、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这俩个函数,
并输出结果。两个整数由键盘输入。
方法:设两个整数为u和v,用辗转相除法求最大公约数的算法如下:
If v>u
将变量u和v的值互换(使大者u为被除数)
While(u/v的余数r!==0)
{
u=v (使除数v变为被除数u)
v=r (使余数r变为除数v)
}
输出最大公约数v
#include
int main()
{
int u,v,m,n,t;
int max(int,int);
printf("请输入两个数字:");
scanf("%d %d",&u,&v);
while(u { t=u; u=v; v=t; } m=max(u,v); n=u*v/m; printf("最大公约数是:%d\n",m); printf("最小公倍数是:%d\n",n); } int max(int x,int y) { int z; while(x%y!=0) { z=x%y; x=y; y=z; } return(y); } 最小公倍数L=u*v/最大公约数v 2、编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符 的个数,在主函数中输入字符串以及输出上述的结果。