1、803 华南理工大学 2016 年攻读硕士学位研究生入学考试试卷 (试卷上做答无效,请在答题纸上做答,试后本卷必须与答题纸一同交回) 科目名称:算法语言(C 语言) 适用专业:设计学;工业设计工程(专硕) 共 6 页 第 1 页 一、单项选择题(本大题共一、单项选择题(本大题共 15 小题,每小题小题,每小题 2 分,共分,共 30 分)分) 1. 下面数据中最小的是( ) A. (0.1100)2 B. (0.64)8 C. (0.8125)10 D. (0.1D)16 2. 下列能正确表示 double 类型常量的是( ) A. 0.31410 B.0.314e10 C. 0.031410
2、2 D. 3.14L 3. 下列语句中符合 C 语言语法的赋值语句是( ) A. a=7+b+c=a+7; B. a=7+b+=a+7; C. a=7+b, b+, a+7; D. a=7+b, c=a+7; 4. 在 if 语句中,用作判断的表达式为( ) A. 关系表达式 B. 逻辑表达式 C. 算数表达式 D. 任意表达式 5. 下面程序段执行后的输出结果是( ) int i= -1; if(i=0) printf(”*n”); else printf(”%n”); A. * B. % C. %c D. *c 6. 下面程序段的循环次数是( ) int k= 2; while(k=0)
3、printf(” %d ”, k ); k-; printf(” n”); A. 0 次 B. 1 次 C. 2 次 D. 无限次 7. 下面程序段执行后的输出结果是( ) int i, j; for (i=1; i3; i+) for (j=1; j2 的值是( ) A. 0 B. 3 C. 5 D. 7 14. 如果要将文件指针 fp 指向文件末尾,正确的语句是( ) A. feof(fp); B. rewind(fp); C. fseek(fp,0L,0); D. fseek(fp,0L,2);. 第 3 页 15. 下列关于结构体类型变量定义不正确不正确的是( ) A. B. stru
4、ct score struct int math; int math; int Chinese; int Chinese; Li, Wang; Li, Wang; C. D. struct score struct score int math; int math; int Chinese; int Chinese; ; ; Li, Wang; struct score Li, Wang; 二二、简答题简答题(本大题共(本大题共 5 小题,每小题小题,每小题 6 分,共分,共 30 分)分) 16. 简述 C 语言中标识符的命名规则, 并说明 C 语言中哪些名是用标识符来标识的? 17. C
5、语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 18. 变量有哪几种存储类别?指明它们存储数据的区域。 19. 定义 char *str=”computer”; 是将字符串“computer”赋给变量 str,这种说法对吗?为什么? 20. 函数 fclose( )的功能是什么? 三三、程序填空题程序填空题(本大题共(本大题共 4 小题,小题,每空每空 2 分,共分,共 40 分)分) 每小题程序的空格处缺少语句,请给出正确的语句使程序完整。 21. 以下程序借助第三个变量 c 实现两个变量 a,b 数值的对调操作。 #include main( ) int a, b, c
6、; scanf(%d%d, ); printf(a=%d, b=%dn, a, b); t= ; a= ; 第 4 页 b= ; printf(a=%d, b=%dn, ); 22. 打印出如下菱形图案 * * * * * * * #include main( ) int i, j, k; for(i=0; ; i+) for(j=0; j=4-i; j+) printf( ); for(k=1; k= ; k+) printf(*); printf( ); for( ; j3; j+) for(k=0; kj+3; k+) printf( ); for(k=0; k5-2*j; k+) pr
7、intf( ); printf(n); 23. 从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输出的字符以“! ”结束。 #include #include 第 5 页 main( ) FILE *fp; char str100; int i=0; if(fp=fopen(test, )=NULL) printf(cannot open the filen); exit(0); printf(please input a string:n); gets( ); wihle(stri!= ) if(stri=a & ) stri=stri-32;
8、fputc(stri, fp); i+; fclose( ); fp=fopen(test, r); fgets(str, strlen(str)+1, fp); printf(%sn, str); fcolse(fp); 24. 用结构的方式输入学生的姓名和成绩,然后将其输出; #include stuinf char name20; /*学生姓名*/ int score; /*学生成绩*/ stu, *p; main( ) p=&stu; printf(Enter name:); gets( ); printfEnter score:); scanf(%d, ); printf(Outpu
9、t:%s, %dn, , ); 第 6 页 四四、程序设计题程序设计题(本大题共(本大题共 3 小题,共小题,共 50 分)分) 25. 统计用 0 至 9 之间的不同的数字组成的三位数的个数。 (15 分) 26. 从键盘输入一个学生的生日(年:y0、月:m0、日:d0) ,并输入当前日期(年:y1、月:m1、日:d1) ,求出该学生的真实年纪,精确到年即可。 (15 分) 27. 从键盘输入 10 个整数, 利用 input( )函数将其存放在一个名称为 number 的数组中,利用 max_min( )函数将数值最大的元素和第一个元素交换位置,数值最小的元素与最后一个元素交换位置,最后利用 output( )函数将数组输出。完整的 main( )函数已经给出,请编写出其他函数和语句。 (20 分) main( ) int number10; input(number); max_min(number); output(number);