2014秋C语言A卷试卷及答案

2014秋C语言A卷试卷及答案
2014秋C语言A卷试卷及答案

华南农业大学期末考试试卷(A卷)2014学年第1学期考试科目:C语言程序设计

考试类型:(闭卷)考试考试时间:120 分钟

学号姓名年级专业

考生注意

1、答案必须分别写在“机读卡”和“答卷”上,写在本试卷上不得分。

2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。

3、机读卡的学生代号区只需填写学号后10位。

4、考试结束时,“机读卡”、“答卷”和本试卷都要上交。

一、选择题(在机读卡上答题,本大题共20小题,每小题2分,共40分)

1. 请选出一组合法的用户标识符( )。

A. void, WORD

B. -sub, a

C. f2_3, IF

D. 4a, abc

2. C语言程序有三种基本结构,除顺序结构外,另两种结构是( )。

A. 嵌套,递归

B. 选择,循环

C. 递归,选择

D. 循环,转移

3. 定义两个变量double a=5.5,b=2.5;,则表达式(int)b+a/a值为( )。

A. 3.000000

B. 3

C. 4

D. 4.000000

4. strlen("\\\n\t\bab")的结果是()。

A. 4

B. 5

C. 6

D. 7

5. 执行scanf("%d%d",&a,&b);时,正确的键盘输入是()。

A. 15,26

B. a=15,b=26

C. 12:23

D. 12 23

6. 设整型变量int x=6,y=8;,则语句printf("%d,%d",x++,--y);的输出结果是()。

A. 6,7

B. 7,7

C. 6,8

D. 7,8

7. int a=5, b=4, c=3;

