华农c语言.docx
《华农c语言.docx》由会员分享,可在线阅读,更多相关《华农c语言.docx(12页珍藏版)》请在冰豆网上搜索。
华农c语言
华南农业大学期末考试试卷(A卷)
2011学年第1学期 考试科目:
程序设计(C语言)
考试类型:
(闭卷)考试 考试时间:
120 分钟
学号姓名年级专业
题号
一
二
三
四
总分
得分
评阅人
机读
机读
考生注意:
1、答案必须分别写在“机读卡”和“答卷”上,写在试卷上不得分。
2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。
3、在机读卡的学生代号区只填写学号后10位。
4、考试结束,只需交“机读卡”和“答卷”,本试卷不用交。
得分
一、判断题(在机读卡上答题,本大题共20小题,每小题1分,共20分)
用2B型铅笔涂答题卡!
!
!
按题号顺序,正确的判断涂黑“A”、错误的判断涂黑“B”
1、所有逻辑运算符的优先级都高于关系运算符。
2、在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。
3、带有语句标号的语句的正确书写方法是“语句标号:
语句”。
4、for循环语句只能用于循环次数已经确定的情况。
5、do-while循环语句的特点是先执行循环体,然后判断循环条件是否成立。
6、continue语句在循环体中出现,其作用是结束本次循环,接着进行是否执行下一次循环的判定。
7、已有定义intx[5];,则该定义语句说明x是具有5个元素的一维数组,且数组元素是x[1],x[2],x[3],x[4],x[5]。
8、数组必须先定义,然后再使用。
9、若对字符串str1和字符串str2比较大小,必须使用字符串比较函数strcmp(str1,str2),不能使用关系运算符进行比较,譬如:
str1==str2。
10、一个函数中有且只能有一个return语句。
11、在一个函数中定义的静态局部变量不能被另一个函数引用。
12、用数组名作为函数调用时的实参,实际上传递给形参的是数组全部元素的值。
13、在C语言中,主函数可以调用任意一个函数,但是不能使用其它函数中定义的变量。
14、C语言规定,程序中各函数之间既允许嵌套定义,也允许嵌套调用。
15、宏名没有作用域,在整个文件范围内都有效。
16、带参数的宏名无类型,它的参数也无类型。
17、预处理命令必须位于C源程序的首部。
18、在文件包含预处理语句中,被包含的文件应该是目标文件而不是源文件。
19、文件包含是不能嵌套的,即在一个被包含文件中不能包含另一个被包含文件。
20、宏定义不是C语句,不必在行末加分号,若加了分号,则编译时会出现语法错误。
得分
二、单项选择题(在机读卡上答题,本大题20小题,每小题2分,共40分)
用2B型铅笔涂答题卡!
!
!
按题号顺序,将答题卡上与选项对应的字母涂黑
21、以下叙述正确的是()。
A)C语言允许直接访问物理地址,可以直接对硬件进行操作
B)C语言程序不用编译,即可被计算机识别运行
C)C语言不允许直接访问物理地址,不可以直接对硬件进行操作
D)C语言程序只需编译,不需连接即可被计算机运行
22、下列关于C语言用户标识符的叙述中正确的是()
A)用户标识符中可以出现下划线和中划线(减号)
B)用户标识符中不可以出现中划线,但可以出现下划线
C)用户标识符中可以出现下划线,但不可放在标识符开头
D)用户标识符中可以出现下划线和数字,它们都可放在用户标识符的开头
23、字符串"\\\\1234\\\\\n"在内存中占用的字节数是()
A)14B)9C)10D)11
24、与k=n++完全等价的表达式是()
A)n=n+1,k=nB)k+=n+1C)k=++nD)k=n,n=n+1
25、为下面的程序输入数据,使得i=10,k='a',j=15,正确的键盘输入方法是()
main()
{inti,j,k;
scanf("%d%c%d",&i,&k,&j);
}
A)10,a,15<回车>B)10<回车>a<回车>15<回车>
C)10'a'15<回车>D)10a15<回车>
26、运行下面的程序,正确的输出结果是()
main()
{floatx=68.7563,y=-789.125;
printf("%f,%10.2f\n",x,y);
}
A)68.756303,-789.12B)68.756303,-789.13
C)68.7563,-789.13D)68.7563,-789.12
27、下列表达式中,结果为1的表达式是()
A)!
0==1B)!
6C)!
2>=3D)!
3!
=0
28、设整型变量x,y,z的值分别为3、2、1,则下列程序段的输出是()
if(x>y)x=y;
if(x>z)x=z;
printf("%d,%d,%d\n",x,y,z);
A)3,2,1B)1,2,3C)1,2,1D)1,1,1
29、已经定义intj;,则下面程序段的输出结果是()
for(j=7;j<10;j++)printf("%d",j);
A)8910B)789C)91011D)无结果
30、下面程序的运行结果是()
main()
{inti,j,k,sum;
for(i=2;i<7;i++){
sum=1;
for(j=i;j<7;j++)
sum=sum+j;
}
printf("%d",sum);
}
A)48B)49C)1D)7
31、下面程序的运行结果是()
main()
{intx=15;
do{x--;}while(x--);
printf("%d",x--);
}
A)0B)1C)-1D)-2
32、下面程序的运行结果是()
main()
{intx[3],i,j,k;
for(i=0;i<3;i++)x[i]=0;
k=2;
for(i=0;ifor(j=0;jprintf("%d\n",x[1]);
}
A)2B)1C)0D)3
33、若有以下程序段:
intx[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='a',d,g;
则数值为4的表达式是()。
A)x[g-c]B)x[4]C)x['d'-'c']D)x['d'-c]
34、若有ints[4]={4,3,2,1};则s[s[0]+s[3]-s[2]]的值是()
A)1B)2C)3D)4
35、C语言程序的三种基本结构是()
A)嵌套结构、递归结构、循环结构B)递归结构、循环机构、转移结构
C)顺序结构、选择结构、循环结构D)循环结构、转移结构、顺序结构
36、下列程序的运行结果是()
#include"stdio.h"
voidf(charstr[])
{inti,j;
for(i=j=0;str[i]!
='\0';i++)
if(str[i]!
='a')str[j++]=str[i];
str[j]='\0';
}
voidmain()
{charstring[]="goodbaby";
f(string);
printf("stringis:
%s",string);
}
A)stringis:
goodbabyB)stringis:
goodbby
C)stringis:
goodbD)stringis:
g
37、下列程序段中,有错误的是()
A)intf()
{intx;
scanf("%d",&x);
returnx++,x+5;
}
B)intf2()
{
return(x>1?
printf("Y"):
putchar('N'););
}
C)main()
{floata=2.6,b;
b=max(2.1,3.6)=a++;
printf("%f",a+b);
}
D)voidchang(intx,inty)
{
intt;
t=x;x=y;y=t;
}
38、以下函数值的类型是()
fun(floatx)
{floaty;
y=3*x-4;
return(y);
}
A)不确定B)floatC)intD)void
39、设有宏定义命令:
#defineSUM2+3
则表达式5+SUM*5的值为()
A)50B)30C)22D)20
40、在文件包含预处理的定义形式中,#include后的文件名用<>括起来时,寻找被包含文件的方式是()。
A)仅搜索当前目录
B)先在源程序所在的目录搜索,再按系统设定的标准方式搜索
C)仅搜索源程序所在目录
D)直接按系统设定的标准方式搜索
得分
三、阅读程序填空题(在答卷上答题,本大题共9小题,每空1分,共20分)
1、下面程序实现分别输出1至100(不包括100)范围内所有偶数的和与所有奇数的和,请填空完善。
#include
voidmain()
{inti,s1,s2;
01);
for(i=1;i<100;02))
if(03))s2+=i;
esles1+=i;
printf("偶数和=%d,奇数和=%d",s2,s1);
}
2、某物品原有价值为p,使用后其价值降低,价值的折扣率根据时间t(月数)确定如下:
下面程序根据输入的时间和原有的价值计算物品的现有价值,请填空完善程序。
#include
voidmain()
{intt,d;
floatp;
scanf("%d,%f",&t,&p);
switch(04)){
case0:
d=0;break;
case1:
d=2;break;
case2:
case3:
d=5;break;
case4:
case5:
case6:
d=8;break;
05):
d=10;
}
printf("Price=%f\n",06));
}
3、该程序利用下面公式计算∏的近似值,取前n项之和,请填空完善程序。
#include
voidmain()
{
inti,n;
floatt=1.0,pi=0;
scanf("%d",07));
for(i=1;i<=n;i++){
pi+=08);
t=-t;
}
printf("pi=%f",pi*4);
}
4、下面程序完成输入一个整数并判断是否为素数,请填空完善程序。
#include
#include
voidmain()
{intn,k,i=1;
scanf("%d",&n);
k=sqrt(n);
for(i=2;i<=k;i++)
if(09))break;
if(10))printf("%disaprime\n",n);
}
5、下面程序的功能是输出若干个字符串中长度最短的字符串,请填空完善程序。
#include
#include
voidmain()
{charstr1[80],min[80];
intk,len;
printf("inputstringstr1:
\n");
gets(str1);