您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页全国计算机等级考试二级教程--C语言程序设计课后习题答案范文

全国计算机等级考试二级教程--C语言程序设计课后习题答案范文

来源:二三娱乐
《全国计算机等级考试二级教程--C语言程序设计》课后习题答案

第一章 1.1 EXE 1.2 C OBJ EXE 1.3 顺序 选择 循环 第二章 一. 选择题

2.1 B 2.2 D 2.3 B 2.4 A 2.5 C 2.6 A 2.7 B 2.8 B 2.9 D 2.10 C 2.11 B 2.12 B 2.13 A 二. 填空题 2.14 11 12 2.15 4.2 4.2

2.16 { } 定义 执行语句 2.17 关键字 用户标识符 2.18 int float double 2.19 float a1=1; float a2=1; 2.20 存储单元 2.21 3.5

2.22 (a*b)/c a*b/c a/c*b 2.23 把常量10赋给变量s 2.24 位 1或0 2.25 8 127 -128 2.26 32767 -32768 00000 2.27 10 8 16 三. 上机改错题 2.28

#include \"stdio.h\"; 删除行尾的\";\"

main(); / * main function * / 删除\")\"后的\";\注释中的*要紧靠“/”,即应为“/*”和“*/” 函数开始处遗失了一个“{”

float r,s ; /*/*r is radius*/,/* s is area of circuilar*/*/ 注释符号不可嵌套使用 r = 5.0 ;

s = 3.14159 * r * r ;

