湖南科技大学c语言
第一套
1、 设计一个程序,从键盘输入3个整数,按由大到小的顺序输出。
#include
main()
{
int a,b,c,t;
printf("请输入3个整数(用逗号分开):");
scanf("%d,%d,%d",&a,&b,&c);
if(a
main()
{
int n,sum=0;
for(n=1;n<100;)
{
sum=sum+n;
n=n+2;
}
printf("%d\n",sum); }
3、 写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此整数为
素数”,否则输出“整数非素数”。(要求从主函数输入整数)
#include
#include
main()
{
int x,n,flag=1;
scanf("%d",&x);
for(n=2;n<=x-1;n++)
if(x%n==0)
flag=0;
if(flag==1)
printf("%d是素数\n",x);
else
printf("%d不是素数\n",x); }
第二套
4、 从键盘输入10个整数,保存在一个数组中,将这10个数逆序输出,然后求
出这10个数的和并输出。
#include
main()
{
short i,a[10],total=0;
printf("请连续输入10个整数(空格分开):\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("这10个整数逆序输出得:\n");
for(i=9;i>=0;i--)
printf("%5d",a[i]);
for(i=0;i<10;i++)
total=total+a[i];
printf("\n这10个整数的和为:%d\n",total); }
5、 输入n个国家的英文名,要求按字母先后顺序,并按照顺序输出。
#include
#include
main()
{
char *nation[]={"China","Russia","France","England","Japan","United States OF
Americe","Australia"};
int i,m;
void sort(char *name[],int);
m=sizeof(nation)/sizeof(char *); sort(nation,m);
for(i=0;i0)
k=j;/*第j个元素更小*/
if(k!=i)/*最小元素是该趟的第一个元素,则不需要交换*/
{
t=name[i];name[i]=name[k];name[k]=t;
}
}
}
#include
#include
void main()
{
int a,b;
char c[5][20],d[20];
for(a=0;a<=4;a++)
scanf("%s",c[a]);
for(a=0;a<=4;a++)
for(b=a;b<=4;b++)
{
if(c[b][0]<=c[a][0]) {
strcpy(d,c[a]); strcpy(c[a],c[b]);
strcpy(c[b],d);
}
}
for(a=0;a<=4;a++)
printf("%s\n",c[a]);
}
6、 某年级共有4个班,每班各有30名学生,有6个科目的考试成绩,要求输
出每门课程最高分的学生的班级、学号和姓名,并计算各班每个学生的平均成绩并
输出。
#include
#define N1 4
#define N2 30
#define N3 6
main()
{
float score[N1][N2][N3],studav[N1][N2];
int i,j,k;
float sum;
for (i=0;i
main()
{
float a[10],sum=0;
int i,maxi;
printf("请输入十个的实数:\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
maxi=0;
for(i=1;i<10;i++)
{
if(a[i]>a[maxi])
maxi=i;
}
printf("%f\n",a[maxi]);
for(i=0;i<10;i++)
sum=sum+a[i];
printf("%f\n",sum);
}
#include
main()
{
float a[10],sum=0,max;
int i;
printf("请输入十个的实数:\n"); for(i=0;i<10;i++)
scanf("%f",&a[i]);
max=a[0];
for(i=1;i<10;i++) {
if(a[i]>max)
max=a[i];
}
printf("%f\n",max); for(i=0;i<10;i++)
sum=sum+a[i]; printf("%f\n",sum);
}
8、 给出三角形的三边A、B、C,求三角形的面积。(先判断三边是否能构成
三角形)。
#include
#include
main()
{
float a,b,c,area,p;
scanf("%f,%f,%f",&a,&b,&c);
p=(a+b+c)/2;
if(a+b>c&&a+c>b&&b+c>a)
{
)*(p-c)); area=sqrt(p*(p-a)*(p-b printf("Area=%6.2f\n",area);
}
else printf("Error\n"); }
9、 编写程序求一个字符串的第n个字符开始、长度为m的字串。
#include
main()
{
char c[100],s[100];
int n,m,i;
printf("请输入一字符串:");
gets(c);
printf("n,m的值\n");
scanf("%d,%d",&n,&m); for(i=0;i
main()
{
int date;
printf("Input a date :");
scanf("%d",&date);
if(date==123)
printf("RIGHT\n");
else
{
printf("WRONG\n");
if(date>123)
printf("It is LARGE\n");
else
printf("It is SMALL\n");
}
}
11、
#include
main()
{
char c[50];
int i,n=0;
scanf("%s",c);
for(i=0;i<50;i++)
if(c[i]!='\0')
{
if(c[i]=='A') n++;
if(c[i]=='a') n++; if(c[i]=='E') n++;
if(c[i]=='e') n++; if(c[i]=='I') n++;
if(c[i]=='i') n++;
if(c[i]=='O') n++;
if(c[i]=='o') n++; if(c[i]=='U') n++;
if(c[i]=='u') n++; }
printf("%d\n",n); }
12、
#include
main()
{
int x;
for(x=1;x<=100;x++)
if(x*x%10==x||x%100==x)
printf("%5d",x);
printf("\n");
}
13、
#include
main()
{
int i;
printf("请输入一个整数:");
scanf("%d",&i);
if(i%7==0)
printf("YES");
else
printf("NO");
}
14、
#include
int strcmp (char str1[],char str2[]) {
int i=0;
while(str1[i]==str2[i]&&str1[i]!='\0'&&str2[i]!='\0')
i++;
return str1[i]-str2[i]; }
main()
{
char str[20];
int x=0;
do
{
printf("\n Enter password:");
gets(str);
if(strcmp(str,"12345"))
x++;
else
{
printf("\nYou are pass!\n");
break;}
}while(x<3);
if(x==3)
printf("\nYou are falrure!\n");
}
15、
#include
main()
{
int i,n,sum=0,s;
for(n=1;n<=10;n++)
{
s=1;
for(i=1;i<=n;i++)
{
s=s*i;
}
sum=sum+s; }
printf("%d",sum); }
16、#include
main()
{
int i,j,row=0,colum=0,max; static int a[3][4]={{1,2,3,4},{9,8,7,6},{10,-10,-4,4}};
max=a[0][0];
for(i=0;i<=2;i++) for(j=0;j<=3;j++) {
if(a[i][j]>max)
{
max=a[i][j];
row=i;colum=j;
}
}
printf("max=%d,row=%d,colum=%d",max,row,colum);
}
17、#include main()
{
int i,n=0;
for(i=1;i<=2000;i++) {
if(i%5==0)
n++;
}
printf("%d\n",n);
}
18、#include
main()
{
long int i,j=0,t,a; printf("输入一个小于65535的正整数:");
scanf("%ld",&i);
a=i;
do
{
t=i%10;
j=j*10+t;
i=i/10;
}
while(i>0);
printf("它的逆序数为:%ld",j);
if(j==a)
printf("它是回文数");
else
printf("它不是回文数"); }
19、#include
main()
{
long int x,y=0;
int t,n=0;
printf("请输入一个不多于5位数的数:\n");
scanf("%ld",&x);
printf("此数的每一位为(由个位开始):\n");
while(x>0)
{
t=x%10;
y=y*10+t;
x=x/10;
n++;
printf("%d\n",t);
}
printf("此数有%d位\n",n);
printf("此数的逆序数为%ld\n",y); }
#include
void fun(void)
{
int a1,a2,a3,a4,a5; long a,b;
printf("请您输入一个5位以内的数\n");
scanf("%ld",&a);
if(a<99999)
{
printf("您输入的数在所求范围里面\n");
a1=a/10000;
a=a-a1*10000;
a2=a/1000;
a=a-a2*1000;
a3=a/100;
a=a-a3*100;
a4=a/10;
a=a-a4*10;
a5=a/1;
if(a1!=0)
{
b=a5*10000+a4*1000+a3*100+a2*10+a1;
printf("此数有5位\n");
}
else if(a1==0&&a2!=0)
{
b=a5*1000+a4*100+a3*10+a2;
printf("此数有4位\n"); }
else if(a1==0&&a2==0&&a3!=0) {
b=a5*100+a4*10+a3;
printf("此数有3位\n");
}
else if(a1==0&&a2==0&&a3==0&&a4!=0)
{
b=a5*10+a4;
printf("此数有2位\n");
}
else
{
b=a5;
printf("此数有1位\n");
}
printf("这个数按逆向表示为%ld\n",b);
}
else
{
printf("您输入的数不在此范围内,请您重新输入:\n");
fun();
}
}
main()
{
fun();
}
20、#include
main()
{
int a[4][4],i,j,sum=0;
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
if(i+j==3||i==j)
sum=sum+a[i][j];
}
}
printf("%d",sum);
}
21、#include #include
main()
{
long t;
char a[100],b[100];
printf("请您分别输入2个字符串\n");
scanf("%s",a);
scanf("%s",b);
t=strcmp(a,b);
if(t==0)
printf("您输入的两个字符串相同\n");
else
printf("您输入的两个字符串不相同\n");
}
22,#include main()
{
int n;
for(n=100;n<=200;n++)
if(n%3==0&&n%7!=0)
printf("%d\t",n);
}
23、#include
main()
{
int n;
-12数字,分别代表着月份:\n"); printf("请输入一个1
scanf("%d",&n);
switch (n)
{
case 1:printf("您输入的月份是:January\n");break; case 2:printf("您输入的月份是:February\n");break; case 3:printf("您输入的月份是:March\n");break;
case 4:printf("您输入的月份是:April\n");break;
case 5:printf("您输入的月份是:May\n");break;
case 6:printf("您输入的月份是:June\n");break; case 7:printf("您输入的月份是:July\n");break;
case 8:printf("您输入的月份是:Augest\n");break;
case 9:printf("您输入的月份是:September\n");break; case 10:printf("您输入的月份是:October\n");break;
November\n");break; case 11:printf("您输入的月份是:
case 12:printf("您输入的月份是:December\n");break;
default:printf("您的输入有误");
}
}
24、#include
#define N 5
void smp_selsesort(int r[],int n)/*简单选择排序*/ {
int i,j,t;
for(i=0;ir[j])
{
t=r[i];
r[i]=r[j];
r[j]=t;
}
}
main()
{
int i,a[N];
printf("请输入%d个整数:\n",N);
for(i=0;i
main()
{
long int a[10],c,s=0;
float b;
printf("请您输入十个整数\n");
for(c=0;c<10;c++)
scanf("%ld",&a[c]);
for(c=0;c<10;c++)
s=s+a[c];
b=s*1.0/10;
printf("平均值b=%f\n",b);
printf("这组数中大于平均值的数为:\n");
for(c=0;c<10;c++)
if(a[c]>b)
printf("%d\n",a[c]); }
26、#include
main()
{
int a,b,s;
for(a=1;a<=9;a++)
{
for(b=a;b<=9;b++) {
s=a*b;
printf("%d*%d=%d\t",a,b,s);
}
printf("\n");
}
}
27、#include
#include
main()
{
int c,w[2],d=0,t=1,q=0; char a[100],b[10]; printf("请您输入一个主字符串:\n");
scanf("%s",a);
printf("请您输入在字符串中多次出现的字符串:\n");
scanf("%s",b);
w[0]=strlen(b);
w[1]=strlen(a); for(c=0;c=w[0])
d=0;
d=d+1;
if(a[c+1]==b[d])
t=t+1;
else
{
d=0;
t=1; }
}
else
{ d=0;t=1; }
if(t==w[0])
q=q+1;
}
printf("您输入的字符%s在主字符串中出现的次数为:\n",b);
printf("%d\n",q); }
28、#include void fun(void)
{
int a;
printf("请您输入您的分数,我们将根据您的分数对其进行评定\n");
scanf("%d",&a); printf("您的分数等级为:\n");
if(a<=100&&a>=90)
printf("A\n");
else if(a<90&&a>=80 )
printf("B\n");
else if(a<80&&a>=70)
printf("C\n");
else if(a<70&&a>=60)
printf("D\n");
else if(a<60&&a>=0)
printf("E\n");
else
{
printf("您输入的分数不在此范围内,请您重新输入:\n");
fun();
}
}
main()
{
fun();
}
29、#include void fun(long a) {
int flag=1,b;
for(b=2;b long fun(char *p)
{
long z=-1;
char c;
do
{
z=z+1;
c=*p;
++p;
}while(c!='\0');
return(z); }
void main()
{
long b;
char a[1000]; printf("请您输入待测字符串\n");
scanf("%s",a); b=fun(a);
printf("您输入的字符串长度为:%ld\n",b);
}
1、#include #include
double fun ( int x[ ]) {
int a[1000];
int i,j=0,k=0;
double s=0.0;
while(x[j]!=0)
{
if(x[j]>0)
{
a[k]=x[j];
k++;
}
j++;
}
for(i=0;i #include
#define N 10
main()
{
char str[N];
int i=0,flag=0; long num=0;
printf("请输入连续数字字符(最多10为数字) : ");
gets(str);
while(str[i]!='\0'&&str[i]!='a')
{
if(str[i]=='-')
flag=1;
else
if(str[i]=='+')
flag=0;
else
num=num*10+(str[i]-'0');
i++;
}
if(flag==1)
num=-num;
printf("由数字字符串转化成整数是:%ld\n",num);
}
3、#include
main()
{
int a,b,c,s=0;
for(a=0;a<=33;a++)
for(b=0;b<=50;b++)
for(c=0;c<=100;c=c+2)
if(100==3*a+2*b+c/2&&a+b+c==100)
s++;
printf("共有驼法:%d种\n",s);
}
1、#include
#include
float fun(int m, int n)
{
float t,p,j,i,k,o;
if(m
main()
{
int x,y,z,i;
printf("1到1000之内能被7或11整除、但不能同时被7和11整除的所有整
数:\n");
for(i=1;i<=1000;i++)
{
x=i%7,y=i%11;
if(x==0&&y!=0||y==0&&x!=0)
printf("%4d",i);
}
printf("\n");
}
3、#include
main()
{
int a[3][3],i,j,sum=0; for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
(i=0;i<3;i++) for
{
for (j=0;j<3;j++)
{
if(i+j==2||i==j)
sum=sum+a[i][j];
}
}
printf("%d",sum); }
#include
double fun(int n)
{
double a=1,b=2,c,sum=0; for(;n>0;n--)
{
sum=a/b+sum;
c=a+b;
a=b;
b=c;
}
return sum;
}
main()
{
int n;
printf("Enter n: ");
scanf("%d", &n);
printf("\nThe result : %f \n", fun(n));
}
2.
#include #include main()
{
char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符:\n");
gets(str);
for(i=0;i
main()
{
int k=1,sum=0;
for(;k<200;k=k+2)
sum=sum+k; printf("sum=%d\n",sum);
}
1.
#include #include
#include
float fun(int n)
{
float a=0,b=0,c=1,d,e,s=0,k;
for(k=1;k<=n;k++)
{
s+=sqrt(a);
d=a+b+c;
a=b,b=c;
c=d;
}
return s;
}
main ( )
{
int n;
//clrscr( );
printf("Input N="); scanf("%d", &n);
printf("%f\n", fun(n)); }
2.
#include
fun(int s[10])
{
int i,j;
for(i=1;i<10;i++)
for(j=0;j<10-i;j++) if(s[j]
fun(int s[10])
{
int i;
float a=0;
for(i=1;i<9;i++)
if(s[i]>s[i+1])
{
int temp;
temp=s[i]; s[i]=s[i+1];
s[i+1]=temp;
}
printf("这10个数中最大的为:%d\n",s[9]);
for(i=0;i<10;i++) a+=s[i];
printf("平均数为:%.1f",a/10);
}
main()
{
int s[10],i=0;
printf("请输入10个整数:");
for(;i<10;i++) scanf("%d",&s[i]);
fun(s);
printf("\n");
}
1.
#include
#include
double fun(int m)
{
double a=1,b,j,s=0;
for(j=1;j<=m;j++)
{
a=a*j;
b=1/a;
s+=b;
}
return s;
}
main()
{
int n;
//clrscr();
printf("Enter n "); scanf("%d", &n);
printf("\nThe result is%1f\n", fun(n));
}
2.
#include
main()
{
int a=1,j,s=0;
for(j=1;j<=10;j++)
{
a=a*j;
s+=a;
}
printf("求和为:%d\n",s); }
3.
#include
main()
{
int a;
for(;;)
{
printf("请输入小孩年龄:\n");
scanf("%d",&a); if(a<2||a>6) {
printf("不适合进入幼儿园,请检查年龄是否输错。\n\n\n");
continue;
}
else break; }
if(a==2||a==3)printf("编入小班\n");
if(a==4)printf("编入中班\n");
if(a==5||a==6)printf("编入大班\n");
}
1.#include #include
float fun( float num) {
float a,k,s=0;
for(k=1,a=1;;k=k+2)
{
s+=a*1/k;
a=-a;
if(1/k
#include
#include
int
main()
{
int m=0,i,s,k;
int * arr ;
while (m<5 || m>20)
{
printf("input m(5-20):\n");
scanf("%d",&m); }
arr = (int*)malloc(m*sizeof(int));
srand(time(NULL));
for (i=0;i arr[i+1])
{
k = arr[i] ;
arr[i] = arr[i+1] ;
arr[i+1] = k;
s = 1 ;
}
}
}
for (i=0;i
main()
{
int s,n,k;
for(n=2;k<=1000;k++)
{
s=0;
for(k=1; k
fun(int x,int y , int z )
{
int j=1;
for(;;j++)
if(j%x==0&&j%y==0&&j%z==0)break;
return j;
}
main( )
{
int x1,x2,x3,j ;
printf("Input x1 x2 x3:\n");
scanf("%d%d%d",&x1,&x2,&x3 ) ; printf("x1=%d, x2=%d, x3=%d\n",x1,x2,x3);
j = fun(x1,x2,x3);
printf("The minimal common multiple is:%d\n",j);
}
2.#include
main()
{
int a,b,sa,sb,k,t; for(a=1;a<=1000;a++)
{ sa=0,sb=0;
for(k=1;k
main()
{ int a,b,c,s=0,k;
for(k=100;k<1000;k++) { a=k/100,b=k/10%10,c=k%10;
if(a!=b&&a!=c&&b!=c)
s++; }
printf("这样的三位数有%d个\n",s);
}
1.#include
#include
#include
int fun(int a)
{ int i,b=0;
for(i=2;i<=a;i++)
if(a%i==0)
b++;
if(b==1)
return 1; else
return 0; }
main()
{ int x;
printf("\nPlease enter a number:");
scanf("%d", &x);
printf("%d\n", fun(x)); }
2.#include
main()
{ int w=1,i;
printf("求W=1+21+22+23+…+210\n");
for(i=21;i<=210;i++)
w+=i;
printf("求得:w= %d\n",w); }
3.#include
int sushu(int n)
{ int i,flag=1;
if(n==1)
return 0;
else
{ for(i=2;i #include
long fun ( int k)
{
int i;
long s=1;
for(i=1;i<=k;i++)
s *= i;
return s;
}
main()
{
int k = 10 ;
printf("%d!=%ld\n" , k, fun ( k )) ; }
2.#include
main()
{
int i,j,s=0,w=0,p=0;
for(i=2;i<=98;i++)
{
s=0;
w=0;
for(j=2;j<=i;j++)
if(i%j==0) s++;
for(j=2;j<=i+2;j++)
if((i+2)%j==0)
w++;
if(s==1&&w==1) p++; }
printf("亲密素数个数为:%d\n",p);
}
3.#include
int add(int n)
{
int j,p=0;
for(j=1;j<=n;j++)
p+=2*j-1;
return p;
}
main()
{
int n,i,s=0;
printf("数列为:S=1+(1+3)+(1+3+5)+…+(1+3+5+…+(2n-1))\n");
printf("请输入项数n= ");
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s+add(i);
printf("数列n项和s= %d\n",s); }
1.#include int fun(int n)
{
return n*(n+1); }
main()
{
int n,i;
double s=0;
printf("please enter n=");
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s+1.0/fun(i);
printf("s=%f\n",s); }
2.#include fun(int s[10])
{
int i,j;
for(i=1;i<10;i++)
for(j=0;j<10-i;j++)
if(s[j]>s[j+1])
{
int temp;
temp=s[j]; s[j]=s[j+1];
s[j+1]=temp;
}
printf("这10个数按从小到大排列为:\n");
for(i=0;i<10;i++) printf("%d ",s[i]);
}
main()
{
int s[10],i=0;
printf("请输入10个整数:");
for(;i<10;i++)
scanf("%d",&s[i]); fun(s);
printf("\n");
}
3.#include
#include
main()
{
float a,b,c,d,x1,x2;
printf("请输入a的值:");
scanf("%f",&a);
printf("请输入b的值:");
scanf("%f",&b);
printf("请输入c的值:");
scanf("%f",&c);
d=b*b-4*a*c;
if(d>0)
{
printf("x1=%4.2f\n",(-b+sqrt(d))/(2*a));
printf("x2=%4.2f\n",(-b-sqrt(d))/(2*a));
}
else
if(d==0)
printf("x1=x2=%4.2f\n",(-b)/(2*a));
else
{
printf("x1=%4.2f+%4.2fi\n",(-b)/(2*a),sqrt(-d)/(2*a));
printf("x2=%4.2f-%4.2fi\n",(-b)/(2*a),sqrt(-d)/(2*a));
}
}