计算机二级

有如下程序#include "stdio.h"main(){ int j,i,k=0; for(j=20;j<=30;j++) { if(!(k%10))printf("\n"); for(i=2;i<j;i++)if(!(j%i))break; if(i>=j-1) { printf("%d",j); k++;} }}程序的运行结果是A.2329 B.2923C.3292 D.9232

题目

有如下程序#include "stdio.h"main(){ int j,i,k=0; for(j=20;j<=30;j++) { if(!(k%10))printf("\n"); for(i=2;i<j;i++)if(!(j%i))break; if(i>=j-1) { printf("%d",j); k++;} }}程序的运行结果是A.2329 B.2923C.3292 D.9232

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

第1题:

【填空题】以下程序的运行结果是输出如下图形。请填空。 * *** ***** ******* ***** *** * #include <stdio.h> void a(int i) {int j,k; for(j=0;j<=7-i;j++) printf(" "); for(k=0;k<【1】;k++) printf("*"); printf("n"); } main() {int i; for(i=0;i<3;i++) 【2】; for(i=3;i>=0;i--) 【3】; }


输出结果为: value is 9.0

第2题:

设有如下程序includemain(){int**k, *j, i=100;j=&i, k=&j;printf("%d\n",**k

设有如下程序#include<atdio.h>main(){int**k, *j, i=100;j=&i, k=&j;printf("%d\n",**k);}上述程序的输出结果是______。

A.运行错误

B.100

C.i的地址

D.i的地址


正确答案:B
解析:j=&i,j的值就是i的地址,8j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

第3题:

设有如下程序includemain(){int**k,*j,i=100j=&i;k=&j;printf("%d\n",**k);}

设有如下程序 #include<stdio.h> main() { int**k,*j,i=100 j=&i; k=&j; printf("%d\n",**k); } 上述程序的输出结果是______。

A.运行错误

B.100

C.i的地址

D.j的地址


正确答案:B
解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

第4题:

设有如下程序inclidemain(){int **k,*j,i=100;j=&i;k=&j;printf("%d\n,"**k);

设有如下程序 #inclide<stdio.h> main() { int **k,*j,i=100; j=&i; k=&j; printf("%d\n,"**k); } 上述程序的输出结果是______。

A.运行错误

B.100

C.i的地址

D.j的地址


正确答案:B
解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

第5题:

有如下程序段#include "stdio.h"void fun(int *a,int *b,int *c,int *d,int *e){ int i,j,k,m; for(i=0;i< *a;i++) for(j=0;j< *b;j++)  for(k=0;k<*c;k++)  for(m=0;m< *d;m++)  ++*e;}main(){ int a=10,b=10,c=10,d=10,e=0; fun(&a,&b,&c,&d,&e); printf("%d\n",e);} 则程序段的输出结果是A.10000 B.1000 C.100 D.0


正确答案:A
在本题中,程序首先定义了一个无返回值的函数fun,该函数带有五个整型的指针形参变量,然后通过一个四层循环来操作++*e;语句,由于*与++运算符的优先级一样,它们都是自右至左结合的操作,因此,++*e等价于++(*e),这个操作可描述为:先用地址取值,然后对其进行自加,由于是通过传址传值法的,因此,还需要将相加后的结果传递到实参中。
在主函数中,定义五个整型变量并分别赋初值,然后调用fun函数,传递的参数是刚定义的五个整型变量的地址,采用的是传址传值法,能为实参带回一个结果值。从fun函数中我们不难看出,当变量a,b,c,d分别为10时,循环总共执行10000次,即自加进行了10000次,而且每次自加后都改变了实参的结果。因此,循环结束后,变量e的值为10000。本题的正确答案是A。

第6题:

设有如下程序includemain(){int **k, *j,i=100;j=&i; k=&j;printf("%d\n"”,**

设有如下程序 #include<stdio.h> main() { int **k, *j,i=100; j=&i; k=&j; printf("%d\n"”,**k); } 上述程序的输出结果是______。

A.运行错误

B.100

C.i的地址

D.j的地址


正确答案:B
解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

第7题:

设有如下程序includemain(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n",**k);}

设有如下程序 #include<stdio.h> main() { int**k,*j,i=100; j=&i;k=&j; printf("%d\n",**k); } 上述程序的输出结果是______。

A.运行错误

B.100

C.i的地址

D.j的地址


正确答案:B
解析:j=&i,j的值就是i的地址,*j=100,将j的地址赋给k,这时*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印结果应当为100。

第8题:

下列给定程序中,函数fun()的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示的数据,由 main()函数输出。

例如,若输入2,则输出1 2

2 4

输入4,则输出1 2 3 4

2 4 6 8

3 6 9 12

4 8 12 16

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

试题程序:

include <conio.h>

include <stdio. h>

define M 10

int aiM] [MI={0};

/***************found*******************/

fun( int **a, int m)

{int j,k;

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

for (k=0; k<m; k++)

/***************found*******************/

a[j] [k]=k*j;

}

main ( )

{int i, j, n;

clrscr ();

printf ("Enter n\n"); scanf ("%d", &n);

fun (a, n);

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

{ for (j=0;j<n;j++)

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

printf ("\n ");

}

}


正确答案:(1)错误:fun(int**a int m) 正确:void fun(int(*a)[M]int m) (2)错误:a[j][k]=k*j; 正确:a[j][k]=(k+1)*(j+1);
(1)错误:fun(int**a, int m) 正确:void fun(int(*a)[M],int m) (2)错误:a[j][k]=k*j; 正确:a[j][k]=(k+1)*(j+1); 解析:对于二维数组,应该理解成为是由几个一维数组作元素组成的一维数组,或者说,二维数组实际是一个一维数组,只不过它的每个数组元素又都是一个一维数组。我们先来看看指针数组的表示形式:
(1)p+i和a+i均表示a[i]的地址,或者讲,它们均指向数组第i号元素,即指向a[i]。
(2)*(p+i)和*(a+i)都表示p+i和a+i所指对象的内容,即为a[i]。
(3)指向数组元素的指针,也可以表示成数组的形式,也就是说,它允许指针变量带下标,如p[i]与*(p+i)等价。因此,二维数组元素a[i][j]可表示成*(a[i]+j)或*(*(a+i)+j),它们都与a[i][j]等价,或者还可写成(*(a+i))[j]。了解了以上这些内容后本题就好解决了。

第9题:

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

#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