2011秋华农c语言试卷

更新时间:2024-06-08 12:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

华南农业大学期末考试试卷(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、已有定义int x[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、用数组名作为函数调用时的实参,实际上传递给形参的是数组全部元素的值。

1

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、字符串\在内存中占用的字节数是()

A)14 B)9 C)10 D)11 24、与k=n++完全等价的表达式是()

A)n=n+1,k=n B)k+=n+1 C)k=++n D)k=n,n=n+1 25、为下面的程序输入数据,使得i=10,k='a',j=15,正确的键盘输入方法是()

main() { int i,j,k;

scanf(\}

A)10,a,15<回车> B)10<回车>a<回车>15<回车>

2

装订线

C)10'a'15<回车> D)10a15<回车> 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、下列表达式中,结果为1的表达式是()

A)!0==1 B)!6 C)!2>=3 D)!3!=0

28、设整型变量x,y,z的值分别为3、2、1,则下列程序段的输出是()if(x>y) x=y; if(x>z) x=z;

printf(\

A)3,2,1 B)1,2,3 C)1,2,1 D)1,1,1 29、已经定义int j;,则下面程序段的输出结果是()

for(j=7;j<10;j++) printf(\

A)8910 B)789 C)91011 D)无结果 30、下面程序的运行结果是()

main()

{ int i,j,k,sum; for(i=2;i<7;i++){ sum=1;

for(j=i;j<7;j++) sum=sum+j; }

printf(\}

A)48 B)49 C)1 D)7 31、下面程序的运行结果是()

main()

{ int x=15;

do{x--;}while(x--); printf(\}

A)0 B)1 C)-1 D)-2 32、下面程序的运行结果是()

3

main()

{ int x[3],i,j,k;

for(i=0;i<3;i++) x[i]=0; k=2;

for(i=0;i

for(j=0;j

A)2 B)1 C)0 D)3 33、若有以下程序段:

int x[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g;

则数值为4的表达式是()。

A)x[g-c] B)x[4] C)x['d'-'c'] D)x['d'-c] 34、若有int s[4]={4,3,2,1};则s[s[0]+s[3]-s[2]]的值是()

A)1 B)2 C)3 D)4 35、C语言程序的三种基本结构是()

A)嵌套结构、递归结构、循环结构 B)递归结构、循环机构、转移结构 C)顺序结构、选择结构、循环结构 D)循环结构、转移结构、顺序结构 36、下列程序的运行结果是()

#include\void f(char str[]) { int i,j;

for(i=j=0;str[i]!='\\0';i++) if(str[i]!='a') str[j++]=str[i]; str[j]='\\0'; }

void main()

{ char string[]=\ f(string);

printf(\}

4

装订线 1.5CM

A)string is:goodbaby B)string is:goodbby C)string is:goodb D)string is:g 37、下列程序段中,有错误的是() A)int f() B)int f2() { int x;

{

scanf(\ return (x>1?printf(\ return x++,x+5; }

}

C)main()

D)void chang(int x,int y) { float a=2.6,b;

{

b=max(2.1,3.6)=a++; int t;

printf(\ t=x;x=y;y=t; } }

38、以下函数值的类型是()

fun(float x) { float y; y=3*x-4; return(y); }

A)不确定 B)float C)int D)void 39、设有宏定义命令:

#define SUM 2+3

则表达式5+SUM*5的值为()

A)50 B)30 C)22 D)20

40、在文件包含预处理的定义形式中,#include后的文件名用<>括起来时,寻找被包含文

件的方式是()。

A)仅搜索当前目录

B)先在源程序所在的目录搜索,再按系统设定的标准方式搜索 C)仅搜索源程序所在目录

D)直接按系统设定的标准方式搜索

得分

三、阅读程序填空题(在答卷上答题,本大题共9小题,每空1分,共20分)

1、下面程序实现分别输出1至100(不包括100)范围内所有偶数的和与所有奇数的和,请填空完善。

#include

5

void main() { int i,s1,s2;

01) ;

for(i=1;i<100; 02) ) if( 03) ) s2+=i; esle s1+=i;

printf(\偶数和=%d,奇数和=%d\}

2、某物品原有价值为p,使用后其价值降低,价值的折扣率根据时间t(月数)确定如下:

?t?3 无折扣?3?t?6 2%折扣???6?t?12 5%折扣 ?12?t?21 8%折扣???t?21 10%折扣下面程序根据输入的时间和原有的价值计算物品的现有价值,请填空完善程序。

#include

void 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项之和,请填空完善程序。

?/4?1?????

#include void main() {

int i,n;

float t=1.0,pi=0;

scanf(\ 07) ); for(i=1;i<=n;i++){

6

131157装订线

pi+= 08) ; t= -t; }

printf(\}

4、下面程序完成输入一个整数并判断是否为素数,请填空完善程序。

#include #include void main() { int n,k,i=1;

scanf(\ k=sqrt(n);

for(i=2;i<=k;i++)

if( 09) ) break; if( 10) ) printf(\ }

5、下面程序的功能是输出若干个字符串中长度最短的字符串,请填空完善程序。

#include #include void main()

{ 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

void main() { int a[5],t,i;

printf(\原数据序列为:\

7

for(i=0;i<5;i++) scanf(\ 13) ; for(i=4;i>0;i--) 14) ; 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 double fact(int n) { double k;

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 19) 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()

8

装订线

{

int array[10],i;

for(i=0;i<10;i++) scanf(\ search( 20) ) printf(\ }

得分

四、编写程序题(在答卷上答题,本大题共3小题,第1,2小题各5分;第3小题10分,共20分)

1、编程计算分数序列

12,23,35,58,?前10项之和,并在屏幕上显示结果。 2、编程实现输入一个年份范围,在屏幕上显示年份范围中的闰年,每行最多显示5个。 3、根据如下main函数要求,编写一个使用选择排序算法完成从小到大排序的函数px(),

要求画出排序函数流程图或NS图。

#include void main() {

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(\}

9

10

本文来源:https://www.bwwdw.com/article/um56.html

Top