有如下程序,则程序执行后,数组a的两个数组元素并不能完成交换操作。 #include <stdio.h> void swap2(int x[2]) { int z; z=x[0]; x[0]=x[1]; x[1]=z; } void main() { int a[2]={1,2}; swap2(a); printf("a[0]=%d\na[1]=%d\n",a[0],a[1]); }
第1题
第2题
下面程序的功能是用函数编程实现两个数组中对应元素值的交换。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 程序的运行结果示例: Input array size(n<=10):5↙ 1 2 3 4 5 6 7 8 9 10 input array a:1 5↙ b:6 10↙ output a: b: #include> #define N 10 void ReadData(int a[], int n); void PrintData(int a[], int n); void Swap(int *x, int *y); int main() { int a[N], b[N], i, n; printf("Input array size(n<=10):"); scanf("%d", &n); printf("input array a:"); readdata(a, n); b:"); readdata(b, for (i="0;" i i++) { swap(____________); } printf("output printdata(a, printdata(b, return 0; * 函数功能:输入数组a的n个元素值 void readdata(int a[], int n) i; &a[i]); 函数功能:输出数组a的n个元素值 printdata(int printf("%5d", a[i]); printf("\n"); 函数功能:两整数值互换 swap(int *x, *y) temp; ____________;> A、第17行:&a[i], &b[i] 第52行:temp = *x 第53行:*x = *y 第54行:*y = temp
B、第17行:a[i], b[i] 第52行:temp = *x 第53行:*x = *y 第54行:*y = temp
C、第17行:&a[i], &b[i] 第52行:*temp = *x 第53行:*x = *y 第54行:*y = *temp
D、第17行:a[i], b[i] 第52行:temp = x 第53行:x = y 第54行:y = temp
第3题
以下程序中函数Reverse的功能是对数组a中的前一半元素逆序、后一半元素逆序,再将逆序后的前、后两部分数据位置交换。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 例如:主程序中数组b中的元素为{16,22,13,41,50,62,27,18,9,10},调用函数Reverse后,数组b中元素变为 {10 9 18 27 62 50 41 13 22 16} #include <stdio.h> void Reverse(int a[],int n) { int i,t; for(i=0;________;i++) { t=a[i]; __________; a[n-i]=t; } } int main() { int b[10]={16,22,13,41,50,62,27,18,9,10}; int i,s=0; __________; for(i=0;i<10;i++) { printf("%4d",b[i]); } return 0;> A、第5行: i<=n 2 第8行: a[i]="a[n-i]" 第17行: reverse(b,9)> B、第5行: i<=n 第8行: a[n-i]="a[i]" 第17行: reverse(b,9)> C、第5行: i<=n 2 第8行: a[n]="a[i]" 第17行: reverse(9,b)> D、第5行: i<=n 2 第8行: a[i]="a[n]" 第17行: reverse(b,9)>
第4题
以下程序中函数Reverse的功能是对数组a中的前一半元素逆序、后一半元素逆序,再将逆序后的前、后两部分数据位置交换。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 例如:主程序中数组b中的元素为{16,22,13,41,50,62,27,18,9,10},调用函数Reverse后,数组b中元素变为 {10 9 18 27 62 50 41 13 22 16}#include <stdio.h> void Reverse(int a[],int n) { int i,t; for(i=0;________;i++) { t=a[i]; __________; a[n-i]=t; } } int main() { int b[10]={16,22,13,41,50,62,27,18,9,10}; int i,s=0; __________; for(i=0;i<10;i++) { printf("%4d",b[i]); } return 0;> A、第5行: i<=n 2 第8行: a[i]="a[n-i]" 第17行:> B、第5行: i<=n 第8行: a[n-i]="a[i]" 第17行:> C、第5行: i<=n 2 第8行: a[n]="a[i]" 第17行:> D、第5行: i<=n 2 第8行: a[i]="a[n]" 第17行:>
第5题
以下程序中函数Reverse的功能是对数组a中的前一半元素逆序、后一半元素逆序,再将逆序后的前、后两部分数据位置交换。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 例如:主程序中数组b中的元素为{16,22,13,41,50,62,27,18,9,10},调用函数Reverse后,数组b中元素变为 {10,9,18,27,62,50,41,13,22,16}。 #include <stdio.h> void Reverse(int a[],int n) { int i,t; for(i=0;________;i++) { t=a[i]; __________; a[n-i]=t; } } int main() { int b[10]={16,22,13,41,50,62,27,18,9,10}; int i,s=0; __________; for(i=0;i<10;i++) { printf("%4d",b[i]); } return 0;> A、第5行: i<=n 2 第8行: a[i]="a[n-i]" 第17行: reverse(b,9)> B、第5行: i<=n 2 第8行: a[n]="a[i]" 第17行: reverse(9,b)> C、第5行: i<=n 2 第8行: a[i]="a[n]" 第17行: reverse(b,9)> D、第5行: i<=n 第8行: a[n-i]="a[i]" 第17行: reverse(b,9)>
第6题
/* 随机产生20个1到100之间的整数。要求将前10个元素与后10个元素的值对换, 即第1个元素与第20个元素对换,第2个元素与第19个元素对换,……,第10个元素与第11个元素对换。 输出数组原来各元素的值和对换后各元素的值。 */ #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int i,t,a[21]; //随机产生20个1到100之间的整数。此段程序不要修改 srand( (unsigned)time( NULL ) ); //初始化随机数 for(i=1;i<=20;i++) { a[i]="rand()*100/32767;" printf("%d ",a[i]); } printf("\n"); 前10个元素与后10个元素的值对换 ,请补充 输出交换后的元素,此段程序不要修改 for(i="1;i<=20;i++)" (提交程序和运行结果的截图)>
第8题
假设有如下类定义,并在程序中用如下方式定义两个对象 CA c1(1,2), c2; 则描述或访问正确的是( ) class CA { int a, b; public: CA(int a1,int b1) { a=a1; b=b1; } void print( ) { cout<<"a="< b?></"a="<></*p++<<'></b?></=9)></='9')></='9')></=c1<='9'></c;};></endl;></'\t'<></q-> </p-> </","<<(*p).name[2]的结果为(></p-> </3;i++)></class[2].name[0];> </class[2].name[1];> </class[3].name[1];> </class[3].name; > </++(p-></a+6;p++)></a+n;p++)></=5;i++)></n%8;></k;></endl;></”></t时返回负值。划线处应填入______。></score[9];></n)></y;i++)></endl;></k></endl;></r></p+2的结果为(></a的结果是(></'></setw(n-i)*3></strlen(strcpy(a,b));语句后的输出结果为(></3;k++)></'></4;i+=2)></endl;></"sum="<></3);></15);></=10)></4;j++){...}></2;i++)></k;></××<××></endl;><<"b="<<b>< <endl; }> A、数据成员a和b未声明访问权限是错误的。
B、c2对象无法创建,因为没有与之对应的构造函数。
C、c1->print();
D、CA::print();
第10题
一维数组a保存了n个整数(下标为0的空间未使用),下面是一个改进的起泡排序函数,实现对数组a中的n个整数进行升序排序。具体实现过程:在正反两个方向交替扫描,即第一趟把最大的整数放到最后,第二趟把最小的整数放在最前,如此反复进行,直至完成排序。在空格处补充代码,完成上述功能。 #define TRUE 1 #define FALSE 0 void DSort(int a[ ], int n) // a[0]未保存元素,对a[1..n]中的元素进行排序 { int bottom = 1; int top = n; int swapped = TRUE; int temp,i; int bound = 0; //记录已经排序的边界 while(swapped) // 如果元素未交换,则已经完成排序 { 1 ; for(i = bottom; i < top; i++) { if(a[i] > a[i+1]) { temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; swapped = TRUE; bound = i; } } top = bound; for(i = top; i > bottom; i --) { if( 2 ) { temp = a[i]; a[i] = a[i-1]; a[i-1] = temp; swapped = TRUE; bound = i; } } 3 ; } }
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!