转载请标明作者
题目汇总:
1.
2.输入一个正整数,判断这个数是偶数还是奇数,若是偶数进一步判断是不是5的倍数。
3. 输入一个算式,例如6+2,9*3,按照要求运算出结果。要求用if、switch,两种语句各编写一次。
4.
要求用switch语句编写。
5. 编程完成超市打折程序。购物1000元以上,8折;购物500元以上,8.5折;购物300元以上,9折;购物100元以上9.5折;购物100元以下,不打折。根据消费量,计算优惠率及实际应付款。
6. 编程完成1+2+3+4+5+……+100,用当型循环,直到型循环,for三种语句编写。
7. 编程完成:等差数列首项a=10,公差d=5,输出它前50和中,能被4整除的和。三种语句都写一遍。
8. 编写一个功能函数,要求判断一个数是不是质数。
9. 编程完成,输出所有的水仙花数。
10. 输出下三角九九乘法表。
11. 输出实心菱形。
12. 输出空心菱形。
13. 编程实现10个数的冒泡排序。
14. 按照从大到小,实现打擂法(选择)排序。
15.键盘输入5个数,找到最大值,并输出其所在位置。
1.
见第四题
2. 输入一个正整数,判断这个数是偶数还是奇数,若是偶数进一步判断是不是5的倍数。
#include<stdio.h>
void main()
{
int a;
printf("请输入一个数:a=");
scanf("%d",&a);
if(a%2==0)
{
printf("a为偶数\n");
if(a%5==0)
printf("a是5的倍数\n");
else
printf("a不是5的倍数\n");
}
else
printf("a为奇数\n");
}
3. 输入一个算式,例如6+2,9*3,按照要求运算出结果。要求用if、switch,两种语句各编写一次。
#include <stdio.h>
void main() {
float x, z, f;
char y;
printf("请输入一个算式:");
scanf("%f%c%f", &x, &y, &z);
if (y == '+') {
f = x + z;
printf("算式的结果为:%g\n", f);
} else if (y == '-') {
f = x - z;
printf("算式的结果为:%g\n", f);
} else if (y == '*') {
f = x * z;
printf("算式的结果为:%g\n", f);
} else if (y == '/') {
if (z == 0) {
printf("除数不能等于0!");
} else {
f = x / z;
printf("算式的结果为:%g\n", f);
}
} else
printf("输入的算式错误!!!\n");
}
#include<stdio.h>
void main()
{
float a,s;
char op;
printf("请输入一个算式:");
scanf("%f%c%f",&a,&op,&s);
switch(op)
{
case'+': printf("结果为:%g\n",a+s);break;
case'-': printf("结果为:%g\n",a-s); break;
case'*': printf("结果为:%g\n",a*s); break;
case'/':
{
if(s==0)
printf("除数不能等于0!");
else
printf("结果为:%g\n",a/s);break;
}
default :
printf("输入算式格式错误!!!");
}
}
4.
要求用switch语句编写。
#include <stdio.h>
void main()
{
float x,y;
printf("请输入一个数: x=");
scanf("%f",&x);
if(x<0)
printf("结果为:y=0 !\n");
else
{
switch((int)x/10)
{
case 0: printf("结果为:y=%g",x);break;
case 1: printf("结果为:y=10");break;
case 2: printf("结果为:y=%g",-0.5*x+20);break;
case 3: printf("结果为:y=%g",-0.5*x+20);break;
default:
printf("结果为:y=100");
}
}
}
5. 编程完成超市打折程序。购物1000元以上,8折;购物500元以上,8.5折;购物300元以上,9折;购物100元以上9.5折;购物100元以下,不打折。根据消费量,计算优惠率及实际应付款。
#include <stdio.h>
int main() {
float p, c;
printf("请输入商品总价\n");
scanf("%f", &p);
if (p < 100) {
c = 1.0;
printf("总价:%g元,不打折,优惠率为0%%,应付:%g元", p, p * c);
} else if (p < 300) {
c = 0.95;
printf("总价:%g元,打%g折,优惠率为%g%%,应付:%g元", p, c * 10, (1 - c) * 100, p * c);
} else if (p < 500) {
c = 0.9;
printf("总价:%g元,打%g折,优惠率为%g%%,应付:%g元", p, c * 10, (1 - c) * 100, p * c);
} else if (p < 1000) {
c = 0.85;
printf("总价:%g元,打%g折,优惠率为%g%%,应付:%g元", p, c * 10, (p - (p * c)) / p, p * c);
} else if (p >= 1000) {
c = 0.80;
printf("总价:%g元,打%g折,优惠率为%g%%,应付:%g元", p, c * 10, (p - (p * c)) / p, p * c);
} else
printf("输入商品总价错误!");
return (0);
}
6. 编程完成1+2+3+4+5+……+100,用当型循环,直到型循环,for三种语句编写。
#include <stdio.h>
void main() {
int a, i;
int sum;
a = 1;
sum = 0;
i = 0;
while (i < 100) {
sum = sum + a;
a++;
i++;
if (i == 100) {
printf("结果为 : %d\n", sum);
}
}
}
#include <stdio.h>
int main() {
int a, i;
int sum;
a = 1;
sum = 0;
i = 0;
do {
sum = sum + a;
a++;
i++;
if (i == 100) {
printf("结果为 : %d\n", sum);
}
} while (i < 100);
return (0);
}
#include <stdio.h>
void main()
{
int a;
int sum;
sum=0;
for(a=1;a<=100;a++)
sum=sum+a;
//i++;
printf("结果为 : %d\n",sum);
}
7.编程完成,等差数列首项a=10,公差d=5,输出它前50和中,能被4整除的和。三种语句都写一遍。
#include <stdio.h>
int main() {
int a, i;
int sum;
sum = 0;
a = 10, i = 0;
while (i < 50) {
sum = sum + a;
if (sum % 4 == 0) {
printf("sum=%d\n", sum);
}
i++, a = a + 5;
}
}
#include <stdio.h>
int main() {
int a, i;
int sum;
sum = 0;
a = 10, i = 0;
do {
sum = sum + a;
if (sum % 4 == 0) {
printf("sum=%d\n", sum);
}
i++, a = a + 5;
} while (i < 50);
}
#include <stdio.h>
int main() {
int a, i;
int sum;
sum = 0;
for (a = 10, i = 0; i < 50; i++, a = a + 5) {
sum = sum + a;
if (sum % 4 == 0)
printf("sum=%d\n", sum);
}
}
8.编程完成,输入一个数,判断是不是质数。
编写一个功能函数,要求判断一个数是不是质数
#include <stdio.h>
int zhishu(int a) {
int i;
for (i = 2; i <= a - 1; i++) {
if (a % i == 0) {
break;
}
}
if (i == a) {
return 1;
} else {
return 0;
}
}
void main() {
int a;
printf("请输入一个数\n");
scanf("%d", &a);
if (zhishu(a)) {
printf("%d是一个质数。\n", a);
} else {
printf("%d不是一个质数。\n", a);
}
}
9.编程完成,输出所有的水仙花数。
#include <stdio.h>
int main() {
int a, b, c;
int i;
for ( i = 100; i <= 999; i++) {
a = i / 100; //百位数
b = (i / 10) % 10; //十位数
c = i % 10; //个位数
if (a * a * a + b * b * b + c * c * c == i)
printf("%d\n", i);
}
return 0;
}
10.输出下三角九九乘法表。
#include <stdio.h>
void main() {
int i, j, n;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
printf("%d*%d=%2d ", i, j, i * j);
}
printf("\n");
}
}
11.输出实心菱形
#include <stdio.h>
void main() {
int i, j, k, n;
printf("输入一个奇数n=");
scanf("%d", &n);
//画上行
for (i = 1; i <= n / 2 + 1; i++) {
for (j = 1; j <= n / 2 + 1 - i; j++) {
printf(" ");
//printf("a");
}
for (k = 1; k <= (2 * i - 1); k++) {
printf("*");
}
printf("\n");
}
//画下行
for (i = n / 2; i >= 1; i--) {
for (j = 1; j <= n / 2 + 1 - i; j++) {
printf(" ");
//printf("a");
}
for (k = 1; k <= (2 * i - 1); k++) {
printf("*");
}
printf("\n");
}
}
输入的数代表上行的行数
#include <stdio.h>
int main() {
int i, j, k, n;
scanf("%d", &n);
//输出上半菱形
for (i = 1; i <= n; i++) {
for (k = 1; k <= n - i; k++)
printf(" ");
for (j = 1; j < 2 * i; j++)
printf("*");
printf("\n");
}
//输出下半菱形
for (i = n - 1; i >= 1; i--) {
//i=3,2,1
for (k = 1; k <= n - i; k++)
printf(" ");
for (j = 1; j < 2 * i; j++)
printf("*");
printf("\n");
}
return 0;
}
12.输出空心菱形
#include <stdio.h>
int main() {
int i, j, k, N;
printf("输入一个奇数N=");
scanf("%d", &N);
for (i = 0; i < N; i++) {
for (j = 0; j < N - i - 1; j++) //上下两部分每一行前面的空格数没有变化
printf(" ");
printf("*"); //注意这里只打印了一个“*”
if (0 != i) { //这里判断条件的意思是仅当不是第一行时,后面每行才有第二个“*”需要打印
for (k = 0; k < 2 * i - 1; k++) { //这里是确定一行中两个“*”之间间隔的空格数
printf(" ");
}
printf("*"); //后面补上一个“*”
}
puts(""); //已打印完一行了,换一行继续
}
//down
for (i = N - 2; i >= 0; i--) { //下半部分是上半部分的倒置,试着自己阅读代码思考一下原理吧
for (j = 0; j < N - i - 1; j++)
printf(" ");
printf("*");
if (0 != i) {
for (k = 0; k < 2 * i - 1; k++) {
printf(" ");
}
printf("*");
}
puts("");
}
return 0;
}
13.编程实现10个数的冒泡排序。
#include <stdio.h>
#define N 10
int main() {
int i, j, t, a[N];
printf("input 10 numbers:\n");
for (i = 0; i < N; i++)
scanf("%d", &a[i]);
printf("\n");
for (i = 0; i < N; i++)
for (j = 0; j < N - i; j++)
if (a[j] > a[j + 1]) {
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
printf("the result is:\n");
for (i = 0; i < N; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
14.按照从大到小,实现打擂法(选择)排序。
#include <stdio.h>
#define N 8
int main() {
int arr[N];
int i, j, max, tem;
printf("请输入八个整数:\n");
for (i = 0; i < N; i++) {
printf("arr[%d]=", i);
scanf("%d", &arr[i]);
}
printf("\n");
for (i = 0; i < N - 1; i++) { //注意这边的是N-1,目的是防止j=i+1大于数组的元素个数
max = i;
for (j = i + 1; j < N; j++) {
if (arr[j] > arr[max])
max = j;
}
if (max != i) {
tem = arr[i];
arr[i] = arr[max];
arr[max] = tem;
}
}
printf("从大到小排序,输出为:\n");
for (i = 0; i < N; i++)
printf("%5d", arr[i]);
printf("\n");
return 0;
}
15.键盘输入5个数,找到最大值,并输出其所在位置。
#include <stdio.h>
int main() {
int a[5], i, max, k ; //k用来记录最大数的序号
for (i = 0; i < 5; i++) {
scanf("%d ", &a[i]);
}
max = a[0];
k = 0;
for (i = 1; i < 5; i++) {
if (a[i] > max) {
max = a[i];
k = i; //记录新擂主的序号
}
}
printf("最大数的序号是: % d\n", k + 1);
return 0;
}