第一周 C语言作业 编程题部分
-
编写⼀个猜数游戏,让⽤⼾有5次机会猜该数字,每次猜完提⽰猜⼤了还是猜⼩了,猜错和猜对要有相应的提⽰,5次猜错结束游戏,也要有相 应的提⽰,该中奖数字应⽅便调试修改.
#include <stdio.h> int main() { int i; int a; int b = 67; for (i = 0; i < 5; i++) { printf("请猜数字\n"); scanf_s("%d", &a); if (a == b) { printf("猜对了\n"); break; } else if (a < b) { printf("猜小了,请重新输入\n"); } else if (a > b) { printf("猜大了,请重新输入\n"); } } if (i = 5) printf("游戏结束"); return 0; } -
设计⼀个C程序,计算从1到N的所有整数的和,其中N由⽤⼾输⼊,需要有相关提⽰,例如,如果⽤⼾输⼊的是5,则计算1+2+3+4+5的结果并 输出。
#include<stdio.h> int sum(int x) { int a; int m = 0; for (a = 1; a <= x; a++) { m += a; } return m; } int main() { int y; printf("请输入一个大于0的整数\n"); scanf_s("%d", &y); if (y <= 0) { printf("请重新输入\n"); return 0; } int n = sum(y); printf("1到%d累加的结果是%d", y, n); return 0; }
3.. 设置⼀个进制转换程序,⽤⼾输⼊0-255的⼗进制数,然后输出⼗六进制0x** 和2进制 。如输⼊12,输出0X0C 0000 1100
#include <stdio.h>
int main() {
int a;
int b;
int i;
int c;
printf("请输入一个0-255的整数: ");
scanf("%d", &a);
if (a < 0 || a > 255)
{
printf("请输入0-255之间的数\n");
return 0;
}
printf("\n转换结果:\n");
printf("十进制: %d\n", a);
printf("十六进制: 0x");
c = (a >> 4) & 0xF;
if (c < 10)
printf("%d", c);
else
printf("%c", c - 10 + 'A');
c = a & 0xF;
if (c < 10)
printf("%d", c);
else
printf("%c", c - 10 + 'A');
printf("\n");
printf("二进制: ");
for (i = 7; i >= 0; i--) {
b = (a >> i) & 1;
if (b == 0)
printf("0");
else
printf("1");
if (i == 4)
printf(" ");
}
printf("\n");
return 0;
}
-
设计⼀个C程序,提⽰⽤⼾输⼊10个整数,范围0-9999,将⽤⼾输⼊的10个数字排序,形如a>b>c>…
#include <stdio.h> int main() { int n[10]; int t; int i, j; int d; printf("请输入10个整数(0-9999):\n"); for (i = 0; i < 10; i++) { printf("第%d个数字: ", i + 1); scanf_s("%d", &n[i]); if (n[i] < 0 || n[i] > 9999) { printf("请输入0-9999之间的数字\n"); i--; } } printf("\n请选择排序方式:\n"); printf("1. 从小到大排序(a<b<c<...)\n"); printf("2. 从大到小排序(a>b>c>...)\n"); printf("请输入1或2: "); scanf_s("%d", &d); for (i = 0; i < 9; i++) { for (j = 0; j < 9 - i; j++) { if (d == 1) { if (n[j] > n[j + 1]) { t = n[j]; n[j] = n[j + 1]; n[j + 1] = t; } } else { if (n[j] < n[j + 1]) { t = n[j]; n[j] = n[j + 1]; n[j + 1] = t; } } } } printf("\n排序结果:\n"); if (d == 1) { printf("%d", n[0]); for (i = 1; i < 10; i++) { printf(" < %d", n[i]); } } else { printf("%d", n[0]); for (i = 1; i < 10; i++) { printf(" > %d", n[i]); } } printf("\n\n数组中的实际顺序:\n"); for (i = 0; i < 10; i++) { printf("%d ", n[i]); } printf("\n"); return 0; }