浙江大学C语言总复习题--综合(8)

2018-12-15 17:34

else{ p2->next = p1 ; p2 = p1 ; } k++; }

p2->next = head ; p1 = head->next ; p1 = p1->next ; for ( j=1 ; j <= k ; j++){

printf(\ p1 = p1->next ; } }

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

1.输入10个点的坐标(设坐标为整数值), 输出距原点最远的点(设唯一)的坐标及该点距原点的距离. #include void main() { struct{

int x, y; float length; } point[10]; int k, sub=0;

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

scanf(\ point[k].length = (1) }

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

if( (2) ) (3)

printf(\}

2.将输入的 n 个字符串连接成1个字符串 , 然后输出该字符串. #include #include void main()

{ char str[10][20], string[200]; int k, n;

scanf(\

for (k=0; k

for (k=1; k

3.函数 xtoi 的功能是将放在字符串中的十六进制数(可以出现‘0‘~‘9‘、‘a‘~‘f)转换成十进制整数。例如:调用 xtoi(\将返回31。

xtoi( (6) ) { int k, d=0;

for(k=0; s[k] == ‘ ‘ || s[k] == ‘\\t‘; k++);

while(s[k] >= ‘0‘ && s[k] <= ‘9‘ || s[k] >= ‘a‘ && s[k] <= ‘f‘ ){

35

if (s[k] >= '0' && s[k] <= '9') (7)

if (s[k] >= 'a' && s[k] <= 'f') (8)

k++; }

return d; }

4.函数month_day(year, yearday, &month, &day) 的功能是将给定的某年第几天转换为相应的月和日。例如:调用month_day(1988, 60, &m, &d) 后,m 的值是2, d 的值是29(即1988年的第60天是1988年2月29日)。判别闰年的条件:能被4整除但不能被100整除或能被400整除。 void month_day(int year, int yearday, int *pmonth, int *pday) { static int day_tab[2][13]={

{0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}}; int k, leap;

leap = year % 4==0 && year % 100 != 0 || year % 400 == 0; for(k=1; yearday > day_tab[leap][k]; k++) (9) *pmonth = (10) *pday = yearday; }

五、程序设计题 (共16分) 1.[程序说明] (5分)

请编写函数 sum_fact(number),返回number 的因子之和。(能整除number的数就是它的因子,number定义为int)

例如sum_fact(6) = 12 (因为1, 2, 3, 6是6的因子) 2.[程序说明] (11分)

文本文件 input.txt 中存放了一批整数,将其中每个数的因子之和顺序写入文件 output.txt。 ( 必须调用第1小题中定义的函数 sum_fact(number) 计算 number 的因子之和 )

例:若文件 input.txt 中存放了1, 2, 6 ,则每个数的因子之和分别是 1 3 12 ,它们被写入文件output.txt。

综合练习答案 一、判断题 题号 答案 题号 题号 题号 题号 题号 36

1 √ 11 21 31 41 51 2 √ 12 × 22 × 32 × 42 × 52 × 3 × 13 × 23 √ 33 × 43 √ 53 √ 4 √ 14 √ 24 √ 34 √ 44 √ 54 √ 5 × 15 √ 25 √ 35 √ 45 √ 55 √ 6 × 16 × 26 × 36 × 46 × 56 × 7 × 17 × 27 √ 37 √ 47 √ 57 √ 8 √ 18 √ 28 × 38 × 48 × 58 × 9 √ 19 √ 29 √ 39 × 49 × 59 × 10 × 20 × 30 × 40 √ 50 √ 60 √ 答案 √ 答案 × 答案 √ 答案 × 答案 × 二、选择题 题号 1 2 3 4 5 6 7 8 9 10 答案 A B A A C D B A B A 题号 11 12 13 14 15 16 17 18 19 20 答案 B A D D D A A D D B 题号 21 22 23 24 25 26 27 28 29 30 答案 A B A D C B B B A C 题号 31 32 33 34 35 36 37 38 39 40 答案 A C B B C C B B B C 题号 41 42 43 44 45 46 47 48 49 50 答案 A C A B D A B B A B 题号 51 52 53 54 55 56 57 58 59 60 答案 B A D D B B A A C D 题号 61 62 63 64 65 66 67 68 69 70 答案 A C A C A D C A D D 题号 71 72 73 74 75 76 77 78 79 80 答案 A B C C A D B C C D 题号 81 82 83 84 85 86 87 88 89 90 答案 B C B D D C C A A C 题号 91 92 93 94 95 96 97 98 99 100 答案 A D C D A A D B A C 题号 101 102 103 104 105 106 107 108 109 110 答案 C D C A B C D B C C 题号 111 112 113 114 115 116 117 118 119 120 答案 C D A D B D D A B A 三、写输出结果 题号 1 2 3 4 5 6 7 8 9 10 答案 1 0 0 12 3 ### 0 11 5 U 题号 11 12 13 14 15 16 17 18 19 20 答案 0 1 6 10 4 *** 1 13 4 7 题号 21 22 23 24 25 26 27 28 29 30 答案 2.4 0 1 10 3 1 0 35 10 dow 题号 31 32 33 34 35 36 37 38 39 40 答案 1 -1 2 3 1 2 -1 0 5 5 题号 41 42 43 44 45 46 47 48 49 50 答案 1 -128 4 15 2 0 -1 0 2 2 题号 51 52 53 54 55 56 57 58 59 60 答案 10 255 0 43 6 10 -1 -1 6 6 四、阅读下列程序,写出输出结果 1、 3# 7、 2,1#3,2# 13、 4,1,5#2,4,5# 19、 2#3#4#5# 25、150 2、3# 8、2,3#3,5# 14、 3,2,5#3,3,4# 20、 -19# 26、 58 3、0# 9、1#2#3#4# 15、 4,3,8,9# 21、 128 27、 10 4、5# 10、 6,3#1,3# 16、 0,10#10,10# 22、 18#21#26# 28、 14 5、6# 11、11,1#12,3# 17、 -1,3,2,1# 23、 25# 29、 TA

37

6、4# 12、-4,12#2,13# 18、 3,2,1,6# 24、 I 0m 0 st4d1nt. 30、 16

五. 编程序

1. strcmp(char * s1, char * s2 ) { for(; *s1!= ‘\\0‘ ; ++s1, ++s2) if (*s1!= *s2) break; return (*s1-*s2); }

2. #include #define SIZE 5 main()

{ int a[SIZE][SIZE], m,n, sum1, sum2; for(m=0;m

for(n=0;n

for(m=0;m

sum2=sum2+ a[m][SIZE-m-1]; }

printf(\ }

3. #include \ void main()

{ int k,count,n,r[10]; scanf(\ for(k=0;k

for (k=1;k

if (r[k]

4. #include \ void main()

{ int x,k,sub,count,n,r[10]; scanf(\ for(k=0;k

scanf(\ scanf(\ sub=count=0;

for (k=0;k

if (x==r[k]) count++; for (k=0;k

sub=k; break ; }

38

printf(\ if (count>0)

printf(\ }

5. #include \ void main()

{ int x,k,minsub,n,a[10],temp; scanf(\ for(k=0;k

for (k=0;k

if (a[minsub]>a[k]) minsub=k ; temp=a[0];

a[0]=a[minsub] ; a[minsub]=temp ; for(k=0;k

printf(\ }

6. #include \ void main()

{ int x,k,maxsub,n,a[10],temp; scanf(\ for(k=0;k

scanf(\ maxsub=0;

for (k=0;k

if (a[maxsub]

a[n-1]=a[maxsub] ; a[maxsub]=temp ; for(k=0;k

printf(\}

7. #include void main() { FILE *fp;

char ch; int count=0;

if((fp=fopen(\

printf(\不能打开文件data.txt!\\n\ exit(0); }

while((ch=fgetc(fp))!=EOF) if(ch==‘$‘) count++; printf(\ fclose (fp); }

39


浙江大学C语言总复习题--综合(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:微机原理与接口技术试题库(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: