单选题设有定义:struct{int n;float x;}s[2],m[2]={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是(  )。A s[0]=m[1];B s=m;C s.n=m.n;D s[2].x=m[2].x;

题目
单选题
设有定义:struct{int n;float x;}s[2],m[2]={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是(  )。
A

s[0]=m[1];

B

s=m;

C

s.n=m.n;

D

s[2].x=m[2].x;

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

执行下述程序后,输出的结果是( )。

include<stdio.h>

define S(X)X*X

void main

{ int a=9,k=3,m=2;

a/=S(k+m)/s(k+m);

printf("%d",a);

}

A.1

B.4

C.9

D.0


正确答案:D

本题j=要是考查带参数的宏的定义,过程如下:int a=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。

第2题:

设有如下程序: fun(float*p1,int n,float*p2,int m,float*s) {int i; *s=0.0; for(i=0;i<n;i++)*s+=*p1++; for(i=0;i<m;i++)*s+=*p2++; } main() { float a[]={1.1,2.2},b[]={1.0,2.0,3.0),*s=a; fun(a,2,b,3,s); printf("%f\n",*s); } 上面程序的输出结果是______。

A.8.2

B.9.3

C.3.3

D.1.1


正确答案:A
解析:实参指针变量s指向数组a的第一个元素,在函数fun中首先将s所指数组a的第一个元素赋值为0.0,然后将数组a和b中的元素值依次累加到数组a的第一个元素中。

第3题:

以下程序的输出结果是( )。f(int b[],int m,int n){int i,s=0;for(i=m;i<n;i=i+2)s=s+b[i];return s;}void main(){int x,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("%d\n",x);}A.10 B.18 C.8 D.15


正确答案:A
函数的功能是对数组某一区域内的元素隔个求和;a[3]=4,所以从4开始进行隔个求和,a[7]=8,即对4到8的元素隔个求和,4+6=10。

第4题:

以下程序的输出结果是______。 main() { union { int i[2]; long j; char m[4]; }r,*s=&r; s->i[0]=0x409; s->i[1]=0x407; printf("%d\n",s->m[0]); }

A.9

B.49

C.7

D.47


正确答案:A

第5题:

以下程序的输出结果是 f(int b[] ,int m, int n) { int i,s=0; for (i=m; i<n; i=i+2) s=s+b [i]; return s; } main ( ) { int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf ( "%d\n", x); }

A.10

B.18

C.8

D.15


正确答案:A
解析:本题考核的知识点是数组名作为函数参数的应用.在malii()函数中定义了一个变量x,以及一个有9个元素的数组a,并且每个元素分别赋初值为1、2、3、4、5、6、7、8和9.执行函数调用f(a,3,7),把a的首地址赋给形参b,把3和7分别赋给形参m和n。在f()函数中,for循环执行了2次:第一次,i的值为3,相当于执行7语句“s=s+b[3]”,br3J的值就是a[3]的值4,故s的值变为4;第二次,i值为5,相当于执行了语句“s=s+b[5];”,b[5]的值6,故s的值变为10。把s作为函数值返回并赋值给x。所以,4个选项中A为所选。

第6题:

阅读下面程序: include int fun2(int m) { if(m%3==0) return 1; else return 0; }

阅读下面程序:

include <iostream.h>

int fun2(int m)

{

if(m%3==0)

return 1;

else

return 0;

}

void fun1(int m, int &s)

{

int i;

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

if(fun2(i))

S=S*i;

}

void main()

{

int n=9, s=2;

fun1(n, s);

cout<<s<<end1;

}

该程序的运行结果是【 】。


正确答案:36
36

第7题:

阅读下列函数说明和C代码,填入(n)处。

[说明]

以下C语言程序实现了生成从里到外是连续的自然数排列的回旋矩阵,矩阵形式如下:

7 6 5 16

8 1 4 15

9 2 3 14

10 11 12 13

程序的变量说明如下:

x1:矩阵上边界;

x2:矩阵下边界;

y1:矩阵左边界;

y2:矩阵右边界;

s:数组元素升降标记,s等于1为升,s等于-1为降;

a[]:存放矩阵元素的数组。

仔细阅读C语言程序源码,将(n)处的语句补充完整。(注:每处仅一个语句)

[C程序]

include<stdio.h>

void main ( )

{

const int N=20;

int i=0,j=0,a[N][N],n;

int m,x1,x2,y1,y2,s;

while (1)

{

Printf ("\ninput matrix row N( N>=2): ");

scanf ("%d",&n);

printf ("\n");

if (n>=2)

break;

}

m=n*n;

x1=0; y1=0; x2=n; y2=n;

if(n%2==0)

{j=n-1; y2=n-1; s=1;}

else

{i=n-1; y1=1; s=-1; }

while (1)

{

if (s==1)

{

for (i; i<x2; i++) a[i][j]=m--;

i--;

j--;

(1)

for (j;j>=y1;j--) a[i][j]=m--;

j++;

i--;

y1++;

(2)

}

else

{

for (i;i>=x1;i--)

a[i][j]=m--;

i++;

j++;

(3)

for (j;j<y2;j++)

(4)

(5)

i++;

(6)

S=i;

}

if (m<1) break;

}

for (i=O;i<n; i++)

{

for (j=O;j<n;j++)

printf ("%6d",a[i][j]);

printf ("\n");

}

printf ("\n");

}


正确答案:(1)x2--; (2)s=-1; (3)x1++; (4)a[i][j]=m--; (5)j--; (6)y2--;
(1)x2--; (2)s=-1; (3)x1++; (4)a[i][j]=m--; (5)j--; (6)y2--; 解析:自然数排列的回旋矩阵是一个经典程序设计题目。本题中生成的是一个从里到外是连续的自然数排列的回旋矩阵。仔细阅读代码,能够发现(1)处应该为矩阵下边界递减;(2)处应该为数组元素递减状态,即为降;(3)处应该为矩阵上边界递增;(4)处应该为存放矩阵元素的数组中的数据递减;(5)处应该为数组元素的列序号递减,即j--;(6)矩阵右边界递减。

第8题:

下列程序的运行结果是()。includedefine ADD(x)x+xmain(){int m=1,n=2,k=3; int s=ADD

下列程序的运行结果是( )。 #include<stdio.h> #define ADD(x)x+x main() { int m=1,n=2,k=3; int s=ADD(m+n)*k; printf("s=%d",s); }

A.sum=18

B.sum=10

C.sum=9

D.sum=25


正确答案:B
解析: 本题考查带参数的宏的定义及相关运算:s=m+n+m+n*k=1+2+2*3=10。

第9题:

以下程序的输出结果是 ( )。 include using namespace std; int f(int b[],int m, in

以下程序的输出结果是 ( )。 #include <iostream> using namespace std; int f(int b[],int m, int n) { int i,s = O; for(i = m;i<n;i+=2) s+=b [i]; return s; } int main ( ) { int x a[] = {1,2,3,4,5,6,7,8,9}; x = f(a,3,7); cout<<x<<end1; return 0; }

A.10

B.18

C.8

D.15


正确答案:A
解析:本题考查对数组以及数组作为函数参数的掌握程度。本题通过参数传递将数组a传给f()函数中的数组b,并由s传递返回值给主函数中的x。主函数中,x=f(a,3,7),即把数组a传给f()函数中的数组b,把3传给m,把7传给n。所以函数f()中的for循环中,是从3开始循环,经过两次循环后,实现a[3]和a[5]值的累加,并存入s中,然后返回给主函数中的x。所以x的值为10。故本题答案是A。

第10题:

执行下列程序后,输出的结果是()。 includedefine S(X) X*Xvoid main(){int a=9,k=3,m=

执行下列程序后,输出的结果是( )。 #include<stdio.h> #define S(X) X*X void main() { int a=9,k=3,m=2; a/=S(k+m)/S(k+m); printf("%d",a); }

A.1

B.4

C.9

D.0


正确答案:D
解析:本题主要是考查带参数的宏定义及其相关运算。本题中宏运算过程如下:a=a/S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m=9/(3+2*3+2/3+2*3+2)=0。

更多相关问题