C语言程序设计

单选题有以下程序: #include void fun(int *s,int n1,int n2) {  int i,j,t;  i=n1;  j=n2;  while(i A 5678901234B 0987654321C 4321098765D 0987651234

题目
单选题
有以下程序: #include  void fun(int *s,int n1,int n2) {  int i,j,t;  i=n1;  j=n2;  while(i
A

5678901234

B

0987654321

C

4321098765

D

0987651234

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

第1题:

有以下程序: include using namespace std; constxntN=5; int fun(char*s,char a,int

有以下程序:

include <iostream>

using namespace std;

const xnt N=5;

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

{

int j;

*s=a;j=n;

while(a<s[j])

j--;

return j;

}

int main()

{

char s[N+1];

int k;


正确答案:3
3 解析:函数fun()的功能是在字符数组s中找到大于或等于字符a第1个元素,并返回其下标值。在主函数中,通过for循环给字符数组s分别赋值B、C…J。然后通过调用函数fun(),找到字符'E'的位置。

第2题:

阅读下面程序: 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

第3题:

有以下程序

#include <stdio.h>

void fun(int *s,int nl,int n2)

{ int i,j,t;

i=nl; j=n2;

while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}

}

main( )

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

fun(a,0,3); fun(a,4,9); fun(a,0,9);

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

}

程序运行的结果是 ( )

A)0987654321

B)4321098765

C)5678901234

D)0987651234


正确答案:C

第4题:

以下程序的输出结果是【 】。include int fun(int x) {static int t=0; return(t+=x); }

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

include <stdio.h>

int fun(int x)

{ static int t=0;

return(t+=x);

}

main()

int s,i;

for(i=1 ;i<=5;i++) s=fun(i);

printf("%d\n",s);


正确答案:15
15 解析:static类型的变量是静态变量,本题中的静态变量t为静态局部变量。静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用时的值。本题在多次调用fun函数的过程中,只在第一次调用时t的初值为0,以后每次调用函数时不再重新赋初值,而只是保留上次函数调用结束时的值,所以本程序的作用相当于将1到5数字进行累加,故输出结果为15。

第5题:

有以下程序 include include void fun(char s[][10],int n

有以下程序 #include <stdio.h> #include <string.h> void fun(char s[][10],int n) { char t; int i j; for (i=0; i<n-1; i++) for 0--i+l; j<n; j++) /*比较字符串的首字符大小,并交换字符串的首字符*/ if(s[i][0] > s[j][0]) { t = s[i][0]; s[i][0] = s[j][0]; s[j][0] = t;} } main() { char ss[5][10]= {"bcc", "bbcc", "xy", "aaaacc", "aabcc" }; fun(ss, 5); printf("%s,%s\n", ss[0],ss[4]); } 程序的运行结果是

A.xy, aaaacc

B.aaaacc,xy

C.xcc,aabcc

D.acc,xabcc


正确答案:D
解析:在函数fun()中有一个两层嵌套的for循环,外循环变量i从0递增到n-2,内循环变量i从i+1循环递增到n-1,这是选择排序算法的标准结构。循环体中因为逆序条件为“s[i][0]> s[j][0]”,所以实现的是升序排序。由此可见,fun()函数实现的功能是对一个二维字符数组前n行的首字符进行升序排序。主函数中定义的二维数组初始化为{"bcc",”bbcc", "xy","aaaacc","aabcc"},通过fun()函数的排序后,结果将为acc","abcc","by", "baaacc","xabcc"}。故最终输出字符串ss[0]和ss[4]的结果为acc,xabcc,应该选择D。

第6题:

以下程序的输出结果是【 】。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。

第7题:

以下程序的输出结果是______。include void swap(int *a, int *b){ int *t;}{ int i=3,j

以下程序的输出结果是______。

include <stdio.h>

void swap(int *a, int *b)

{ int *t;

}

{ int i=3,j=5,*p=&i,*q=&j;

swap(p,q); printf("%d %d\n",*p,*q);


正确答案:

第8题:

有以下程序inclUdevoidfun(int*s,intn1,intn2){inti,j,t;i=n1;j=n2;while(i

有以下程序 #inclUde <stdio.h> void fun(int *s,int n1,int n2) { int i,j,t; i=n1; j=n2; while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4

A.0987654321

B.4321098765

C.5678901234

D.0987651234


正确答案:C
解析: 函数fun(int*s,int n1,int n2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。

第9题:

有以下程序: void fun(int *a,int i,int i) { int t; if(i<j) { t==a[i];a[i]=a[j];a[i]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,6,1,8),i; fun(x,0,3), for(i=0;i<4;i++) printf("%2d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。

A.1268

B.8621

C.8162

D.8612


正确答案:C
解析:函数fun()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组x,该数组有4个元素,接着调用fun(a,O,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8、1、6和2,所以,4个选项中选项C符合题意。

第10题:

有以下程序:includeincludevoid fun(char*s[],int n){char*t;int i,j;for(

有以下程序: #include<stdio.h> #include<string.h> void fun(char*s[],int n) { char*t;int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;} } main() { Char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"}; fun(ss,5);printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是( )。

A.xy,aaaacc

B.aaaacc,xy

C.bcc,aabcc

D.aabcc,bcc


正确答案:A

更多相关问题