niusouti.com

下列程序的输出结果是#include "stdio.h"#define N 3#define M 3void fun(int a[M][N]){printf("%d\n",*(a[1]+2));}main(){int a[M][N];int i,j;for(i=0;i<M;i++)for(j=0;j<N;j++)a[i][j]=i+j-(i-j);fun(a);}A.3B.4C.5D.6

题目

下列程序的输出结果是

#include "stdio.h"

#define N 3

#define M 3

void fun(int a[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{int a[M][N];

int i,j;

for(i=0;i<M;i++)

for(j=0;j<N;j++)

a[i][j]=i+j-(i-j);

fun(a);}

A.3

B.4

C.5

D.6


相似考题
更多“下列程序的输出结果是 #include"stdio.h" #defineN3 #defineM3 voidfun(inta[M][N]) {p ”相关问题
  • 第1题:

    下列程序的输出结果是

    #include "stdio.h"

    #defineM(x,y)x%y

    main()

    { int a,m=12,n=100;

    a=M(n,m);

    printf("%d\n",a--);}

    A.2

    B.3

    C.4

    D.5


    正确答案:C

  • 第2题:

    下列程序的输出结果是______。 includef(char 8s){char *p=s;while(*p!='\0')p++;retur

    下列程序的输出结果是______。# include<stdio.h>f(char 8s){ char *p=s; while(*p!='\0')p++; return(p-s);}main(){ printf("%d\n",f("ABCDEF"));}

    A.3

    B.6

    C.8

    D.0


    正确答案:B

  • 第3题:

    执行以下程序的输出结果是( )。 includedefine M 5define N M+M main(){int k; k=N*N*5;

    执行以下程序的输出结果是( )。

    include<stdio.h>

    define M 5

    define N M+M

    main()

    { int k;

    k=N*N*5;printf(”%d\n" ,k);

    }


    正确答案:55
    55 解析:本题考查的重点是对宏定义的理解。#define指令定义一个标识符和一个串,编译程序在对C源程序处理时.发现该标识符都用该串替换,因此,在语句k=N*N*5将替换成k=M+M*M+M*5后,M被替换成5,从而k=5+5*5+5*5=55。

  • 第4题:

    下列程序的输出结果是()。includeusing namespace std;voidfun(int &r){r*=2;}int

    下列程序的输出结果是( )。 #include<iostream> using namespace std; voidfun(int &r) { r*=2; } int main() { int n=50; fun(n); cout<<n<<end1; return 0; }

    A.0

    B.20

    C.50

    D.100


    正确答案:D
    解析:题中主程序中首先定义整型变量n=50,然后调用函数fun,实际参数为n。函数fun中参数为引用,为地址。即函数中形参的改变会影响实参的值,函数的功能是参数乘以2。

  • 第5题:

    以下程序的输出结果是#include "stdio.h"main(){ int a=065; printf("%d\n",--a);}


    正确答案:52
    本题主要考查数据的格式化输出。程序首先给整型变量a赋一个八进制数的初值,根据输出的格式“%d”我们知道,最终需要输出一个十进制数的结果,因此,首先需要将八进制数转换为十进制数,这个过程我们可以通过二进制数来实现,即首先将八进制转换为二进制,然后将二进制转换为十进制。
    由于2的3次方等于8,因此,一位八进制数对应于三位二进制数,因此,65对应的二进制数为110101,其中6对应前面的110,而5对应后面的101,再将这个二进制数转换为十进制为32+16+4+1=53,再自减1后输出。因此,本题程序的输出结果为52。

  • 第6题:

    有以下程序: include main( ){ int m =12,n=34;printf( "% d% d" ,m++ , ++n);printf(

    有以下程序: #include <stdio.h>main( ){ int m =12,n=34; printf( "% d% d" ,m++ , ++n); printf("% d% d \n" ,n ++ , ++m); }程序运行后的输出结果是( )。

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:程序执行printf("%d%d",m++,++n);后,输出的是m和n+1的值1235,然后m+1=13,再执行printf("%d%d\n",n++,++m);输出n和m+1的值3514,之后n+1=36。这里要注意的是m++和++m的区别:m++是先输出m的值,再执行m++;++m是先执行++m,再输出m的值。

  • 第7题:

    下面程序的输出结果是()。includemain(){char a[]={'a','b','c','d','f','g'},*p;p=a;p

    下面程序的输出结果是( )。 #include<stdio.h> main() {char a[]={'a','b','c','d','f','g'},*p; p=a; printf("%c\n",*p+4); }

    A.a

    B.b

    C.e

    D.f


    正确答案:C
    解析:“*”号的优先级比“+”的优先级高,所以先执行“*p”;指针p指向的是数组的首地址,因此*p=a,再加4得'e'。

  • 第8题:

    下列程序的输出结果是()。 include include main() {char a[]="\n123\\";pr

    下列程序的输出结果是( )。 #include<stdio.h> #include<string.h> main() { char a[]="\n123\\"; printf ("%d,%d\n",strlen(a),sizeof(a)); }

    A.5,6

    B.5,5

    C.6,6

    D.6,5


    正确答案:A
    解析:转义字符'\n'表示换行,'\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\0'),函数sizeof()统计字符串所占的字节数。

  • 第9题:

    以下程序的输出结果是includemain(){ inta=15/b=21,m=0;switch(a%3){ case0:m++;break

    以下程序的输出结果是 #include<stdio.h> main() { int a=15/b=21,m=0; switch(a%3) { case0:m++;break; case 1:m ++; switch(b%2) { default:m++; case 0:m ++;break;}} printf("%d\n",m);}

    A.1

    B.2

    C.3

    D.4


    正确答案:A
    解析:switch语句的条件是“a%3=15%3=0”,所以执行case0后面的语句,m++;m=1,然后就执行break,跳出switch语句,所以最后输出的m的值为1。注意:switch嵌套语句的使用。

  • 第10题:

    下列程序的输出结果是()。 include include main() {char a[]="\n123\\"; p

    下列程序的输出结果是( )。

    #include<stdio.h>

    #include<string.h>

    main()

    { char a[]="\n123\\";

    printf("%d,%d\n",strlen(A) ,sizeof(A) );

    }

    A.5,6

    B.5,5

    C.6,6

    D.6,5


    正确答案:A
    解析:转义字符'\n'表示换行,'\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志 ('\0'),函数sizeof()统计字符串所占的字节数。

  • 第11题:

    下列程序的输出结果是______。include main(){printf("%d\n",NULL);}A.不确定(因变量无

    下列程序的输出结果是______。#include <stdio.h>main (){ printf("%d\n",NULL);}

    A.不确定(因变量无定义)

    B.0

    C.-1

    D.1


    正确答案:B

  • 第12题:

    以下程序的输出结果是【 】。 include main() { intn=12345, d; while(n!=O){d=n%10; pr

    以下程序的输出结果是【 】。

    include <stdio.h>

    main()

    { int n=12345, d;

    while(n!=O){ d=n%10; printf("%d",d); n/=10; }


    正确答案:54321
    54321 解析:本题考查的知识点是:%运算和/运算。%运算要求两个运算分量均为整数,该运算计算两个整数相除得到的余数,该操作也叫做求模。所以,在while循环中, d=n%10;语句每次求得的结果是n个位上的数值,例如12345÷10所得的余数就是个位上的5。接下来输出得到的个位数字d,然后执行n/=10;语句,该语句等价于n=n/10;。在C语言中,如果/运算的两个运算分量都是整数,那所得的结果也截尾取整,所以 12345/10=1234,即n=n/10;语句的作用是让n截去个位上的数字。由此可知,随着while循环的继续,n依次为12345、1234、123、12、1,而每次输出n的个位数字将为5、 4、3、2、1。故本题应填54321。

  • 第13题:

    下面程序:#include“stdio.h“#includestdlib.hfut(int**s,intp[2][3]){**s=p[1][1];}voidmain(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(printf(“%d\n“,*p);getch();}输出结果是()

    A、1

    B、7

    C、9

    D、11


    参考答案:C

  • 第14题:

    下面程序的输出结果是______。 include main() {char *p[]="BOOL","OPK","H","SP"};int

    下面程序的输出结果是______。 #include<stdio.h> main() { char *p[]="BOOL","OPK","H","SP"}; int i; for(i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n"); }

    A.SO

    B.SP

    C.SPOPK

    D.SHOB


    正确答案:A
    解析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第—个字符。在for循环中,i的初值为3,那么输出的第—个字符为“S”,接着两次i-,则输出的值为*p[1],即字符“O”,所以本题的输出为SO。

  • 第15题:

    下列程序的输出结果是【 】。include void swap(int *a, int *B) { int *t; t=a;a=b;b=t;

    下列程序的输出结果是【 】。

    include <stdio.h>

    void swap(int *a, int *B)

    {

    int *t;

    t=a;a=b;b=t;

    }

    main()

    {

    int i=3,j=5,*p=&i,*q=&j;

    swap(p,q);printf("%d %d\n",*p,*q);

    }


    正确答案:3 5
    3 5 解析:本题考查函数中实参和形参的传递,在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但没有返回值,故最终的输出结果为3 5。

  • 第16题:

    下列程序的输出结果是 #include"stdio.h" #define M(x,y) x%y main() { int a,m=12,n=100; a=M(n,m); printf("%d\n",a--);}

    A.2

    B.3

    C.4

    D.5


    正确答案:C
    解析: 带参数的宏定义命令行形式如下:
    #define宏名(形参表)替换文本
    在编译的时候编译预处理程序用“替换文本”来替换宏,即M(n,m)被替换为n%m,之后计算,将计算的结果赋给a。注意,宏替换是在编译时由预处理程序完成的,宏替换不占用运行的时间,而函数调用是在程序运行时进行的,在函数的调用过程中需要占用一系列的处理时间。

  • 第17题:

    下列程序舶输出结果是【 】。include main() {int a[5]={2,4,6,8,10},*p;p=a;p++;printf("

    下列程序舶输出结果是【 】。

    include <stdio.h>

    main()

    {

    int a[5]={2,4,6,8,10},*p;

    p=a;p++;

    printf("%d",*p);

    }


    正确答案:4
    4 解析:题目中定义了一个数组和指针,接着将数组的首地址给了指针,即指针p指向数组a的第一个元素,通过p++,p指向了数组a的第二个元素,所以输出结果为4。

  • 第18题:

    下列程序的输出结果是()。includeincludemain(){char a[]="\n123\\";printf

    下列程序的输出结果是( )。 #include<stdio.h> #include<string.h> main() { char a[]="\n123\\"; printf("%d,%d\n",strlen(a),sizeof(a)); }

    A.5,6

    B.5,5

    C.6,6

    D.6,5


    正确答案:A
    解析: 转义字符'\n'表示换行,'\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\0'),函数sizeof()统计字符串所占的字节数。

  • 第19题:

    有以下程序:includemain(){inta[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n

    有以下程序: #include<stdio.h> main() {inta[]={1,2,3,4},y,*p=&a[3]; --p;y=*p;printf("y=%d\n",y); } 程序的运行结果是( )。

    A.y=0

    B.y=1

    C.y=2

    D.y=3


    正确答案:D

  • 第20题:

    下面程序的输出结果是 ( ) include include { char * p1="abc" , *

    下面程序的输出结果是 ( ) # include<stdio.h> # include<string.h> { char * p1="abc" , * p2=" ABC ",str[50]="xyz"; strcpy(str+2.strcat (pi,p2)); printf("%s\n",str);}

    A.xyzabcAB

    B.zabcABC

    C.yzabcABC

    D.xycbcABC


    正确答案:D

  • 第21题:

    下列程序的输出结果是()。 include main() {int a=4; printf("%d\n",(a+=a-=a*A) ); }A

    下列程序的输出结果是( )。

    #include<stdio.h>

    main()

    { int a=4;

    printf("%d\n",(a+=a-=a*A) );

    }

    A.-8

    B.14

    C.0

    D.-24


    正确答案:D
    解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a=a-a*a=-12);②第二个表达式 (a+=a-=a*a)=(a=a+a=-24)。

  • 第22题:

    下列程序的输出结果是()。 include main() {int a=4;print f("%d\n", (a+=a-=a*a)); }A

    下列程序的输出结果是( )。 #include<stdio.h> main() { int a=4; print f("%d\n", (a+=a-=a*a)); }

    A.-8

    B.14

    C.0

    D.-24


    正确答案:D
    解析:表达式a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:①第一个表达式(a-=a*a)=(a-a-a*a=-2):②第二个表达式 (a+=a-=a*a)=(a=a+a=-24)。

  • 第23题:

    阅读下面语句,则程序的执行结果是______。include"stdio.h"main(){ inta=-1,b=1,k;if((++a<0)&

    阅读下面语句,则程序的执行结果是______。

    include"stdio.h"

    main()

    { inta=-1,b=1,k;

    if((++a<0)&&! (b--<=0))

    printf("%d,%d\n",a,b);

    else printf("%d,%d\n",b,a);}


    正确答案:
    与运算两边的语句必须同时为真时,结果才为真。当执行完if(++a0)&&!(b--=0))时,a,b的值已经发生了变化。

  • 第24题:

    单选题
    有以下程序: #include  void fun(int *p) {  printf("%d",p[5]); } main() {  int a[10]={1,2,3,4,5,6,7,8,9,10};  fun(&a[3]); } 程序运行后的输出结果是(  )。
    A

    5

    B

    6

    C

    8

    D

    9


    正确答案: C
    解析:
    fun函数的功能是在屏幕上打印输入参数p后的第五个元素。在main中,a[3]的值为4,&a[3]即为取a[3]所指内容的地址,即指针p指向a[3]的地址,故p[5]应为a[3+5]=a[8]=9。答案选择D选项。