C 语言与web技术 2014年A卷  
胡杨考研试题
C 语言部分
不定项选择题
- ABD C语言main函数的函数头可写为:
main (argc,argv)规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。B 选项 char *arge[] 就等于char **arv,指向数组的指针  
- AD “aeb”的形式,表示a乘以10的b次方。其中b必须是整数,a可以是小数。a不能缺失。
 
- D 023&17与运算结果为17,17对相应八进制21
 
- A 自增自减运算符它们只能用于单个的整型或字符型的变量
 
- A A 选项是对的,也只有调用函数的情况下,形参才会被分配临时的存储单元,平时形参是没有村塾单元的。C 选项,程序运行后会被收回。
 
- ABC D 选项结果为8且为long int
 
- A
 
- B NUM 值为8
 
- A 见
附录1 
- A  
 
填空
- 2
 
- 56 (位运算)
 
- x <= y && y <= z
 
- how 'are' you
 
- 321 (这题出现过,%s输出遇到整形0会停止)
 
程序阅读分析
1.写出程序结果
num1=2, num2=1  %d, 1  num3=15, str2_len=7  
(printf 返回值表示被打印的字符数;str中\012是八进制,也就是ASCII码10所对应的字符,即换行,\x67是g,所以str保存的是 换行\345g;%无法单独作为字符输出(因为其特殊性),如果想要输出%则可以用%%的形式)  
2.双向链表
基本内容,自己来吧
3.水仙花数
- i = n / 100;
 
- j = (n - i * 100) / 10;
 
- k = n - i * 100 - j * 10;  
 
- 我同意
i * i * i + j * j * j + k * k * k == n这种写法。主要是因为如果单独变量在==左边,程序员误将==写成了=赋值符号,那么c语言无法检测出错误。if语句将出现不可预知的错误,是很难查到的。如果单独变量在右边这种情况,==被写成=会因为语法错误而无法编译,从而及时提醒程序员修正。 
程序设计
查找mydoc.txt文件中含有teacher和student的段落,输出到edu.txt中
#include <stdio.h>#include <string.h>int main(void) {    FILE *fp;    if((fp = fopen("mydoc.txt", "r+")) == NULL) {        printf("文件不存在");    }else {        FILE * fq;        char word[1000], *p;        p = word;        fq = fopen("edu.txt", "w+");        while(!feof(fp)) {            *p = fgetc(fp);            //碰到换行符,结束字符串,查找字符串中是否有关键字,有的话就输出到edu.txt中,然后回溯指针            if(*p == '\n') {                *(p + 1) = 0;                if(strstr(word, "teacher") !== NULL || strstr(word, "student") !== NULL) {                    fputs(word, fq);                }                p = word;            }else {                p++;            }        }        fclose(fp);        fclose(fq);    }    return 0;}
web 部分
选择题
- C
 
- D input的默认值是写在value中的,textarea不是
 
- A
 
- C
 
- A js数组长度动态改变,不需要制定
 
- B setInterval 是每隔指定的时间,执行一次函数。但是alert是阻塞函数,alert弹出后定时器会被阻塞。只有alert消失,定时器才会恢复执行。所以选B
 
- B 页面单击触发,访问本身value属性用this.value访问
 
- A Math.round 四舍五入
 
- D asp中使用Application + SESSION。别的语言只用SESSION就可以
 
- C VBscript 这个问题回来问我,咱俩看下书结局。网上怎么说的都有。因为VBscript也可以作为服务端语言执行。  
 
简答题
1. Ajax是什么,与传统web应用比有哪些优势
- AJAX即异步JavaScript和XML,是指一种创建交互式网页应用的网页开发技术。AJAX 是一种用于创建快速动态网页的技术。 
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。 
- 使用Javascript向服务器提出请求并处理响应而不阻塞用户; JavaScript 可在不重载页面的情况与Web服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果;AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面;AJAX 可使因特网应用程序更小、更快,更友好。  
 
2. CSS 引入当时有哪儿些
- 使用HTML标签的style属性
 
- 将样式代码写在页面
<style>...</style>标签之中 
- 使用 link标签,引入外部CSS文件
 
- 使用@import引入CSS文件  
 
3. Response 对象功能 ,Response.write与Document.write区别
- Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。Response对象只提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则创建它。若存在,则将自动进行更新。结果返回给客户端浏览器。
 
- response.write ASP服务器脚本输出,document.writ e客户端脚本javascript或vbscript输出   
 
编程题
1. 字符串反转问题
//方法一,很传统的方法  function reverse(str) {    var result = "";    for(var i = str.length - 1; i >= 0; i--) {        result += str[i];    }    return result;}//方法二,快速方法,如果老师对js不太熟,可能不会有好结果   function reverse(str) {    return str.split(",").reverse().join(",");} 
附录
1. fseek和rewind函数
- int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。 
如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。 
- 功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头 
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。 
rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET); 
用 法: void rewind(FILE *stream);