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

第一题

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

#include 
int main()
{
    char ch[80] = "123abcdEFG*&";
    int j;
    puts(ch);
    for(j = 0; ch[j] != '\0'; j++)
    {
         if(ch[j] >= 'A' && ch[j] <= 'Z')
           {
                 ch[j] = ch[j] + 'e' - 'E';
           }
    }
    puts(ch);
    return 0;
}

A: 测字符数组ch的长度

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

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

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

答案及解析 

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

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

第二题

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

t=0;
while(printf("*"))
{
    t++;
    if (t<3)
        break;
}

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

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

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

D: 以上说法都不对

答案及解析 B

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

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

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

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

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

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

最好只有B选项正确

第三题

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

#include 
int main()
{
    char ch;
    while ((ch = getchar()) != '\n')
    {
        if (ch % 2 != 0 && (ch >= 'a' && ch <= 'z'))
            ch = ch - 'a' + 'A';
        putchar(ch);
    }
    printf("\n");
    return 0;
}

A: 1abcedf2df 

B: 1ABCEDF2DF 

C: 1AbCEdf2df 

D: 1aBceDF2DF

答案及解析 C

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

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

然后putchar是依次输出字符;

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

C语言--每日五道选择题--Day12_第1张图片

第四题

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

A:

if(a) 
    printf("%d\n",x); 
else 
    printf("%d\n",y);

B: 

if(a==0) 
    printf("%d\n",y); 
else 
    printf("%d\n",x);

C:

if (a!=0) 
    printf("%d\n",x); 
else 
    printf("%d\n",y);

D: 

if(a==0) 
    printf("%d\n",x); 
else 
    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: 修改外层循环条件例如

for( int i = 0 ; i < MAX1 ; i ++ )
{
    for( int j = 0 ; j < MAX2 ; j ++ )
    {
        if( condition )
        {
            i = MAX1;
            break;
        }
    }
}

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

for( ; symbol != 1 && condition2 ; )
{
    for( ; symbol != 1 && condition3 ; )
    {
        if( condition1 )
            symbol = 1 ;
    }
}

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

for( ; condition2 ; )
{
    for( ; condition3 ; )
    {
        if( condition1 )
        symbol = 1 ;
    }
    if( symbol == 1 )
        break ;
}

答案及解析 ABCD

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

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

你可能感兴趣的:(C语言选择题,c语言,算法,开发语言)