2 编程: 用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的
2 编程:
用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
2 编程:
用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的功能是拷贝src 所指的内存内容前n个字节到dest所指的地址上。
用字符数组作函数参数编程,利用一个数组实现字符串(允许输入带空格的字符串)的逆序存放。要求如下: (1)在主函数中从键盘输入字符串,字符串的最大长度为80个字符。 调用Inverse()函数将字符串逆序存放,然后在主函数中输出逆序后的字符串。 (2)在子函数Inverse()中实现字符串的逆序存放。函数原型为: void Inverse(char str[]); 在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h> #include <string.h> #define N 80 void Inverse(char str[]); int main() { char a[N]; printf("Input a string:\n"); ________; Inverse(a); printf("Inversed results:\n"); ________; return 0; } void Inverse(char str[]) { int len, i, j; char temp; len = __________; for (___________; i <j; i++, j--) { temp="str[i];" str[i]="str[j];" str[j]="temp;" }> A、第9行: gets(a) 第13行: puts(a) 第22行: strlen(str) 第24行: i=0, j=len-1
B、第9行: get(a) 第13行: put(a) 第22行: strlen(str) 第24行: i=1, j=len
C、第9行: gets(a) 第13行: puts(a) 第22行: sizeof(str) 第24行: i=0, j=len
D、第9行: getchar(a) 第13行: putchar(a) 第22行: sizeof(str) 第24行: i=1, j=len-1
下面程序的功能是从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。程序运行结果如下: Input n(n<=10):10↙ 0 1 2 3 4 6 7 9 10 input numbers:1 –2 -1 ↙ exchange results: -2 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include> void ReadData(int a[], int n); void PrintData(int a[], int n); void MaxMinExchang(int a[], int n); void Swap(int *x, int *y); int main() { int a[10], n; printf("Input n(n<=10):"); scanf("%d", &n); printf("input %d numbers:", n); readdata(a, maxminexchang(a, printf("exchange results:"); printdata(a, return 0; } * 函数功能:输入数组a的n个元素值 void readdata(int a[], int n) { i; for (i="0;" i i++) &a[i]); 函数功能:输出数组a的n个元素值 printdata(int printf("%5d", a[i]); printf("\n"); 函数功能:将数组a中的最大数与最小数位置互换 maxminexchang(________, maxvalue="a[0]," minvalue="a[0]," maxpos="0," minpos="0;" if (a[i]> maxValue) { maxValue = _______; maxPos = ____; } if (a[i] < minValue) { minValue = a[i]; minPos = i; } } Swap(________________); } /* 函数功能:两整数值互换 */ void Swap(int *x, int *y) { int ________; temp = *x; _________; *y = temp; }
A、第41行: int a[] 第49行: a[i] 第50行: i 第58行: &a[maxPos], &a[minPos] 第64行: temp 第66行: *x = *y
B、第41行: int a 第49行: a[i] 第50行: i 第58行: a[maxPos], a[minPos] 第64行: temp 第66行: *x = *y
C、第41行: int a[] 第49行: a[0] 第50行: 0 第58行: &a[maxPos], &a[minPos] 第64行: *temp 第66行: x = y
D、第41行: int a[] 第49行: a[n-1] 第50行: n-1 第58行: *a[maxPos], *a[minPos] 第64行: &temp 第66行: x = y
1 编程:
用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。
下面程序的功能是用函数编程实现两个数组中对应元素值的交换。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 程序的运行结果示例: 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
函数void preorder(bintree t)实现了二叉树的非递归先序遍历,该算法借助栈进行实现,请选择合适的选项填入相应的空缺处,使算法完整。 用C语言描述二叉树结点的结构如下: typedef char datatype; /*结点属性值的类型*/ typedef struct node{ /*二叉树结点的类型*/ datatype data; struct node *lchild, *rchild; } bintnode; typedef bintnode *bintree; void preorder (bintree t) { bintree st[100]; //顺序栈 int top=-1; while (t || top!=-1) /*当前处理的子树不为空或栈不为空则循环*/ { if(t) { printf("%c ",t->data); ___(1)_______ //入栈 ___(2)_______ //继续往左子树遍历 } else { ___(3)_______ //取栈顶元,并出栈 t=t->rchild; //继续往右子树遍历 } } }
A、(1) top++;st[top]=t;
B、(1) st[top]=t;top++;
C、(2) t=t->lchild;
D、(2) t->lchild=t->lchild->lchild;
E、(3)t=st[top];top--;
F、(3)top--;t=st[top];
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明2.1】
以下C语言函数用二分插入法实现对整型数组a中n个数的排序功能。
【函数2.1】
void fun1 (int a[])
{ int i,j,k,r,x,m;
for(i=2;i<=n;i++)
{ (1);
k=1;r=i-1;
while(k<=r)
{ m=(k+r)/2;
if(x<a[m])r=m-1;
else (2);
}
for(j=i-1;j>=k;j--)
a[j+l]=a[j];
(3);
}
}
【说明2.2】
以下程序可以把从键盘上输入的十进制数(long型)以二~十六进制形式输出。
【程序2.2】
include<stdio.h>
main()
{ charb[16]={'0','l','2','3 ,4,'5','6','7','8','9','A','B','C','D','E','F'};
int c[64],d,i=0,base;
long n;
printf("enter a number:\n");
scanf("%1d",&n);
printf("enter new basc:\n");
scanf("%d", &base);
do
{ c[i]=(4);
i++; n=n/base;
} while(n!=0);
printf("transmite new base:\n");
for(--i;i>=0;--i)
{ d=c[i];
printf("%c",(5));
}
}
用函数编程计算并输出如图所示的杨辉三角形。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h> #define N 20 void CaculateYH(int a[][N], int n); void PrintYH(int a[][N], int n); int main() { int a[N][N] = {0}, n; printf("Input n(n<20):"); scanf("%d", &n); caculateyh(a, n); printyh(a, return 0; } * 函数功能:计算杨辉三角形前n行元素的值 void caculateyh(__________, int n) { i, j; for (i="0;" i i++) a[i][0]="1;" ___________; (_______; (j="0;" j++) a[i][j]="__________________;" 函数功能:输出杨辉三角形前n行元素的值 printyh(int a[][n], _________; printf("%4d", a[i][j]); printf("\n");> A、第16行: int a[][N] 第22行: a[i][i] = 1 第24行: i=2 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j<=i> B、第16行: int a[][] 第22行: a[i][i] = 1 第24行: i=1 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j<=i> C、第16行: int a[][N] 第22行: a[0][i] = 1 第24行: i=2 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j
D、第16行: int a[N][] 第22行: a[i][i] = 1 第24行: i=2 第28行: a[j-1][i-1] + a[j][i-1] 第38行: j<=i<br>
用函数编程计算并输出如图所示的杨辉三角形。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include<stdio.h> #define N 20 void CaculateYH(int a[][N], int n); void PrintYH(int a[][N], int n); int main() { int a[N][N] = {0}, n; printf("Input n(n<20):"); scanf("%d", &n); caculateyh(a, n); printyh(a, return 0; } * 函数功能:计算杨辉三角形前n行元素的值 void caculateyh(__________, int n) { i, j; for (i="0;" i++) a[i][0]="1;" ___________; (_______; (j="1;" j++) a[i][j]="__________________;" 函数功能:输出杨辉三角形前n行元素的值 printyh(int a[][n], _________; printf("%4d", a[i][j]); printf("\n");> A、第16行: int a[][N] 第22行: a[i][i] = 1 第24行: i=2 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j<=i<br> B、第16行: int a[][] 第22行: a[i][i] = 1 第24行: i=1 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j<=i<br> C、第16行: int a[][N] 第22行: a[0][i] = 1 第24行: i=2 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j<i<br> D、第16行: int a[N][] 第22行: a[i][i] = 1 第24行: i=2 第28行: a[j-1][i-1] + a[j][i-1] 第38行: j<=i<br>
用函数编程计算并输出如图所示的杨辉三角形。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h> #define N 20 void CaculateYH(int a[][N], int n); void PrintYH(int a[][N], int n); int main() { int a[N][N] = {0}, n; printf("Input n(n<20):"); scanf("%d", &n); caculateyh(a, n); printyh(a, return 0; } * 函数功能:计算杨辉三角形前n行元素的值 void caculateyh(__________, int n) { i, j; for (i="0;" i i++) a[i][0]="1;" ___________; (_______; (j="0;" j++) a[i][j]="__________________;" 函数功能:输出杨辉三角形前n行元素的值 printyh(int a[][n], _________; printf("%4d", a[i][j]); printf("\n");> A、第16行: int a[][N] 第22行: a[i][i] = 1 第24行: i=2 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j<=i> B、第16行: int a[][] 第22行: a[i][i] = 1 第24行: i=1 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j<=i> C、第16行: int a[][N] 第22行: a[0][i] = 1 第24行: i=2 第28行: a[i-1][j-1] + a[i-1][j] 第38行: j
D、第16行: int a[N][] 第22行: a[i][i] = 1 第24行: i=2 第28行: a[j-1][i-1] + a[j][i-1] 第38行: j<=i<br>
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!