if (a

A. a

B. no

C. 编译错误

D. 运行错误

8. 表达式3.5>3&&2||8<4-!0的值为()。

A. 0

B. 3

C. 2

D. 1

9. 以下程序段的输出结果是()。

float a=1234.5678; printf("%f,%2.2f",a,a);

A. 1234.5678,1234.56

B. 1234.567800,12.56

C. 1234.567800,1234.57

D. 提示错误,无结果

10. 以下程序段的输出结果是()。

int a=9,b=8,c=7;

if(a>b) a=b;

if(a>c) a=c;

else b=c;

printf("%d,%d,%d",a,b,c);

A. 9,8,7

B. 9,7,7

C. 7,7,7

D. 7,8,7

11. 在循环语句中,遇到()语句可以导致当前一次循环结束,立刻进入下一次循环。

A. break

B. continue

C. return

D. else

12. 以下程序段的输出结果是()。

int i, sum=0;

for(i=1;i<5;i++) {sum+=i; printf("%d",sum);}

A. 10

B. 01234

C. 13610

D. 15

13. 下面程序的运行结果是()。

#include

int main()

{ int a=0,i;

for(i=0;i<=3;i++)

{ switch(i)

{ case 3: a+=3;

case 1:

case 2: a+=2;

default: a+=5;

}

printf("%d ",a);

}

}

A. 5 12 19 29

B. 5 5 7 10

C. 0 2 3 5

D. 3 0 2 5

14. 定义一个字符数组char s[ ]="string";,它在内存中占用的字节数是()。

A. 6

B. 7

C. 24

D. 不确定

15. 下面程序中有错误的行是()。(每行代码后面的数字表示行号)

int main() //1

{ int i; float y[6]={1.0,2,3}; //2

for (i=1; i<6; i++) y[0]= y[0]+y[i]; //3

printf("y[0]=%d\n", y[0]); //4

} //5

A. 1

B. 2

C. 3

D. 4

16. 设每个整型数据占4字节,定义一个数组int x[6];,它的内存起始地址是3100,则

x[3]的起始地址是( )。

A. 3103

B. 3112

C. 3108

D. 3102

17. 设int a=2,b=3,c=4,d=5,e=6;,有一函数调用f((a,b,c),(d,e)),则实际调用是( )。

A. f(2,5)

B. f(4,6)

C. f(2,6)

D. 参数太多,出错

18. 下列程序的执行结果是( )。

#include

int a=7,b=2; void f(int x,int y)

{ printf("%d,%d",x+y,a+b); } int main()

{ int a=3,b=9; f(a,b); } A. 12,9

B. 9,12

C. 7,2

D. 3,9

19. 有以下宏定义,则执行语句 x=3*(N+Y(3+N));之后,整型变量x 的值是( )。

#define N 2

#define Y(a) ((N+1)*a) A. 54

B. 48

C. 39

D. 24

20. 下列程序的执行结果是( )。

#include fun(int x, int y) { x=x+y; y=x-y; } main()

{ int a=5, b=8; fun(a,b);

printf ("%d,%d",a,b); } A. 13,5

B. 5,13

C. 13,8

D. 5,8

二、判断题(在机读卡上答题,本大题共20小题,每小题1分,共20分)

请用2B 型铅笔涂答题卡,按题号顺序,正确的判断涂黑“A ”、错误的判断涂黑“B ”

21. 一个C 程序的开始执行点是main()函数,结束点是最后一个函数的最后一条语句。( ) 22. 字符常量是由一对单引号括起来的一到多个字符。( ) 23. C 语言规定,标识符中的字符不区分大小写。( ) 24. getchar()函数的功能是从终端输入一个字符串。( )

25. 在switch (x) 语句中,case后的表达式可以是x>0,x==0,x<0。( )

26. 表达式a-!d||m>n+3可改写为 (a-(!d))||(m>(n+3))。( )

27. 在逻辑表达式的求解过程中,必须求解完所有的逻辑运算符才能得到最终的结果。( )

28. C语言中,int x,y; x=y=100 是合法的赋值语句。( )

29. while循环语句至少无条件执行一次循环体。( )

30. do-while循环语句中,根据情况可以省略关键字while。( )

31. C程序中有无注释不会影响程序的正常执行。( )

32. case,break,return,int 在C中都是保留的关键字。( )

33. 定义数组时,数组下标可以是整型常量或正整型常量表达式。( )

34. 有字符串定义char a[]="a",b[]="Zoo";,则strcmp(a,b)的结果为1。( )

35. 调用一个有参函数时,可以不对形参传入数据。( )

36. 主函数main()可以调用任意一个函数,但不能使用这些函数中定义的变量。( )

37. 在一个函数中说明的变量,有效范围是该函数以及调用它的函数。( )

38. 带参数的宏及其参数在没有指定类型时,默认为int型。( )

39. C编译系统对 #include 在编译前进行处理。( )

40. 有如下语句 int x; float y=3.33; x=y; ,编译时不会出错。( )

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

1. 下面程序实现由键盘输入3个数a,b,c,并按由大到小的顺序输出,请填空完善。

#include

int main( )

{ int a,b,c,t;

scanf("%d%d%d", &a,&b,&c);

if(a

{ t=a; a=b; b=t; }

if(a

{ t=a; a=c; c=t; }

if 1)

2)

printf("The sorted number is: %d %d %d\n", a,b,c);

return 0;

}

2. 从键盘输入一个华氏温度值f,要求按格式输出其对应的摄氏温度值c,精确到小数点后两位。数学公式描述为:c=5/9*(f-32)。

#include

int main()

{ 3) ;

scanf("%f",&f);

4) ;

printf("%.2f",c);

}

3. 输入一行字符(以回车符结束),统计并输出其中的字母个数(不分大小写)。#include

int main()

{ int zm=0; char ch;

while ( 5) )

{ if ( 6) )

zm++;

}

printf("zm=%d\n",zm);

}

4. 从键盘输入一个整数,将它反序输出。例如:输入“385”,输出“583”。

#include

int main()

{ int n,c;

scanf("%d",&n);

do {

7) ;

printf("%d",c);

} while ( 8) );

}

5. 输入两个整数,输出它们的最大公约数。

#include

int main()

{ int m,n,i,t;

scanf("%d,%d",&m,&n);

t=m>n?n:m;

for ( 9) )

