2018年华南理工大学研究生入学考试专业课真题803_算法语言(C).docx
第 1 页803华南理工大学2018 年攻读硕士学位研究生入学考试试卷( 试 卷 上 做 答 无 效 , 请 在 答 题 纸 上 做 答 , 试 后 本 卷 必 须 与 答 题 纸 一 同 交 回 ) 科目名称:算法语言(C)适用专业:工业设计工程(专硕 );设计学共 页一、单项选择题(本大题共 15 小题,每小题 2 分,共 30 分)在每小题给出的 4 个 备 选 项 中 , 只 有 一 个 是 符 合 题 目 要 求 的 , 请 将 其 代 号 填 写 在 答题纸上相应题号的括号内,错选、多选或未选均不得分。1. 与十进制 1100 等值的十六进制数是( )A. 44A B. 44C C. 54A D. 54C2. 设 int a=3; 下列哪一个表达式的值等于 0 ( )A. a 以下正确的程序段是( )A. p=scanf(“%d”, n);B. p=scanf(“%d”, *p);C. scanf(“%d”, p=n;D. p=*p=m;6. 两次运行下面的程序,如果从键盘上分别输入 6 和 4,则输出的结果是( )void main(void)int x;scanf (“%d”, if (x+ 5) printf (“%d”, x);第 2 页else printf(“%dn”, x-);A. 7 和 5 B. 6 和 3 C. 7 和 4 D. 6 和 47. 以下叙述中不正确的是( )A. 在不同的函数中可以使用相同名字的变量B. 函数中的形式参数是局部变量C. 在一个函数内定义的变量只在本函数范围内有效D. 在一个函数内的复合语句中定义的变量在本函数范围内有效8. 设有下列程序ff( ) int c=9;static 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=5a=19, b=5B. a=10, b=4a=19, b=5C. a=10, b=4a=19, b=4D. a=10, b=5a=19, b=49. 以下数组定义中不正确的是( )A. int a23; B. int b3 = 0;C. int c100100 = 0; D. int d3 = 1, 1, 2, 3,1;10. 若有定义:int *p, *s, c; 且各变量已正确赋值,则非法的赋值表达式是( )第 3 页A. p = s B. c = *sC. *s = A. *w1 + 1 C. w22int fun1(char* x) char* y=x; while(* y+); return (y-x-1);A. 求字符串的长A. -114. 设有说明:int u=1A. 015. 设有说明:FILE *A. 打开名为 filen则数值为 4 的表达式是( )12. 下列函数的功能是( )度C. 将字符串 X 复制到字符串 YB. 0B. 1fp; char *filename对于 fp = fopen(filename, “rb+”); 语句,ame 的文件读写C. 打开名为 filename 的文件只读请将答案写在答题纸上第 4 页16. 什么是“直接递归调用”?什么是“间接递归调用”?17. 说出静态变量与动态变量的区别?18. 设 有 说 明 : int a34, (*p)4 = a; 请解释 p 的 含 义 , 并 用 p 给出数组元素 a21的二种表示。19. 简述 C 语言标准库函数 strcpy 的格式(或函数原型)与功能。20. 假设 char *str = “string”; char str1 = “string”; 请问在 C 语言中这两者等价 吗?三、程序填空题(本大题共 4 个小题,每空 2 分,共 40 分) 每 小 题 程 序 的 空 格 处 缺 少 程 序 语 句 , 请 将 正 确 的 语 句 填 写 在 答 题 纸 上 相 应 题 号 的 空格处。21. 输入一个字符,判别它是否为大写字母,如果是,将它成小写字母;如果不 是,不转换。然后输出最后得到的字符。#include int main( ) char ch;scanf(“%c”, );ch = (ch = A printf( , ch);return ;22. 有一个分数序列2/1, 3/2, 5/3, 8/5, 13/8, 21/13, 求这个数列的前 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”, ;printf(“%d!=%dn” , n, y); return 0;第 6 页1010189.51010390int fac(int n) int f;if (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 分 )$ $ $ $ $ $ $ $ $ $ $ $ $