第1题
第2题
#include <stdio.h>
main ()
{ int a[10],*p,*s;
for ( p=a;p-a<10;p++ ) scanf ( " %d " ,p ) ;
for ( p=a,s=a;p-a<10;p++ ) if ( *p>*s ) s= 【 15 】 ;
printf ( " index=%d\n " ,s-a ) ;
}
第3题
inculde <stdio.h>
main()
{ int a[10],*p,*s;
For(p=a;p-a<10;p++) scanF(“%d”,p)
For(p=a;s+a;p-a<10;p++) iF(*p>*s)s=【 】;
printF(“index=%d\n”,s-a);
}
第4题
下面程序的功能是用指针变量作函数参数编程计算任意m×n阶矩阵的转置矩阵。要求用指向一维数组的指针变量即二维数组的行指针作函数参数。程序的运行结果如下: Please enter matrix: 1 2 3 4↙ 1 2 3 4↙ 1 2 3 4↙ The transposed matrix is: 1 1 1 2 2 2 3 3 3 4 4 4 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h> #define ROW 3 #define COL 4 void Transpose(int (*a)[COL], int (*at)[ROW], int row, int col); void InputMatrix(int (*s)[COL], int row, int col); void PrintMatrix(int (*s)[ROW], int row, int col); int main(void) { int s[ROW][COL];//s代表原矩阵 int st[COL][ROW];//st代表转置后的矩阵 printf("Please enter matrix:\n"); InputMatrix(s, ROW, COL);//输入原矩阵,s指向矩阵s的第0行,是行指针 Transpose(s, st, ROW, COL);//对矩阵s进行转置,结果存放于st中 printf("The transposed matrix is:\n"); PrintMatrix(st, COL, ROW); //输出转置矩阵,*st指向st的第0行,是行指针 return 0; } //函数功能: 对任意row行col列的矩阵a转置,转置后的矩阵为at void Transpose(____________,int (*at)[ROW], int row, int col) { int i, j; for (i=0; i <row; i++) { for (j="0;" j++) _____________________; } void inputmatrix(___________, int row, col) 输入矩阵元素 i, j; (i="0;" scanf("%d", ___________); 元素s[i][j] printmatrix(int ___________, 输出矩阵元素 printf("%d\t", *(*(s+i)+j)); printf(" \n");> A、第20行: int (*a)[COL] 第27行: *(*(at+j)+i) = *(*(a+i)+j) 第32行: int(*s)[COL] 第39行: *(s+i)+j 第44行: (*s)[ROW]
B、第20行: int *a[COL] 第27行: *(*(at+j)+i) = (*(a+i)+j) 第32行: int(*s)[ROW] 第39行: *(s+i)+j 第44行: *s[COL]
C、第20行: int (*a)[ROW] 第27行: *(at+j+i) = *(*(a+i)+j) 第32行: int(*s)[COL] 第39行: *(s+i+j) 第44行: (*s)[ROW]
D、第20行: int (*a)[COL] 第27行: *(*(at+j)+i) = *(*(a+i+j)) 第32行: int(*s)[ROW] 第39行: *(s)+i+j 第44行: (*s)[COL]
第5题
下面程序的功能是用指针变量作函数参数编程计算任意m×n阶矩阵的转置矩阵。要求用指向一维数组的指针变量即二维数组的行指针作函数参数。程序的运行结果如下: Please enter matrix: 1 2 3 4↙ 1 2 3 4↙ 1 2 3 4↙ The transposed matrix is: 1 1 1 2 2 2 3 3 3 4 4 4 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h> #define ROW 3 #define COL 4 void Transpose(int (*a)[COL], int (*at)[ROW], int row, int col); void InputMatrix(int (*s)[COL], int row, int col); void PrintMatrix(int (*s)[ROW], int row, int col); int main(void) { int s[ROW][COL];//s代表原矩阵 int st[COL][ROW];//st代表转置后的矩阵 printf("Please enter matrix:\n"); InputMatrix(s, ROW, COL);//输入原矩阵,s指向矩阵s的第0行,是行指针 Transpose(s, st, ROW, COL);//对矩阵s进行转置,结果存放于st中 printf("The transposed matrix is:\n"); PrintMatrix(st, COL, ROW); //输出转置矩阵,*st指向st的第0行,是行指针 return 0; } //函数功能: 对任意row行col列的矩阵a转置,转置后的矩阵为at void Transpose(____________,int (*at)[ROW], int row, int col) { int i, j; for (i=0; i <row; i++) { for (j="0;" j++) _____________________; } void inputmatrix(___________, int row, col) 输入矩阵元素 i, j; (i="0;" scanf("%d", ___________); 元素s[i][j] printmatrix(int ___________, 输出矩阵元素 printf("%d\t", *(*(s+i)+j)); printf(" \n");> A、第20行: int (*a)[COL] 第27行: *(*(at+j)+i) = *(*(a+i)+j) 第32行: int(*s)[COL] 第39行: *(s+i)+j 第44行: (*s)[ROW]
B、第20行: int *a[COL] 第27行: *(*(at+j)+i) = (*(a+i)+j) 第32行: int(*s)[ROW] 第39行: *(s+i)+j 第44行: *s[COL]
C、第20行: int (*a)[ROW] 第27行: *(at+j+i) = *(*(a+i)+j) 第32行: int(*s)[COL] 第39行: *(s+i+j) 第44行: (*s)[ROW]
D、第20行: int (*a)[COL] 第27行: *(*(at+j)+i) = *(*(a+i+j)) 第32行: int(*s)[ROW] 第39行: *(s)+i+j 第44行: (*s)[COL]
第6题
3.算法填空题 数组q[MAX]存储一个循环队,尾指针last用来指向当前队列中的尾元素,count用来记录队列中当前元素个数。 下面的程序用于模拟队操作全过程。 提示:当count=0时,表示队空;当count=MAX时,表示队满。 当队不空时,(last-count+1+MAX)%MAX即是队头位置。 #include <stdio.h> #define MAX 400 //x 进队函数 int addq(int q[], int &last, int &count, int x) { if (count == MAX) (1) ; last = (last + 1) % MAX; (2) ; (3) ; return 1; } //x 出队函数 int delq(int q[], int last, int &count, int &x) { int f; if (count == 0) return 0; f = (4) ; x = q[f]; count--; return 1; } //输出队列中所有元素的函数 void print(int q[], int last, int count) { int i, j; if ( (5) ) { printf(" 当前队中没有元素! \n"); return; } printf(" 当前队中的元素为:\n"); i = (6) ; for (j = 1; (7) ; j++) { printf("%4d", q[i]); i = (i + 1) % MAX; } printf(" \n"); } //主函数 int main() { int q[MAX], (8) , count = 0, c, k, x; while (1) { printf(" 请输入操作码,1:进队;2.出队;3.显示队内容;0:结束 c= "); scanf(" %d", &c); if (c == 0) break; if (c == 1) { printf(" 请输人进队元素x:"); scanf("%d",&x); k = (9) ; if (k==0)printf("队已满,进队失败! \n" ); else printf("%d 已进队!\n" ,x); } else if(c == 2) { k = (10) ; if(k == 0)printf( "队空,无元素出队! \n"); else printf("元素%d已从队中退出! \n" ,x); } else if(c == 3) print(q, last, count); else continue; } printf("程序结束\n" ); }
第7题
include<stdio.h>
main( )
{int a[10],*p,*S;
for(p=a;p-a<10;p++)scanf(”%d”,p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;
printf(”max=%d\n”,________);
}
第8题
第9题
#include
main ()
{ int a[10],*p,*s;
for (p=a;p-a<10;p++ ) scanf (" %d " ,p ) ;
for (p=a,s=a;p-a<10;p++ ) if (*p>*s ) s= 【 15 】 ;
printf (" index=%d\n " ,s-a ) ;
}
第10题
A.ap>Aq
B.*p>*q
C.p>q
D.p-a>p-q
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!