{ if (m%i==0 && n%i==0)

{ printf("%d\n",i);

10) ;

}

}

}

6. 输出100以内的所有素数。

#include

11)

int main()

{ int i,m,k;

for (m=2;m<=100;m++)

{ k=sqrt(m);

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

if ( 12) )

break;

if ( 13) )

printf("%3d",m);

}

}

7. 从键盘读入一个不多于60个字符的字符串(允许包含空格),将其中的大写字母全部转换为小写字母,其它字符不变,然后输出。

#include

int main()

{ char s[60]; int i;

14) ;

for (i=0; s[i]!='\0'; i++)

{

if (s[i]>='A'&&s[i]<='Z')

15) ;

}

printf("%s",s);

}

8. 完成下列函数,连接两个字符串s1和s2,结果放入字符串s,且末尾添加字符串结束符。void cat(char s1[], char s2[], char s[])

{ int i,j;

for (i=0; s1[i]!='\0'; i++) s[i]=s1[i];

for (j=0;s2[j]!='\0'; j++) 16) ; 17) ;

}

9.下列程序实现:从键盘输入数组元素的值,并求平均值,请填空完善。 #include

float average(float a[ ], int n) { int i; float sum=0; for (i=0;i

18) ; return sum/n;

}

int main()

{ int i; float b[10]; for (i=0;i<10;i++)

19) ;

printf("平均值=%f\n", 20) ); }

四、编写程序题(请在答卷上答题,本大题共2小题,每题10分,共20分)

1. 编程实现由键盘输入n ,计算输出如下数列的前n 项之和(输出结果保留4位小数)。

2. 编写程序,输入一维整型数组的10个元素,并将最小值与第一个数交换,最大值与最后一个数交换,其它数不动,然后输出交换后的10个数。

2 3 5 8 13 21 1 2 3 5 8 13

……

华南农业大学期末考试答案(A卷)2014学年第1学期考试科目:C语言程序设计

考试类型:(闭卷)考试考试时间:120 分钟

学号姓名年级专业

一、选择题(在机读卡上答题,本大题共20小题,每小题2分,共40分)

1 C,

2 B,

3 A,

4 C,

5 D,

6 A,

7 A,

8 D,

9 C,10 D,11 B,12 C,13 A,

14 B,15 D,16 B,17 B,18 A,19 C,20 D

二、判断题(在机读卡上答题,正确的判断涂黑“A”、错误的判断涂黑“B”. 本大题共20小题,每小题1分,共20分)

21 B,22 B,23 B,24 B,25 B,26 A,27 B,28 B,29 B,30 B,31 A,32 A,

33 B,34 A,35 B,36 A,37 B,38 B,39 A,40 A

三、程序填空题(共20空,每空1分,共20分,)

1). (b

3). float f,c 4). c=5.0/9*(f-32)

5). (ch=getchar())!='\n' 6). ch>='a'&&ch<='z'||ch>='A'&&ch<='Z' 7). c=n%10 8). (n/=10)>0

9). i=t; i>=1; i-- 10). break

11). #include 12). m%i==0

13). i>=k+1 14). gets(s)

15). s[i]=s[i]+32 16). s[i++]=s2[j]

17). s[i]='\0' 18). sum+=a[i]

19). scanf("%f",&b[i]) 20). average(b,10)

四、编程题(共2小题,每题10分,共20分)

1.

#include

int main()

{ int i,t,n;

float a=2,b=1,s=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

{ s=s+a/b;

t=a; a=a+b; b=t;

}

printf("%.4f\n",s);

}

2、

#include

int main()

{ int i, x[10], a=0, b=0, max, min,t; scanf("%d",&x[0]);

max=min=x[0];

for(i=1;i<10;i++)

{ scanf("%d",&x[i]);

if (x[i]>max) { a=i; max=x[i];}

if (x[i]

t=x[0]; x[0]=x[b]; x[b]=t;

t=x[9]; x[9]=x[a]; x[a]=t;

for(i=0;i<10;i++)

printf("%d ",x[i]);

}

相关主题
相关文档
最新文档