作业1

作业1-1

编写一个程序,功能是:输入一个3位的正整数,逆序输出。如输入:345,则输出:543,输入:530,则输出:035。

#include<stdio.h>

int main(){
int n,g,s,b;
scanf("%d",&n);
g=n%10;
b=n/100;
s=n%100/10;
printf("%d %d %d",g,s,b);
return 0;

}

加强一下,编写一个程序,功能是:输入一个不知道有几位的正整数,逆序输出。如输入:345,则输出:543,输入:530,则输出:035。

#include<stdio.h>
#define N 100

int main(){
int n;
char arr[N];
scanf("%s",arr);
int length=strlen(arr);
for (int j = length - 1; j >= 0; j--) {
printf("%c", str[j]);
}
return 0;

}

作业1-2

编写一个程序,功能是:输入一个字母,若是大写字母直接输出,若输入小写字母输出它对应的大写字母。如输入:B,则输出:B,输入:d,则输出:D。

#include<stdio.h>
#include<ctype.h>

int main(){
char ch;
scanf("%c",&ch);
if(isupper(ch)){
printf("%c",ch);
}
else{
printf("%c",toupper(ch));
}
return 0;
}

作业1-3

输入一个正整数(占4个字节),输出右边第2字节的值。如输入:255,则输出:0;输入:256,输出:1;输入:16666,输出:65。

#include<stdio.h>

int main(){
int n;
scanf("%d",&n);
unsigned char second_byte = (num >> 8) & 0xFF;
printf("%d",second_byte);
return 0;

}

作业2

作业2-1

功能是:输入一个百分制成绩(正整数),输出成绩等级A、B、C、D、E。其中90分以上为A、8089为B、7079为C、60~69为D、小于60分为E。用if语句实现。例如:输入:90,输出:A;输入68,输出:D;输出15,输出:E。

#include<stdio.h>

int main(){
int score;
char grade;
scanf("%d",&score);
if(score>=90) grade='A';
else if(score>=80&&score<90) grade='B';
else if(score>=70&&score<80) grade='C';
else if(score>=60&&score<70) grade='D';
else grade='E'
printf("%c",grade);
return 0;
}

作业2-2

用switch

#include<stdio.h>

int main(){
int score;
char grade;
scanf("%d",&score);
switch(score/10) {
case 9: grade='A';break;
case 8: grade='B';break;
case 7: grade='C';break;
case 6: grade='D';break;
default: grade='E';break;
}
printf("%c",grade);
return 0;
}

作业2-3

输入4个整数,要求按从小到大的顺序输出这4个数。

#include<stdio.h>

int main(){
int a,b,c,d,temp;
scanf("%d%d%d%d",&a,&b,&b,&d);
if(a>b){temp=a;a=b;b=temp;}
if(a>c){temp=a;a=c;c=temp;}
if(a>d){temp=a;a=d;d=temp;}

if(b>c){temp=b;b=c;c=temp;}
if(b>d){temp=b;d=b;b=temp;}

if(c>d){temp=c;d=c;c=temp;}
printf("%d %d %d %d\n", a, b, c, d);
return 0;

}

作业2-4

1~n中所有偶数之和,其中,n由键盘输入。例如:输入:10,输出:30;输入:50,输出:650;输入:100,输出:2550。

#include<stdio.h>

int main(){
int n,sum=0;
scanf("%d",&n);
if (n%2!=0)n--;
sum = (n/2)*(2+n)/2;

printf("%d",sum);
return 0;
}

作业3

作业3-1

功能是:从键盘输入一个小于1000的正数,输出它的自然对数 (小数保留2位)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是, 则重新输入,直到输入符合要求为止.

#include<stdio.h>
#include<math.h>

int main(){
int x;
float y;
scanf("%d",&x);
while(x>1000||x<0)
scanf("%d",&x);
y=log(x);
printf("%.2f",y);
return 0;
}

作业3-2

1到n之间能同时被3和7整除的整数之和。

#include<stdio.h>

int main(){
int n,s=0;
scanf("%d",&n);
for( int i=1;i<=n;i++)
if(i%3==0&&i%7==0)
s=s+i;
printf("%d",s);
return 0;
}

作业3-3

编程一程序,功能是:求1!+2!+3!+…+n!的值。其中,n由键盘输入。

#include<stdio.h>

int fact( int n){
if(n=1)return 1;
else
return fact(n-1)*n;
}

int main(){
int num,sum=0;
scanf("%d",&num);
for(int i=1;i<=num;i++){
sum+=fact(i);
}
printf("%d"m,sum);
return 0;
}

作业4

作业4-1

编写一程序,功能是:输出所有的“水仙花数”,数间用一个空格隔开。所谓“水仙花数”是指 一个3位数,其各位数字立方和等于该数本身,例如,153是“水仙花数”,

#include<stdio.h>

int main(){
int g,s,b;
for(int i=100;i<=999;i++)
{
g=i%10;
s=i/10%10;
b=i/100;
if(i==g*g*g+s*s*s+b*b*b)
printf("%d ",i);
}
printf("\n");
return 0;
}

作业4-2

字母金字塔

#include <stdio.h> 

int main() {
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++) {
for(j=1;j<=n-i;j++)
printf(" ");
for(j=i;j>=1;j--)
printf("%c",'A'+j-1);
for(j=2;j<=i;j++)
printf("%c",'A'+j-1);
printf("\n");
}
return 0;
}

作业4-3

输入n个数,输出它们的平均值(小数保留1位)。其 中n由键盘输入。

#include <stdio.h>  
int main() {
int i,n;
float x,s=0;
scanf("%d",&n);
for(i=0;i<n;i++) {
scanf("%f",&x);
s+=x;
}
printf("%.1f",s/n);
return 0;
}