2016年华南理工大学算数语言真题.docx
803华南理工大学2016 年攻读硕士学位研究生入学考试试卷(试卷上做答无效,请在答题纸上做答,试后本卷必须与答题纸一同交回) 科目名称:算法语言(C 语言)适用专业:设计学;工业设计工程(专硕)共6页一、单项选择题(本大题共 15 小题,每小题 2 分,共 30 分)1. 下面数据中最小的是()A. (0.1100)2B. (0.64)8C. (0.8125)10D. (0.1D)162. 下列能正确表示 double 类型常量的是()A. 0.314'10B.0.314e10C. 0.0314'102D. 3.14L3. 下列语句中符合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. 下面程序段执行后的输出结果是()inti= -1;if(i<=0)printf(”*n”); else printf(”%n”);A. *B. %C. %cD. *c6. 下面程序段的循环次数是()intk= 2;while(k=0)printf(” %d ”, k );k-;printf(” n”);A. 0 次B. 1 次C. 2 次D. 无限次7. 下面程序段执行后的输出结果是()inti, j;for (i=1; i<3; i+)for (j=1; j<3; j+)第6页printf(” %d ”, i+j);printf(” n ”);A. 2334B. 234C. 23D. 234348. 下面程序段执行后的输出结果是()void main( )int x4=1,3,5,7, i; i=0;printf(” %d ”, xi+);A. 1B. 3C. 5D. 79. 以下正确的函数定义形式是()A. doublefun(int x, int y)B. doublefun(int x; int y)C. doublefun(int x, int y);D. doublefun(int x, y);10. 关于变量,以下不正确的说法是()A. 在不同的函数中可以使用相同名字的变量B. 形式参数是全局变量C. 在函数内定义的变量只在本函数范围内有效D. 在函数内的复合语句中定义的变量是局部变量11. 设有语句 int a410, *p=*a; 则下列表达式中不是地址表达式的是()A. &a12B. a3C. *(p+1*10+2)D. p+1*10+212. 下列能正确进行字符串赋值操作的是()A. char s5=”ABCDE”;B. char s5=A, B, C, D, E;C. char *s; s=”ABCDE”;D. char *s; scanf(”%s”, s);13. 设有说明:int u=1, v=14; 表达式 u+v>>2 的值是()A. 0B. 3C. 5D. 714. 如果要将文件指针 fp 指向文件末尾,正确的语句是()A. feof(fp);B. rewind(fp);C. fseek(fp,0L,0);D. fseek(fp,0L,2);.15. 下列关于结构体类型变量定义不正确的是()A. B.struct scorestructint math; int math;int Chinese;int Chinese;Li, Wang;Li, Wang;C.D.struct scorestruct scoreint math; int math;int Chinese;int Chinese; Li, Wang;struct score Li, Wang;二、简答题(本大题共 5 小题,每小题 6 分,共 30 分)16. 简述 C 语言中标识符的命名规则,并说明 C 语言中哪些名是用标识符来标识的?17. C 语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?18. 变量有哪几种存储类别?指明它们存储数据的区域。19. 定义 char *str=”computer”; 是将字符串“computer”赋给变量 str,这种说法对吗?为什么?20. 函数 fclose( )的功能是什么?三、程序填空题(本大题共 4 小题,每空 2 分,共 40 分)每小题程序的空格处缺少语句,请给出正确的语句使程序完整。21. 以下程序借助第三个变量 c 实现两个变量a,b 数值的对调操作。#include <stdio.h> main( ) int a, b, c;scanf("%d%d", );printf("a=%d, b=%dn", a, b); t= ;a= ;b= ;printf("a=%d, b=%dn", );22. 打印出如下菱形图案* #include <stdio.h> 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( ; j<3; j+)for(k=0; k<j+3; k+) printf(" ");for(k=0; k<5-2*j; k+) printf( );printf("n");23. 从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输出的字符以“!”结束。#include <stdio.h> #include <string.h>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;fputc(stri, fp); i+;fclose( ); fp=fopen("test", "r"); fgets(str, strlen(str)+1, fp); printf("%sn", str); fcolse(fp);24. 用结构的方式输入学生的姓名和成绩,然后将其输出;#include <stdio.h> stuinfchar name20; /*学生姓名*/ int score;/*学生成绩*/stu, *p; main( ) p=&stu;printf("Enter name:"); gets( ); printf"Enter score:"); scanf("%d", );printf("Output:%s, %dn", ,);四、程序设计题(本大题共 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);