Loading

期末程序设计试题

  转瞬之间,一个学期已经结束了。看着室友们一个个离开,寝室也空荡了起来。心也开始静了下来,这不坐下来写写博客啦。

学习真的是很可怕的东西呢,有时候听个讲座什么的,感觉心血来潮了就给自已定下个计划,然后说是每天这样做一点,等以后就会有成果了。然而呢,像这样的我,三分钟热度,过了一阵就觉得时间不够了,总有这样那样的事情阻拦着计划,最后的结果是一点事 也没有,可怕的是时间却过去了。

  好吧,我好像题目不是写期末感想来着,还是回归到正题吧。一个学期下来了,学校传统的检验一个学期来学习情况的常规方式就是考试了,当然为了让同学们能够有个愉快的假期和给家长一个安心的交待。老师们呢,往往是笔下留情,题目放点水什么的。然而吧,尽管是这样还是有同学是不给老师请放心的, Example me。

  到此,分数好像不怎么重要了。主要是通过题目看出问题,也从题目中找出自己的知识空白,也就是一个查漏补缺的过程啦。我们这次的 5 个选择题的得分情况让老师大跌眼镜,开始怀疑起了人生,对此我们直呼 老师,都是我们的不好,我们的锅。。。。 来看看是什么锅吧。

 

 

  来, 看第一题。考试的时候没有电脑,只有靠脑子了。考完了用电脑敲出来一运行就出结果了。 如下 

#include<stdio.h>
int main(void)
{
    int a;
    if(a)
        printf("The is if(a)\n");
     if(!a == 0)
        printf("The is if(!a == 0)\n");
     if(a != 0)
        printf("The is if(a != 0)\n");
     if(a > 0 || a < 0)
        printf("The is if(a > 0 || a < 0)\n");
     if(a == !0)
        printf("The is if(a == !0");
}

  结果就出来了,只有 if(a == !0) printf("The is if(a == !0) 这个语句没有通过,那么此答案是 A 了,那为什么呢?

   判断依据以 “0 为假, 1为真。" 为原则,然后 a = 0 或 a = 1 分别代入表达式判断。好吧。。。根据这个思路的话那么就全是同样的逻辑值了。我自己没有绕过来,,,,这个就自己去慢慢想吧,我不怎么会。

  第二题 同样也是用电脑一运行就可以知道答案了。

#include<stdio.h>
int main(void)
{
    int x = 0, y = 6;
    do
    {
        while(-- y)
            x ++;
    }while(y --);
    printf("%d %d", x, y);
}

  答案是 C 无疑了。

   有个容易忽视的点就是在 do {while(--y) x++;}while(y--) 语句中,可能会以为在 do {} 语句中执行一次后就跳出至 while(--y) 其实不是的因为 do{} 语句内有 while 存在,那么while语句就会循环执行直至不满足条件。此处就是当 y = 0 时就停止循环,又 --y 是先进行 -1 操作后再进行判断,那么这个计数器 x 值就为 5 了。此时 x = 5 、y = 0. 再经过 while(y--) 时, x = 0 、 y = -1 ,因此答案为 C。

  第三题,B选项 '97' 为两个字符,使用 ' ' 本身就不对了、 C选项 函数 void sub(int k, char ch) 没有返回值,因此 n=sub(3,'a'); 这个赋值操作是错误的。D选项就更明显了,"a"是就是表示字符串而不是字符,那么结束结束尾存在结束标志符 \n .

  第四题,就是一个简单的客观题啦,像这样的列表就直接最后一个数值用于操作,因此 5+2=7 啦,C无疑了。

  第五题,细节基础问题,B选项写法错误,字符串不能直接 = 赋值操作,需要 string.h 头文件提供的 strcpy 函数。D选项大概和B选项差不多吧,赋值操作错误。C选项,此所述应为一个链表,那么这个 p 应该是个指针,而此数组名就为此数组的首元素地址,因此该写法错误。

 

  好了,这么简单呀, 但是整个情况来看得分总体有点低,部分对一个呢,大多数就全军覆灭了,,惭愧啦。以上为老师讲课时所做解释,可能存在错误,望指出。

   

posted @ 2018-03-12 20:16  notfound945  阅读(150)  评论(0)    收藏  举报