装订线
三、阅读程序填空题(在答卷上答题,本大题共9小题,每空1分,共20分)
1、下面程序实现分别输出1至100(不包括100)范围内所有偶数的和与所有奇数的和,请填空完善。 #include
01) ;
for(i=1;i<100; 02) ) if( 03) ) s2+=i; esle s1+=i;
printf(\偶数和=%d,奇数和=%d\}
2、某物品原有价值为p,使用后其价值降低,价值的折扣率根据时间t(月数)确定如下:
下面程序根据输入的时间和原有的价值计算物品的现有价值,请填空完善程序。 #include
scanf(\ switch( 04) ){ case 0: d=0;break; case 1: d=2;break; case 2:
case 3:d=5;break; case 4: case 5:
case 6: d=8;break; 05) : d=10; }
printf(\ 06) ); }
3、该程序利用下面公式计算∏的近似值,取前n项之和,请填空完善程序。
#include
int i,n;
float t=1.0,pi=0;
scanf(\ 07) ); for(i=1;i<=n;i++){
pi+= 08) ; t= -t;
试题共10页-第11页
装订线
}
printf(\}
4、下面程序完成输入一个整数并判断是否为素数,请填空完善程序。 #include
scanf(\ k=sqrt(n);
for(i=2;i<=k;i++)
if( 09) ) break;
if( 10) ) printf(\ }
5、下面程序的功能是输出若干个字符串中长度最短的字符串,请填空完善程序。 #include
{ char str1[80],min[80]; int k,len;
printf(\ gets(str1);
strcpy(min,str1); len=strlen(min); gets(str1);
while(str1[0]!='\\0'){ k=strlen(str1); if( 11) ){ len=k;
12) ; }
gets(str1); }
printf(\}
6、下列程序的功能输入一组数的5个元素,并依次后移一个位置,再将第5个数据放在第一个存储单元(下标为0),请填空完善程序。 #include
printf(\原数据序列为:\
for(i=0;i<5;i++) scanf(\ 13) ; for(i=4;i>0;i--) 14) ;
试题共10页-第12页
装订线
a[0]=t;
printf(\操作后数据序列为:\\n\ for(i=0;i<5;i++) printf(\}
7、下列函数str_cat()的功能是连接两个字符串,请填空完善程序。 void str_cat(char str1[],char str2[2],char str[]) { int i,j;
for(i=0;str1[i]!='\\0';i++) str[i]=str1[i]; for(j=0;str2[j]!='\\0';j++) 15) ; 16) ; }
8、下面程序的功能是用递归方法计算n!,请填空完善程序。 #include
if(n<=0) exit(0); //exit()返回操作系统 else if( n==1) k=1.0; else 17) ; return k; }
void main() {
int n;
scanf(\
printf(\ 18) ); }
9、下面程序的功能是通过键盘输入10个整数,并把其中最大的数和最小的数显示出来。 #include
void search(int a[],int n) { int i;
max=min=a[0]; for(i=1;i if(a[i]>max) max=a[i]; if(a[i] void main() { int array[10],i; for(i=0;i<10;i++) scanf(\ search( 20) ) printf(\ } 试题共10页-第13页 装订线 得分 四、编写程序题(在答卷上答题,本大题共3小题,第1,2小题各5分;第3小题10分,共20分) 1、编程计算分数序列 前10项之和,并在屏幕上显示结果。 2、编程实现输入一个年份范围,在屏幕上显示年份范围中的闰年,每行最多显示5个。 3、根据如下main函数要求,编写一个使用选择排序算法完成从小到大排序的函数px(),要求画出排序函数流程图或NS图。 #include int a[10]={1,9,2,6,5,10,3,7,20,4},i; void px(int x[],int n) ; printf(\排序前:\ for(i=0;i<10;i++) printf(\ printf(\ px(a,10); printf(\排序后:\ for(i=0;i<10;i++) printf(\ printf(\} 华南农业大学期末考试试卷(A卷) 2012学年第1学期 考试科目: 程序设计(C语言) 考试类型:(闭卷)考试 考试时间: 120 分钟 学号 姓名 年级专业 题号 一 二 三 四 总分 得分 评阅人 机读 机读 考生注意: 1、答案必须分别写在“机读卡”和“答卷”上,写在试题上不得分。 2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。 3、在机读卡的学生代号区只填写学号后10位。 试题共10页-第14页 装订4、考试结束,只需交“机读卡”和“答卷”,试题不用交。 得分 一、判断题(在机读卡上答题,本大题共20小题,每小题1分,共20分) 用2B型铅笔涂答题卡!!!按题号顺序,正确的判断涂黑“A”、错误的判断 涂黑“B” 1、C语言称为中级语言是因为它允许直接访问物理地址,能进行位运算,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 2、一个C程序总是从main函数开始执行,并且从main函数中结束程序。 3、一个算法具有有穷性、确定性、可行性、有零个或多个输入/输出。 4、在C程序中使用符号常量,能够增强程序的可读性,方便程序的修改。 5、C程序中使用变量不一定要遵循“先定义,再赋值,后使用”。 6、C语言可以通过调用标准库函数实现输入输出功能,也可以使用它本身提供的专门的输入输出语句。 7、能正确表达逻辑关系0?x?10的表达式是x??0||x??10。 8、在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。 9、在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。 10、带有语句标号的语句的正确书写方法是“语句标号:语句”。 11、for循环语句只能用于循环次数已经确定的情况。 12、goto语句和break语句都能实现使程序执行的流程从循环体内跳至循环体外。 13、while循环语句至少无条件执行一次循环体。 14、数组必须先定义,然后再使用。 15、定义数组时,数组下标可以是整型常量表达式。 16、已有定义int x[5];,则该定义语句说明x是具有5个元素的一维数组,且数组元素是x[1],x[2],x[3],x[4],x[5]。 17、一个函数中有且只能有一个return语句。 18、在一个函数中定义的静态局部变量不能被另一个函数引用。 19、宏名没有作用域,在整个文件范围内都有效。 20、在文件包含预处理语句中,被包含的文件应该是目标文件而不是源文件。 得分 二、单项选择题(在机读卡上答题,本大题20小题,每小题2分,共40分) 用2B型铅笔涂答题卡!!!按题号顺序,将答题卡上与选项对应的字母涂黑 21、在一个C程序中( )。 A)main函数出现在所有函数之前。C程序不一定都有main函数 B)main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数 C)main函数必须出现在所有函数之后。一个C程序只能有一个main函数 D)main函数出现在固定位置。一个C程序可以有多个main函数 22、C语言中,下列叙述正确的是()。 A)没有逻辑类型,但有构造类型 B)既有逻辑类型也有构造类型 C)有逻辑类型,但没有构造类型 D)没有逻辑类型也没有构造类型 23、下列转义字符中,错误的是() A)'\\\ B)'\\031' C)'\\b' D)'\\0xa5' 24、已知梯形的上底为a,下底为b,高为h,用C语言写的正确的面积公式是()。 A)1/2*(a+b)*h B)1.0/2*(a+b)*h C)1.0/2.0(a+b)h D)1.0\\2*a+b*h 25、已有定义char s1,s2;,下面正确的语句是() 试题共10页-第15页 线