02600C语言程序设计

以下for语句构成的循环执行的次数是()     #include      #define N 2  #define M N+l  #define NUM(M+1)*M/2      main( )  {int i,n=0;  for(i=1;i<=NUM;i++)        {n++;printf(“%d”,n);}        printf(“/n”);} A、5B、6C、8D、9

题目

以下for语句构成的循环执行的次数是()     #include      #define N 2  #define M N+l  #define NUM(M+1)*M/2      main( )  {int i,n=0;  for(i=1;i<=NUM;i++)        {n++;printf(“%d”,n);}        printf(“/n”);} 

  • A、5
  • B、6
  • C、8
  • D、9
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第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题:

下列程序中的for循环执行的次数是______。 #define N 2 #define M N+1 #define NUM 2*M+1 #main ( ) { int i; for (i=1;i<=NUM;i++) printf ("%d\n", i); }

A.5

B.6

C.7

D.8


正确答案:B

第3题:

以下程序中函数 fun 的功能是:统计 person 所指结构体数组中所有性别 (sex) 为 M 的记录的个数 , 存入变量 n 中,并做为函数值返回。请填空:

#include <stdio.h>

#define N 3

typedef struct

{ int num;char nam[10]; char sex;} SS;

int fun(SS person[])

{ int i,n=0;

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

if( 【 14 】 =='M') n++;

return n;

}

main()

{ SS W[N]={{1, "AA", 'F'},{2, "BB",'M'},{3,"CC", 'M'}}; int n;

n=fun(W); printf("n=%d\n",n);

}


正确答案:

第4题:

有如下程序includedefine N2define M N+1define NUM 2*M+1void main( ){int i;f

有如下程序 #include<iostream.h> #define N2 #define M N+1 #define NUM 2*M+1 void main( ) { int i; for(i=1,i<= NUM;i++) cout<<i;} 该程序中的for循环执行的次数是

A.5

B.6

C.7

D.8


正确答案:B
解析:这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原样替换,得到NUM的形式为2*N+1+1(千万不要随意把给N+1加上小括号,使NUM变为2* (N+1)+1,这就是宏名和变量名之间的区别)。

第5题:

以下程序中的for循环执行的次数是( )。include "stdio.h"define N 2define M N+1define NUM (M+1)*M/2main(){ int i,n=0; for(i=1;i<=NUM;i++)printf("n");}

A.5

B.6

C.8

D.9


答案:C

第6题:

该程序运行的结果是( )。

#include

#include

#define M 100

void fun(int m, int *a, int *n)

{ int i,j=0;

for(i=1;i<=m;i++)

if(i%7==0||i==0)

a[j++]=i;

*n=j;}

main()

{ int aa[M],n,k;

clrscr();

fun(10,aa,&n);

for(k=0;k

if((k+1) ==0)printf("\n");

else printf("M",aa[k]);

printf("\n");}


正确答案:
7

第7题:

下列程序的输出结果是 #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


正确答案:B
解析:若有以下定义:inta[3][4],i,j;且当0=i3,0=j4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

第8题:

有如下程序:

#define N 2

#define M N+1

#define NUM 2*M+1

main()

{

int i;

for(i=1;i<=NUM;i++)printf("%d\n",i);

}

该程序中的for循环执行的次数是

A.5

B.6

C.7

D.8


正确答案:B

第9题:

有如下程序: # define N 2 # define M N+1 # define NUM 2*M+1 # main() { int i; for(i=1; i<=NUM; i++) printf("% d\n", i); } 该程序中的for循环执行的次数是______。

A.5

B.6

C.7

D.8


正确答案:B
解析:本题考查宏定义的使用。本题定义了3个宏名分别是N、M和NUM。对NUM展开得2*M+1=2*N+1+1=2×2+1+1=6。因此正确答案是B。

第10题:

有如下程序: #define N2 #define MN+1 #define NUM2*M+1 main() { int i; for(i=1;i<=NUM;i++)printf("%d\n",i);} 该程序中的for循环执行的次数是

A.5

B.6

C.7

D.8


正确答案:B
解析:该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原封不动地代进去,得到NUM的形式为2*N+1+1(千万不要随意给N+1加上小括号,使NUM变为2。(N+1)+1,这就是宏名和变量名之间的区别),在将N代进去,得到NUM的值为6。

更多相关问题