当前位置: 首页 > 计算机 > 问题详情
问题

若有以下程序 #include <stdio.h> int a[]={2 4 6 8}; main() { int i; int *p=a; for(i=0

若有以下程序

#include <stdio.h>

int a[]={2,4,6,8};

main()

{ int i;

int *p=a;

for(i=0;i<4;i++)a[i]=*p;

printf("%d\n",a[2]);}

上面程序的输出结果是

A.6

B.8

C.4

D.2

发布时间:2024-05-06
参考答案

正确答案:D
解析:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

相关问题
  • 1. 若有下面的函数调用:fun(a+b 3 max(n-1 b));其中实参

    1 若有下面的函数调用:fun(a+b, 3,max(n-1, b));其中实参的个数是()A)3B)4C)5D)6

    答案解析
  • 若有定义 int x y; 并已正确给变量赋值 则以下选项中与表达

    若有定义 int x,y; 并已正确给变量赋值,则以下选项中与表达式 (x-y)?(x++) : (y++) 中的条件表达式 (x-y) 等价的是A)(x-y>0)B)(x-y<0)C)(x-y<0||x-y>0)D)(x-y==0)

    答案解析
  • 若有以下定义和语句union data{ int i; char c; float f;

    若有以下定义和语句union data{ int i; char c; float f; } x;int y;则以下语句正确的是A)x=10 5;B)x c=101;C)y=x;D)printf( "%d n ",x);

    答案解析
  • 在 16 位编译系统上 若有定义 int a[]={10 20 30} *p=

    在 16 位编译系统上,若有定义 int a[]={10,20,30}, *p=&a; ,当执行 p++; 后,下列说法错误的是A)p 向高地址移了一个字节B)p 向高地址移了一

    答案解析
  • 若有定义: int w[3][5]; 则以下不能正确表示该数组元素的表

    若有定义: int w[3][5]; ,则以下不能正确表示该数组元素的表达式是A)*(*w+3)B)*(w+1)[4]C)*(*(w+1))D)*(&w[0][0]+1)

    答案解析
  • 若有以下函数首部int fun(double x[10] int *n)则下面针对

    若有以下函数首部int fun(double x[10], int *n)则下面针对此函数的函数声明语句中正确的是A)int fun(double x, int *n);B)int fun(double ,

    答案解析
  • 若有定义语句: int k[2][3] *pk[3]; 则以下语句中正确的

    若有定义语句: int k[2][3],*pk[3]; , 则以下语句中正确的是A ) pk=k;B ) pk[0]=&k[1][2];C ) pk=k[0];D ) pk[1]=k;

    答案解析
  • 若有定义 :char *x="abcdefghi"; 以下选项中正确运用了 st

    若有定义 :char *x="abcdefghi"; ,以下选项中正确运用了 strcpy 函数的是A)char y[10]; strcpy(y,x[4]);B)char y[10]; strcpy(++y,&x[1]);C)ch

    答案解析
  • 若有定义int a[]=new int[2][3];则数组第1个下标的可用范围是(

    若有定义int a[]=new int[2][3];则数组第1个下标的可用范围是()A、1到2B、0到2C、1D、0到1

    答案解析
  • 若有int x=10;char c=&#x27;d&#x27;;则表达式a+c的值的类型是

    若有int x=10;char c= "d ";则表达式a+c的值的类型是()。A charB intC floatD byte

    答案解析

最新问题

Copyright © 2016-2023 114题库网(114158.com)All Rights Reserved.  免责声明 豫ICP备19007809号-5