当前位置:文档之家› C语言程序设计现代方法第二版习题答案

C语言程序设计现代方法第二版习题答案

C语言程序设计现代方法第二版习题答案
C语言程序设计现代方法第二版习题答案

C语言程序设计现代方

法第二版习题答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

Chapter 2

Answers to Selected Exercises

2. [was #2] (a) The program contains one directive (#include) and four statements (three calls of printf and one return).

(b)

Parkinson's Law:

Work expands so as to fill the time

available for its completion.

3. [was #4]

#include <>

int main(void)

{

int height = 8, length = 12, width = 10, volume;

volume = height * length * width;

printf("Dimensions: %dx%dx%d\n", length, width, height);

printf("Volume (cubic inches): %d\n", volume);

printf("Dimensional weight (pounds): %d\n", (volume + 165) / 166); return 0;

}

4. [was #6] Here's one possible program:

#include <>

int main(void)

{

int i, j, k;

float x, y, z;

printf("Value of i: %d\n", i);

printf("Value of j: %d\n", j);

printf("Value of k: %d\n", k);

printf("Value of x: %g\n", x);

printf("Value of y: %g\n", y);

printf("Value of z: %g\n", z);

return 0;

}

When compiled using GCC and then executed, this program produced the following output:

Value of i: 5618848

Value of j: 0

Value of k: 6844404

Value of x:

Value of y:

Value of z:

The values printed depend on many factors, so the chance that you'll get exactly these numbers is small.

5. [was #10] (a) is not legal because 100_bottles begins with a digit.

8. [was #12] There are 14 tokens: a, =, (, 3, *, q, -, p, *, p, ), /, 3,

and ;.

Answers to Selected Programming Projects

4. [was #8; modified]

#include <>

int main(void)

{

float original_amount, amount_with_tax;

printf("Enter an amount: ");

scanf("%f", &original_amount);

amount_with_tax = original_amount * ;

printf("With tax added: $%.2f\n", amount_with_tax);

return 0;

}

The amount_with_tax variable is unnecessary. If we remove it, the program is slightly shorter:

#include <>

int main(void)

{

float original_amount;

printf("Enter an amount: ");

scanf("%f", &original_amount);

printf("With tax added: $%.2f\n", original_amount * ;

return 0;

}

Chapter 3

Answers to Selected Exercises

2. [was #2]

(a) printf("%", x);

(b) printf("%", x);

(c) printf("%", x);

(d) printf("%", x);

5. [was #8] The values of x, i, and y will be , 45, and .6, respectively. Answers to Selected Programming Projects

1. [was #4; modified]

#include <>

int main(void)

{

int month, day, year;

printf("Enter a date (mm/dd/yyyy): ");

scanf("%d/%d/%d", &month, &day, &year);

printf("You entered the date %d%.2d%.2d\n", year, month, day);

return 0;

}

3. [was #6; modified]

#include <>

int main(void)

{

int prefix, group, publisher, item, check_digit;

printf("Enter ISBN: ");

scanf("%d-%d-%d-%d-%d", &prefix, &group, &publisher, &item, &check_digit); printf("GS1 prefix: %d\n", prefix);

printf("Group identifier: %d\n", group);

printf("Publisher code: %d\n", publisher);

printf("Item number: %d\n", item);

printf("Check digit: %d\n", check_digit);

/* The five printf calls can be combined as follows:

printf("GS1 prefix: %d\nGroup identifier: %d\nPublisher code: %d\nItem number: %d\nCheck digit: %d\n",

prefix, group, publisher, item, check_digit);

*/

return 0;

}

Chapter 4

Answers to Selected Exercises

2. [was #2] Not in C89. Suppose that i is 9 and j is 7. The value of (-i)/j could be either –1 or –2, depending on the implementation. On the other hand, the value of -(i/j) is always –1, regardless of the implementation. In C99, on the other hand, the value of (-i)/j must be equal to the value of -(i/j).

9. [was #6]

(a) 63 8

(b) 3 2 1

(c) 2 -1 3

(d) 0 0 0

13. [was #8] The expression ++i is equivalent to (i += 1). The value of both expressions is i after the increment has been performed.

Answers to Selected Programming Projects

2. [was #4]

#include <>

int main(void)

{

int n;

printf("Enter a three-digit number: ");

scanf("%d", &n);

printf("The reversal is: %d%d%d\n", n % 10, (n / 10) % 10, n / 100);

return 0;

}

Chapter 5

Answers to Selected Exercises

2. [was #2]

(a) 1

(b) 1

(c) 1

(d) 1

4. [was #4] (i > j) - (i < j)

6. [was #12] Yes, the statement is legal. When n is equal to 5, it does nothing, since 5 is not equal to –9.

10. [was #16] The output is

onetwo

since there are no break statements after the cases.

Answers to Selected Programming Projects

2. [was #6]

#include <>

int main(void)

{

int hours, minutes;

printf("Enter a 24-hour time: ");

scanf("%d:%d", &hours, &minutes);

printf("Equivalent 12-hour time: ");

if (hours == 0)

printf("12:%.2d AM\n", minutes);

else if (hours < 12)

printf("%d:%.2d AM\n", hours, minutes);

else if (hours == 12)

printf("%d:%.2d PM\n", hours, minutes);

else

printf("%d:%.2d PM\n", hours - 12, minutes);

return 0;

}

4. [was #8; modified]

#include <>

int main(void)

{

int speed;

printf("Enter a wind speed in knots: ");

scanf("%d", &speed);

if (speed < 1)

printf("Calm\n");

else if (speed <= 3)

printf("Light air\n");

else if (speed <= 27)

printf("Breeze\n");

else if (speed <= 47)

printf("Gale\n");

else if (speed <= 63)

printf("Storm\n");

else

printf("Hurricane\n");

return 0;

}

6. [was #10]

#include <>

int main(void)

{

int check_digit, d, i1, i2, i3, i4, i5, j1, j2, j3, j4, j5, first_sum, second_sum, total;

printf("Enter the first (single) digit: ");

scanf("%1d", &d);

printf("Enter first group of five digits: ");

scanf("%1d%1d%1d%1d%1d", &i1, &i2, &i3, &i4, &i5);

printf("Enter second group of five digits: ");

scanf("%1d%1d%1d%1d%1d", &j1, &j2, &j3, &j4, &j5);

printf("Enter the last (single) digit: ");

scanf("%1d", &check_digit);

first_sum = d + i2 + i4 + j1 + j3 + j5;

second_sum = i1 + i3 + i5 + j2 + j4;

total = 3 * first_sum + second_sum;

if (check_digit == 9 - ((total - 1) % 10))

printf("VALID\n");

else

printf("NOT VALID\n");

return 0;

}

10. [was #14]

#include <>

int main(void)

{

int grade;

printf("Enter numerical grade: ");

scanf("%d", &grade);

if (grade < 0 || grade > 100) {

printf("Illegal grade\n");

return 0;

}

switch (grade / 10) {

case 10:

case 9: printf("Letter grade: A\n");

break;

case 8: printf("Letter grade: B\n");

break;

case 7: printf("Letter grade: C\n");

break;

case 6: printf("Letter grade: D\n");

break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0: printf("Letter grade: F\n");

break;

}

return 0;

}

Chapter 6

Answers to Selected Exercises

4. [was #10] (c) is not equivalent to (a) and (b), because i is incremented before the loop body is executed.

10. [was #12] Consider the following while loop:

while (…) {

continue;

}

The equivalent code using goto would have the following appearance:

while (…) {

goto loop_end;

loop_end: ; /* null statement */

}

12. [was #14]

for (d = 2; d * d <= n; d++)

if (n % d == 0)

break;

The if statement that follows the loop will need to be modified as well:

if (d * d <= n)

printf("%d is divisible by %d\n", n, d);

else

printf("%d is prime\n", n);

14. [was #16] The problem is the semicolon at the end of the first line. If we remove it, the statement is now correct:

if (n % 2 == 0)

printf("n is even\n");

Answers to Selected Programming Projects

2. [was #2]

#include <>

int main(void)

{

int m, n, remainder;

printf("Enter two integers: ");

scanf("%d%d", &m, &n);

while (n != 0) {

remainder = m % n;

m = n;

n = remainder;

}

printf("Greatest common divisor: %d\n", m);

return 0;

}

4. [was #4]

#include <>

int main(void)

{

float commission, value;

printf("Enter value of trade: ");

scanf("%f", &value);

while (value != {

if (value <

commission = + .017f * value;

else if (value <

commission = + .0066f * value;

else if (value <

commission = + .0034f * value;

else if (value <

commission = + .0022f * value;

else if (value <

commission = + .0011f * value;

else

commission = + .0009f * value;

if (commission <

commission = ;

printf("Commission: $%.2f\n\n", commission);

printf("Enter value of trade: ");

scanf("%f", &value);

}

return 0;

}

6. [was #6]

#include <>

int main(void)

{

int i, n;

printf("Enter limit on maximum square: ");

scanf("%d", &n);

for (i = 2; i * i <= n; i += 2)

printf("%d\n", i * i);

return 0;

}

8. [was #8]

#include <>

int main(void)

{

int i, n, start_day;

printf("Enter number of days in month: ");

scanf("%d", &n);

printf("Enter starting day of the week (1=Sun, 7=Sat): "); scanf("%d", &start_day);

/* print any leading "blank dates" */

for (i = 1; i < start_day; i++)

printf(" ");

/* now print the calendar */

for (i = 1; i <= n; i++) {

printf("%3d", i);

if ((start_day + i - 1) % 7 == 0)

printf("\n");

}

return 0;

}

Chapter 7

Answers to Selected Exercises

3. [was #4] (b) is not legal.

4. [was #6] (d) is illegal, since printf requires a string, not a character, as its first argument.

10. [was #14] unsigned int, because the (int) cast applies only to j, not j * k.

12. [was #16] The value of i is converted to float and added to f, then the result is converted to double and stored in d.

14. [was #18] No. Converting f to int will fail if the value stored in f exceeds the largest value of type int.

Answers to Selected Programming Projects

1. [was #2] short int values are usually stored in 16 bits, causing failure at 18

2. int and long int values are usually stored in 32 bits, with failure occurring at 46341.

2. [was #8]

#include <>

int main(void)

{

int i, n;

char ch;

printf("This program prints a table of squares.\n");

printf("Enter number of entries in table: ");

scanf("%d", &n);

ch = getchar();

/* dispose of new-line character following number of entries */

/* could simply be getchar(); */

for (i = 1; i <= n; i++) {

printf("%10d%10d\n", i, i * i);

if (i % 24 == 0) {

printf("Press Enter to continue...");

ch = getchar(); /* or simply getchar(); */

}

}

return 0;

}

5. [was #10]

#include <>

#include <>

int main(void)

{

int sum = 0;

char ch;

printf("Enter a word: ");

while ((ch = getchar()) != '\n')

switch (toupper(ch)) {

case 'D': case 'G':

sum += 2; break;

case 'B': case 'C': case 'M': case 'P':

sum += 3; break;

case 'F': case 'H': case 'V': case 'W': case 'Y': sum += 4; break;

case 'K':

sum += 5; break;

case 'J': case 'X':

sum += 8; break;

case 'Q': case 'Z':

sum += 10; break;

default:

sum++; break;

}

printf("Scrabble value: %d\n", sum);

return 0;

}

6. [was #12]

#include <>

int main(void)

{

printf("Size of int: %d\n", (int) sizeof(int));

printf("Size of short: %d\n", (int) sizeof(short));

printf("Size of long: %d\n", (int) sizeof(long));

printf("Size of float: %d\n", (int) sizeof(float));

printf("Size of double: %d\n", (int) sizeof(double));

printf("Size of long double: %d\n", (int) sizeof(long double));

return 0;

}

Since the type of a sizeof expression may vary from one implementation to another, it's necessary in C89 to cast sizeof expressions to a known type before printing them. The sizes of the basic types are small numbers, so

it's safe to cast them to int. (In general, however, it's best to cast sizeof expressions to unsigned long and print them using %lu.) In C99, we can avoid the cast by using the %zu conversion specification.

Chapter 8

Answers to Selected Exercises

1. [was #4] The problem with sizeof(a) / sizeof(t) is that it can't easily be checked for correctness by someone reading the program. (The reader would have to locate the declaration of a and make sure that its elements have type t.)

2. [was #8] To use a digit d (in character form) as a subscript into the array a, we would write a[d-'0']. This assumes that digits have consecutive codes in the underlying character set, which is true of ASCII and other popular character sets.

7. [was #10]

const int segments[10][7] = {{1, 1, 1, 1, 1, 1},

{0, 1, 1},

{1, 1, 0, 1, 1, 0, 1},

{1, 1, 1, 1, 0, 0, 1},

{0, 1, 1, 0, 0, 1, 1},

{1, 0, 1, 1, 0, 1, 1},

{1, 0, 1, 1, 1, 1, 1},

{1, 1, 1},

{1, 1, 1, 1, 1, 1, 1},

{1, 1, 1, 1, 0, 1, 1}};

Answers to Selected Programming Projects

2. [was #2]

#include <>

int main(void)

{

int digit_count[10] = {0};

int digit;

long n;

printf("Enter a number: ");

scanf("%ld", &n);

while (n > 0) {

digit = n % 10;

digit_count[digit]++;

n /= 10;

}

printf ("Digit: ");

for (digit = 0; digit <= 9; digit++)

printf("%3d", digit);

printf("\nOccurrences:");

for (digit = 0; digit <= 9; digit++)

printf("%3d", digit_count[digit]);

printf("\n");

return 0;

}

5. [was #6]

#include <>

#define NUM_RATES ((int) (sizeof(value) / sizeof(value[0]))) #define INITIAL_BALANCE

int main(void)

{

int i, low_rate, month, num_years, year;

double value[5];

printf("Enter interest rate: ");

scanf("%d", &low_rate);

printf("Enter number of years: ");

scanf("%d", &num_years);

printf("\nYears");

for (i = 0; i < NUM_RATES; i++) {

printf("%6d%%", low_rate + i);

value[i] = INITIAL_BALANCE;

}

printf("\n");

for (year = 1; year <= num_years; year++) {

printf("%3d ", year);

for (i = 0; i < NUM_RATES; i++) {

for (month = 1; month <= 12; month++)

value[i] += ((double) (low_rate + i) / 12) / * value[i]; printf("%", value[i]);

}

printf("\n");

}

return 0;

}

8. [was #12]

#include <>

#define NUM_QUIZZES 5

#define NUM_STUDENTS 5

int main(void)

{

int grades[NUM_STUDENTS][NUM_QUIZZES];

int high, low, quiz, student, total;

for (student = 0; student < NUM_STUDENTS; student++) {

printf("Enter grades for student %d: ", student + 1);

for (quiz = 0; quiz < NUM_QUIZZES; quiz++)

scanf("%d", &grades[student][quiz]);

}

printf("\nStudent Total Average\n");

for (student = 0; student < NUM_STUDENTS; student++) {

printf("%4d ", student + 1);

total = 0;

for (quiz = 0; quiz < NUM_QUIZZES; quiz++)

total += grades[student][quiz];

printf("%3d %3d\n", total, total / NUM_QUIZZES);

}

printf("\nQuiz Average High Low\n");

for (quiz = 0; quiz < NUM_QUIZZES; quiz++) {

printf("%3d ", quiz + 1);

total = 0;

high = 0;

low = 100;

for (student = 0; student < NUM_STUDENTS; student++) {

total += grades[student][quiz];

if (grades[student][quiz] > high)

high = grades[student][quiz];

if (grades[student][quiz] < low)

low = grades[student][quiz];

}

printf("%3d %3d %3d\n", total / NUM_STUDENTS, high, low);

}

return 0;

}

Chapter 9

Answers to Selected Exercises

2. [was #2]

int check(int x, int y, int n)

{

return (x >= 0 && x <= n - 1 && y >= 0 && y <= n - 1);

}

4. [was #4]

int day_of_year(int month, int day, int year)

{

int num_days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int day_count = 0, i;

for (i = 1; i < month; i++)

day_count += num_days[i-1];

/* adjust for leap years, assuming they are divisible by 4 */

if (year % 4 == 0 && month > 2)

day_count++;

return day_count + day;

}

Using the expression year % 4 == 0 to test for leap years is not completely correct. Centuries are special cases: if a year is a multiple of 100, then it must also be a multiple of 400 in order to be a leap year. The correct test is

year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)

6. [was #6; modified]

int digit(int n, int k)

{

int i;

for (i = 1; i < k; i++)

n /= 10;

return n % 10;

}

8. [was #8] (a) and (b) are valid prototypes. (c) is illegal, since it doesn't specify the type of the parameter. (d) incorrectly specifies that f returns an int value in C89; in C99, omitting the return type is illegal.

10. [was #10]

(a)

int largest(int a[], int n)

{

int i, max = a[0];

for (i = 1; i < n; i++)

if (a[i] > max)

max = a[i];

return max;

}

(b)

int average(int a[], int n)

{

int i, avg = 0;

for (i = 0; i < n; i++)

avg += a[i];

return avg / n;

}

(c)

int num_positive(int a[], int n)

{

int i, count = 0;

for (i = 0; i < n; i++)

if (a[i] > 0)

count++;

return count;

}

15. [was #12; modified]

double median(double x, double y, double z)

{

double result;

if (x <= y)

if (y <= z) result = y;

else if (x <= z) result = z;

else result = x;

else {

if (z <= y) result = y;

else if (x <= z) result = x;

else result = z;

}

return result;

}

17. [was #14]

int fact(int n)

{

int i, result = 1;

for (i = 2; i <= n; i++)

result *= i;

return result;

}

19. [was #16] The following program tests the pb function:

#include <>

void pb(int n);

int main(void)

{

int n;

printf("Enter a number: ");

scanf("%d", &n);

printf("Output of pb: ");

pb(n);

printf("\n");

return 0;

}

void pb(int n)

{

if (n != 0) {

pb(n / 2);

putchar('0' + n % 2);

}

}

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

现代设计方法复习题1

单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的 序号填在题干的括号内。) 1. f(x)在区间[x 1,x 3]上为单峰函数,x 2为区间中的一点,x 4为利用二次插值法求得的近似极值点,若x 4-x 2<0,且f(x 4)≥f(x 2),则新的搜索区间为( D ) A. [x 1,x 4] B. [x 2,x 3] C. [x 1,x 2] D.[x 4,x 3] 2.对于平面桁架中的杆单元,每个节点在整体坐标系中的位移分量个数为(B ) A1 B2 C3 D4 3.应用四节点等参数单元时,由整体坐标系到自然坐标系单元的映射关系是(C ) A 任意四边形→任意四边形 B 正方形→任意四边形 C 任意四边形→正方形 D 正方形→正方形 4.在任何一个单元内( D ) A 只有节点符合位移模式 B 只有边界点符合位移模式 C 只有边界点和节点符合位移模式 D 单元内任意点均符合位移模式 4.若强度r 的概率密度函数为f r (r)=λr e r r -λ,则知其分布为( C ) A 正态分布 B 对数正态分布 C 指数分布 D 威布尔分布 6.标准正态分布的均值和标准离差为( D ) A μ=1,σ=0 B μ=1,σ=1 C μ=0,σ=0 D μ=0,σ=1 7.若组成系统的诸零件的失效相互独立,但只有某一个零件处于工作状态,当它出现故障后,其它处于待 命状态的零件立即转入工作状态。这种系统称为( C ) A 串联系统 B 工作冗余系统 C 非工作冗余系统 Dr/n 表决系统 8已知方程组5611327121 2x x x x +=+=??? ()()12,用高斯消元法对式(2)进行向前消元一步运算后,结果为( C ) A. -=245652x B. x x 122373+= C.-=85252x D. -=-243343 2x 9.Powell 修正算法是一种( D ) A 一维搜索方法 B 处理约束问题的优化方法 C 利用梯度的无约束优化方法 D 不利用梯度的无约束优化方法 10.某产品的寿命服从指数分布,若知其失效率λ=0.002,则该产品的平均寿命为(C ) A.200 B.1000 C.500 D.2000 11.下列优化方法中,不需计算迭代点一阶导数和二阶导数的是( B ) A 可行方向法 B 复合形法 C DFP 法 D BFGS 法 11.表示机电设备的一般失效曲线(浴盆曲线)中,偶然失效期的失效密度f(t)服从( B )

现代设计方法期末总结

1、设计是创造性的劳动,设计的本质是创新。 2、现代设计方法有六个特点,分别是:程式性、创造性、系统性、优化性、综合性、计算机辅助设计(CAD)。 3、传统的分析方法往往把事物分解为许多独立的互不相干的部分进行研究。由于是孤立、静止地分析问题,所得的结论往往是片面的、有局限性的。而系统工程的方法是把事物当作一个整体的系统来研究,从系统出发,分析各组成部分之间的有机联系及系统与外界环境的关系,是一种较全面的综合研究方法。 4、设计系统是一种信息处理系统。 5、系统工程的观点,设计系统是一个由时间维、逻辑维和方法维组成三维系统。时间维:反映按时间顺序的设计工作阶段;逻辑维:解决问题的逻辑步骤;方法维:设计过程中的各种思维方法和工作方法。 6、设计工作阶段—时间维一般工程设计可分为四个阶段: 1)产品规划(明确设计任务);2)原理方案设计;3)技术设计;4)施工设计。产品规划过程中的调查研究,包括:市场调研、技术调研、社会调研、环境调研。产品规划阶段形成的是可行性研究报告或设计任务书。 原理方案设计形成方案原理图。技术设计阶段形成零件草图等。 施工设计阶段形成零件图、部件装配图、全部生产图纸、设计说明书、工艺文件、使用说明书。 7、产品设计的三种类型 (1)开发型设计针对设计任务提出新的功能原理方案,完成从产品规划到施工设计的全过程的设计,此类设计是创新设计。 (2)适应型设计在原理方案基本保持不变的情况下,变化更换部分部件或结构,使产品更广泛地适应使用要求的设计。 (3)变参数型设计产品功能、原理方案、结构型式基本确定,通过改变尺寸与性能参数,满足不同的工作需要的设计。(测绘与仿制) 8、解决问题的合理逻辑步骤是:分析-综合-评价-决策。 评价是筛选的过程二、原理方案设计 1、系统功能分析法—系统化设计方法,它是将工程设计任务或机械产品看作技术系统,用系统工程方法进行分析和综合。 2、技术系统—以一定技术手段来实现社会特定需求的人造系统。 技术系统的功能就是将输入的能量、物料和讯号进行有目的的转换或变化后输出。技术系统是一个转换装置。随时间变化的能量、物料和讯号称为能量流、物料流和讯号流。 主要传递讯号流的技术系统—仪器。 主要传递能量流与物料流的技术系统—机器。 3、对输入和输出的变换所作的抽象描述称为系统。 技术系统的用途或所具有的特定能力称为系统的功能 4、分析系统的总功能常采用“黑箱法”。分析比较系统的输入和输出能量、物料和讯号,其差别和关系反映的就是系统的总功能。黑箱法要求设计者不要首先从产品结构着手,而应从系统功能出发设计产品。 5、功能分解分解到直接找到解法的分功能称为功能元。功能分析的结果用功能树的形式表达 完成分功能的技术实体是功能载体。 6、求系统原理解N=n1·n2······ni······nm 式中:m—功能元数;ni—第i 种功能元解的个数。 7、功能分析法的设计步骤

C语言程序设计(第二版)课后答案 丁亚涛

习题二 一、选择题 二、填空题 1.18 2.int float double 3.10 11 4.8 16 10 5.% 三、阅读题 1. 10,10,9,10 2. j=1, i=2 k=3,i=3 i=3,i=2 k=1,i=1 习题三 一、选择题 二、填空题 1. 从键盘上读入一个字符在屏幕上输出一个字符 #include 2. 按十进制整数形式输出,有符号 按16进制整数形式输出,没有符号 按十进制小数形式输出,输出的数据长度为7位,有2位小数 按字符形式输出一个字符 3. 按十进制整数形式输入数据 按十进制整数形式输入三位数据 跳过3位十进制数据 按字符形式输入一个字符 4. 分程序;; 5. 大写字母L 6. -1 三、阅读题 1. 6 6 6.00 6.00

2. x=127,x= 127,x=177,x=7f y=123.4567,y= 123.46,y=123,45670 3. 2,1 4. 1234 5. 4,3 6. -6,-6 习题四一、选择题 二、填空题 1. 非0 0 、 2. k==0 3. n%7==0&&n%==0 else 三、阅读题 1. a=1,b=0 2. c=1 习题五一、选择题 二、填空题 1. for语句 do-while 语句 while 语句 2. a=14,y=26 3. k=14,n=-1 4. 39 5. s=19 6. 22222 7. 10 8. 7 9. 8 10. 5,5 三、改错题

1. for( i=0;i<5;i++);for控制部分用分号分隔 2. int j=0;while(j<10){j++;i=j} 分号是多余的,否则会造成死循环 3. int s=1,i=1; while(i<5) {s*=i; i++; } 两条语句需要加上花括号 4. while(j<10);(分号不能少) 5. continue改为break 习题六 一、选择题 二、填空题 1. 20 0 19 2. 数组名 3. 越界 4. 6 5. j==k a[j][k]=1; a[j][k]=0; 三、阅读题 1. 6 5 4 3 2 1 2. aaa bbb ccc ddd 3. 2,2,1 习题七 一、选择题 二、填空题 1. 整个函数体内局部 2. 整型 3. k<=b return y;

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

现代设计方法试卷1及答案

现代设计方法试卷1及答案 一、单项选择题 1.属于无约束优化问题求解算法中的直接法是( C ) A. 梯度法 B.牛顿法 C.POWELL法 D.变尺度法 2.按类型划分,惩罚函数法属于( D ) A.一维优化方法 B.无约束优化方法 C.直接法 D.约束优化方法 3.对于只含有不等式约束的优化问题,满足每一个设计约束的设计点,称为 (D) A.边界点 B.非可行点 C.外点 D.内点 4.坐标轮换法以为搜索方向。(C) A.梯度方向 B.共轭方向 C.坐标轴方向 D.负梯度方向 5.一个多元函数F(X)在点X*附近偏导数连续,则该点为极小值点的充分条件是( B ) A.▽F(X*)=0 B. ▽F(X*)=0,H(X*)正定 C. H(X*)=0 D. ▽F(X*)=0,H(X*)负定 6.在有限元分析中,将构件分割成单元的方法称之为( C ) A.有限化 B.单元化 C.网格化 D.分割化 7.平面问题的弹性矩阵与材料的( D) A.弹性模量有关,泊松比无关 B.弹性模量无关,泊松比有关 C.弹性模量和泊松比都无关 D.弹性模量和泊松比都有关 8.当零件材料的强度均值小于应力均值时,零件的平均安全系数为n,等效概率为F,则(A ) A.n<1,F>50% B. n>1,F>50% C. n<1,F<50% D. n>1,F<50% 9.串联系统的失效模式大多服从( D )

A.正态分布 B.对数正态分布 C.指数分布 D.威布分布 10.抽取100只灯泡进行实验,灯泡工作到50小时有12只损坏,工作到70小 时又有20只损坏,从50小时到70小时这段时间内灯泡的平均失效密度为( C ) A. 0.006 B. 0.004 C. 0.01 D. 0.12 二、填空题 11.单元刚度矩阵具有对称性、 分块 性和奇异性。 12.机电产品零件失效曲线分为三个区域,分别为: 早期失效区域 、正常工 作区域和功能失效区域。 13.函数()223212221+-+=x x x x x F 在点(1,0)处的梯度为 [6,-2]T 。 14.组成并联系统的零件的可靠度与该并联系统的可靠度相比较, 并联系统 的可靠度高。 15.一批产品从投入运行到发生失效的平均时间称为 平均寿命 。 16.可靠度是对产品可靠性的 概率 度量。 17.设某系统由10个零件串连组成,每个零件的可靠度均为0.95,系统的可靠度为 0.599 。 18.根据处理约束条件的方式不同,求解约束优化问题的方法分为 直接法 和间接法。 19.根据是否满足约束条件可以将设计点分为:可行点和 不可行点 。 20.利用目标函数的一阶导数或二阶导数信息构成搜索方向的方法称为 导数法 。 三、名词解释 21、(定义)可靠度:指产品在规定的条件下和规定的时间内,完成规定功能的概率,用R 表示。 22、(定义)失效率:又称故障率,产品工作t 时刻时尚未失效(或故障)的产品,在该时刻

现代设计方法_习的题目集(含问题详解)

《现代设计方法》课程习题集 西南科技大学成人、网络教育学院 版权所有 习题 【说明】:本课程《现代设计方法》(编号为09021)共有单选题,计算题,简答题, 填空题等多种试题类型,其中,本习题集中有[ 填空题,单选题]等试题类型未进入。 一、计算题 1. 用黄金分割法求解以下问题(缩小区间三次)。 342)(m in 2+-=x x x f ,给定初始区间[][]3,0,=b a ,取1.0=ε。 2. 用黄金分割法求解以下问题(缩小区间三次) 32)(m in 2+=x x f ,给定[][],1,2a b =-,取1.0=ε 3. 用黄金分割法求解以下问题(缩小区间三次) 432+=x )x (f min ,给定[][]40,b ,a =,取10.=ε。 4. 用黄金分割法求解以下问题(缩小区间三次)。 12)(m in 3+-=x x x f ,给定初始区间[][]3,0,=b a ,取5.0=ε 5. 用黄金分割法求解以下问题(缩小区间三次)。 107)(m in 2+-=x x x f ,给定初始区间[][]3,0,=b a ,取1.0=ε 6. 用梯度法求解无约束优化问题: 168)(m in 22221+-+=x x x X f ,取初始点[]T X 1,1)0(= ,计算精度1.0=ε。 7. 用梯度法求解96)(m in 12221+-+=x x x X f ,[]T X 1,1)0(= ,1.0=ε。

8. 用梯度法求解44)(m in 22221+-+=x x x X f ,[]T X 1,1)0(=,1.0=ε 。 9. 用梯度法求解无约束优化问题:1364)(m in 222 121+-+-=x x x x X f ,取初始点[]T X 1,1)0(=,计算精度1.0=ε。 10. 用梯度法求解1212221422)(m in x x x x x X f --+=,[]T X 1,1)0(=,1.0=ε 。(请迭代两次) 11. 有三个可靠度均为0.9的子系统组成的并联系统,试比较纯并联及2/3[G]表决系统的可靠度。 12. 一个由2个子系统组成的系统,其可靠度指标为0.85,试按等同分配法分配子系统的可靠度:(1)组成串联系统,(2)组成并联系统。 13. 已知某零件的应力和强度均呈正态分布,零件强度:MPa 516=δμ(均值),MPa S 2.24=δ(标准差),应力:MPa 378=σμ(均值),Mpa S 5.41=σ(标准差),试计算零件的可靠度与失效概率。 14. 由应力分析表明,某零件所承受的应力是拉应力,可用正态分布来描述,MPa T 3500=μ,标准差MPa S T 400=。该零件在制造过程中所引起的残余应力也可用正态分布来描述,其均值MPa C 1000=μ,标准差MPa S C 150=。由强度分析表明,该零件的强度也服从正态分布,其均值MPa 5000=δμ。现要求出当保证该零件的可靠度不低0.999时,零件强度的标准差的最低值应为多少? 15. 由应力分析表明,某零件所承受的应力是拉应力,可用正态分布来描述,MPa T 3500=μ,标准差MPa S T 400=。该零件在制造过程中所引起的残余应力也可用正态分布来描述,其均值MPa C 1000=μ,标准差MPa S C 150=。由强度分析表明,该零件的强度也服从正态分布,其均值MPa 5000=δμ。现要求出当保证该零件

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

现代设计方法模拟试题

现代设计方法模拟试卷 一、单项选择题(本大题共20小题。每小题1分。共20分) 1.CAD 一词已经成为世界通用的名词,它是指( ) A.计算机辅助工程 B . 计算机辅助设计 C .计算机辅助制造? D .计算机辅助工艺规程设计 2.实验测试了自变量为3,4,5,6,7,8时的函数值,现要用抛物线插值法计算5.8处的函数值,选择下列哪组自变量及其对应的函数值进行插值计算较为合理( ) A.3,4,5 B.4,5,6 C .5,6,7?D.6,7,8 3.设备坐标系的维数一般为( ) A.一维 B .二维 C 三维 D.四维 4.将平面图形沿X方向平移10个单位,沿Y 方向平移15个单位,其坐标变换矩阵为( ) A.??????????11510010001 B.??????? ???--11510010001 C.???? ? ?????101001500010D .???? ??????10 10015000 1 5.在三维几何实体的实现模式中,有一种方法其基本思想是:几何实体都是由若干边界外表 面包容而成的,通过定义和全面存储这些边界外表面信息就可以建立实体几何模型,该方法是( ) A .CSG 法 ? B .B-rep 法 ?C.光线投影法? D.扫描表示法 6.若函数F(x)在Dl 上具有连续二阶导数(D是Dl 内部的凸集),则F(x)为D 上的凸函数的充分必要条件是F (x)的H ess ian 矩阵( ) A.半正定?B .正定?C.半负定 D .负定 7.编码裁剪法(C ohe n-Sutherland 法)中,某点在窗口右方,则其代码应为( ) A.0001 B .0010 C.0100 D.1000 8.在单峰搜索区间[x 1,x 3](x1

《C语言程序设计教程(第二版)》习题答案

2 第1章程序设计基础知识 一、单项选择题(第23页) 1-4.CBBC 5-8.DACA 二、填空题(第24页) 1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分 三、应用题(第24页) 2.源程序: main() {int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */ printf("cock hen chick\n"); for(i=1;i<=20;i++) for(j=1;j<=33;j++) for(k=1;k<=33;k++) if (i+j+k*3==100&&i*5+j*3+k==100) printf(" %d %d %d\n",i,j,k*3);} 执行结果: cock hen chick 4 18 78 8 11 81 12 4 84 3.现计算斐波那契数列的前20项。 递推法源程序: main() {long a,b;int i; a=b=1; for(i=1;i<=10;i++) /*要计算前30项,把10改为15。*/ {printf("%8ld%8ld",a,b); a=a+b;b=b+a;}} 递归法源程序: main() {int i; for(i=0;i<=19;i++) printf("%8d",fib(i));} fib(int i) {return(i<=1?1:fib(i-1)+fib(i-2));} 执行结果: 1 1 2 3 5 8 13 21 3 4 55 89 144 233 377 610 987 1597 2584 4181 6765

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

现代设计方法

一、单项选择题 1CAD技术是一门综合性应用技术,以下技术不属于工程分析技术的是(C) A.优化设计方法B.模拟仿真 C.软件工程规范D.物理特性计算 2模拟仿真分析在CAD所涉及到的诸多技术中属于(B) A.图形处理技术 B.工程分析技术 C.软件设计技术 D.文档处理技术 3一彩色光栅扫描显示器,它的分辨率为1280×1024×8,则该显示器(D) A.水平线上有1280个扫描点,共有1024条水平扫描线,每个点最多可有8种颜色 B.水平线上有1024个扫描点,共有1280条水平扫描线,每个点最多可有8种颜色 C.水平线上有1024个扫描点,共有1280条水平扫描线,每个点最多可有256种颜色 D.水平线上有1280个扫描点,共有1024条水平扫描线,每个点最多可有256种颜色 4一光栅扫描显示器有600条水平扫描线,每条水平扫描线上有800个像素点,每个像素点的状态用8位二进制数表示,则该显示器分辨率的正确表示为(B) A.600×800×8 B.800×600×8 C.600×800×256 D.800×600×256 5根据CAD软件的分类,以下软件不属于CAD支撑软件的是(D) A.Solid edge B.MDT C.ANSYS D.FoxBASE 6网络通讯及管理软件属于(A) A.系统软件 B.支撑软件 C.专用软件 D.分析软件 将平面图形放大一倍,其变换矩阵为(C) 7在消隐处理中,当进行平面可见性测试时,若平面可见,则该面的法线矢量和视线矢量的夹角(C) A.大于90° B.小于90° C.大于180° D.小于180° D

B C C D C D

C语言程序的设计习题参考答案(第二版_杜友福)

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

现代设计方法大作业

机电工程学院 现代设计方法大作业基于汽车噪声的TRIZ分析 学号:S314070064 专业:机械工程 学生姓名:*** 任课教师:*** 教授 2015年1月

基于汽车噪声的TRIZ分析 一对技术系统进行初步分析 1.选择系统。 我所选择的系统是汽车。 2.系统的三维图,如图1所示。 图1 汽车的三维图 汽车工作原理:汽车的行驶主要靠发动机来带动,以四冲程汽油机为例,四冲程汽油机是将空气与汽油或柴油以一定的比例混合成良好的混合气,在吸气冲程被吸入汽缸,混合气经压缩点火燃烧而产生热能,高温高压的气体作用于活塞顶部,推动活塞作往复直线运动,通过连杆、曲轴飞轮机构对外输出机械能。四冲程汽油机在进气冲程、压缩冲程、做功冲程和排气冲程内完成一个工作循环。汽油机简图及其具体运动过程如图2所示。 图2 四冲程汽油机工作循环图 (1)进气行程 化油器式汽油机将空气与燃料先在气缸外部的化油器中进行混合,然后再吸入气缸。进气行程中,进气门打开,排气门关闭。随着活塞从上止点向下止点移

动,活塞上方的气缸容积增大,从而气缸内的压力降低到大气压力以下,即在气缸内造成真空吸力。这样,可燃混合气便经进气管道和进气门被吸入气缸。 (2)压缩行程 为使吸入气缸内可燃混合气能迅速燃烧,以产生较大的压力,从而使发动机发出较大功率,必须在燃烧前将可燃混合气压缩,使其容积缩小、密度加大、温度升高,即需要有压缩过程。在这个过程中,进、排气门全部关闭,曲轴推动活塞由下止点向上止点移动一个行程称为压缩行程。 (3)作功行程 在这个行程中,进、排气门仍旧关闭。当活塞接近上止点时,装在气缸盖上的火花塞即发出电火花,点燃被压缩的可燃混合气。可燃混合气被燃烧后,放出大量的热能,因此,燃气的压力和温度迅速增加,所能达到的最高压力约为3-5Mpa,相应的温度则为2200-2800K。高温高压的燃气推动活塞从上止点向下止点运动,通过连杆使曲轴旋转并输出机械能,除了用于维持发动机本身继续运转而外,其余即用于对外作功。 (4)排气行程 可燃混合气燃烧后生成的废气,必须从气缸中排除,以便进行下一个进气行程。当膨胀接近终了时,排气门开启,靠废气的压力进行自由排气,活塞到达下止点后再向上止点移动时,继续将废气强制排到大气中。活塞到上止点附近时,排气行程结束。 汽车的执行机构:轮胎。 作用对象:路面。 3.汽车系统的黑箱图。 汽车的黑箱图如图3所示。 图3 汽车系统黑箱图 4.确定系统主要有益功能和其它功能。 汽车主要有益功能:载运客、货物和牵引客、货挂车。

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

相关主题
文本预览
相关文档 最新文档