已知以下程序段的运行结果为“654321”,则下划线所在位置应填入的代码是() #define N 6 int a[N]

题目
单选题
已知以下程序段的运行结果为“654321”,则下划线所在位置应填入的代码是() #define N 6 int a[N]={1,2,3,4,5,6},i,t; for(i=0;i
A

N/2

B

N

C

N/2+1

D

N+1

参考答案和解析
正确答案: D
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序 include define N 5 define M N+1

有以下程序 #include <stdio.h> #define N 5 #define M N+1 #define f(x) (x*M) main() { int i1,i2; i1=f(2) i2=f(1+1); printf("%d %d\n",i1,i2); } 程序的运行结果是______。

A.12 12

B.11 7

C.11 11

D.12 7


正确答案:B
解析:在编译时预处理程序用“替换文本”来替换宏,并用对应的实参来替换“替换文本”。此题中的替换文本分别为: N+1、(x*M)。引用带参的宏名i1=f(2),在经过宏替换后i1=2'N+1=2'5+1=11(注:因为对宏M的替换中N+1没有加括号,所以对宏f(x)的替换文本展开后就变为:x*N+1形式);与上相同i2在引用带参的宏名并替换展开后变为:
  i2=1+1*N+1=1+1*5+1=7,所以答案选B。

第2题:

以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int x[N]) { int i=0; while(i<N) scanf("%d",_________); } 在下划线处应填入的是

A.x+i

B.&x[i+1]

C.x+(i++)

D.&x[++i]


正确答案:C

第3题:

以下程序的输出结果是 _[19]_______ .

#include <stdio.h>

#define M 5

#define N M+M

main()

{ int k;

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

}


正确答案:

 

第4题:

有以下程序 #define N 20 fun(int a[],int n,:Int m) { int i,i; for(i=m; i>n; i--) a[i+1);a[i]; } main() { int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fuu(a,2,9); for(i=0; i<5; i++) printf("%d",a[i]); } 程序运行后的输出结果是

A.10234

B.12344

C.12334

D.12234


正确答案:C
解析:数组名可以作为实参传送,由于数组名本身是一个地址值,因此,在函数中对形参数组元素的修改也会相应改变实参数组的元素.在本题中,函数fun()通过一个for循环,将形参数组a中下标为n到m之间的元素向后移动一位,a[n]元素的值不变。所以主函数调用fun(a,2,9);之后,数组a的内容变成{1,2,3,3,4,5,5,6,7,8,9,10},最后通过for循环输出数组前5个元素为12334。选项C符合题意。

第5题:

有以下程序

#inculde <stdio.h>

#deFine N8

void Fun(int * x,int i)

main()

{ int a[N]={1,2,3,4,5,6,7,8},i;

Fun(a,2);

For(i=0;i<N/2;i++)

{ printF(“%d”,a[i]);}

PrintF(“\n”);

}

程序运行后的输山结果是

A.1313

B.2234

C.3234

D.1234


正确答案:C
解析:fun函数的功能是把数组下标为i的值赋值给a[0],所以执行fun(a,2)后,数组前4个数字为3、2、3、4,故选择C。

第6题:

以下程序运行后,输出结果是define PT5.5define S(x)PT*x*xincludemain(){int a=1,b=

以下程序运行后,输出结果是 #define PT 5.5 #define S(x) PT*x*x #include<stdio.h> main() { int a=1,b=2; printf("%4.1f\n",s(a+b));}

A.49.5

B.9.5

C.22

D.45.0


正确答案:A

第7题:

以下程序的输出结果是【 】。include defineN 5 int fun(int *s,int a,int n) {int j; *s=

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

include <stdio.h>

define N 5

int fun(int *s,int a,int n)

{ int j;

*s=a j=n;

while(a!=s[j]) j-;

return j;

main()

{ int s[N+1]; int k:

for(k=1 ;k<=N;k++) s[k]=k+1:

print f("%d\n",fun(s,4,N));

}


正确答案:3
3 解析:本题主函数中定义了一个一维数组s,并通过for循环给s[1]到s[5]的元素分别赋值为2、3、4、5、6。然后调用 fun函数,使指针变量s与数组s共用同一存储单元。在函数fun中,a=4,n=5,所以while的条件表达式首先判断的是 4!=s[5]是否成立,由于s[5]=6,所以成立,执行j-;接着判断4!=s[4]是否成立,由于s[4]=5,所以成立,执行j-;然后判断4!=s[3]是否成立,由于s[3]=4,所以条件表达式不成立,返回j的值3。

第8题:

以下程序的运行结果是【6】。

#define MAX (a,b)(a>b?a:b)+1

main ()

{ int i=6,j=8,k;

printf ("%d\n",MAX(i,j));

}


正确答案:
9

第9题:

程序中头文件type1.h的内容是( )。 #define N 5 #define M1 N*3 程序如下: #define "type1.h" #define M2 N*2 main() { int i; i=M1+M2; printf("%d\n",i); } 程序编译后运行的输出结果是( )。

A.10

B.20

C.25

D.30


正确答案:C
解析:i=M1+M2=N*3+N*2=5*3+5*2=25。

第10题:

执行以下程序的输出结果是( )。 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。

更多相关问题