• C语言--每日五道选择题--Day12


    第一题

    1、如下程序的功能是( )

    1. #include
    2. int main()
    3. {
    4. char ch[80] = "123abcdEFG*&";
    5. int j;
    6. puts(ch);
    7. for(j = 0; ch[j] != '\0'; j++)
    8. {
    9. if(ch[j] >= 'A' && ch[j] <= 'Z')
    10. {
    11. ch[j] = ch[j] + 'e' - 'E';
    12. }
    13. }
    14. puts(ch);
    15. return 0;
    16. }

    A: 测字符数组ch的长度

    B: 将数字字符串ch转换成十进制数

    C: 将字符数组ch中的小写字母转换成大写

    D: 将字符数组ch中的大写字母转换成小写

    答案及解析 

    先来解读程序,首先定义了一个char类型的字符串,然后puts,输出这个字符串,再去遍历字符串,如果是大写字母,就转换成小写字母,最后再次打印字符串;

    所以这个程序的功能就是D。

    第二题

    2、对于代码段,下面描述正确的是( )

    1. t=0;
    2. while(printf("*"))
    3. {
    4. t++;
    5. if (t<3)
    6. break;
    7. }

    A: 其中循环控制表达式与0等价 

    B: 其中循环控制表达式与'0'等价

    C: 其中循环控制表达式是不合法的 

    D: 以上说法都不对

    答案及解析 B

    本题问的是while的循环的条件是和什么等价的。

    这里涉及到了printf函数,我们要知道printf函数是有返回值的

    大家不清楚的可以看我的这篇博客🔗http://t.csdnimg.cn/bkwOb

    我们知道printf的返回值是跟我们的打印的字符有关的,打印普通键盘上的字符是,打印几个返回值就是几,还有转义字符,汉字等等,看博客吧,这里不介绍了。

    所以这里面打印的字符只有一个,那返回值就是1,循环条件为真,是恒成立的;

    我们再来看选项,找循环条件为真的,0为假,非0都是真(无论正负);

    最好只有B选项正确

    第三题

    3、以下程序运行时,若输入 1abcedf2df<回车> 输出结果是( )

    1. #include
    2. int main()
    3. {
    4. char ch;
    5. while ((ch = getchar()) != '\n')
    6. {
    7. if (ch % 2 != 0 && (ch >= 'a' && ch <= 'z'))
    8. ch = ch - 'a' + 'A';
    9. putchar(ch);
    10. }
    11. printf("\n");
    12. return 0;
    13. }

    A: 1abcedf2df 

    B: 1ABCEDF2DF 

    C: 1AbCEdf2df 

    D: 1aBceDF2DF

    答案及解析 C

    本题考查的是ASCII值,大小写的转换

    首先while循环条件的表达式是用来输入字符的,我们可以在键盘上输入一堆字符,但是getchar是每次只取一个字符,直到取到回车字符;

    然后putchar是依次输出字符;

    我们知道这些之后就看ASCII值就OK了,这个表在前面发过了,希望大家做题可以保存下来,防止忘记哦!

    第四题

    4、下列条件语句中,功能与其他语句不同的是( )

    A:

    1. if(a)
    2. printf("%d\n",x);
    3. else
    4. printf("%d\n",y);

    B: 

    1. if(a==0)
    2. printf("%d\n",y);
    3. else
    4. printf("%d\n",x);

    C:

    1. if (a!=0)
    2. printf("%d\n",x);
    3. else
    4. printf("%d\n",y);

    D: 

    1. if(a==0)
    2. printf("%d\n",x);
    3. else
    4. printf("%d\n",y);

    答案及解析 D

    这个题就是看a = 0的时候都输出几,所以我们直接默认a为0再来看选项;

    A:a = 0 时;输出y;

    B:a = 0 时;输出y;

    C:a = 0 时;输出y;

    D:a = 0 时;输出x;

    所以最后只有D跟其他三个不同,选D

    第五题

    5、我们知道C语言的 break 语句只能跳出离它最近的一层循环,可是有时候我们需要跳出多层循环,下列跳出多层循环的做法正确的是【多选】( )

    A: 将程序写成函数用return结束函数,便可跳出循环

    B: 修改外层循环条件例如

    1. for( int i = 0 ; i < MAX1 ; i ++ )
    2. {
    3. for( int j = 0 ; j < MAX2 ; j ++ )
    4. {
    5. if( condition )
    6. {
    7. i = MAX1;
    8. break;
    9. }
    10. }
    11. }

    C: 在外层循环设置判断条件例如

    1. for( ; symbol != 1 && condition2 ; )
    2. {
    3. for( ; symbol != 1 && condition3 ; )
    4. {
    5. if( condition1 )
    6. symbol = 1 ;
    7. }
    8. }

    D: 在外层循环后面加入break例如

    1. for( ; condition2 ; )
    2. {
    3. for( ; condition3 ; )
    4. {
    5. if( condition1 )
    6. symbol = 1 ;
    7. }
    8. if( symbol == 1 )
    9. break ;
    10. }

    答案及解析 ABCD

    这里先解释一下上面的是伪代码,condition是条件;

    跳出多层循环可以使用return,也可以使用一些手段,让跳出最外层循环;

  • 相关阅读:
    opencv改变像素点的颜色---------c++
    zookeeper实现分布式锁
    模拟京东快递单号查询 练习
    R的seurat和python的scanpy对比学习
    一些Python高性能使用技巧,让你直接起飞
    修复 爱普生 EPSON L4156 打印机 无法打印,开关 WIFI 墨水 三个灯同时闪烁的问题
    python一点通:coroutine (协程)是什么和重要知识点?
    第十三届蓝桥杯省赛与国赛真题题解大汇总(十四届参赛者必备)
    正大国际期货:2022正大期货在国际市场热度不减的几点原因
    使用Maven创建父子工程
  • 原文地址:https://blog.csdn.net/2302_76941579/article/details/134403039