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