[关闭]
@caelumtian 2017-09-08T17:20:46.000000Z 字数 2985 阅读 648

C 语言与web技术 2016年B卷

胡杨考研试题

C语言部分

单选

  1. C
  2. B
  3. D
  4. B
  5. B

程序分析题

  1. 16 23
  2. 6 8 11 15 20
  3. 1 2 6 9 11

程序填空题

1. 第一小题

  1. (n >= 100 && n <= 999)
  2. (n - a * 100) / 10

2. 第二小题

  1. data[i - 1][j - 1] + data[i - 1][j]
  2. 1
  3. j <= i

编程题

打印如下99乘法表

  1. #include <stdio.h>
  2. int main(void) {
  3. int i, j, k;
  4. for(i = 9; i >= 1; i--) {
  5. for(k = 0; k < 9 - i; k++) {
  6. printf("\t");
  7. }
  8. for(j = i;j >= 1; j--) {
  9. printf("%d\t ", i * j);
  10. }
  11. printf("\n");
  12. }
  13. return 0;
  14. }

计算数列前n项和,n项和n-1绝对值差小于0.0001

  1. #include <stdio.h>
  2. #include <math.h>
  3. //阶乘计算函数
  4. int fac(n) {
  5. int sum = 1;
  6. for(; n >= 1; n--) {
  7. sum *= n;
  8. }
  9. return sum;
  10. }
  11. int main(void) {
  12. double sum = sin(1);
  13. int i = 2;
  14. while(abs(sin(1 / fac(i)) - sin(1 / fac(i - 1))) > 0.0001) {
  15. sum += sin(1 / fac(i));
  16. i++;
  17. }
  18. printf("%d", i); //结果是 i= 9
  19. printf("%f", sum); //和是:1.53839260710135
  20. return 0;
  21. }

这破题,简直了,sin函数不能用,还得重新下载编译,操蛋。判卷老师绝对没有在自己电脑上跑过。

文件操作 bool file_copy(char *_file0, char *_file1)

  1. //接收文件名为输入,把_file0文件拷贝到_file1
  2. int file_copy(char *_file0, char *_file1) {
  3. FILE *fold, *fnew;
  4. int c;
  5. //打开源文件
  6. if ((fold = fopen(_file0, "rb")) == NULL) {
  7. return 0;
  8. }
  9. //打开目标文件
  10. if ((fnew = fopen(_file1, "wb")) == NULL) {
  11. fclose(fold); //如果目标文件空,关闭并返回
  12. return 0;
  13. }
  14. while (1) {
  15. c= fgetc(fold);
  16. if (!feof(fold)) {
  17. fputc(c, fnew);
  18. }else {
  19. break;
  20. }
  21. }
  22. fclose(fold);
  23. fclose(fnew);
  24. return 1;
  25. }

c语言是没有 bool类型的,所以我用1和0代替。如果应按照题目来,你就bool 作为函数返回值类型 1 改成 true 0 改成 false就好了。

web 部分

填空题

  1. (1)<img /> (2)src (3) alt
  2. (1)<br /> (2)<p></p>
  3. SESSION
  4. (1)行 (2)列
  5. xa+yb<zc
  6. _blank

简答题

1. 区分浏览器访问html和php页面有什么不同

  1. 访问html的时候,客户端发出请求,服务器应答将需要的html静态文件直接传回,不做任何处理。
  2. 方位php的时候,客户端发出请求,服务器找到请求的php页面,执行里面的php语句。将动态的php页面解析成静态的html页面后,再将该html页面返回给浏览器。

2. css 选择器种类,举例说明三种

  1. ID选择器,通过在标签上添加 id="val"的方式,唯一标识一个标签。css中通过#val{}的形式,设置该标签的样式
  2. class类选择器,通过在标签上添加class="className"的方式,标识该标签。类选择可选择的标签不唯一。css中通过 .className{}的方式,设置标签样式。
  3. 标签选择器,css中直接通过设置 tagName{}的形式,访问对象的标签,并设置样式。例如:p{font-size: 12px;} 表示这是页面中所有的p元素字体大小为12px

3. DTD与XML schema的区别

  1. Schema本身也是XML文档,DTD定义跟XML没有什么关系,Schema在理解和实际应用有很多的好处。
  2. DTD文档的结构是“平铺型”的,如果定义复杂的XML文档,很难把握各元素之间的嵌套关系;Schema文档结构性强,各元素之间的嵌套关系非常直观。
  3. DTD只能指定元素含有文本,不能定义元素文本的具体类型,如字符型、整型、日期型、自定义类型等。Schema在这方面比DTD强大。
  4. Schema支持元素节点顺序的描述,DTD没有提供无序情况的描述,要定义无序必需穷举排列的所有情况。Schema可以利用xs:all来表示无序的情况。
  5. 对命名空间的支持。DTD无法利用XML的命名空间,Schema很好满足命名空间。并且,Schema还提供了include和import两种引用命名空间的方法。

编程题

使用js实现meta标签的内容。

<meta http-equiv="refresh" content="10;url=http://www.njnu.edu.cn">该标签的含义为,页面在10秒后,跳转到http://www.njnu.edu.cn 这里。答案如下:

这里onload事件,表示页面加载完毕后触发,refresh函数

  1. <body onload="refresh()">
  2. </body>

refresh函数如下:

  1. function refresh() {
  2. setTimeout(function() {
  3. window.location.href = "http://www.njnu.edu.cn";
  4. }, 1000 * 10)
  5. }

本题主要考察 setTimeout(单位为毫秒,所以要乘以10)函数 window.location.href重定向,还有事件处理方法。

产生三个互不相等的随机数

先来个完美方案,主要思路是对array进行随机乱序,然后输出前三项就是答案。
乱序思路:
例如数组长度为len,那么Math.random() * len 就是一个区间为[0, len)中的一个值,parseInt后就是[0, len - 1]区间中的一个值, 将这个选择的值j所在位置元素与数组最后一项交换,第二次同理随机选择一个元素,与数组倒数第二项交换。这样循环便完成数组的重新排序。

  1. function getThreeNum() {
  2. var array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
  3. var len = array.length - 1,
  4. temp, j;
  5. for (; len > 0; len--) {
  6. j = parseInt(Math.random() * len); //生成区间
  7. temp = array[len];
  8. array[len] = array[j];
  9. array[j] = temp;
  10. }
  11. return [array[0], array[1], array[2]];
  12. }

再来个,不完美但是好懂的方案
Math.random() * 9 为[0, 9)之间的数。Math.ceil向上取证,后为[0, 9]之间的整数

  1. function getThreeNum() {
  2. var result = [];
  3. //循环是,知道找到三个这样的数,才停止
  4. while(result.length < 3) {
  5. var num = Math.ceil(Math.random() * 9);
  6. //当num不为0,且不在result中出现过(不重复)
  7. if(num !== 0 && result.indexOf(num) === -1) {
  8. result.push(num);
  9. }
  10. }
  11. return result;
  12. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注