作业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; }
|