练习题
1.
1 2 4 8 16 32 64 128
2.
9384 938 93 9
3.
5 4 3 2
4.
(c)
5.
(c)
6.
for (int i = 1; i <= 128; i *= 2)
{
printf("%d ", i);
}
7.
for (int i = 9384; i > 0; i /= 10)
{
printf("%d ", i);
}
8.
10 5 3 2 1 1 1 1 1······1会陷入死循环
9.
int i = 10;
while (i >= 1)
{
printf("%d ", i++);
i /= 2;
}
10.
以书P88最上面的程序为例
n = 0;
sum = 0;
while (n < 10) {
scanf("%d", &i);
if (i == 0)
goto done;
sum += i;
n++;
done:;
}
11.
20
12.
for (d = 2; d * d < n; d++)
{
if (n % d == 0)
{
break;
}
}
13.
for (n = 0; m > 0; n++, m /= 2)
;
14.
if (n % 2 == 0)
{
printf("n is even\n");
}
编程题
1.
#include<stdio.h>
int main(void)
{
float number, max;
printf("Enter a number: ");
scanf_s("%f", &number);
max = number;
while (1)
{
printf("Enter a number: ");
scanf_s("%f", &number);
if (number > max)
{
max = number;
}
if (number <= 0)
{
break;
}
}
printf("The largest number entered was: %f", max);
return 0;
}
2.
#include<stdio.h>
int main(void)
{
int m, n, i;
printf("Enter two integer: ");
scanf_s("%d%d", &m, &n);
if (n > m)
{
int temp = n;
n = m;
m = temp;
}
while (n != 0)
{
i = n;
n = m % n;
m = i;
}
printf("GCD: %d", m);
return 0;
}
3.
#include<stdio.h>
int main(void)
{
int m, n, i, num, denom;
printf("Enter two integer: ");
scanf_s("%d /%d", &num, &denom);
n = num;
m = denom;
if (n > m)
{
int temp = n;
n = m;
m = temp;
}
while (n != 0)
{
i = n;
n = m % n;
m = i;
}
printf("In lowest terms: %d/%d", num / m, denom / m);
return 0;
}
4.
#include<stdio.h>
int main(void)
{
float value, commission;
while (1)
{
printf("Enter value of trade: ");
scanf_s("%f", &value);
if (value != 0)
{
if (value < 2500.00f)
{
commission = 30.00f + .017f * value;
}
else if (value < 6250.00f)
{
commission = 56.00f + .0066f * value;
}
else if (value < 20000.00f)
{
commission = 76.00f + .0034f * value;
}
else if (value < 50000.00f)
{
commission = 100.00f + .0022f * value;
}
else if (value < 500000.00f)
{
commission = 155.00f + .0011f * value;
}
else
{
commission = 255.00f + .0009f * value;
}
if (commission < 39.00f)
{
commission = 39.00f;
}
printf("commission: %.2f\n", commission);
}
else
{
printf("END");
return 0;
}
}
}
5.
#include<stdio.h>
int main(void)
{
int number, i;
printf("Enter a number: ");
scanf_s("%d", &number);
do
{
i = number % 10;
number /= 10;
printf("%d", i);
} while (number != 0);
return 0;
}
6.
#include<stdio.h>
int main(void)
{
int number;
printf("Enter a number: ");
scanf_s("%d", &number);
for (int i = 2; i * i <= number; i++)
{
if ((i * i) % 2 == 0)
{
printf("%d\n", i * i);
}
}
return 0;
}
7.
#include <stdio.h>
int main(void)
{
int n, odd = 3, square = 1;
printf("This program prints a table of squares.\n");
printf("Enter number of entries in table: ");
scanf_s("%d", &n);
for (int i = 1; i <= n; ++i)
{
printf("%10d%10d\n", i, square);
square += odd;
odd += 2;
}
return 0;
}
8.
#include<stdio.h>
int main(void)
{
int day, start_day;
printf("Enter number of days in month: ");
scanf_s("%d", &day);
printf("Enter starting day of the week (1=Sun, 7=Sat): ");
scanf_s("%d", &start_day);
for (int i = 1, x = 1; i <= day; i++)
{
while (x < start_day)
{
printf(" ");
x++;
}
x = 100;
if (start_day == 8)
{
start_day -= 7;
}
switch (start_day)
{
case 1:
printf("%3d", i);
start_day++;
break;
case 2:
printf("%3d", i);
start_day++;
break;
case 3:
printf("%3d", i);
start_day++;
break;
case 4:
printf("%3d", i);
start_day++;
break;
case 5:
printf("%3d", i);
start_day++;
break;
case 6:
printf("%3d", i);
start_day++;
break;
case 7:
printf("%3d\n", i);
start_day++;
break;
}
}
return 0;
}
9.
#include<stdio.h>
int main(void)
{
float loan, rate, payment;
int number;
printf("Enter amount of loan: ");
scanf_s("%f", &loan);
printf("Enter interest rate: ");
scanf_s("%f", &rate);
printf("Enter monthly payment: ");
scanf_s("%f", &payment);
printf("Enter number of paymnet: ");
scanf_s("%d", &number);
for (int i = 0; i < number; i++)
{
loan = loan - payment + (loan * rate / 100.0f / 12.0f);
}
printf("Balance remaining after %d payment: $%.2f\n", number, loan);
return 0;
}
10.
#include<stdio.h>
int main(void)
{
int min_month, min_day, min_year,
month, day, year;
printf("Enter a date (mm/dd/yy): ");
scanf_s("%d /%d /%d", &min_month, &min_day, &min_year);
while (1)
{
printf("Enter a date (mm/dd/yy): ");
scanf_s("%d /%d /%d", &month, &day, &year);
if (month == 0 && day == 0 && year == 0)
{
printf("The earliest date is: %.2d/%.2d/%.2d",
min_month, min_day, min_year);
return 0;
}
if (year < min_year ||
year == min_year && month < min_month ||
year == min_year && month == min_month && day < min_day)
{
min_year = year;
min_month = month;
min_day = day;
}
}
}
11.
#include<stdio.h>
int main(void)
{
int number;
float e = 0.00f;
printf("Enter a number: ");
scanf_s("%d", &number);
for (int i = 0; i <= number; i++)
{
int n = 1;
for (int j = 1; j <= i; j++)
{
n *= j;
}
e += 1.00f / n;
}
printf("e: %f", e);
return 0;
}
12.
#include<stdio.h>
int main(void)
{
float epsilon, e = 0.00f;
printf("Enter epsilon: ");
scanf_s("%f", &epsilon);
for (int i = 0; ; i++)
{
int n = 1;
for (int j = 1; j <= i; j++)
{
n *= j;
}
if ((1.00f / n) >= epsilon)
{
e += 1.00f / n;
}
else
{
printf("e: %f", e);
return 0;
}
}
}