计算机二级

有以下程序: fun(char p[][10]) { int n=0,i; for(i=0;i<7;i++) if(P[i][0]=='T')n++; return n; } main() {char str[][10]={"Mon","Tue","wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str)); } 程序执行后的输出结果是( )。A.1B.2C.3D.0

题目

有以下程序: fun(char p[][10]) { int n=0,i; for(i=0;i<7;i++) if(P[i][0]=='T')n++; return n; } main() {char str[][10]={"Mon","Tue","wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str)); } 程序执行后的输出结果是( )。

A.1

B.2

C.3

D.0

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

第1题:

以下函数返回a所指数组中最小的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j; for(i=j;i<n;i++) if(a[i]<a[p])__________; return(p); } <n;i++) <a[p])__________; 在下划线处应填入的是</a[p])__________; </n;i++)

A.i=p

B.a[p]=a[i]

C.p=j

D.p=i


p=i

第2题:

有以下程序:include fun( char p[] [10]){int n=0,i; for(i=0;i<7;i ++) if(p[i][0] =

有以下程序:#include <stdio.h>fun( char p[] [10]){ int n=0,i; for(i=0;i<7;i ++) if(p[i][0] =='T') n++; return n;}main( ){ char sir[] [10] = { "Mon" ,"Tue" ,"Wed" ,"Thu" ,"Fri" ,"Sat" ,"Sun" }; prlnff(" % d\n" ,fun(str) );}程序执行后的输出结果是( )。

A.1

B.2

C.3

D.0


正确答案:B
解析:数组名str作为函数参数将实参数组的起始地址传给形参数组p,当形参数组发生变化时主函数中的实参数组中的值也随之发生变化。调用fun函数执行for循环语句后,n为2,返回给main函数输出。

第3题:

有以下程序 fun(char p[][10]) {int n=0,i; for(i=O;i<7;i++) if(p[i][O]=T)n++; return n; } main() {char str[][10]={"Mon","Tue","Wed","Thu","Fri", "Sat","Sun"}; printf("%d\n",fun(str)); }

A.1

B.2

C.3

D.0


正确答案:B
解析:此题考核的是数组名作为函数参数,当数组名作为函数参数时,是将实参数组的起始地址传送给形参数组,作为形参数组的首地址,当形参发生变化主函数中的实参数组也发生变化。调用fun()函数执行for循环语句,n=2,传递给实参其输出值相应的也为2。

第4题:

有以下程序,程序执行后,输出结果是【】include void fun(int*A) {a[0]=a[1];} main() {i

有以下程序,程序执行后,输出结果是【 】

include<stdio.h>

void fun(int*A)

{ a[0]=a[1];}

main()

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

for(i=2;i>1=0;i-) fun(&a[i]);

for(i=0;i<10;i++) printf("%d,a[i]);

printf("\n");

}


正确答案:7777654321
7777654321 解析:本题主要考查函数的调用,第—次调用把数组元素a[2]的地址赋给a,此时a[1]即是原数组的a[3]等于7,再执行赋值语句a[0]=a[1],则a[0]和a[1]中的值都是7,然后再把这个值返回给a[2]同样地第二次调用的时候函数返回值也是7,第三次调用返回值也是7,因此数组的前4个元素,即对a[0]、a[1]、a[2]和a[3]的值都为7,当执行第二个for循环时输出数组中所有元素的值7777654321。

第5题:

下列程序的输出结果是______。 char*fun(char*str,int n) { int i; char*p=str; for(i=0;i<10;i++,str++) *str='a'+i; return++p; } main() { char a[10]; printf("%s\n",fun(a,10)); }

A.ABCDEFGHIJ

B.abcdefghij

C.bcdefghij

D.不确定的值


正确答案:C
解析:调用函数fun使字符数组中的内容是"abcdefghij",函数的返回值是字符数据的地址,该地址指向数组的第二个字符,因此,主函数的输出结果是字符串 "bcdefghij"。

第6题:

下列给定程序中fun()函数的功能是:将n个无序整数从小到大排序。

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

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

试题程序:

include <conio.h>

include <stdio.h>

include <stdlib.h>

fun(int n, int *a)

{ int i,j,p,t;

for (j=0;j<n-1;j++)

{ P=j;

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

for(i=j+l;i<n-1;i++)

if (a[p]>a[i])

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

t=i;

if (p!=j)

{t=a[j];a[j]=a[p];a[p]=t;}

}

}

putarr( iht n,int *z)

{int i;

for (i=l;i<=n;i++,z++)

{ printf("%4d",*z);

if (!(i%10)) printf("\n");

} printf ("\n");

}

main ()

{int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;

clrscr();

printf("\n\nBefore sorting %d numbers:\n",n); putarr(n,aa);

fun(n,aa);

printf("\nAfter sorting %d numbers:\n",n);putarr(n,aa);

}


正确答案:(1)错误:for(i=j+1;in-1;i++) 正确:for(i=j+1;in;i++) (2)错误:t=i; 正确:p=i;
(1)错误:for(i=j+1;in-1;i++) 正确:for(i=j+1;in;i++) (2)错误:t=i; 正确:p=i; 解析:该程序是对n个数实现从小到大的排序,该题中先是找小输入整数的最小项,置于指针第1个元素的位置:再找出第2个元素至尾元素的最小项,置于第2个元素的位置;之后顺次处理后读元素。

第7题:

以下程序的输出结果是______。 fun(int *s,int *p) { static int t=3; *p=s[t]; t--; } main() { int str[]={1,2,3,4},i,m=0; for(i=0;i<4;i++) {fun(str,&m); printf("%d",m); } printf("\n"); }

A.0

B.444412

C.1234

D.4321


正确答案:D
解析:程序的功能是将字符数组str中的内容以反序输出。函数fun中t为静态变量,每一次调用函数fun时,t的值为上一次调用函数结束时的值。

第8题:

有以下程序:main(){ char *p[]={"3697","2584"}; int i,j; long num=0; for(i=0;i<2;i++) {j=0;while(p[i][j]!=’\0’){ if((p[i][j]-’0’)%2= =0)num=10*num+p[i][j]-’0’; j+=2;} } printf("%d\n",num);}程序执行后的输出结果是( )。A.35 B.37C.39 D.28


正确答案:D
i=0,i<2,j=0,p[i][j]=3,不满足if判断条件,j+2=2,p[i][j]=9,不满足条件,j+2=4,不满足while循环条件,i+1=1,j=0,p[1][0]=2,满足if判断条件,num=10*num+p[i][j]-‘0’=2,j+2=2,p[1][2]=8,满足条件,num=10*2+p[i][j]-‘0’=28

第9题:

有以下程序

fun(char p[][10])

{ int n=0,i;

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

if(p[i][0]=='T')n++;

return n;

}

main()

{ char str[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};

printf(" % d\n",fun(str));

}

程序执行后的输出结果是

A)1

B)2

C)3

D)0


正确答案:B
(35)B) 解析 : 此程序是统计一周七天中英文名称首字母为 “ T ” 的个数 。 P[i][0] 是字符串的首字符 , 一共有两个 “ T ” , 所以 n=2 。