|
西南大学网络与继续教育学院课程考试试题卷
2 n- e- F+ j7 E3 h3 I7 i) x3 O
* T4 Z; a5 z4 ^$ r4 h 类别:网教 专业:计算机科学与技术 2018年6月/ O$ [8 G, F0 u0 Z% X
课程名称【编号】:C语言【0039】 A卷
4 e2 B. q( f" J: L+ h' g 大作业 满分:100分; }) \. |1 f' O! o! C- n. B
- w$ j! ^3 U; a+ s一、大作业题目 ?: D0 E. k8 j+ i0 {. N5 K0 F
1.简述题(共30分)3 e) M1 ?( r9 k, ?$ S& B
(1)“构建程序设计的思想和方法、提升阅读程序能力和编写程序能力”是C语言程序设计的课程学习目标。请简要说明你在C语言程序设计学习过程中学习了哪些内容?通过C语言的学习,你有何感受和体会?在回答问题要求真实真情表达(10分)% m- E" |1 u9 @! E
(2)什么是算法?算法的主要特征是什么?描述算法的主要方法有哪些?(10分)/ [" I* g4 X9 j+ }. i
(3)依据你在学习过程中编写的体会,请你简要说明编写程序的基本步骤。在C语言中程序有哪三种基本结构?在C语言程序设计中实现这三种基本结构的主要语句有哪些?(10分)
* o) t; F9 {' d- c; E) e2 t5 z4 t5 f0 S 0 T" |+ t0 [' j7 w. ]# Q
2..编程题(共40分)
$ i6 p" G/ h) W( d& A% e(1) 编写一程序求sum= 的值。要求保留小数点后3位。' ^& ?/ D% ]( a
(2) 编写程序求100~200之间的所有奇数之和,并统计其个数
/ h' Q% ?. h# W& s1 g. o' V(3)从键盘上任意输入两个正整数m和n,求其最大公约数。
- A+ w. c3 d0 ^2 a& z; p5 n(4)从键盘上输入一串字符串,分别统计出其中大写字母、小写字母的个数。5 v) @' x3 P/ G( f x
(5) 编写程序打印下列图案) @6 d" f7 o( @/ M2 c# j" W
1 6 c4 H) u5 W, i% }9 N0 c/ p7 }( N
123
6 u; n; R. V0 z; T 1234
* w5 D; e" q3 N1 T% S) T5 T4 M! { 12345; y" ~: T" o, J* z2 D
(6) 编写一个函数long f(int n)求Fibonacci数列第n项的值。Fibonacci数列有如下特点:第1、2两个数为1、1。从第3个数开始,该数是其前面两个数之和。并编写一个主函数产生20之内的所有Fibonacci数输出。; L z7 ?( ?# N4 s% l5 q5 [! w) h
_0 |8 T- a: G$ i. L3. 依据下列提供的程序回答问题(共30分)
% c( R, a* E! E5 }+ l- [#include <stdio.h>
( l* V2 t4 h' b- e#include <math.h>
6 G& w0 r( T$ u$ Q) P9 fint fun(int x)
6 f8 ~ D* t6 F{int s=0;
# @4 m5 v5 R! d9 l, G7 `' D while(x!=0)' J$ V/ ~7 K6 O8 ^
{s=s+x%10 ;$ h7 @+ q5 Q, R& ]7 b5 Q2 P
x=x/10;
2 G% x8 [, K, L* Y }
, Z* K! ~( ]7 f6 E0 t( n7 Sreturn s;% s- l/ G, |! U8 |6 W$ X3 S
}( }: Z3 T9 A/ l( {+ w8 _& s
void main()( w1 L( U3 |& `% D. Q7 f% Z
{int a[11],b[11];$ P2 V# o. f- A/ u ?! a
int i,j,p,temp;
5 A+ E0 T3 x! U* j, M
; w1 W1 [" @# B+ f1 ~0 zfor(i=0;i<10;i++)//从键盘输入10个正的整数+ @6 [1 F) T/ p2 l2 j. m
{printf("a[%d]=",i);! `5 |! r b" p' u4 | `0 A
scanf("%d",&a[i]);& _( R9 g: h; j: p
}% A! v% p/ K9 P" q* b
for(i=0;i<10;i++)
* I* |; |8 S" i- Lb[i]=fun(a[i]);
! d0 a: Z2 m- c6 B! ~for(i=0;i<9;i++) //对40个升序排列; e% `( {6 V3 A
{p=i;
8 `9 o- V1 m- t( ]% b% v for(j=i+1;j<10;j++)5 z; a$ @8 W7 x' g, g; I" a4 v
if(b[p]>b[j]) p=j;( v- _+ w+ C% K* L
if(p!=i)
G7 B9 P5 X7 n4 k( X) @' k! B X! j" g {temp=b[p]; b[p]=b[i]; b[i]=temp;}( N) I/ i* B8 H, P- i
}
& g" J1 E8 m# g. o7 {# @5 ~printf("排好序的数为:\n");
1 Q5 U5 Y; r9 c o7 wfor(i=0;i <10;i++) printf("%5d",b[i]);
% N8 X! t' J9 _, J}* ^- q: `# T' ~8 r7 P, b
(1)上述提供程序中,函数fun的功能是什么?
! x$ a7 }: B% G' l) s# \4 D/ Q$ I(2)请依据提供的函数fun的程序代码,画出该算法的传统流程图或N-S图或自然语言描述。
3 {) C& N0 K" ]5 S: F3 w2 T3 I(3)在VC6.0环境下,运行上述程序时,若输入的数据为23,321,456,78,98,478,834,65,79,819,则输出结果是什么?& O. r0 X) ^' G7 M. q. ^# F4 y2 m6 i
二、大作业要求
3 t3 x6 c( z7 |6 d 大作业共需要完成3个大题:
" Y: b4 `* z1 M. f7 @7 y# _ n6 W 第1题,满分30分;# F) o4 ~6 c+ O
第2题(1)-(5)任选两题完成,各15分,(6)题必做,10分,满分40分;# C3 o R4 }8 h v3 F0 @0 E' {& X
第3题(1)-(3)必做,满分30分。
- D4 t% W6 f$ |$ O+ n3 C4 d1 t( Z3 a- E9 v4 I7 k6 ^" s4 K! w' |0 h: Q
- 1 -
/ I4 e1 u$ J. ~: x* J; m
' O) U, i) y7 Y |
|