本文介绍: 1. 下面程序的值为()A:11B:9。

第一题

1. 下面程序 i 的值为()

int main()
{
    int i = 10;
    int j = 0;
    if (j = 0)
        i++; 
    else
        i--;        
    return 0;
}

A:11

B:9

答案解析 B

if语句中的条件判断赋值语句的时候,因为赋值语句返回值是右操作数;

比如 if(j = 1) 相当于 if(1),if(j = 0) 相当于if(0)

所以在了解这里之后,就可以得出答案

第二题(注意细节

2. 下面程序输出结果为()

#include <stdio.h>
void fun(int *s) 
{
    static int j = 0;

    do 
    {
        s[j] += s[j + 1];
    } while (++j < 2);
}
int main() 
{
    int i, a[10] = {1, 2, 3, 4, 5};

    for (i = 1; i < 3; i++)
        fun(a);

    for (i = 1; i < 5; i++)
        printf("%d", a[i]);
    printf("n");

    return 0;
}

A:34756

B:5745

C:5795

D:35745

答案及解析 B

 本题考查的是局部static变量和do-while循环的认识;

局部static变量,只会初始化一次,因为是存在静态区的,值不会被刷新

do-while循环,先执行语句,再判断条件

所以我们这里进入2次fun函数最后打印的时候是打印下标为1~4的哦,这里要注意;

在fun函数内部

一次进入函数:先初始化一下static变量j = 0;之后进入两次do-while循环;j = 2的时候循环结束,函数也结束

第二次进入函数:不会执行初始化j,虽然j = 2;但是先执行do-while内部的语句,再判断;

最后数组元素分别为:3 5 7 4 5

输出结果为 5 7 4 5;

第三

3. 下列代码的结果是

#include<stdio.h&gt;
int main() 
{ 
    ina[5] = {1, 2, 3, 4, 5}; 
    int *ptr = (int *)(&amp;a + 1); 
    printf("%d,%d", *(a + 1), *(ptr - 1)); 
    return 0;
}

A:3,5

B:2,4

C:2,5

D:3,4

答案及解析 B

本题是考查你对指针数组的认识,我们来一步一步分析

数组名代表首元素地址,但是有2个例外:sizeof(数组名),&amp;数组名,数组名表示个数

在了解上面的知识之后:

先看&amp;a这里表示的取整个数组的地址

对指针的加法,移动字节数是根据这个指针指向内容数据类型算的,数据类型是什么,对指针加的数字就乘这个内容数据类型字节数;

&amp;a指向内容是整个数组,数组数据类型是int [5]

所以&amp;a+1,是移动的整个数组的大小,也就是1 * (5 * 4)字节移动的也就是整个数组的大小

但是这个指针被强制转换为int*类型,也就是指向内容数据类型为int,加减就不一样了;

则ptr – 1,就是减小一个int类型,4个字节,而不是整个数组的大小了;

第四题

4. 执行下面程序段后, x 的值是( )

int a = 14, b = 15, x;
char c = 'A';
x = (a && b) && (c < 'B');

A:true

B:false

C:0

D:1

答案及解析 

首先我们来看x = (a&&b)&&(c < ‘B’)

&&是与操作符,是双目操作符结合性是从左到右;

我们要知道条件判断操作符,真为1,假为0

先算右边操作数(a&&b)

因为a = 14,b = 15 ;上面就转换为(14 && 15)为真;

所以1 && (c < ‘B’)

右边c = ‘A’ ,c < ‘B’成立,为真;

最后x = 1 && 1;

所以都为1,为真,x = 1;

第五题

5. while 循环语句的循环体至少执行一次,请问这句话的说法是正确的吗?

A:正确

B:错误

答案及解析 B

只有do-while才会至少执行一次,先执行语句后判断;

原文地址:https://blog.csdn.net/2302_76941579/article/details/134721595

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_20012.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注