100&&scoreprintf("请重新输入:");elsed=score/10;switch(d){case0:case1:case2:case3:case4:case5:grade='E';break;case6:grade='D';break;case7" />
文档库 最新最全的文档下载
当前位置:文档库 › c程序典型例题

c程序典型例题


5.6 #if 1

#include
void main()
{
int score,d;
char grade;
scanf("%d",&score);
if(score>100&&score<0)
printf("请重新输入:");
else
d=score/10;
switch(d)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:grade='E';break;
case 6:grade='D';break;
case 7:grade='C';break;
case 8:grade='B';break;
case 9:grade='A';break;
case 10:;
}
printf("成绩等级为:grade=%c\n",grade);
}

#endif

#if 0

#endif

1.判断回文数
#include
void main()
{
int a,b,c,i;
b=0;
scanf("%d",&a);
c=a;
for(i=0;;i++)
{
b=b*10+a%10;
a=a/10;
if(a==0)
break;
}
printf("%d\n",b);
if(b==c)
printf("%d为回文数。\n",c);
else
printf("%d不为回文数。\n",c);
}

2.给一个不多于五位数的正数,要求:
(1)求出他是几位数;
(2)分别输出每一位数字;
(3)按逆序输出各位数字,例如原数是321,应输出123.
#include
void main()
{
int f,c,i,m,k;
m=0;
printf("请输入f:");
scanf("%d",&f);
k=f;
if(f<1||f>=100000)
{
printf("输入错误,请重新输入f:");
scanf("%d",&f);
}
for(i=1;;i++)
{
m=m*10+f%10;
f=f/10;
if(f==0)break;
}
printf("输出f是%d位数\n",i);
printf("%d\n",m);
for(;;)
{
c=k%10;
k=k/10;
printf("%d\n",c);
if(k==0)break;
}
}

3.求1!+2!+3!+...+20!。
#include
void main()
{
float i,n,sum;
sum=0;
n=1;
for(i=1;i<=20;i++)
{
n=n*i;
sum=sum+n;
}
printf("%f\n",sum);
}
4.输出“水仙花数”,即153=1*1*1+5*5*5+3*3*3。
#include
void main()
{
int i,a,b,t;
for(i=100;i<1000;i++)
{
a=i/100;
b=(i-a*100)/10;
t=(i-a*100)-b*10;
if(i==a*a*a+b*b*b+t*t*t)
printf("%d\n",i);
}
}


5.★分析下面程序
main()
{ int x,y;
x=16;y=(x++)+x; printf(“%d\n”,y);
x=15;printf(“%d,%d\n”,++x,x);
x=20;y=x--+x; printf(“%d\n”,y);
x=13;printf(“%d,%d”,x++,x);
}
程序的输出结果是____32 16,15 40 13,13________。

6.★下列程序的输出结果是_GFEDCB________:
#include”stido.h”
main()
{ char b[]=”ABCDEFG ”;
char *chp=&b[7];
while(--chp>&b[0])
putchar(*chp);
putchar (‘\n’);
}

/*7.输入一串字符以"#"结束,如果它是大写字母转换为小写字母输出,如果是小写字母转换为大写字母输出。
如果不是字母,则照直输出。*/
#if 1
#include
void main()
{
char c;
while((c=getchar())!='#')
{
if('A'<=c&&c<='Z')
{
c=c+32;
printf("%c\n",c);
}
else if('a'<=c&&c<='z')
{
c=c-32;
printf("%c\n",c);
}
else//if(('A'>c||c>'Z')&&('a'>c||c>'z'))
{
printf("%c\n",c);
}
}
}
#endif
8.相邻两个奇数都为素数的这样一对数叫双胞胎素数,输出100到200之间的所有双胞胎素数。

//7.相邻两个奇数都为素数的这样一对数叫双

