浙江大学C程试题2000A答案

更新时间:2023-08-29 19:35:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2000~2001学年《程序设计基础C》参考答案

1 1, 0.5 2 1

3

5

7

9 -3 5, 10 -17 13 4 6 8 c>= a &&c<= z || c>= A &&c<= Z 0, -1 13, d 10 n

三、程序阅读题(每题5分,共20分)

1 1, 2, 3, 2, 3, 1, 3, 1, 2, 2

3 2, 4, 6#2, 5, 9# 4 4, 8, 16, 24, 76, 89, 35, 25, 11, 9, 0, -6, 9, 6, 1,

四、程序填空题(每空 2 分,共 20 分)

(1) insert(name, mark)

(2) t!=NULL; t=t->next

(3) (struct link *)malloc(sizeof(struct link))

(4) p->next = NULL

(5) p->next = head

(6) filename = argv[2]

(7) (fp=fopen(filename, “r”)) == NULL

(8) ! feof(fp)

(9) putchar(toupper(ch))

tag== 2&& isdigit(ch) (10)

五、编程题 ( 共 10 分,混合班学生做第2题,其他学生做第1题) 1、

#include <stdio.h>

float fact(int);

main()

{

int m, n;

float val;

scanf(“%d%d”, &m, &n);

val = fact(m) / (fact(n) * fact(m-n));

printf(“Value: %f\n”, val);

}

float fact(int n) float fact(int n)

{ { int i; float f=1;

if ( n <= 0 ) return 1; for(i=1; i<=n; i++)

return(fact(n-1) * n); f=f*i;

} return f;

}

2、

#include <stdio.h>

#include <ctype.h>

#include <stdlib.h>

int strcmp(char * s1, char * s2)

{

int token =0, val1, val2, n, i;

for (i=0; s1[i]!= \0 ; i++)

if ( s1[i]!= + && s1[i] != - && !isdigit(s1[i])) { token = 1; break; } for (i=0; !token && s2[i]!= \0 ; i++)

if ( s2[i]!= + && s2[i] != - && !isdigit(s2[i])) { token = 1; break; } if ( token == 0 )

{

val1 = atoi(s1);

val2 = atoi(s2);

if ( val1 > val2 ) n = 1;

else if ( val1 < val2 ) n = -1;

else n = 0;

return n;

}

else

{

for (i=0; s1[i]!= \0 && s2[i]!= \0 ; i++)

if ( s1[i] > s2[i] ) return 1;

else if ( s1[i] < s2[i] ) return –1;

if ( strlen(s1) = = strlen(s2) ) return 0;

if ( s[i] = = \0 ) return –1;

else return 1;

}

}

本文来源:https://www.bwwdw.com/article/ij2i.html

Top