第1题
下面程序的功能是用函数编程实现两个数组中对应元素值的交换。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 程序的运行结果示例: 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
第2题
第3题
实验十一 C程序的指针(二) 一、实验目的 1. 掌握指针和指针变量的概念。 2. 掌握简单指针变量的定义和基本使用方法。 3. 熟悉指针和一维数组的关系,掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素。 4. 了解指针和二维数组的关系,掌握用指针表示二维数组元素的方法。 5. 了解指针与字符串的关系,能熟练使用指针处理字符串。 二、实验内容及实验步骤 1. 调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求: ⑴ 2个数的和, ⑵ 2个数交换值. 要求用函数指针调用这两个函数,结果在主函数中输出. main() { int a,b,c,(*p)(); scanf("%d,%d",&a,&b); p=sum; *p(a,b,c); p=swap; *p(a,b); printf("sum=%d\n",c); printf("a=%d,b=%d\n",a,b); } sum(int a,int b,int c) { c=a+b; } swap(int a;int b) { int t; t=a; a=b; b=t; } 调试程序时注意参数传递的是数值还是地址. 2. 测试、运行自己编写的程序。 (1)写一个函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 int strcmp(char * p1,char * p2); 设p1指向字符串s2,要求当s1=s2时,函数返回值为0;如果s1<>s2,则返回它们二者第一个不相同的ASCII码值(如“BOY”与“BAD”的第二个字母不相同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如果s1<s2,则输出负值。 两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输出。 (2)用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n和各整数在主函数中输入,最后在主函数中输出。 (3)有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 三、实验报告要求 写明: 1. 实验目的 2. 实验内容与步骤 3. 编写的程序(题目,经调试、运行后正确的程序) 4. 思考题的解决方法。 5.>
第4题
第5题
【资料题】(4-2)请阅读程序,根据提示补全程序空白处,使程序能够正确运行。 //该程序实现n×n数组的行列互换 public class ArrayRowColumnSwap { //交换n×n数组arr的行和列 public static int [][] swapRowColumn(int [][]arr) { int ① = new int[arr.length][arr.length]; for (int i = 0; i < ② ; i++) {// 调整数组行列数据 for (int j = 0; j < ③ ; j++) { arr2[i][j] = ④ ; } } return arr2; } //输出二维数组 public static void showArray(int[][] arr) { for (int i = 0; i < arr.length; i++) {// 遍历数组 for (int j = 0; j < arr.length; j++) { System.out.print(arr[i][j] + " ");// 不换行输出数组元素 } System.out.println(); //换行 } } public static void main(String[] args) { // 创建二维数组 int arr[][] = new int[][] { { 22, 33, 44 }, { 55, 66, 77 }, { 88, 88, 0 } }; System.out.println("行列互调前:"); // 输出二维数组 showArray(arr); System.out.println("行列互调后:"); int [][] list=swapRowColumn(arr); //输出行列互调后的二维数组 ⑤ ; } }
第6题
例如,输入“33,67,42,58,25,76,85,16,41, 56”,则输出“33,67,42,58,25,76,16,85,41,56”。
注意;部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include <stdio. h>
define N 10
void fun(int aa[])
{
int i, j, t;
int max=0, min=0;
for(i=0; i<N; i++)
{
if(【 】)
max=i;
if(【 】)
min=i;
}
t=aa [max];
【 】;
aa [min] =t;
}
main()
{
int i;
int aa [N] ={33, 67, 42,58,25, 76, 85,16, 41, 56};
clrscr ();
printf("\n*** original list ***\n");
for(i=0; i<N; i++)
printf ("%4d", aa [i] );
fun (aa);
printf ("\n*** new list ***\n");
for(i=0; i<N; i++)
printf ("%4d", aa [i]);
}
第8题
以下程序中函数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)>
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!