printf(\"%f\\n\行尾遗失了“;” 函数结束处遗失了一个“}” 2.29

#include \"stdio.h\"

main /* main function */ main后遗失了“()” {

float a,b,c,v; /*a,b,c are sides, v is volume of cube */ a=2.0; b=3.0; c=4.0 行尾遗失了“;”

v=a*b*c;

printf(\"%f\\n\行尾遗失了“;” } 第三章 一. 选择题

3.1 C 3.2 C 3.3 D 3.4 C 3.5 D 3.6 B 3.7 C 3.8 D 3.9 A 3.10 B

3.11 C 3.12 D 3.13 D 3.14 A 3.15 C 3.16 C 3.17 C 3.18 无答案 3.19 C 3.20 B

二. 填空题

3.21 (1)-(2)i=-200,j=2500 (3)i=-200 j=2500 3.22 12 0 0 3.23 一条语句 ; 3.24 ;

3.25 100,25.81,1.89234 100 25.81 1.89234 100 25.81 1.89234 3.26 x=127,x= 127,x= 177,x= 7f,x= 127 3.27 x=127,x=127 ,x=$127 ,x=$,x=%06d 3.28 a=513.,a= 513.79,a= 513.,a= 513.

三. 编程题和改错题 3.29 修改后的程序如下: main() {

double a,b,c,s,v; printf(\"input a,b,c:\");

scanf(\"%lf%lf%lf\ s =a*b; v=a*b*c;

printf(\"a=%f,b=%f,c=%f\\n\ printf(\"s=%f,v=%f\\n\ } 3.30 #include main() {

int a=560,b=60;

printf(\"560 minute is %d hour and %d minute.\\n\ } 3.31 #include main() {

int a,b; a=1500;b=350;

printf(\"a div b is : %d\\n\ printf(\"a mod b is : %d\\n\ } 3.32 #include main() {

double a,b,c,ave;

printf (\"input 3 double number : \\n\"); scanf (\"%lf%lf%lf\ printf (\"%.1f\\n\ } 3.33 #include void main() {

int a,b,c,t;

printf(\"请依次输入整数a,b,c:\"); scanf(\"%d%d%d\

printf(\"\\n你输入的值是: a=%d,b=%d,c=%d\\n\ t=b;b=a;a=c;c=t;

printf(\"交换之后的值是:a=%d,b=%d,c=%d\\n\ } 第四章 一. 选择题

4.1 A 4.2 A 4.3 A 4.4 D 4.5 C 4.6 A 4.7 B 4.8 C 4.9 D 4.10 C 二. 填空题 4.11 非0 0

4.12 < > >= <=同级 == !=同级 4.13 ! && || 4.15 !

4.16 a == b || a < c x > 4 || x < -4 4.17 1

4.18 x <= 0 1 > 0 4.19 3 2 2 4.20 *#

三. 编程题 4.21 略 4.22

#include

/* 检查日期的合法性 */

int checkdate(int year, int month, int day) {

if(year < 1900 || year > 2005) {

printf(\"输入的年份无效!\\n\"); return 0; }

else if(month < 0 && month > 12) {

printf(\"输入的月份无效!\\n\"); return 0; }

else if(day <= 0 && day > 31) {

printf(\"输入的日期无效!\\n\"); return 0; } else {

switch(month) { case 4: case 6: case 9: case 11: if(day > 30) {

printf(\"输入的日期无效!\\n\"); return 0; } break; case 2:

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

if(day > 29) {

printf(\"输入的日期无效!\\n\"); return 0; } } else

{

if(day > 28) {

printf(\"输入的出生日期无效!\\n\"); return 0; } } break;

}/* end of switch(m0)*/ } return 1; }

void main() {

int y0, m0, d0; /* 生日 */ int y1, m1, d1; /* 当前日期 */ int years, months, days; /* 实足年龄*/

printf(\"请输入学生的生日:\"); scanf(\"%d%d%d\

if(checkdate(y0, m0, d0)) {

printf(\"请输入当前日期:\"); scanf(\"%d%d%d\ /*当前日期合法性检查*/ if(!checkdate(y1, m1, d1)) { return; }

else if(y0 > y1) {

printf(\"出生年份比当前年份晚!\\n\"); return; }

else if(y0 == y1) {

if(m0 > m1) {

printf(\"出生年月比当前年月晚!\\n\"); return; }

else if(m0 == m1)

{

if(d0 > d1) {

printf(\"出生年月日比当前年月日晚!\\n\"); return; } } } }

/* 计算实足年龄 */ years = y1 - y0; months = m1 - m0; days = d1 - d0;

/* 修正实足年龄天数*/ if(days < 0) { months--; switch(m1) { case 1: case 5: case 7: case 10: case 12: days += 30; break; case 2: case 4: case 6: case 8: case 9: case 11: days += 31; break; case 3:

if((y1%4 == 0 && y1%100 != 0) || y1%400 == 0) {

days += 29; } else {

days += 28;

} break;

}/* end of switch(m1) */

}/* end of if(days < 0) */

/* 修正实足年龄月数*/ if(months < 0) {

months += 12; years--;

}/* end of if(months < 0) */

printf(\"出生日期: %d年%d月%d日\\n\ printf(\"当前日期: %d年%d月%d日\\n\

printf(\"实足年龄: %d年%d月%d日\\n\ return; } 4.23 #include

void main() { int a;

printf (\"请输入一个整数 :\"); scanf (\"%d\ if (a%2==0) {

printf (\"%d 是偶数\\n\ } else {

printf (\"%d 是奇数\\n\ } } 4.24 #include

void main() {

int a,b,c,temp,max;

printf (\"请输入三个整数 :\"); scanf (\"%d %d %d\ temp=(a>b)? a:b; max=(temp>c)? temp:c; printf (\"\\n\");

printf (\"你输入的数中最大的是 %d.\\n\ } 4.25

(1)不嵌套的if语句 #include

void main() { int x,y;

printf(\"input x :\"); scanf(\"%d\ if ( x>-5 && x<0 ) {

printf(\"y is %d\\n\ }

if ( x==0 ) {

printf(\"y is %d\\n\ }

if ( x>0 && x<10 ) {

printf(\"y is %d\\n\ }

if ( x>=10 || x<=-5) {

printf(\"error\\n\"); } }

(2)嵌套的if语句 #include

void main() { int x,y;

printf(\"input x :\"); scanf(\"%d\ printf(\"\\n\"); if(x < 0)

{ if(x > -5) {

printf(\"y is %d.\\n\ } else {

printf(\"error!\\n\"); } } if(0 == x) {

printf(\"y is %d.\\n\ } if(x > 0) { if(x < 10) {

printf(\"y is %d.\\n\ } else {

printf(\"error!\\n\"); } } }

(3)if_else语句 #include

void main() { int x,y;

printf(\"input x :\"); scanf(\"%d\ if( x>-5 && x<0 ) {

printf(\"y is %d.\\n\ }

else if( x==0 ) {

printf(\"y is %d.\\n\ }

else if( x>0 && x<10 ) {

printf(\"y is %d.\\n\ } else {

printf(\"error!\\n\"); } }

(4)switch语句 #include

void main() { int x,y;

printf(\"input x : \"); scanf(\"%d\ switch (x) { case -4: case -3: case -2: case -1:

printf(\"y is %d.\\n\ break; case 0:

printf(\"y is %d.\\n\ break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9:

printf(\"y is %d.\\n\ break; default:

printf(\"error!\\n\"); } } 第五章

一. 选择题

5.1 D 5.2 C 5.3 B 5.4 C 5.5 C 5.6 B 5.7 D 5.8 A 5.9 D 5.10 D

二. 填空题 5.11 5 4 6 5.12 死循环 5.13 -1 5.14 11

5.15 d=1.0 k++ k<=n 5.16 x>=0 x 三. 编程题 5.17 #include void main() { int i; int sig = 1; int sum = 0;

for(i=1; i<=101; i++,i++) {

sum += sig*i; sig *= -1; }

printf(\"sum=%d\\n\ } 5.18 (1) #include

void main() { int i;

double m=1.0; double e = 1.0; for(i=1; i<50; i++) { m *= i; e += 1/m; }

printf(\"e=%f\\n\ } (2)

#include

void main() { int i=1; double m=1.0; double e = 1.0; while(1/m >= 0.0004) { m *= i; e += 1/m; i++; }

printf(\"e=%f\\n\ } 5.19 #include

void main() { int year; int col = 0;

for(year=1600; year<=2000; year++) {

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

printf(\"%d\\ col++; if(col%5 == 0) {

printf(\"\\n\"); } } }

printf(\"\\n\"); } 5.20 #include #define N 7

void main()

{ int i; int j; int m; int k = N/2; for(i=0; i { m = i-k; if(m < 0) { m *= -1; }

for(j=0; j { printf(\" \"); }

for(j=0; j<2*(k-m)+1; j++) {

printf(\"*\"); }

printf(\"\\n\"); } } 第六章

一. 选择题

6.1 B 6.2 D 6.3 A 6.4 A 6.5 B 6.6 D 6.7 D 6.8 B 6.9 A 6.10 A 6.11 C

二. 填空题 6.12 -1 6.13 1 6.14 ctype.h 6.15 1

6.16 10A 20B 30C 40D 6.17 7.29 101.298AB 6.18 A7.29B101.298

6.19 A B C (每个字符后有三个空格)

三. 编程题 6.20 #include #define N 80

void main() {

char str[N]; int iLoop = 0; gets(str); while(str[iLoop]) {

printf(\"%c-%d\\ iLoop++; if(iLoop%3 == 0) {

printf(\"\\n\"); } }

printf(\"\\n\"); } 6.21 #include #define N 80

void main() {

char str[N]; int num = 0; int iLoop = 0; gets(str); while(str[iLoop]) {

if(str[iLoop] >= '0' && str[iLoop] <= '9') {

num = 10*num + (str[iLoop] - '0'); } iLoop++; }

printf(\"%d\\n\ } 6.22 #include #include #define N 80

void main() {

char str[N];

int num = -1; do { gets(str); num++;

}while(strcmp(str, \"EOF\"));

printf(\"您输入了%d行字符!\\n\ } 6.23 #include #define N 80

void main() {

char str[N]; int iLoop = 0; int num = 0; gets(str);

while(str[iLoop] && iLoop < N) {

if(str[iLoop] >= 'a' && str[iLoop] <= 'z') { num++; } iLoop++; }

printf(\"您输入了字符中有%d个小写字母!\\n\ } 6.24 #include

void main() { int line; int iLoop1; int iLoop2;

printf(\"请输入图案的行数(不大于26):\"); scanf(\"%d\

for(iLoop1 = 0; iLoop1 < line; iLoop1++) {

for(iLoop2 = 0; iLoop2 < line - iLoop1; iLoop2++)

{

printf(\" \"); }

for(iLoop2 = 0; iLoop2 < 2*iLoop1+1; iLoop2++) {

printf(\"%c\ }

printf(\"\\n\"); } } 第七章

一. 选择题

7.1 C 7.2 C 7.3 B 7.4 C 7.5 A 7.6 D 7.7 A

二. 填空题 7.8 12 7.9 9. 7.10 4 7.11 n=1 s 7.12 <=y z*x 7.13 1 s*i 0 f(k)

三. 程序调试和编程题 7.14 fun(int n) { int k,yes;

for(k=2; k<=n/2; k++) {

if(n%k == 0) { yes = 0; break;} else yes = 1; }

return yes; } 7.15

int mymod(int a, int b) {

return a%b; } 7.16

double fun(int n) {

double sum = 0; int iLoop; int sig = -1;

for(iLoop=1; iLoop<=n; iLoop++) { sig *= -1;

sum += sig*1.0/iLoop; }

return sum; } 7.17

double fun(int n) {

double t = 1.0; int iLoop; long tmp;

for(iLoop=2; iLoop<=n; iLoop++) {

tmp = iLoop*iLoop; t -= 1.0/tmp; } return t; } 7.18 #include #include

double fun(double x) {

return x*x + 5*x + 4; }

void main() { int x = 2;

printf(\"y1=%f\\n\ printf(\"y2=%f\\n\ printf(\"y3=%f\\n\ } 第八章 一. 选择题

8.1 A 8.2 B 8.3 B 8.4 C 8.5 B 8.6 B 8.7 C 8.8 D 8.9 B 8.10 C 8.11 C 8.12 C

二. 填空题 8.13 110 8.14 7 1

8.15 (1)char *p=&ch; (2) p=&ch; (3)scanf(\"%c\ 8.16 (1)s=p+3; (2)s=s-2 (3)50 (4)*(s+1) (5)2 (6)10 20 30 40 50

三. 编程题 8.17

void fun(double x, double y, double *sum, double *div) {

*sum = x + y; *div = x - y; return; } 8.18

void fun(double x, double y, double z, double *max, double *min) {

*max = x; *min = x; if(*max < y) {

*max = y; }

if(*max < z) {

*max = z; }

if(*min > y) { *min = y; }

if(*min > z) { *min = z; } return; } 第九章 一. 选择题

9.1 D 9.2 A 9.3 A 9.4 C 9.5 C 9.6 A 9.7 B 9.8 D 9.9 C 9.10 C 9.11 C 9.12 D 9.13 D 9.14 A 9.15 A 9.16 A 9.17 C 9.18 C

二. 填空题

9.19 9 0 9.20 6 9.21 12 9.22 3 9.23 2721 9.24 -850,2,0 9.25 k=p k

9.26 (c=getchar()) c-'A'

三. 编程题 9.27 #include #define N 81 int main() {

int counter[10] = {0}; int iLoop = 0; char str[N];

gets(str); while(str[iLoop]) {

if(str[iLoop] >= '0' && str[iLoop] <= '9') {

counter[str[iLoop] - '0']++; } iLoop++; }

for(iLoop=0; iLoop < 10; iLoop++) {

printf(\"%d - %d\\n\ } return 0; } 9.28

void fun(int array[], int arraysize, int start) { int iLoop;

if(start < arraysize-1) {

if(start <=0) { start = 1; }

for(iLoop = start; iLoop < arraysize; iLoop++) {

array[iLoop-1] = array[iLoop]; } }

for(iLoop = 0; iLoop < arraysize; iLoop++) {

printf(\"No.%d = %d\\n\ } } 9.29

int fun(int arry1[], int arry2[], int arrysize) { int iLoop; int counter = 0;

for(iLoop = 0; iLoop < arrysize; iLoop++) {

if(arry1[iLoop] % 2) {

arry2[counter++] = arry1[iLoop]; } }

return counter; } 9.30

void fun(char array[], int arraysize) {

int iLoop1; int iLoop2; char temp; /* 冒泡排序 */

for(iLoop1 = 0; iLoop1 < arraysize - 1; iLoop1++) {

for(iLoop2 = 0; iLoop2 < arraysize - 1 - iLoop1; iLoop2++) {

if(array[iLoop2] < array[iLoop2 + 1]) {

temp = array[iLoop2];

array[iLoop2] = array[iLoop2 + 1]; array[iLoop2 + 1] = temp; } } } }

9.31 #include

void fun(int array[], int arraysize, int inertNumber) { int iLoop; int iLoop2;

if(array[0] < array[arraysize-1]) {

for(iLoop = 0; iLoop< arraysize; iLoop++) {

if(array[iLoop] > inertNumber) {

for(iLoop2 = arraysize - 1; iLoop2 >= iLoop; iLoop2--) {

array[iLoop2 + 1] = array[iLoop2]; }

array[iLoop] = inertNumber; break; } }

if(iLoop >= arraysize) {

array[arraysize] = inertNumber; } } else {

for(iLoop = 0; iLoop< arraysize; iLoop++) {

if(array[iLoop] < inertNumber) {

for(iLoop2 = arraysize - 1; iLoop2 >= iLoop; iLoop2--) {

array[iLoop2 + 1] = array[iLoop2]; }

array[iLoop] = inertNumber; break; } }

if(iLoop >= arraysize) {

array[arraysize] = inertNumber; }

} }

int main() { int iLoop;

int a[20] = {7,6,5,3,2,1};

for(iLoop = 0; iLoop < 6; iLoop++) {

printf(\"%d \ }

printf(\"\\n\"); fun(a, 6, 0);

for(iLoop = 0; iLoop < 7; iLoop++) {

printf(\"%d \ }

printf(\"\\n\"); fun(a, 7, 4);

for(iLoop = 0; iLoop < 8; iLoop++) {

printf(\"%d \ }

printf(\"\\n\"); fun(a, 8, 8);

for(iLoop = 0; iLoop < 9; iLoop++) {

printf(\"%d \ }

printf(\"\\n\"); return 0; } 9.32

int fun(int number, int array[]) {

int iLoop = 0; int iLoop2; int binLen; int midNumber; int div; int remain;

midNumber = number; do

{

div = midNumber/2; remain = midNumber%2; midNumber = div; array[iLoop++] = remain; }while(midNumber);

binLen = iLoop;

for(iLoop2 = 0, iLoop = binLen - 1; iLoop2 < iLoop; iLoop2++, iLoop--) {

midNumber = array[iLoop2]; array[iLoop2] = array[iLoop]; array[iLoop] = midNumber; }

return binLen; } 9.33 #include #include #define N 15

void fun(int array[], int arraysize) { int x; int iLoop; int iLoop2;

for(iLoop = 0; iLoop < arraysize; iLoop++) {

iLoop2 = 0; x = rand()%20; do {

if(x == array[iLoop2] && iLoop > 0) {

x = rand()%20; iLoop2 = 0; }

iLoop2++;

}while(iLoop2 < iLoop); array[iLoop] = x; } }

int main() { int a[N]; int iLoop;

fun(a, N);

for(iLoop = 0; iLoop < N; iLoop++) {

printf(\"%d\\n\ } return 0; } 第十章 一. 选择题

10.1 C 10.2 B 10.3 C 10.4 B 10.5 C 10.6 A 10.7 C 10.8 A 10.9 C 10.10 C

二. 填空题 10.11 GFEDCB 10.12 XYZ 10.13 SO 10.14 10 10.15 Itis

10.16 strlen(str)-1 j-- 10.17 3

10.18 goodgood!

三. 编程题 10.19

char* mygets(char *str) {

int iLoop = 0; char ch;

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

str[iLoop++] = ch; }

str[iLoop] = '\\0'; return str; }

char * myputs(char *str)

{

int iLoop = 0; while(str[iLoop]) {

putchar(str[iLoop++]); }

putchar('\\n'); return str; } 10.20 #include #include

int fun(char *str) { int len; int iLoop1; int iLoop2; int result = 1;

len = strlen(str);

for(iLoop1 = 0, iLoop2 = len - 1; iLoop1 < iLoop2; iLoop1++, iLoop2--) {

if(str[iLoop1] != str[iLoop2]) {

result = 0; break; } }

return result; }

int main() {

char a[20] = \"ABCDCBA\"; char b[20] = \"ABCDEBA\";

printf(\"%d\\n\ printf(\"%d\\n\

return 0; } 10.21

char fun(char *str, int pos) { int len; int iLoop; char ch;

len = strlen(str); if(pos > len) {

return NULL; }

ch = str[pos];

for(iLoop = pos; iLoop < len - 1; iLoop++) {

str[iLoop] = str[iLoop + 1]; }

str[len-1] = '\\0'; return ch; }

第十一章 一. 选择题

11.1 D 11.2 B 11.3 A 11.4 C

二. 填空题

11.5 IJKLEFGHABCD 11.6 7 11.7 8

11.8 *(s+j) i+1 i 11.9 17

11.10 (*fun)() (*fun)(a+i*h)/h mypoly

三. 编程题 11.11 #include #include #define N 81

int main(int argc, char **argv) { char sig; int dig; int pos;

char str[N] = {'\\0'}; char outStr[N] = {'\\0'};

if(argc < 2) { sig = '-'; dig = 10; } else {

sig = argv[1][0]; dig = argv[1][1] - '0'; }

printf(\"请输入一个字符串:\"); gets(str);

if(sig == '-') {

pos = strlen(str) - dig; if(pos <= 0) { pos = 0; }

strcpy(outStr, str + pos); }

else if(sig == '+') {

strcpy(outStr, str); pos = strlen(outStr); if(pos > dig) {

pos = dig; }

outStr[pos] = '\\0'; }

printf(\"处理后的字串为:\"); printf(\"%s\\n\

return 0; } 11.12 #include #include

void movebin(char *bin) { int len; int iLoop; len = strlen(bin);

for(iLoop = len; iLoop > 0; iLoop--) {

bin[iLoop] = bin[iLoop - 1]; } return; }

void fun(int n, char *bin) { int pos;

pos = strlen(bin); if(n == 0) { return; }

if(n == 1) {

movebin(bin); bin[0] = '1'; return; }

movebin(bin); bin[0] = (n%2) + '0'; n /= 2; fun(n, bin); return; }

int main() { int a = 4;

char bin[50] = {\"\

fun(a, bin); printf(\"%s\\n\

return 0; } 11.13

#include

long fun(int n) {

if(n == 1) { return n; } else {

return fun(n-1) + n; } }

int main() { int num; int sum;

printf(\"请输入一个自然数:\"); scanf(\"%d\ sum = fun(num);

printf(\"结果是:%d\\n\

return 0; } 11.14 #include

int fun(int n) {

if(n == 0 || n == 1) { return 1; } else {

return fun(n-1) + fun(n-2); } }

int main() {

int num; int result;

printf(\"请输入一个自然数:\"); scanf(\"%d\

result = fun(num);

printf(\"斐波拉契级数为:%d\\n\

return 0; }

第十二章 一. 选择题

12.1 B 12.2 B 12.3 A 12.4 C 12.5 D 12.6 B 12.7 A 12.8 A

二. 填空题 12.9 2,5,1,2,3,-2 12.10 2468

第十三章 一. 选择题

13.1 A 13.2 C 13.3 B 13.4 C 13.5 D 13.6 D 13.7 D

二. 填空题

13.8 ar=9 ar=9 ar=11 13.9 int* s *b

三. 编程题 13.10

#define MYALPHA(C) ((C>='A' && C<='Z') || (C>='a' && C<='z')) ? 1 : 0 13.11

#define SWAP(t,x,y) {t tmp; tmp=x; x=y; y=tmp;} 13.12 #include #include

int main() { int *p; int tmp; int iLoop; int iLoop2;

p = (int *)malloc(sizeof(int)*3);

scanf(\"%d%d%d\ for(iLoop = 0; iLoop < 2; iLoop++) {

for(iLoop2 = 0; iLoop2 < 2 - iLoop; iLoop2++) {

if(*(p + iLoop2) > *(p + iLoop2 + 1)) {

tmp = *(p + iLoop2);

*(p + iLoop2) = *(p + iLoop2 + 1); *(p + iLoop2 + 1) = tmp; } } }

printf(\"%d %d %d\\n\ free(p); p = NULL; return 0; }

第十四章 一. 选择题

14.1 D 14.2 D 14.3 D 14.4 A 14.5 C 14.6 C 14.7 C 14.8 B

二. 填空题

14.9 struct link *next 14.10 p->next m>p->data

14.11 (struct list*) struct list struct list* struct list return h

三. 编程题 14.12 #include #define N 3

struct stud {

char num[5], name[10]; int s[4]; double ave; };

void readrec(struct stud array[], int size)

{ int iLoop;

for(iLoop=0; iLoop {

scanf(\"%s%s%d%d%d%d\ &array[iLoop].s[0], &array[iLoop].s[1], &array[iLoop].s[2], &array[iLoop].s[3]);

array[iLoop].ave = (array[iLoop].s[0] + array[iLoop].s[1] + array[iLoop].s[2] + array[iLoop].s[3])/4.0; } return; }

void writerec(struct stud array[], int size) { int iLoop;

for(iLoop=0; iLoop{

printf(\"%s\%s\%d\%d\%d\%d\%f\\n\

array[iLoop].num,array[iLoop].name,array[iLoop].s[0], array[iLoop].s[1],array[iLoop].s[2],array[iLoop].s[3], array[iLoop].ave); } return; }

int main() {

struct stud stu[N]; readrec(stu, N); writerec(stu, N);

return 0; } 14.13 #include #include

#define N 100

struct node { int data;

struct node* next;

};

int seekMaxValue(struct node *pNode) { int max;

struct node* pMove;

pMove = pNode; max = pMove->data; pMove = pMove->next; while(pMove) {

if(max < pMove->data) {

max = pMove->data; }

pMove = pMove->next; }

return max; }

struct node* seekMaxValueAddress(struct node *pNode) { int max;

struct node* maxAddress; struct node* pMove;

pMove = pNode; max = pMove->data; maxAddress = pMove; pMove = pMove->next; while(pMove) {

if(max < pMove->data) {

max = pMove->data; maxAddress = pMove; }

pMove = pMove->next; }

return maxAddress; }

int main()

{

struct node* head; struct node* pNode; int iLoop;

head = (struct node*)malloc(sizeof(struct node)); pNode = head; pNode->next = NULL; for(iLoop=0; iLoop {

pNode->next = (struct node*)malloc(sizeof(struct node)); pNode = pNode->next; pNode->next = NULL; pNode->data = iLoop; }

printf(\"%d\\n\ printf(\"%d\\n\

return 0; }

第十五章 一. 选择题

15.1 D 15.2 A 15.3 B 15.4 A

二. 填空题 15.5 15.6 a^a 15.7 a|0xffff 15.8 x|0xff00 15.9 a=(>>2) 15.10 ch|0x20

第十六章 一. 选择题 16.1 B 16.2 C

二. 填空题

16.3 3 !feof(f1) f2 fclose(f1) fclose(f2) 16.4 fopen(fname,\"w\") ch 16.5 \"r\" !feof(fp) fgetc(fp) 16.6 CCCCBBBBAAAA

三. 编程题 16.7 #include #define N 10 #define LEN 81

int main() {

char *str[N] = {\"AAAAAAAAA\ \"BBBBBBBBB\ \"CCCCCCCCC\ \"DDDDDDDDD\ \"EEEEEEEEE\ \"FFFFFFFFF\ \"GGGGGGGGG\ \"HHHHHHHHH\ \"IIIIIIIII\ \"JJJJJJJJJ\ char str2[N][LEN]; FILE *fp; int iLoop;

fp = fopen(\"str.txt\ if(fp == NULL) {

printf(\"创建文件失败!\\n\"); return 1; } else {

for(iLoop = 0; iLoop < N; iLoop++) {

fputs(str[iLoop], fp); fputs(\"\\n\ } }

fclose(fp);

fp = fopen(\"str.txt\ if(fp == NULL) {

printf(\"打开文件失败!\\n\"); return 1; }

else {

for(iLoop = 0; iLoop < N; iLoop++) {

fgets(str2[iLoop], LEN - 1, fp); } }

fclose(fp);

for(iLoop = 0; iLoop < N; iLoop++) {

printf(\"%s\ } return 0; } 16.8 #include #define N 10

int main() {

float num; int iLoop; FILE *fp;

fp = fopen(\"num.bin\ if(fp == NULL) {

printf(\"创建文件失败!\\n\"); return 1; }

/* 从键盘读入10个数并写文件 */ printf(\"请输入%d个数:\ for(iLoop = 0; iLoop < N; iLoop++) {

scanf(\"%f\

fwrite(&num, sizeof(num), 1, fp); }

/* 文件指针回到开始处 */ rewind(fp);

/* 从文件读出10个数并显示 */ for(iLoop = 0; iLoop < N; iLoop++) {

fread(&num, sizeof(num), 1, fp); printf(\"%f\\n\ }

/* 移文件指针到第四个数开始处 */ fseek(fp, 3L*sizeof(num), SEEK_SET); /* 读入一个新数据 */ printf(\"请输入一个新数据:\"); scanf(\"%f\

fwrite(&num, sizeof(num), 1, fp); /* 文件指针回到开始处 */ rewind(fp);

/* 从文件读出10个数并显示 */ for(iLoop = 0; iLoop < N; iLoop++) {

fread(&num, sizeof(num), 1, fp); printf(\"%f\\n\ }

/* 关闭文件 */ fclose(fp); return 0; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务