装订线
华南农业大学期末考试试卷(A卷)
2010学年第1学期 考试科目: 程序设计(C语言) 考试类型:(闭卷)考试 考试时间: 120 分钟
学号 姓名 年级专业 题号 一 二 三 四 总分 得分 评阅人 机读 机读
考生注意:
1、答案必须分别写在“机读卡”和“答卷”上,写在试卷上不得分。
2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。 3、在机读卡的学生代号区只填写学号后10位。 4、考试结束,只需交“机读卡”和“答卷”,本试卷不用交。 得分
一、判断题(在机读卡上答题,每小题1分,共20分) 用2B型铅笔涂答题卡!!!按题号顺序,正确的判断涂黑“A”、错误的判断涂黑“B” 1、能正确表达逻辑关系“0
6、for循环语句先判断循环条件是否成立,然后再决定是否执行循环体。
7、goto语句和break语句都能实现使程序执行的流程从循环体内跳至循环体外。
8、C语言中,对数组定义大小时,若想在程序运行时改变大小,可用下面的语句段定义: int m;
scanf(\ int x[m];
9、定义数组时,数组下标可以是整型常量或正整型常量表达式。 10、一个函数中有且只能有一个return语句。
11、在一个函数中定义的静态局部变量不能被另一个函数引用。
12、用数组名作为函数调用时的实参,实际上传递给形参的是数组全部元素的值。
13、在C语言中,主函数可以调用任意一个函数,但是不能使用其它函数中定义的变量 14、C语言规定,程序中各函数之间既允许嵌套定义,也允许嵌套调用。
15、宏定义不是C语句,不必在行末加分号,若加了分号,则编译时会出现语法错误。 16、进行宏定义时,可以引用已经定义的宏名进行层层置换。 17、C语言的所有预编译语句均以#开头。
18、通过函数调用只能得到一个返回值,利用宏替换也只能得到一个结果。 19、被包含文件修改后,凡包含此文件的所有文件都要重新编译。
20、文件包含是不能嵌套的,即在一个被包含文件中不能包含另一个被包含文件。 得分
二、单项选择题(在机读卡上答题,每小题2分,共40分) 用2B型铅笔涂答题卡!!!按题号顺序,将答题卡上与选项对应的字母涂黑 21、在一个C程序中( )。
试题共10页-第1页
装订线
A)main函数出现在所有函数之前。C程序不一定都有main函数
B)main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数 C)main函数必须出现在所有函数之后。一个C程序只能有一个main函数 D)main函数出现在固定位置。一个C程序可以有多个main函数 22、C语言中,下列叙述正确的是()。
A)既有逻辑类型也有构造类型 B)没有逻辑类型,但有构造类型 C)有逻辑类型,但没有构造类型 D)没有逻辑类型也没有构造类型 23、下列转义字符中,错误的是()
A)'\\0xa5' B)'\\031' C)'\\b' D)'\\\
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;,下面正确的语句是()
A)scanf(\ B)scanf(\C)scanf(\ D)scanf(\26、运行下面的程序,正确的输出结果是() main()
{ float x=68.7563,y=-789.125; printf(\}
A)68.756303, -789.12 B)68.756303, -789.13 C)68.7563, -789.13 D)68.7563,-789.12 27、下列表达式中,值为0的表达式是()
A)3!=0 B)3!=3>4 C)3>4==0 D)6>5>4
28、设int a=3;,则表达式a<1&&--a>1的运算结果和a的值分别是() A)0和2 B)0和3 C)1和2 D)1和3 29、下列程序的运行结果是() main() { int i=0;
while(i-->0); printf(\}
A)10 B)0 C)10987654321 D)-1 30、下面程序的运行结果是() main() { int x=3;
do{ printf(\}
A)死循环 B)1 -2 C)10 D)1 31、下面程序的运行结果是() main()
{ int i=0,sum=0;
while(i++<6) sum+=i; printf(\}
A)15 B)16 C)21 D)不确定
试题共10页-第2页
32、定义如下变量和数组 int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
装订线 for(i=0;i<3;i++) printf(\则语句的输出结果是()。 A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9 33、不能把字符串Hello!赋给数组a的语句是()
A)char a[10]={'H','e','l','l','o','!'}; B)char a[10]; a=\C)char a[10]; strcpy(a,\ D)char a[10]=\34、若有int s[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是() A)1 B)2 C)3 D)4 35、C语言程序的三种基本结构是()
A)嵌套结构、递归结构、循环结构 B)递归结构、循环机构、转移结构 C)顺序结构、选择结构、循环结构 D)循环结构、转移结构、顺序结构 36、若函数的调用形式如下: f((x1,x2,x3),(y1,y2))
则函数形参的个数是()。
A)2 B)3 C)4 D)5 37、执行下列程序后的输出结果是()。 int a=3,b=4;
void fun(int x1,int x2) {
printf(\}
main()
{ int a=5,b=6; fun(a,b); }
A)3,4 B)11,1 C)11,4 D)11,6 38、以下函数值的类型是() fun(float x) { float y; y=3*x-4; return(y); }
A)不确定 B)float C)int D)void 39、C编译系统对文件包含命令#include\的处理通常是()。 A)编译处理之前 B)编译处理过程之中 C)程序连接时 D)程序执行的开始
40、设有以下宏定义,则执行语句x=2*(N+Y(5+1));后,x(设x为整型)的值是()#define N 3
#define Y(n) ((N+1)*n)
A)42 B)48 C)54 D)出错 得分
试题共10页-第3页
装订线
三、阅读程序填空题(在答卷上答题,每空1分,共20分)
1、下列程序的主要功能是输入实数x,按照如下公式计算并输出y的值,请填空完善程序。
main()
{ float x,y; printf(\ scanf(\
if( 01) ) y=x;
else if( 02) ) y=6*x-1; else y= 03) ; printf(\}
2、某物品原有价值为p,使用后其价值降低,价值的折扣率根据时间t(月数)确定如下:
下面程序根据输入的时间和原有的价值计算物品的现有价值,请填空完善程序。 main() { int t,d; float p;
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项),请填空完善程序。
main()
{ double sum=1.0,x=1.0,y=1.0; int n;
scanf(\ 07) ); while(n){ y=y*x;
sum+= 08) ; x++; n--; }
printf(\}
4、下面程序完成输入一个整数并判断是否为素数,请填空完善程序。
试题共10页-第4页
装订线
#include\main()
{ int n,k,i=1;
scanf(\ k=sqrt(n);
for(i=2;i<=k;i++)
if( 09) ) break;
if( 10) ) printf(\ }
5、下面程序的功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不同字符的ASCII码之差,请填空完善程序。 #include
{ char str1[81],str2[81]; int i;
gets(str1); gets(str2); i=0;
while(str1[i]==str2[i]&& 11) ) i++; printf(\ 12) ); }
6、下面程序的功能是求数组s中的最大元素及它的下标,请填空完善程序。 main()
{ int s[4][4],max,i,j,row,col; for(i=0;i<4;i++)
for(j=0;j<4;j++) scanf(\ 13) =s[0][0]; for(i=0;i<4;i++) for(j=0;j<4;j++) if(s[i][j]>max){
14) ;row=i;col=j; }
printf(\} 7、函数del(s,i,n)的功能是从字符串s中删除从i个字符开始的n个字符。main函数调用del函数,从字符串\中删除从第3个字符开始的4个字符,然后输出删除子串后的字符串。请填空完善程序。 void del(char s[], int i, int n) {
int j,k,length=0;
while(s[length]!='\\0') 15) ; --i; j=i; k=i+n;
while(k 试题共10页-第5页