1、第 1 页 共 7 页2015 年春季学期C 语言程序设计试卷 A题号 一 二 三 四 总分分数一选择(每道小题 2 分,合计 30 分)1、以下选项中合法的标识符是( )。 A)1_1 B)1-1 C)_11 D)1_ _2、若函数中有定义语句:int k;,则( )。A)系统将自动给 k 赋初值 0 B)这时 k 中的值无定义C)系统将自动给 k 赋初值-1 D)这时 k 中无任何值3、以下选项中,能用作数据常量的是( ) 。A)o115 B)0118 C)1.5e1.5 D)115L4、设有定义:int x=2;,以下表达式中,值不为 6 的是( )。A)x*=x+1 B)X+,2*x
2、C)x*=(1+x) D)2*x,x+=25、程序段:int x=12; double y=3.141593;printf(“%d%8.6f“,x,y);的输出结果是( )。 A)123.141593 B)12 3.141593 C)12,3.141593 D)123.14159306、把 2 进制数 10000111101 转化为十进制数为( )。A)1083 B)1084 C)1085 D)10867、以下是 if 语句的基本形式: if(表达式) 语句其中“表达式“( )。A)必须是逻辑表达式 B)必须是关系表达式C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式8、有以下程序
3、 #include main() int x; scanf(“%d“,if(xmain() int a=1,b=2,c=3,d=0;if (a=1 else printf(“%d,%d,%dn“,a,b,c);else printf(“%d,%d,%dn“,a,b,c);程序运行后输出结果是( )。A)1,2,3 B)1,3,2C)1,3,3 D)3,2,110、以下程序段中的变量已正确定义 for(i=0;iint main (void)int i,j,x,y,m;int a33=1,3,12,14,9,1,9,0,4;m=a00;x=0; y=0;for(i=0;iint main(voi
4、d)int a=1,4,7,10,13;int y=1,i,*p; p=for(i=0;i2)return(fib(n-1)+fib(n-2);else return(2);#include int main(void)printf(“%ldn“,fib(3);return 0;A)3 B)4 C)5 D)614、写出下面程序的运行结果( )。#include int f(int a)int b=0;static c=3;a=c+,b+;return a;int main(void)int a=2,i,k;for(i=0;iname, a1.k1+a1.k2);return 0;A) name
5、:wang total=170.000000 B) name:wang total=150.000000C) name:zhang total=170.000000 D) name:zhang total=150.000000二、填空(每题 2 分,共计 20 分)1、将下列不同进制的数从大到小排列:(110110010) 2 、(208) 10 、(322) 8 、(A8) 16_ _。2、把十进制数 121 转化为 2 进制数为 。3、定义int a=20;,写出执行下列语句后a的值: a/=a+a _。4、下面程序的输出结果为 。#includeint main(void)int a=3
6、,b=4,c=5,k;k=cab printf(“%dn“,k);return 0;5、下面程序的输出结果为 。#includeint main(void)int k=5,b=2;k*=b+3;printf(“%dn“,k);return 0;6、下面程序的输出结果为 。#include int main(void)int a,b,k;k=(a=2,b=5,ab?a+:b+,a+b);printf(“%dn“,k);return 0;7、下面程序的输出结果为 。#includeint main(void)第 3 页 共 7 页int a=2,b=3;float x=3.5,y=2.5,k;k=
7、(float)(a+b)/2+(int)x%(int)y;printf(“%.2fn“,k);return 0;8、下面程序的输出结果为 。#includeint main(void)int a,b,c,d,x;a=c=0; b=x=1; d=10;if(a) d=d-5;else if(!b)if(!c) x=5;else x=25;printf(“d=%d,x=%dn“,d,x);return 0;9、下面程序的输出结果为 。#includeint main(void)int a=0;if(a=1) a+=10;printf(“a=%d“,a);return 0;10、下面程序的输出结果为
8、 。#includeint main(void)int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0: a+; break;case 1: b+; break;case 2: a+;b+; break;case 3: a+;b+;printf(“na=%d,b=%d“,a,b);return 0;三、简答(1、2 题每题 5 分,3 题 10 分,共计 20 分)1、简述程序设计的一般过程。2、简述软件开发的生命周期。3、通过你对本课程的学习,谈谈你对 C 语言的理解。第 4 页 共 7 页四、编程(1、2题每题7分,3、4题每题8分,共计
9、30分)1、编程解决货物征税问题。价格在万元以上的征5%,5000元以上1万元以下的征3%,1000元以上5000以下的征2%,1000元以下的免税,读入货物价格,计算并输出税金。2、编程实现下面的功能:输出1500中能被7除余5、被5除余3、被3除余2的数(每行输出5个数)。3、编程实现下面的功能:把从键盘输入的字符串逆序存放并输出。4、编写程序实现下面的功能:主函数接受键盘输入的年、月、日,通过子函数计算该日是该年的第几日。第 5 页 共 7 页2015 学年春季学期C 语言程序设计试卷 A 答案一、选择(每题 2 分,共计 30 分)15 CBDDA 610 CDBCD 1115 AAB
10、CD 二、填空(每题 2 分,共计 20 分)1、(110110010) 2 、 (322) 8 、(208) 10、(A8) 16 2、11110013、0 4、1 5、25 6、8 7、3.508、d=10,x=1 9、a=11 10、a=2,b=1三、简答(1、2 题每题 5 分,3 题 10 分,共计 20 分)1、简述程序设计的一般过程。(1) 分析问题。提出解决问题的可行方案。(2) 确定算法。针对提出的可行方案确定解决问题、完成任务的每一个细节步骤。(3) 编程。使用程序设计语言把上述算法严格地描述出来(即写成程序),输入到计算机里并存盘。(4) 在计算机上运行并调试这个程序。如
11、果在运行过程中发现了错误,就仔细分析出错的原因,然后更正错误。再次运行该程序,直到程序准确无误并得到正确的输出结果为止。(5) 总结。写出书面报告。2、简述软件开发的生命周期。一个软件的生存周期包括以下几个阶段:(1) 问题定义与需求分析。(2) 总体设计(或称概要设计)。(3) 详细设计。(4) 编写程序和单元测试。(5) 综合测试和确定运行。(6) 系统维护。3、通过你对本课程的学习,谈谈你对 C 语言的理解。C 语言是一种成功的系统描述语言,用 C 语言开发的 UNIX 操作系统就是一个成功的范例;同时 C 语言又是一种通用的程序设计语言,在国际上广泛流行。世界上很多著名的计算公司都成功
12、的开发了不同版本的 C 语言,很多优秀的应用程序也都是用 C 语言开发的,它是一种很有发展前途的高级程序设计语言。 (1) C 是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 (2) C 是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 (3)C 语言功能齐全。具
13、有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外 C 语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 (4)C 语言适用范围大。适合于多种操作系统,如 Windows、DOS、UNIX 等等;也适用于多种机型。C 语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用 C 语言编写的。C 语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。(5)C 语言文件由数据序列组成,可以构成二进制文件或文本文件。四、编程(
14、1、2 题每题 7 分,3、4 题每题 8 分,共计 30 分)1、编程解决货物征税问题。价格在万元以上的征5 %,5000元以上1万元以下的征3%,1000元以上5000以下的征2%,1000元以下的免税,读入货物价格,计算并输出税金。#include “stdio.h“int main() int m;float s,t;scanf(“%d“,if(m 1000 printf(“t = %fn“, t);2、编程实现下面的功能:输出1500中能被7除余5、被5除余3、被3除余2的数(每行输出5个数)。#include “stdio.h“int main() int i = 1;int j
15、= 0;while (i = 0; i-) pcrj = pResulti;j+; pcrj = 0;printf(“%sn“, pcr);return 0;4、编写程序实现下面的功能:主函数接受键盘输入的年、月、日,通过子函数计算该日是该年的第几日。#include “stdio.h“int counter(int year, int month, int date) int i;int aYear12 = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;int LeapYear12 = 31, 29, 31, 30, 31, 30, 31, 3
16、1, 30, 31, 30, 31;int result = 0;if(year % 100) != 0 i (month - 1); i+)result += LeapYeari; 第 7 页 共 7 页result += date;else for(i = 0; i (month - 1); i+)result += aYeari; result += date;return result;int main() int year, month, date;int result;printf(“please insert the date(yyyy mm dd):“);scanf(“%d%d%d“, result = counter(year, month, date);printf(“this is the %d(th) day in this year.n“,result);return 0;