胞胎素数,输出100到200之间的所有双胞胎素数.
#include
#include
void main()
{
int m,i,j,k,n=0;
int a[100];
for(i=101;i<201;i+=2)
{
k=(int)sqrt(i);
for(m=2;m<=k;m++)
{
if(i%m==0)break;

}
if(m>=k+1)
{
a[n]=i;
n=n+1;
}
}
for(j=0;j<=n;j++)
{
if(a[j+1]-a[j]==2)
{
printf("%d,%d\n",a[j],a[j+1]);
}
}


}
7.(法一:)
#include
#include
void main()
{
int m,i,k,n=0;//或n=101
for(m=100;m<=200;m++)//m=101
{

k=(int)sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
if (fabs(m-n)==2)
printf("%d,%d\n",n,m);
n=m;
}

}


9./*10.输入两门课的成绩,如果两门成绩都在60分以上。则输出"it is pass."只要有一门低于60分就输出"it is not pass.
"如果输入的任何一门成绩不在0-100范围内则输出"it is error."。(要求用switch语句来编程)*/
#if 0
#include
void main()
{
float m,n;
int grade;
scanf("%f,%f",&m,&n);
if(m<0||m>100||n<0||n>100)
printf("it is error.");
else
{
if((m/10)>=6&&(n/10)>=6)
grade=1;
else if(((m/10)>=6&&(n/10)<6)||((m/10)<6&&(n/10)>=6)||((m/10)<6&&(n/10)<6))
grade=0;
switch(grade)
{
case (0):printf("it is not pass.");break;
case (1):printf("it is pass.");break;
}
}
}
#endif
10.
输出‘*’组成的菱形。
#include
#define N 7
void main()
{
int i,j;
for(i=0;i{
for(j=0;j{
if(i+jN/2||i-j>N/2||i+j>=N+N/2)
{
putchar(' ');
}
else
{
putchar('*');
}
}

putchar('\n');
}
}

11.输入十个数,用冒泡法排序。
#include
void main()
{
int i,j,k;
int a[10];
printf("input 10 numbers:\n");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
{
for(i=0;i<9-j;i++)
{
if(a[i]>a[i+1])
{
k=a[i];
a[i]=a[i+1];
a[i+1]=k;
}
}
}
printf("the sorted numbers\n");
for(i=0;i<=9;i++)
printf("%d ",a[i]);
printf("\n");
}
12.以下循环体的执行次数是D
A) 3 B) 2 C) 1 D) 0
main()
{ int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);
}
13.有一个二维数组,能存放三个字符串,要求找出其中的最大者。
#if 1
#include
#include
void main()
{
char a[3][10];
char str1[10];
int i;
for(i=0;i<3;i++)
{
gets(a[i]);
}
for(i=0;i<2;i++)
{
if(strcmp(a[i],a[i+1])>0)
strcpy(str1,a[i]);
else
strcpy(str1,a[i+1]);
}
puts(str1);
}
#endif

14//输入一行字符,将此字符串中最长的单词输出。
#if 0
#include
#include
void f(char str[]);
void main()
{
char str[50];
gets(str);
f(str);
}


void f(char str[])
{
int i=0,h=0,k,t;
char sep[50]=" ,.?!*/\';:#%&";
char str1[50][50],

a[50];
char *tok;
tok=strtok(str,sep);
while(tok!=NULL)
{

strcpy(str1[i++],tok);
tok=strtok(NULL,sep);
}

for(k=0;k{
t=strlen(str1[k]);
if(t>h)
{
h=t;
strcpy(a,str1[k]);
}
}
printf("%d\n",h);
puts(a);
}
#endif

15.///用strtok函数实现操作。
#if 1
#include
#include
void main()
{
char str[]="some people,like.student/ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
char sep[]=" ,.;/-:";
char *tok;
tok=strtok(str,sep);
printf("%s\n",tok);
while(tok=strtok(NULL,sep))
printf("%s\n",tok);
printf("\n");
}
#endif

相关文档