|
西南大学网络与继续教育学院课程考试试题卷1 M) y5 M( k H% M6 [
7 j3 ]5 n3 y6 Q) I8 T# X5 ?$ \ 类别:网教 专业:计算机科学与技术 2018年6月2 {8 k4 @' j+ V3 Z3 D. M7 C
课程名称【编号】:C语言【0039】 A卷
* B; {% N" r! s) U 大作业 满分:100分
: K) n$ x5 W( `* [. q( v9 h! a$ L% n8 V+ W! b5 W8 A; }- O
一、大作业题目9 m$ ^' O& d, r; s
1.简述题(共30分)
# ?5 o* ^5 y$ p8 }8 q (1)“构建程序设计的思想和方法、提升阅读程序能力和编写程序能力”是C语言程序设计的课程学习目标。请简要说明你在C语言程序设计学习过程中学习了哪些内容?通过C语言的学习,你有何感受和体会?在回答问题要求真实真情表达(10分)
, J) B0 t \5 }9 i p (2)什么是算法?算法的主要特征是什么?描述算法的主要方法有哪些?(10分)- F* k( H8 P" y; ~* z6 I
(3)依据你在学习过程中编写的体会,请你简要说明编写程序的基本步骤。在C语言中程序有哪三种基本结构?在C语言程序设计中实现这三种基本结构的主要语句有哪些?(10分)# [+ p7 F& X5 _3 e+ X
9 ]$ ]) V5 k" U/ y8 b
2..编程题(共40分)
) K" v9 M" J" T6 f& I3 X(1) 编写一程序求sum= 的值。要求保留小数点后3位。3 c6 V h0 M1 a8 }; |( s, o
(2) 编写程序求100~200之间的所有奇数之和,并统计其个数
0 R- p+ p4 S5 P0 b(3)从键盘上任意输入两个正整数m和n,求其最大公约数。0 y! l8 d1 t% m0 b9 ? `
(4)从键盘上输入一串字符串,分别统计出其中大写字母、小写字母的个数。
5 B8 I1 N8 @/ W$ P- |(5) 编写程序打印下列图案" b7 U: i. L& I" G) }
1 # O5 c4 _' O' h$ ~' o! B
123
3 l; r9 f6 {2 W! {, i }8 x3 Z 1234+ s# f; J# K' B( @- U/ C- G
123458 A' \* t. m: A9 F+ t
(6) 编写一个函数long f(int n)求Fibonacci数列第n项的值。Fibonacci数列有如下特点:第1、2两个数为1、1。从第3个数开始,该数是其前面两个数之和。并编写一个主函数产生20之内的所有Fibonacci数输出。
0 o+ Y! Y9 O- @$ p* k) v" y# G5 G/ l7 s/ f
3. 依据下列提供的程序回答问题(共30分)1 E, A0 M% M4 o5 L' o' l4 E
#include <stdio.h>, @- X, A6 R9 K/ a7 \* V
#include <math.h>
' q, f& _8 _6 [* ^9 k' Kint fun(int x)
6 k, q+ W. |1 P) W5 z9 P7 a2 u( Z{int s=0;6 a# x3 _9 t& d7 R' N, m
while(x!=0)
0 s m+ l% \8 d% G G {s=s+x%10 ;4 t+ ~& `+ {) I
x=x/10;8 u8 W6 a5 @/ q1 K& Q9 b& G* }0 Q! ~" N
}9 Z6 S, Z# Z7 [3 C o, A
return s;# c- e5 P% a O$ l/ W
}
0 Y' ]3 y- v6 }void main()
4 }% m: _% K% P0 _9 N7 B{int a[11],b[11];
4 u+ ^2 g0 T" |int i,j,p,temp;0 ] e9 j' r4 i) q! A- V) B) l
$ n8 T; w) E( z2 t5 ?for(i=0;i<10;i++)//从键盘输入10个正的整数
5 q+ C* X @( e6 Q( h2 J& p{printf("a[%d]=",i);2 V0 _4 \2 |4 f+ S' |) I5 w
scanf("%d",&a[i]);
9 m% O6 p+ ~( N}' s6 F+ W( A2 \3 W: `9 M
for(i=0;i<10;i++)
- L# T! M& u, G$ H$ x! x: yb[i]=fun(a[i]);
2 i' n3 C( q2 g' mfor(i=0;i<9;i++) //对40个升序排列3 m- I0 T7 @6 P6 d, H; S$ G
{p=i;' P( N) A; s/ }7 o4 j" q2 _
for(j=i+1;j<10;j++)- Z( o5 @7 @3 [
if(b[p]>b[j]) p=j;0 c* Z! `8 D2 i2 [' E) A. H) |( v- q
if(p!=i) - X2 f" ^0 k) L6 s9 z9 J2 h2 A
{temp=b[p]; b[p]=b[i]; b[i]=temp;}
$ t1 o: g0 W& l7 V }' a9 X4 Z- B c* l" U
printf("排好序的数为:\n");8 Y* r3 r( V W9 @$ I
for(i=0;i <10;i++) printf("%5d",b[i]);( H* d2 n! M& T) e
}
7 ]: Y! ~& j- Y& Y; \0 Z(1)上述提供程序中,函数fun的功能是什么?
0 m$ ?, C) e. u- x* i2 F(2)请依据提供的函数fun的程序代码,画出该算法的传统流程图或N-S图或自然语言描述。
5 \* t5 I& g1 ^1 ?(3)在VC6.0环境下,运行上述程序时,若输入的数据为23,321,456,78,98,478,834,65,79,819,则输出结果是什么?
$ T1 _% r6 {! x0 _0 j% N3 J二、大作业要求3 o2 X7 K1 l% c# ]( A; d
大作业共需要完成3个大题:
" _% i$ |! ^; L: J5 ~6 d3 h9 o 第1题,满分30分;4 L* u; l# G. V
第2题(1)-(5)任选两题完成,各15分,(6)题必做,10分,满分40分;
. o% h% Y# n: W& e: u 第3题(1)-(3)必做,满分30分。
0 i9 q* W* \6 g: }4 y: N
- s4 |4 S5 S) q- G- 1 -
. O0 O9 E7 `8 g7 j4 p) | c1 k8 M. D! F
|
|