Hi, 由于文件存放年代久远，且我在当时学习过程中可能有改动，仅供参考。

### EX01 Programming Environment and Basic Input/Output

1.Write a program that prints “This is my first program!” on the screen.
(a)Save this program onto your own disk with the name of e2-1a;
(b)Run this program without opening Turbo C;
(c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program.

2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods:
(a)Using four “printf” statements.
(b)Using one “printf” statement with no conversion specifier (i.e. no ‘%’).
(c)Using one “printf” statement with four conversion specifiers

3．(a) Write a program that calculates and displays the number of minutes in 15 days.
(b) Write a program that calculates and displays how many hours 180 minutes equal to.
(c) (Optional) How about 174 minutes?

### EX02 Data Types and Arithmetic Operations

1. You purchase a laptop computer for \$889. The sales tax rate is 6 percent. Write and execute a C program that calculates and displays the total purchase price (net price + sales tax).

2．Write a program that reads in the radius of a circle and prints the circle’s diameter, circumference and area. Use the value 3.14159 for “”.

3．Write a program that reads in two numbers: an account balance and an annual interest rate expressed as a percentage. Your program should then display the new balance after a year. There are no deposits or withdraws – just the interest payment. Your program should be able to reproduce the following sample run:
Interest calculation program.
Starting balance? 6000
Annual interest rate percentage? 4.25
Balance after one year: 6255

### EX03 Selection Structure

1．Write a C program that accepts a student’s numerical grade, converts the numerical grade to Passed (grade is between 60-100), Failed (grade is between 0-59), or Error (grade is less than 0 or greater than 100).

2．Write a program that asks the user to enter an integer number, then tells the user whether it is an odd or even number.

3．Write a program that reads in three integers and then determines and prints the largest in the group.

### EX04 ‘Switch’ Statement and Simple “While” Repetition Statement

1. Write a program that reads three integers an abbreviated date (for example: 26 12 94) and that will print the date in full; for example: 26th December 1994. The day should be followed by an appropriate suffix, ‘st’, ‘nd’, ‘rd’ or ‘th’. Use at least one switch statement.

2．Write a C program that uses a while loop to calculate and print the sum of the even integers from 2 to 30.

1. A large chemical company pays its sales staff on a commission basis. They receive £200 per week plus 9% of their gross sales for that week. For example, someone who sells £5000 of chemicals in one week will earn £200 plus 9% of £5000, a total of £650. Develop a C program that will input each salesperson’s sales for the previous week, and print out their salary. Process one person’s figures at a time.
Enter sales in pounds (-1 to end): 5000.00
Salary is: 650.00

Enter sales in pounds (-1 to end): 00.00
Salary is: 200.00

Enter sales in pounds (-1 to end): 1088.89
Salary is: 298.00

Enter sales in pounds (-1 to end): -1

Optional：

1. A mail order company sells five different products whose retail prices are shown in the following table:
Product Number Retail Price (in pounds)
1 2.98
2 4.50
3 9.98
4 4.49
5 6.87
Write a C program that reads in a series of pairs of numbers as follows:
(1). Product number
(2). Quantity sold for one day
Your program should use a switch statement to help determine the retail price for each product, and should use a sentinel-controlled loop to calculate the total retail value of all products sold in a given week (7days).

### EX05 For and Do…while Repetition Statements

1. Write a program which uses a do/while loop to print out the first 10 powers of 2 other than 0 (ie. it prints out the values of 2^1, 2^2, …, 2^10). Use a for loop to do the same.

2. The constant can be calculated by the infinite series:

Pi = 4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 +....


Write a C program that uses a do/while loop to calculate using the series. The program should ask the user how many terms in the series should be used. Thus if the user enters ‘3’, then the program should calculate Pi as being 4 - 4/3 + 4/5.

3. Write a program that prints the following diamond shape. You may use printf statements that print either a single asterisk (*) or a single blank. Maximize your use of repetition (with nested for statements) and minimize the number of printf statements.
编辑器阵亡，详情见题目。

4. Write a program to print a table as follows:

11= 1
2
1= 2 22= 4
3
1= 3 32= 6 33= 9
….
91= 9 92=18 93=27 94=36 95=45 96=54 97=63 98=72 9*9=81

### EX06 Simple Functions

1.Write a C program that reads several numbers and uses the function round_to_nearest to round each of these numbers to the nearest integer. The program should print both the original number and the rounded number.

2.Write a program that reads three pairs of numbers and adds the larger of the first pair, the larger of the second pair and the larger of the third pair. Use a function to return the larger of each pair.

1. A car park charges a £2.00 minimum fee to park for up to 3 hours, and an additional £0.50 for each hour or part hour in excess of three hours. The maximum charge for any given 24-hour period is £10.00. Assume that no car parks for more than 24 hours at a time.

Write a C program that will calculate and print the parking charges for each of 3 customers who parked their car in the car park yesterday. The program should accept as input the number of hours that each customer has parked, and output the results in a neat tabular form, along with the total receipts from the three customers:

Car Hours Charge
1 1.5 2.00
2 4.0 2.50
3 24.0 10.00
TOTAL 29.5 14.50

The program should use the function calculate_charges to determine the charge for each customer.

### EX07 More Functions

1. Write a program that uses sentinel-controlled repetition to take an integer as input, and passes it to a function even which uses the modulus operator to determine if the integer is even. The function even should return 1 if the integer is even, and 0 if it is not.

The program should take the value returned by the function even and use it to print out a message announcing whether or not the integer was even.

2. Write a C program that uses the function integerPower1(base, exponent) to return the value of:

base^exponent


so that, for example, integerPower1(3, 4) gives the value 3 3 3 * 3. Assume that exponent is a positive, non-zero integer, and base is an integer. The function should use a for loop, and make no calls to any math library functions.

3. Write a C program that uses the recursive function integerPower2(base, exponent) to return the value of:

base^exponent


so that, for example, integerPower2(3, 4) gives the value 3 3 3 * 3. Assume that exponent is a positive, non-zero integer, and base is an integer. The function should make no calls to any math library functions.
(Hint: the recursive step will use the relationship:

base^exponent = base . base^exponent - 1


and the base case will be when exponent is 1 since : base1 = base.)

### EX08 Arrays

1.Write a program that reads ten numbers supplied by the user into a single subscripted array, and then prints out the average of them.

1. Write a program that reads ten numbers supplied by the user into a 2 by 5 array, and then prints out the maximum and minimum values held in:
(a) each row (2 rows)
(b) the whole array

3．Use a single-subscripted array to solve the following problem. Read in 20 numbers, each of which is between 10 and 100, inclusive. As each number is read, print it only if it is not a duplicate of a number already read. Prepare for the “worst case” in which all 20 numbers are different. Use the smallest possible array to solve this problem.

### EX09 More Arrays

1.Write a program that enters 5 names of towns and their respective distance (an integer) from London in miles. The program will print of the names of the towns that are less than 100 miles from London. Use arrays and character strings to implement your program.

1. Write a program that prompts the user to type in four character strings, places these in an array of strings, and then prints out: (e.g. I am Peter Pan)

(i) The four strings in reverse order. (e.g. Pan Peter am I)

(ii) The four strings in the original order, but with each string backwards. (e.g. I ma reteP naP)

(iii) The four strings in reverse order with each string backwards. (e.g. naP reteP ma I)

### EX10 Pointers

1. Write a program that reads 5 integers into an array, and then uses four different methods of accessing the members of an array to print them out in reverse order.

2. Write a program that reads 8 floats into an array and then prints out the second, fourth, sixth and eighth members of the array, and the sum of the first, third, fifth and seventh, using pointers to access the members of the array.

3. Write a program that use a SINGLE FUNCTION （用一个函数）to find and return simultaneously both the lowest and highest values in an array of type int. Suppose the size of the array is 6.

### EX11 Files

1. Write a program that enters the name and the annual salary of 5 employees from the keyboard, calculates the monthly salary of each employee assuming that tax is deducted at a flat rate of 20%. The program prints the name, the annual salary and the monthly payment (net) of each employee in a file. The program adds an employee’s number to each employee before printing the names and values:
No. Employee’s Name Annual salary Monthly payment after tax

2．Write a program that builds a file with information for 20 towns. Each line in the file contains name of a town followed by the distance of the town from London in miles (an integer).

3．Write a program reads the file created by the above program (in Question 2) and prints the names of the towns that are less than 100 miles from London to ANOTHER file.