C语言上机作业集

发布 2022-09-05 10:44:28 阅读 9849

一:1.求圆周长,圆柱底面积,圆柱体积。用scanf()函数输入圆的半径r和圆柱的高h,用printf()函数输出计算结果,输出时要有文字说明,取小数点后两位数字。

#include <>

#define pi 3.1415

void main()

float r,h,c,s,v;

printf("please input the radius and height of a cylinder:")

scanf("%f%f",&r,&h);

c=2*pi*r;

s=pi*r*r;

v=s*h;

printf("圆的周长c=%7.2f,s=%7.2f,v=%7.2f",c,s,v);

2.已知5位整数n,将组成这个整数的5个数码作为一个1位整数分别赋值5个变量n1、n2、n3、n4、n5。比如59312分解后n1=5、n2=9、n3=3、n4=1、n5=2。

n从键盘输入。

#include <>

void main()

long n;

int n1,n2,n3,n4,n5;

printf("please input an integer with five digits:")

scanf("%d", n);

n1=n/10000;

n2=n/1000%10;

n3=n/100%10;

n4=n%100/10;

n5=n%10;

printf("the number n=%ld",n);

printf("n1=%d,n2=%d,n3=%d,n4=%d,n5=%d",n1,n2,n3,n4,n5);

二:1. 编程判断输入整数的正负性和奇偶性。

#include <>

void main()

int a;

printf("please input an integer:")

scanf("%d",&a);

if(a>0)

printf("the number is positive!");

else if (a<0)

printf("the number is negative!");

elseprintf("the number is neither positive nor negative!");

if(a/2==0)

printf("the number is even!");

else printf("the number is odd!");

2. 有3个整数a、b、c,由键盘输入,输出其中最大的数。

#include <>

void main()

int a,b,c,max;

printf("please input three integers:")

scanf("%d%d%d",&a,&b,&c);

max=a;

if(max

void main()

int score;

printf("please input the score:")

scanf("%d",&score);

if(score>=90)

printf("成绩等级为优");

else if (score>=80&&score<=89)

printf("成绩等级为良");

else if (score>=70&&score<=79)

printf("成绩等级为中");

else if (score>=60&&score<=69)

printf("成绩等级为及格");

else printf("成绩等级为不及格");

#include <>

void main()

int score,grade;

printf("please input the score:")

scanf("%d",&score);

grade=score/10;

switch(grade)

三:1. 打印具有abcd=(ab+cd)2性质的全部四位数。(while、do while循环结构练习)

#include <>

void main()

int n=1000,a,b;

while(n<10000)

a=n/100;

b=n%100;

if(n==(a+b)*(a+b))

printf("%d",n);

n++;#include <>

void main()

int n=1000,a,b;do

a=n/100;

b=n%100;

if(n==(a+b)*(a+b))

printf("%d",n);

n++;while(n<10000);

2. 输出所有的“水仙花数”, 所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身。例如153=13+53+33。

#include <>

void main()

int n=100,a,b,c;

while(n<1000)

a=n/100;

b=n%100/10;

c=n%10;

if(n==a*a*a+b*b*b+c*c*c)

printf("%d",n);

n++;3. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少(求10000以内的数)?(提示:

如果一个数的平方根的平方等于该数,这就说明此数是完全平方数。)

#include <>

#include <>

void main()

int n=1,a,b;

while(n<10000)

a=sqrt(n+100);

b=sqrt(n+268);

if((n+100==a*a)&&n+268==b*b))

printf("%d",n);

n++;四:1. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第2天早上又将剩下的桃子吃了一半,又多吃一个。以后每天早上都吃了前一天剩下的一半另加一个。

到第10天早上再想吃的时候,就只剩下1个桃子了。求第1天共摘了多少桃子。

#include <>

#include <>

void main( )

int day=10,total=1;

for(day=10;day>=1;day--)

total=(total+1)*2;

printf("total=%d",total);

2. 搬砖问题:有36块砖,由36人搬:一男搬4块,1女搬3块,两个小孩抬一块,一次全部搬完。问男、女、小孩人数各若干?

#include <>

#include <>

void main (

int man,woman,child;

for(man=0;man<9;man++)

for(woman=0;woman<12;woman++)

child=36-man-woman;

if((4*man+3*woman+child/2==36)&&child%2==0))

printf("man=%d,woman=%d,child=%d",man,woman,child);

3. 编程实现打印下列图形。

五://1. 一个一维数组中存放8个整数,编程将数组中的值按逆序排列。

#include <>

void main()

int a[8],t,i,j;

for(i=0;i<=7;i++)

printf("please input number %d:",i+1);

scanf("%d",&a[i]);

for(i=0,j=7;i}

/2. 将10个实数存储在一个数组中,设计一个程序输出这个数组的最大值和最小值。

#include <>

void main()

float a[10],max,min;

int i;

for(i=0;i<=9;i++)

printf("please input number %d:",i+1);

scanf("%f",&a[i]);

max=a[0];

min=a[0];

for(i=1;i<=9;i++)

if (a[i]max) max=a[i];

printf("the maximum number is:%fthe minimum number is:%f",max, min);

/3. 不用strcat()函数,实现将两个字符串连接。

#include <>

#include <>

void main()

char str1[30], str2[30],str[60];

int len1,len2,i;

printf("please input string1:")

gets(str1);

printf("please input string1:")

gets(str2);

len1=strlen(str1);

len2=strlen(str2);

for(i=0;i}

/4. 不用strcpy()函数,删除一个字符串中指定位置上的字符。

#include <>

#include <>

void main()

char str[30];

int len,i,loc;

printf("please input string:")

gets(str);

len=strlen(str);

printf("please input the location for the character to be deleted:")

scanf("%d",&loc);

for(i=loc-1;i}

/5. 编写程序,实现将字符串str中下标值为偶数的元素由小到大排序,其他元素不变。

#include <>

#include <>

void main()

char str[30],min,t;

int len,i,j,loc;

printf("please input string:")

gets(str);

len=strlen(str);

for(i=0;i

min=str[i];

loc=i;

for(j=i+2;j

if(str[j]

min=str[j];

loc=j;

t=str[i];

str[i]=str[loc];

str[loc]=t;

puts(str);

C语言上机作业

1 将下列程序进行调试,并在作业本上写上运行结果 main int a 1 if a 2 1 printf d is oushu a elseprintf d is jishu a 解答 本例题中你可以这样写 运行结果是 1 is jishu 作业 将上面程序进行修改,将a 1改成a 你的学号,例如...

C语言上机作业

1 利用指针变量,求一维数组的最大值。include main int a 10 int i,p,max p a max p for i 1 i 10 i p if max p max p printf max d max 2 利用指针变量和函数,把一维字符数组的内容逆序存放。include inc...

C语言上机作业

c语言程序设计上机作业11 指针上机作业02 要求 把下列各题填空。直接把答案填写在相应的位置,然后保存此word文件,上传。1 以下程序的输出结果是 include main char p abcdefgh r long q q long p q r char q printf s r 2 下面程...