C语言程序设计

单选题有以下程序 #include void fun(int *a,int n) {  int t,i,j;  for(i=0;i   for(j=i+1;j    if(a[i]    {     t=a[i];     a[i]=a[j];     a[j]=t;    } } main() {  int c[10]={1,2,3,4,5,6,7,8,9,0},i;  fun(c+4,6);  for(i=0;i  printf(""); } 程序的运行结果是(  )。A 1,2,3,4,9,8,7

题目
单选题
有以下程序 #include  void fun(int *a,int n) {  int t,i,j;  for(i=0;i   for(j=i+1;j    if(a[i]    {     t=a[i];     a[i]=a[j];     a[j]=t;    } } main() {  int c[10]={1,2,3,4,5,6,7,8,9,0},i;  fun(c+4,6);  for(i=0;i  printf(""); } 程序的运行结果是(  )。
A

1,2,3,4,9,8,7,6,5,0,

B

0,9,8,7,6,5,1,2,3,4,

C

0,9,8,7,6,5,4,3,2,1,

D

1,2,3,4,5,6,7,8,9,0,

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

第1题:

有以下程序:include void f(int a[],int i, int j){int t; if(i

有以下程序: #include <stdio.h> void f(int a[],int i, int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main() { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf("%d,",aa[i]);printf("\n"); } 执行后的输出结果是( )。

A.5,4,3,2,1,

B.5,2,3,4,1,

C.1,2,3,4,5,

D.1,5,4,3,2,


正确答案:A
解析:f函数的功能是通过递归调用实现数组中左右部分相应位置数据的交换,即数组中第一个元素与最后一个元素调换位置,第二个元素与倒数第二个元素调换位置,以此类推。

第2题:

有以下程序 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。

第3题:

有以下程序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}。

第4题:

有以下程序: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

第5题:

有以下程序 include void fun(int *a, int n)/* fun 函数的功能是将a所指数

有以下程序 #include <stdio.h> void fun(int *a, int n)/* fun 函数的功能是将a所指数组元素从大到小排序*/ { int t, i,j; for (i=0; i<n-1 ;i++) for 0=i+l; j<n; j++) if(a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } main() { int c[10]= { 1,2,3,4,5,6,7,8,9,0},i; fun(c+4, 6); for (i=0;i<10; i++) printf("%d,", c[i]); printf("\n"); }

A.1,2,3,4,5,6,7,8,9,0,

B.0,9,8,7,6,5,1,2,3,4,

C.0,9,8,7,6,5,4,3,2,1,

D.1,2,3,4,9,8,7,6,5,0,


正确答案:D
解析:题目中fun()函数的作用是排序,从形参指针a所指位置开始,对其后n个int型元素进行从大到小排序。主函数中,调用fun()函数传入的两个实参分别为c+4和6,即从数组c的第5个元素开始,对其后连续的6个元素进行从大到小排序。所以,最后通过for循环输出数组c的值为“1,2,3,4,9,8,7,6,5,0,”,故应该选择D。

第6题:

以下程序的输出结果是______。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);


正确答案:

第7题:

有以下程序: 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符合题意。

第8题:

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

#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

第9题:

有以下程序:include define N 20fun(int a[] ,int n,int m){int i,j;for(i=m;i> :n;i

有以下程序: #include <stdio.h> #define N 20 fun(int a[] ,int n,int m) { int i,j; for(i=m;i> :n;i--) a[i+1] =a[i]; } main( ) { int i,a[N.] = 11,2.3,4,5,6,7,8,9,10[; fun( a,2,9) for(i =0;i<5;i ++ ) printf("% d" ,a[i] );程序运行后的输出结果是( )。

A.10234

B.12344

C.12334

D.12234


正确答案:C
解析:本题函数fun的作用是将指定的数组元素(下标从n~m)向后移一位。调用函数fun(a,2,9)将a[2]到a[9]的各元素依次向后移一位,最后a数组中各元素的值分别为1,2,3,3,4,5,6,7,8,9,10,程序输出数组的前5个元素:12334。

第10题:

有以下程序includeincludevoidfun(char*s[],intn){char*t;int i,j;for(i=0

有以下程序 #include <stdio.h> #include <string.h> void fun(char *s[],int n) { char *t; int i,j; for(i=0;i<n-1;++) 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

A.xy,aaaacc

B.aaaacc,xy

C.bcc,aabcc

D.aabcc,bcc


正确答案:A
解析: 函数fun(char*s[],int n)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={"xy","bcc"," bbcc","aabcc","aaaacc"},ss[0],ss[4]的输出结果为xy,aaaacc。

更多相关问题