C语言课堂练习作业
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(double a,double b)
{
x1=x2=-b/(2*a);
}
void smaller_than_zero(double a,double b)
{
Baidu Nhomakorabeap=-b/(2*a);
letter++;
else
if(s[i]>=‘0’&&s[i]<=‘9’)
digit++;
else
if(s[i]==‘‘)
space++;
else other++;
i++;
}
}
void main()
{
char s[20];
printf(“Plese input a string:”);
gets(s);
#include<stdio.h>
voidmain( )
{
int a[10],*p,*head,*end,temp;
printf("please input 10 numbers:\n");
for(p=a;p<=a+9;p++)
scanf("%d",p);
printf("The original array:\n");
}
第四次上机作业
1、求方程 的根,用三个函数分别求当 大于0,等于0和小于0时的根,并输出结果。从主函数输入a、b、c的值。
#include <stdio.h>
#include <math.h>
double x1,x2,p,q,disc;
void greater_than_zero(double a,double b)
else
if(s[i]>=‘A’&&s[i]<=‘F’)
num+=(s[i]-55)*pow(16,lenght-i-1);
}
printf(“%f”,num);
}
void main()
{
char s[10];
gets(s);
convert(s);
}
2.将10个整数存入一维数组中,用指针编程实现逆序存放并输出。
for(p=a;p<=a+9;p++)
printf("%d ",*p);
}
3、将3行3列的二维矩阵转置输出。
#include<stdio.h>
voidmain( )
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int b[3][3], i, j,*p=a;
printf(“array a:\n”);
#include <math.h>
void convert(char s[])
{
int lenght,i;
double num=0;
lenght=strlen(s);
for(i=0;i<lenght;i++)
{
if(s[i]>=‘0’&&s[i]<=‘9’)
num+=(s[i]-’0’)*pow(16,lenght-i-1);
for(j=0;j<n-1-i;j++)
if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<10;i++)
printf(“%5d”,a[i]);
}
3、编程求1!+2!+3!+…+20!
4、将一个正整数分解成质因数的乘积。例如:输入90,打印90=2*3*3*5。
break;
if(i= =n)
a[i]=x;
else
for(j=n-1;j>=i;j--)
a[j+1]=a[j];
a[i]=x;
for(i=0;i<=n;i++)
printf(“%5d”,a[i]);
}
4、.编写一个函数,计算 。
#include <stdio.h>
long fact(int x);
void main()
{
int m,n;
long cmn;
printf(“Input m,n:”);
scanf(“%d,%d”,&m,&n);
cmn=fact(m)/(fact(n)*fact(m-n));
printf(“The combination is %ld\n”,cmn);
}
long fact(int x)
for ( i = 0; i <= 1; i++)
{
for(j =0; j <= 2; j++)
{
printf(“%5d”,*p);
b[j][i]=a[i][j];
}
printf(“\n”);
}
printf(“array b:\n”);
for ( i = 0; i <= 2; i++)
{
for( j = 0; j <= 2; j++)
}
}
2、写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。
#include <stdio.h>
int prime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)break;
if(i>=n)
return 1;
else
return 0;
}
void main()
{
long y;
for(y=1;x>0;--x)
y*=x;
return(y);
}
2)写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。
#include <stdio.h>
int prime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)break;
if(i>=n)
scanf(“%d”,&a[i]);
for(i=0;i<10;i++)
if(a[i]==5)
{
printf(“5 is input the position %d\n.”,i+1);
break;
}
if(i>=10)
printf(“5 is not in data.\n”);
}
3、已有一个排序好的数组(从小到大排序),现输入一个数,要求按原来排序的规律将它插入数组中。
for( i=0; i<7; i++ )
scanf ( “ %d ”, &number[i] ) ;
max_min_value( number, 7 ) ;
printf ( “ \n max = %d , min = %d \n ”, max , min ) ;
}
2.建立简单的同学通讯录,输入并存放10个同学的通讯信息,通讯录信息包括姓名、电话号码、电子邮箱。
第二次上机作业
1、利用循环语句编写程序:对一个正整数,将各位数字反序后的数组成一个整数输出。
例如:输入12345,输出54321。
#include <stdio.h>
void main()
{
long m,n,sum=0;
scanf(“%ld”,&m);
while(m>0)
{
n=m%10;
m=m/10;
#include<stdio.h>
void main()
{
int a[50],n,x;
int i;
scanf(“%d”,&n);
for(i=0;i<n;i++)
scanf(“%d”,&a[i]);
printf(“input x:”);
scanf(“%d”,&x);
for(i=0;i<n;i++)
if(a[i]>x)
return 1;
else
return 0;
}
void main()
{
int n;
printf(“Input a integer:”);
scanf(“%d”,&n);
if(prime(n))
printf(“%d is a prime\n”,n);
else
printf(“%d is not a prime\n”,n);
for(p=a;p<=a+9;p++)
printf("%d ",*p);
head=a; end=a+9;
while(head<end)
{
temp=*head;
*head=*end;
*end=temp;
head++;
end--;
}
printf("The array has been inverted:\n");
q=sqrt(-disc)/(2*a);
}
void main()
{
double a,b,c;
printf(“Please input a,b,c:”);
scanf(“%lf,%lf,%lf”,&a,&b,&c);
disc=b*b-4*a*c;
printf(“root:\n”);
if(disc>0)
{
for(i=0;i<n;i++)
printf(“%5d”,a[i]);
printf(“\n%d”,num);
}
2.从键盘输入10个整数,检查整数5是否包含在这些数据中,若是的话,找出它是第几个被输入的。
#include<stdio.h>
voidmain()
{
int a[10],i;
for(i=0;i<10;i++)
#include <stdio.h>
#include <string.h>
int letter=0,digit=0,space=0,other=0;
void count(char s[])
{
int i=0;
while(s[i]!=‘\0’)
{
if(s[i]>=‘A’&&s[i]<=‘Z’||s[i]>=‘a’&&s[i]<=‘z’)
sum=sum*10+n;
}
printf(“%ld”,sum);
}
2、从键盘中输入10个数,把这10个数按从小到大的顺序依次输出。
#include<stdio.h>
void main()
{
int a[10];
int i,j,t;
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for(i=0;i<n-1;i++)
#include <stdio.h>
void main()
{
int n,i=2;
scanf(“%d”,&n);
printf(“%d=“,n);
while(n>1)
{
if(n%i==0)
{
printf(“%d*”,i);
n=n/i;
}
else i++;
}
printf(“\b“);
}
第三次上机作业
1.从键盘输入n个整数,统计所有下标为奇数且数组元素的值为偶数的个数。
greater_than_zero(a,b);
printf(“x1=%f,x2=%f\n”,x1,x2);
}
else if(disc==0)
{
equal_to_zero(a,b);
printf(“x1=x2=%f\n”,x1);
}
else
{
smaller_than_zero(a,b);
printf(“x1=%f+%fi,x2=%f-%fi\n”,p,q,p,q);
max = min = *array ;
for ( p=array+1; p<array_end ; p + + )
if (*p>max ) max = *p ;
else if( *p < min ) min = *p ;
}
voidmain( )
{
int i, number[7] ;
printf ( “ enter 7 data \n ”) ;
第一次上机作业
1.输入两个实数,按代数值由大到小输出。
2.输入三个实数,按代数值由大到小输出。
3.输入某学生的成绩,经处理后给出学生的等级如下:
90分以上(包括90分):A
80至90分(包括80分):B
70至80分(包括70分):C
60至70分(包括60分):D
60分以下:E
(1)用if语句实现
(2)用switch语句实现
count(s);
printf(“letter=%d,digit=%d,space=%d,other=%d\n”,letter,digit,space,other);
}
第五次上机作业
1、写一函数,输入一个十六进制数,输出相应的十进制数。
#include<stdio.h>
#include <string.h>
#include<stdio.h>
void main()
{ int a[100];
int i,j,n,t,num=0;
scanf(“%d”,&n);
for(i=0;i<n;i++)
scanf(“%d”,&a[i]);
for(i=0;i<n;i++)
if(i%2= =1&&a[i]%2= =0)
num++;
{
int n;
printf(“Input a integer:”);
scanf(“%d”,&n);
if(prime(n))
printf(“%d is a prime\n”,n);
else
printf(“%d is not a prime\n”,n);
}
3、编写一函数,由实参传递一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述结果。
printf(“%5d”, *p);
printf(“\n”);
}
}
第六次上机作业
1、从7个数中找出其中最大值和最小值(用指针实现)
intmax , min ;
void max_min_value (int array[ ] ,intn )
{
int *p , *array_end ;
array_end = array + n ;
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}
void equal_to_zero(double a,double b)
{
x1=x2=-b/(2*a);
}
void smaller_than_zero(double a,double b)
{
Baidu Nhomakorabeap=-b/(2*a);
letter++;
else
if(s[i]>=‘0’&&s[i]<=‘9’)
digit++;
else
if(s[i]==‘‘)
space++;
else other++;
i++;
}
}
void main()
{
char s[20];
printf(“Plese input a string:”);
gets(s);
#include<stdio.h>
voidmain( )
{
int a[10],*p,*head,*end,temp;
printf("please input 10 numbers:\n");
for(p=a;p<=a+9;p++)
scanf("%d",p);
printf("The original array:\n");
}
第四次上机作业
1、求方程 的根,用三个函数分别求当 大于0,等于0和小于0时的根,并输出结果。从主函数输入a、b、c的值。
#include <stdio.h>
#include <math.h>
double x1,x2,p,q,disc;
void greater_than_zero(double a,double b)
else
if(s[i]>=‘A’&&s[i]<=‘F’)
num+=(s[i]-55)*pow(16,lenght-i-1);
}
printf(“%f”,num);
}
void main()
{
char s[10];
gets(s);
convert(s);
}
2.将10个整数存入一维数组中,用指针编程实现逆序存放并输出。
for(p=a;p<=a+9;p++)
printf("%d ",*p);
}
3、将3行3列的二维矩阵转置输出。
#include<stdio.h>
voidmain( )
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int b[3][3], i, j,*p=a;
printf(“array a:\n”);
#include <math.h>
void convert(char s[])
{
int lenght,i;
double num=0;
lenght=strlen(s);
for(i=0;i<lenght;i++)
{
if(s[i]>=‘0’&&s[i]<=‘9’)
num+=(s[i]-’0’)*pow(16,lenght-i-1);
for(j=0;j<n-1-i;j++)
if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<10;i++)
printf(“%5d”,a[i]);
}
3、编程求1!+2!+3!+…+20!
4、将一个正整数分解成质因数的乘积。例如:输入90,打印90=2*3*3*5。
break;
if(i= =n)
a[i]=x;
else
for(j=n-1;j>=i;j--)
a[j+1]=a[j];
a[i]=x;
for(i=0;i<=n;i++)
printf(“%5d”,a[i]);
}
4、.编写一个函数,计算 。
#include <stdio.h>
long fact(int x);
void main()
{
int m,n;
long cmn;
printf(“Input m,n:”);
scanf(“%d,%d”,&m,&n);
cmn=fact(m)/(fact(n)*fact(m-n));
printf(“The combination is %ld\n”,cmn);
}
long fact(int x)
for ( i = 0; i <= 1; i++)
{
for(j =0; j <= 2; j++)
{
printf(“%5d”,*p);
b[j][i]=a[i][j];
}
printf(“\n”);
}
printf(“array b:\n”);
for ( i = 0; i <= 2; i++)
{
for( j = 0; j <= 2; j++)
}
}
2、写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。
#include <stdio.h>
int prime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)break;
if(i>=n)
return 1;
else
return 0;
}
void main()
{
long y;
for(y=1;x>0;--x)
y*=x;
return(y);
}
2)写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。
#include <stdio.h>
int prime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)break;
if(i>=n)
scanf(“%d”,&a[i]);
for(i=0;i<10;i++)
if(a[i]==5)
{
printf(“5 is input the position %d\n.”,i+1);
break;
}
if(i>=10)
printf(“5 is not in data.\n”);
}
3、已有一个排序好的数组(从小到大排序),现输入一个数,要求按原来排序的规律将它插入数组中。
for( i=0; i<7; i++ )
scanf ( “ %d ”, &number[i] ) ;
max_min_value( number, 7 ) ;
printf ( “ \n max = %d , min = %d \n ”, max , min ) ;
}
2.建立简单的同学通讯录,输入并存放10个同学的通讯信息,通讯录信息包括姓名、电话号码、电子邮箱。
第二次上机作业
1、利用循环语句编写程序:对一个正整数,将各位数字反序后的数组成一个整数输出。
例如:输入12345,输出54321。
#include <stdio.h>
void main()
{
long m,n,sum=0;
scanf(“%ld”,&m);
while(m>0)
{
n=m%10;
m=m/10;
#include<stdio.h>
void main()
{
int a[50],n,x;
int i;
scanf(“%d”,&n);
for(i=0;i<n;i++)
scanf(“%d”,&a[i]);
printf(“input x:”);
scanf(“%d”,&x);
for(i=0;i<n;i++)
if(a[i]>x)
return 1;
else
return 0;
}
void main()
{
int n;
printf(“Input a integer:”);
scanf(“%d”,&n);
if(prime(n))
printf(“%d is a prime\n”,n);
else
printf(“%d is not a prime\n”,n);
for(p=a;p<=a+9;p++)
printf("%d ",*p);
head=a; end=a+9;
while(head<end)
{
temp=*head;
*head=*end;
*end=temp;
head++;
end--;
}
printf("The array has been inverted:\n");
q=sqrt(-disc)/(2*a);
}
void main()
{
double a,b,c;
printf(“Please input a,b,c:”);
scanf(“%lf,%lf,%lf”,&a,&b,&c);
disc=b*b-4*a*c;
printf(“root:\n”);
if(disc>0)
{
for(i=0;i<n;i++)
printf(“%5d”,a[i]);
printf(“\n%d”,num);
}
2.从键盘输入10个整数,检查整数5是否包含在这些数据中,若是的话,找出它是第几个被输入的。
#include<stdio.h>
voidmain()
{
int a[10],i;
for(i=0;i<10;i++)
#include <stdio.h>
#include <string.h>
int letter=0,digit=0,space=0,other=0;
void count(char s[])
{
int i=0;
while(s[i]!=‘\0’)
{
if(s[i]>=‘A’&&s[i]<=‘Z’||s[i]>=‘a’&&s[i]<=‘z’)
sum=sum*10+n;
}
printf(“%ld”,sum);
}
2、从键盘中输入10个数,把这10个数按从小到大的顺序依次输出。
#include<stdio.h>
void main()
{
int a[10];
int i,j,t;
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for(i=0;i<n-1;i++)
#include <stdio.h>
void main()
{
int n,i=2;
scanf(“%d”,&n);
printf(“%d=“,n);
while(n>1)
{
if(n%i==0)
{
printf(“%d*”,i);
n=n/i;
}
else i++;
}
printf(“\b“);
}
第三次上机作业
1.从键盘输入n个整数,统计所有下标为奇数且数组元素的值为偶数的个数。
greater_than_zero(a,b);
printf(“x1=%f,x2=%f\n”,x1,x2);
}
else if(disc==0)
{
equal_to_zero(a,b);
printf(“x1=x2=%f\n”,x1);
}
else
{
smaller_than_zero(a,b);
printf(“x1=%f+%fi,x2=%f-%fi\n”,p,q,p,q);
max = min = *array ;
for ( p=array+1; p<array_end ; p + + )
if (*p>max ) max = *p ;
else if( *p < min ) min = *p ;
}
voidmain( )
{
int i, number[7] ;
printf ( “ enter 7 data \n ”) ;
第一次上机作业
1.输入两个实数,按代数值由大到小输出。
2.输入三个实数,按代数值由大到小输出。
3.输入某学生的成绩,经处理后给出学生的等级如下:
90分以上(包括90分):A
80至90分(包括80分):B
70至80分(包括70分):C
60至70分(包括60分):D
60分以下:E
(1)用if语句实现
(2)用switch语句实现
count(s);
printf(“letter=%d,digit=%d,space=%d,other=%d\n”,letter,digit,space,other);
}
第五次上机作业
1、写一函数,输入一个十六进制数,输出相应的十进制数。
#include<stdio.h>
#include <string.h>
#include<stdio.h>
void main()
{ int a[100];
int i,j,n,t,num=0;
scanf(“%d”,&n);
for(i=0;i<n;i++)
scanf(“%d”,&a[i]);
for(i=0;i<n;i++)
if(i%2= =1&&a[i]%2= =0)
num++;
{
int n;
printf(“Input a integer:”);
scanf(“%d”,&n);
if(prime(n))
printf(“%d is a prime\n”,n);
else
printf(“%d is not a prime\n”,n);
}
3、编写一函数,由实参传递一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述结果。
printf(“%5d”, *p);
printf(“\n”);
}
}
第六次上机作业
1、从7个数中找出其中最大值和最小值(用指针实现)
intmax , min ;
void max_min_value (int array[ ] ,intn )
{
int *p , *array_end ;
array_end = array + n ;