// 练习1
// 编程题:
main()
{
long int m9 = 9, sum = 9;
int zi, n1 = 1, c9 = 1;
scanf("%d", &zi);
while (n1 != 0)
{
if (!(sum % zi))
n1 = 0;
else
{
m9 = m9 * 10;
sum = sum + m9;
c9++;
}
}
printf("%ld,can be divided by %d \"9\"", sum, c9);
}
#include <stdio.h>
void main(void)
{
int fun(int);
int i;
i = 5;
printf("@#@# %d \n\n", fun(i));
}
int fun(int j)
{
int sum;
if (j == 0)
sum = 1;
else
sum = j * fun(j - 1);
return sum;
}
// 练习2
#include <stdio.h>
#define size 10
int g[size] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int search(int x)
{
int low = 0;
int high = size - 1;
int mid;
while (low <= high)
{
mid = (low + high) / 2;
if (g[mid] == x)
return mid;
else if (g[mid] < x)
low = mid + 1;
else if (g[mid] > x)
high = mid - 1;
}
return -1;
}
#include <stdio.h>
int cal_bit(char a)
{
int i, j = 0;
for (i = 0; i < 8; i++)
{
if ((a & 0x01) == 0x01)
j++;
a = a >> 1;
}
return j;
}
// 练习三编程题:
#include <stdio.h>
char str[6] = "12345";
int string_to_int(char s[])
{
int i;
int sum = 0;
for (i = 0; s[i] != '\0'; i++)
sum = sum * 10 + s[i] - '0';
return sum;
}
#include <stdio.h>
#define LEN 5
int a[LEN] = {7, 4, 8, 4, 5};
void insertion_sort(void)
{
int i, j, key;
for (j = 1; j < LEN; j++)
{
printf("%d,%d,%d,%d,%d\n", a[0], a[1], a[2], a[3], a[4]);
key = a[j];
i = j - 1;
while ((i >= 0) && (a[i] < key))
{
a[i + 1] = a[i];
i--;
}
a[i + 1] = key;
}
printf("%d,%d,%d,%d,%d\n", a[0], a[1], a[2], a[3], a[4]);
}
// 练习四编程题:
#include <stdio.h>
#define LEN 5
int a[LEN] = {7, 4, 8, 4, 5};
void insertion_sort(void)
{
int i, j, key;
for (j = 1; j < LEN; j++)
{
printf("%d,%d,%d,%d,%d\n", a[0], a[1], a[2], a[3], a[4]);
key = a[j];
i = j - 1;
while ((i >= 0) && (a[i] > key))
{
a[i + 1] = a[i];
i--;
}
a[i + 1] = key;
}
printf("%d,%d,%d,%d,%d\n", a[0], a[1], a[2], a[3], a[4]);
}
#include <stdio.h>
#include <math.h>
#define LEN 4
char str[] = " ";
char *int_to_string(int given)
{
int i;
int temp;
for (i = 0; i < LEN; i++)
{
given = given % ((int)pow(10, LEN - 1 - i));
str[i] = temp + '0';
}
return str;
}
// 练习五编程题:
main()
{
long f1, f2;
int i;
f1 = f2 = 1;
for (i = 1; i <= 20; i++)
{
printf("%12ld %12ld", f1, f2);
if (i % 2 == 0) printf("\n"); /*控制输出,每行四个*/
f1 = f1 + f2; /*前两个月加起来赋值给第三个月*/
f2 = f1 + f2; /*前两个月加起来赋值给第三个月*/
}
}
main()
{
float n, s = 0, t = 1;
for (n = 1; n <= 20; n++)
{
t *= n;
s += t;
}
printf("1+2!+3!...+20!=%e\n", s);
}
// 联系六编程题:
main()
{
char *p, s[6];
int n;
p = s;
gets(p);
n = 0;
while (*(p) != '\0')
{
n = n * 8 + *p - '0';
p++;
}
printf("%d", n);
}
main()
{
long sum = 4, s = 4;
int j;
for (j = 2; j <= 8; j++)
{
printf("\n%ld", sum);
if (j <= 2)
s *= 7;
else
s *= 8;
sum += s;
}
printf("\nsum=%ld", sum);
}
// 联系七编程题:
#include <stdio.h>
void search(char given)
{
int i = 0, j = 0;
while (s[i] != '\0')
{
if (s[i] == given)
{
printf("location=%d\n", i);
j++;
}
i++;
}
if (j == 0)
printf("No %c found\n", given);
}
#include <stdio.h>
#define LEN 12
int main(void)
{
int m, i;
char temp;
char s[LEN] = "hello tiger";
m = (LEN - 1) / 2;
printf("%s\n", s);
for (i = 0; i < m; i++)
{
temp = s[i];
s[i] = s[LEN - 2 - i];
s[LEN - 2 - i] = temp;
}
printf("%s\n", s);
return 0;
}
// 联系八编程题:
main()
{
int n, t, number = 20;
float a = 2, b = 1, s = 0;
for (n = 1; n <= number; n++)
{
s = s + a / b;
t = a;
a = a + b;
b = t;
}
printf("sum is %6f\n", s);
}
#include <stdio.h>
void main(void)
{
int fun(int);
int i;
i = 6;
printf("@#@# %d \n\n", fun(i));
}
int fun(int j)
{
int sum;
if (j == 0)
sum = 1;
else
sum = j * fun(j - 1);
return sum;
}