1、803 华南理工大学 2018 年攻读硕士学位研究生入学考试试卷 (试卷上做答无效,请在答题纸上做答,试后本卷必须与答题纸一同交回) 科目名称:算法语言(C) 适用专业:工业设计工程(专硕);设计学 共 页 第 1 页 一、单项选择题(本大题共 15 小题,每小题 2 分,共 30 分) 在每小题给出的 4 个备选项中,只有一个是符合题目要求的,请将其代号填写在答题纸上相应题号的括号内,错选、多选或未选均不得分。 1. 与十进制 1100 等值的十六进制数是( ) A. 44A B. 44C C. 54A D. 54C 2. 设 int a=3; 下列哪一个表达式的值等于 0 ( ) A. a
2、 & (a0) B. !a|a C. a%=a D. a=a 3. 在 C 语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是( ) A. char B. float C. long D. int 4. 以十六进制形式输出整数的格式说明符是( ) A. %u B. %ld C. %x D. %o 5. 若有说明:int *p, m=5, n; 以下正确的程序段是( ) A. p=&n; scanf(“%d”, n); B. p=&n; scanf(“%d”, *p); C. scanf(“%d”, &n); p=n; D. p=&n; *p=m; 6. 两次运行下面的程序,如果从键盘上
3、分别输入 6 和 4,则输出的结果是( ) void main(void) int x; scanf (“%d”, &x); if (x+ 5) printf (“%d”, x); 第 2 页 else printf(“%dn”, x-); A. 7 和 5 B. 6 和 3 C. 7 和 4 D. 6 和 4 7. 以下叙述中不正确的是( ) A. 在不同的函数中可以使用相同名字的变量 B. 函数中的形式参数是局部变量 C. 在一个函数内定义的变量只在本函数范围内有效 D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 8. 设有下列程序 ff( ) int c=9; static
4、int a=1, b=4; if (b = 4) a += c; b+ ; else a+= c; b- ; printf (“a=%d, b=%dn”, a, b); main ( ) ff( ); ff( ); 则该程序执行后,显示的结果为( ) A. a=10, b=5 a=19, b=5 B. a=10, b=4 a=19, b=5 C. a=10, b=4 a=19, b=4 D. a=10, b=5 a=19, b=4 9. 以下数组定义中不正确的是( ) A. int a23; B. int b3 = 0; C. int c100100 = 0; D. int d3 = 1, 1
5、, 2, 3,1; 10. 若有定义:int *p, *s, c; 且各变量已正确赋值,则非法的赋值表达式是( ) 第 3 页 A. p = s B. c = *s C. *s = &p D. p = &c 11. 若有以下说明: int w34 = 0, 1, 2, 4, 5, 8; int (*p)4 = w; 则数值为 4 的表达式是( ) A. *w1 + 1 B. p+, *(p+1) C. w22 D. p11 12. 下列函数的功能是( ) int fun1(char* x) char* y=x; while(* y+); return (y-x-1); A. 求字符串的长度 B
6、. 比较两个字符串的大小 C. 将字符串 X 复制到字符串 Y D. 将字符串 X 连接到字符串 Y 后 13. feof 函数用来判断文件是否结束,如果文件没有结束,则返回值是( ) A. -1 B. 0 C. 1 D. EOF 14. 设有说明:int u=1, v=3, w=2; 表达式(v1|,2)及 w 的值是( ) A. 0 B. 1 C. 3 D.5 15. 设有说明:FILE *fp; char *filename = “paper”; 对于 fp = fopen(filename, “rb+”); 语句,下面说法正确的是( ) A. 打开名为filename的文件读写 B.
7、打开名为 paper 的文件读写 C. 打开名为 filename 的文件只读 D. 打开名为 paper 的文件只读 二、简答题(本大题共 5 个小题,每小题 6 分,共 30 分) 请将答案写在答题纸上 第 4 页 16. 什么是“直接递归调用”?什么是“间接递归调用”? 17. 说出静态变量与动态变量的区别? 18. 设有说明: int a34, (*p)4 = a; 请解释p的含义, 并用p给出数组元素a21的二种表示。 19. 简述 C 语言标准库函数 strcpy 的格式(或函数原型)与功能。 20. 假设 char *str = “string”; char str1 = “st
8、ring”; 请问在 C 语言中这两者等价吗? 三、程序填空题(本大题共 4 个小题,每空 2 分,共 40 分) 每小题程序的空格处缺少程序语句,请将正确的语句填写在答题纸上相应题号的空格处。 21. 输入一个字符,判别它是否为大写字母,如果是,将它成小写字母;如果不是,不转换。然后输出最后得到的字符。 #include int main( ) char ch; scanf(“%c”, ); ch = (ch = A & ) ? (ch + 32) : ; printf( , ch); return ; 22. 有一个分数序列 2/1, 3/2, 5/3, 8/5, 13/8, 21/13,
9、 求这个数列的前 20 项之和。 int main( ) 第 5 页 int i, n=20; double a=2, b=1, s=0, t; for(i=1; ; i+) s= ; , a=a+b, ; printf(“sum=%16.10fn”, ); return 0; 23. 用递归方法求 n!。 #include int main( ) int ; int n; int y; printf(“input an integer number: ”); scanf(“%d”, &n); ; printf(“%d!=%dn” , n, y); return 0; 第 6 页 int fa
10、c(int n) int f; if (n0) printf(“nnum, p-store); p= ; while( ); return 0; 四、程序设计题(本大题共 3 个小题,共 50 分) 请将答案写在答题纸上 25. 从键盘输入 10 个整数,编程求其中大于 3 且小于 100 的数的平均值并输出结果。 (本小题 15 分) 26. 求 100 200 间的全部素数。 (本小题 15 分) 27. 用循环语句编程打印下列图案, 并以 ASCII 码的形式写到 C 盘目录下的 lx.dat文件中(第一行的“$“在第 20 列) 。 (本小题 20 分) $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $