[关闭]
@caelumtian 2017-09-08T17:20:57.000000Z 字数 3489 阅读 656

C 语言与web技术 2015年A卷

胡杨考研试题

C 语言部分

不定项选择

  1. A #define 宏名 字符串或者字符,宏的本质就只一个字符序列,并没有分配空间。如果是常量的话,PI就有了内存空间。这与宏的性质不符。
  2. C %o表示八进制输出,23&027 &作按位与运算,我们知道027是八进制就是23。所以相当于23&23,为23。所以结果为23转换为8进制输出,为23
  3. BC A中的printf不行,这是关键字
  4. ACD ACD都是有意义的指针运算,例如:=为指针变量的赋值,-为数组计算两个下标相差的距离(除以数据类型打下),<判断位置。就+没有任何实际意义(两个地址想加后的地址,指向哪儿我们完全不知道),但是可以进行运算。
  5. CD 二位数组指针,不懂的话,去115有本书讲的很清楚
  6. B 首先我们知道,四则运算符是比比较运算符高的。!(x + y)是 0 (!取真假 x + y为7,所以整体为假 0) 0 + z - 1为4。接下来计算 y + z / 2为6。这样四则运算算完,开始看&&运算, 4 && 6 ,因为两边都为真,所以结果是真,即为1。(题外话,js里面结果是6哦,这里和c语言对&&的解释有差别)
  7. B 注意,0位数字,所以%s输出的时候,到这里就停了
  8. ABD
  9. A feof是C语言标准库函数函数,其原型在stdio.h中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0,文件结束符只能被clearerr()清除。
  10. C 详情见附录1

填空

  1. (year % 4 == 0 && year % 400 != 0) ? 366 : 365
  2. #define V(r) 4 / 3 * 3.1415926 * r * r * r
  3. 0
  4. 4 位运算 15 二进制表示为 1111。15 >> 3 表示二进制右移3位,为0001。<< 2左移两位为 0100,即为4。(真要是考位运算你可得好好看看)
  5. y = x < 0 ? 1 : (x == 0) ? 0 : -1

程序阅读分析

1. 找出100到1000的素数

  1. 取得m的平方根取整,判断素数就到这就可以
  2. for(i = 2; i <= k; i++)改为for(i = 3; i <=k; i+=2),这样避免偶数判断,提高效率。 见附录2

十进制格式化字符串打印

这题我不太确定啊,仅提供个人意见:
1. n = n * -1
2. i = n / 10;
3. n % 10

说实话,没太明白什么意思这道题

不完善的函数fn

  1. strcmp 字符串比较函数
  2. 有这么几个问题细节要注意:
    • 做减法的时候要转换类型(unsigned)(*str1++) - (unsigned)(*str2++) 这是因为传入的参数为有符号数,有符号字符值的范围是-128~127,无符号字符值的范围是0~255,而字符串的ASCII没有负值,若不转化为无符号数这回在减法实现时出现错误。例如str1的值为1,str2的值为255。
    • 这个函数没有判断参数为NULL时的情况,所以当传入NULL时程序会崩溃。
    • 无论两个字符串是什么样,函数最多比较到其中一个字符串遇到结束符'/0'为止,就能得出结果, 不需要全比较晚,浪费时间。

双向链表

链表插入而已,不写了,这个要是不会,我就气死了。

程序设计

这题这么做:
当有两个点时:1条
当有三个点时:3条 (1 + 2)
当有四个点时:6条 (1 + 2 + 3)
当有五个点时:10条(1 + 2 + 3 + 4)
其实呢N个点,就是 C2N

递归求数列和呗, 我是这么想的

  1. int getLineSum(n) {
  2. if(!n)
  3. return 0;
  4. else
  5. return n + getLineSum(n - 1);
  6. }
  7. int main(void) {
  8. int n;
  9. scanf("%d", &n);
  10. printf("%d", getLineSum(n));
  11. }

web 部分

填空题

  1. (1) www (2) njnu.edu.cn (3)服务器名称
  2. link
  3. name
  4. (1)x<sup>y</sup> (2)x<sub>2</sub>
  5. (1)frameset (2)frame
  6. "21&"

选择题

  1. A
  2. C
  3. B
  4. C
  5. D
  6. A
  7. B schema和XML的却别,见16年B卷简答题
  8. A 注意是_blank,答案是错的
  9. B
  10. B

简答题

  1. rows 属性规定 textarea 的可见高度。cols 属性规定 textarea 的可见宽度。并不限定只能输入文字的多少。
  2. border,padding,text-align,background
  3. 静态网页是指不应用程序而直接或间接制作成html的网页,这种网页的内容是固定的。 动态网页是指使用网页脚本语言,比如php等,通过脚本将网站内容动态存储到数据库,用户访问网站是通过读取数据库来动态生成网页的方法。网站上主要是一些框架基础,网页的内容大都存储在数据库中。 静态网页和动态网页最大的区别,就是网页是固定内容还是可在线更新内容。
  4. 统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志

编程题

1. 表单验证代码补全

  1. function checkinput() {
  2. //获取输入框的引用
  3. var ele = document.getElementsByTagName("input")[0];
  4. //获取输入框的内容
  5. var val = ele.value;
  6. //正则验证输入的是否为纯数字
  7. if(/^[0-9]+$/.test(val)) {
  8. //提交表单
  9. document.forms[0].submit();
  10. }else {
  11. alert("必须输入纯数字");
  12. //让输入框重新获得焦点
  13. ele.focus();
  14. }
  15. }

2. 倒计时程序

  1. function countDown(endTime) {
  2. var interval;
  3. var ele = document.getElementById("count");
  4. function getRTime() {
  5. var nowTime = new Date();
  6. var t = endTime.getTime() - nowTime.getTime();
  7. if (t <= 0) {
  8. clearInterval(interval);
  9. return;
  10. }
  11. var h = String(Math.floor(t / 1000 / 60 / 60 % 24));
  12. var m = String(Math.floor(t / 1000 / 60 % 60));
  13. var s = String(Math.floor(t / 1000 % 60));
  14. h = h.length === 1 ? "0" + h : h;
  15. m = m.length === 1 ? "0" + m : m;
  16. s = s.length === 1 ? "0" + s : s;
  17. ele.value = h + m + s;
  18. }
  19. interval = setInterval(getRTime, 1000);
  20. }

附录

1. 枚举常见概念

  1. 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量
  2. 枚举元素不是变量,而是常数,因此枚举元素又称为枚举常量。因为是常量,所以不能对枚举元素进行赋值。
  3. 枚举元素作为常量,它们是有值的,C 语言在编译时按定义的顺序使它们的值为,1,2,…
  4. 一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值。枚举元素是直接可以赋值给枚举变量的

2. 提高求素数的效率

  1. 要避免冗余的求余计算的计算次数,这样在数字足够大的时候更能体现更高的计算效率,

    • 分母排除偶数,可以减少一半的计算量.具体做法是改+1递增为从第二个素数3开始+2递增;
    • 筛选求余计算的分子,而根据素数的定义,只要不被小于分母的素数整除即可,​设置最大求余分子计算至分母平方根+1;如此可以避免对每个数进行求余,可以减少大量的冗余计算
    • 快速淘汰合数,从最小素数开始计算,能更快更有效率
  2. 找出一个素数,然后赋值,可以避免存储无用的数值,利用找出的素数作为分子进行计算,可以进一步提高效率。

3. url 格式

一个统一资源定位器(URL) 用于定位万维网上的文档。
一个网页地址实例: http://www.runoob.com/html/html-tutorial.html 语法规则:
scheme://host.domain:port/path/filename
说明:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注