C语言程序设计试卷(含答案)(6页).doc
-C语言程序设计试卷(含答案)-第 6 页班级: 学号: 姓名: 密封线2015年春季学期C语言程序设计试卷A题号一二三四总分分数一选择(每道小题2分,合计30分)1、以下选项中合法的标识符是( )。 A)1_1B)1-1C)_11D)1_ _2、若函数中有定义语句:int k;,则( )。A)系统将自动给k赋初值0B)这时k中的值无定义C)系统将自动给k赋初值-1D)这时k中无任何值3、以下选项中,能用作数据常量的是( ) 。A)o115B)0118C)1.5e1.5D)115L4、设有定义:int x=2;,以下表达式中,值不为6的是( )。A)x*=x+1B)X+,2*xC)x*=(1+x)D)2*x,x+=25、程序段:int x=12; double y=3.141593;printf("%d%8.6f",x,y);的输出结果是( )。 A)123.141593B)12 3.141593C)12,3.141593D)123.14159306、把2进制数10000111101转化为十进制数为( )。A)1083B)1084 C)1085 D)10867、以下是if语句的基本形式: if(表达式) 语句其中"表达式"( )。A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式8、有以下程序 #include <stdio.h>main() int x; scanf("%d",&x);if(x<=3); else if(x!=10) printf("%dn",x);程序运行时,输入的值在哪个范围才会有输出结果( )。A)不等于10的整数B)大于3且不等于10的整数C)大于3或等于10的整数D)小于3的整数9、有以下程序 #include <stdio.h>main() int a=1,b=2,c=3,d=0; if (a=1 && b+=2) if (b!=2|c-!=3) printf("%d,%d,%dn",a,b,c);else printf("%d,%d,%dn",a,b,c);else printf("%d,%d,%dn",a,b,c);程序运行后输出结果是( )。A)1,2,3B)1,3,2C)1,3,3D)3,2,110、以下程序段中的变量已正确定义 for(i=0;i<4;i+,i+)for(k=1;k<3;k+); printf("*");程序段的输出结果是( )。A)*B)* C)* D)* 11、写出下面程序的输出结果( )。#include <stdio.h>int 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;i<3;i+)for(j=0;j<3;j+)if(m<aij)m=aij;x=i; y=j;printf("%5d",axy);return 0;A)14 B)13 C)12 D)1112、写出下面程序的输出结果( )。#include <stdio.h>int main(void)int a=1,4,7,10,13;int y=1,i,*p; p=&a1;for(i=0;i<3;i+) y+=*(p+i);printf("y=%dn",y);return 0;A)22 B)24 C)26 D)2813、写出下面程序的运行结果( )。long fib(int n)if(n>2)return(fib(n-1)+fib(n-2);else return(2);#include <stdio.h>int main(void)printf("%ldn",fib(3);return 0;A)3 B)4 C)5 D)614、写出下面程序的运行结果( )。#include <stdio.h>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("%dn",k);return 0;A)2 B)3 C)4 D)515、写出下面程序的输出结果( )。#include "stdio.h"int main(void)struct student char name10;float k1;float k2;a2="zhang",100,70,"wang",70,80,*p=a;printf("nname:%s total=%f",p->name, a1.k1+a1.k2);return 0;A) name: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、下面程序的输出结果为 。#include<stdio.h>int main(void)int a=3,b=4,c=5,k;k=c>a>b && c|c/b;printf("%dn",k);return 0;5、下面程序的输出结果为 。#include<stdio.h>int main(void)int k=5,b=2;k*=b+3;printf("%dn",k);return 0;6、下面程序的输出结果为 。#include <stdio.h>int main(void)int a,b,k;k=(a=2,b=5,a>b?a+:b+,a+b);printf("%dn",k);return 0;7、下面程序的输出结果为 。#include<stdio.h>int main(void)int a=2,b=3;float x=3.5,y=2.5,k;k=(float)(a+b)/2+(int)x%(int)y;printf("%.2fn",k);return 0;8、下面程序的输出结果为 。#include<stdio.h>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("d=%d,x=%dn",d,x);return 0;9、下面程序的输出结果为 。#include<stdio.h>int main(void)int a=0;if(a=1) a+=10;printf("a=%d",a);return 0;10、下面程序的输出结果为 。#include<stdio.h>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("na=%d,b=%d",a,b);return 0;三、简答(1、2题每题5分,3题10分,共计20分)1、简述程序设计的一般过程。2、简述软件开发的生命周期。3、通过你对本课程的学习,谈谈你对C语言的理解。四、编程(1、2题每题7分,3、4题每题8分,共计30分)1、编程解决货物征税问题。价格在万元以上的征5%,5000元以上1万元以下的征3%,1000元以上5000以下的征2%,1000元以下的免税,读入货物价格,计算并输出税金。2、编程实现下面的功能:输出1500中能被7除余5、被5除余3、被3除余2的数(每行输出5个数)。3、编程实现下面的功能:把从键盘输入的字符串逆序存放并输出。4、编写程序实现下面的功能:主函数接受键盘输入的年、月、日,通过子函数计算该日是该年的第几日。2015学年春季学期C语言程序设计试卷A答案一、选择(每题2分,共计30分)15 CBDDA 610 CDBCD 1115 AABCD 二、填空(每题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) 在计算机上运行并调试这个程序。如果在运行过程中发现了错误,就仔细分析出错的原因,然后更正错误。再次运行该程序,直到程序准确无误并得到正确的输出结果为止。(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、编程解决货物征税问题。价格在万元以上的征5 %,5000元以上1万元以下的征3%,1000元以上5000以下的征2%,1000元以下的免税,读入货物价格,计算并输出税金。#include "stdio.h"int main()int m;float s,t;scanf("%d",&m);if(m <= 1000)t = 0;else if(m >1000 && m <= 5000)t = (m - 1000) * .02;else if(m > 5000 && m <= 10000)t = 80 + (m - 5000) * .03;else if (m > 10000)t = 80 + 150 + (m - 10000) * .05;printf("t = %fn", t);2、编程实现下面的功能:输出1500中能被7除余5、被5除余3、被3除余2的数(每行输出5个数)。#include "stdio.h"int main()int i = 1;int j = 0;while (i <= 500)if(i % 7 = 5 && i % 5 = 3 && i % 3 =2)printf("%d ", i);j+;if(j % 5 = 0 && j != 0)printf("n");j = 0; i+;return 0;3、编程实现下面的功能:把从键盘输入的字符串逆序存放并输出。#include "stdio.h"int main()int i, j;char ch;char* pResult = NULL;char* pTemp = NULL;char* pcr = NULL;pResult = (char*)malloc(sizeof(char);pResult0 = '0'while(ch = getchar() != 'n')pTemp = (char*)malloc(2 * sizeof(char);pTemp0 = ch;pTemp1 = '0'pResult = strcat(pResult, pTemp);free(pTemp); pcr = (char*)malloc(strlen(pResult) + 1) * sizeof(char);for(i = strlen(pResult) - 1, j = 0; 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, 31, 30, 31, 30, 31;int result = 0;if(year % 100) != 0 && (year % 4) =0) | (year % 400) = 0)for(i = 0; i < (month - 1); i+)result += LeapYeari; result += date;elsefor(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", &year, &month, &date);result = counter(year, month, date);printf("this is the %d(th) day in this year.n",result);return 0;