下列说法错误的是()。
A.指针指向数组元素时,指针算术运算才有意义
B.两个指针指向同一个数组时,指针相减才有意义
C.指针的算术运算允许通过对指针变量重复自增来访问数组的元素
D.p++就是将指针变量p加上一个字节
A.指针指向数组元素时,指针算术运算才有意义
B.两个指针指向同一个数组时,指针相减才有意义
C.指针的算术运算允许通过对指针变量重复自增来访问数组的元素
D.p++就是将指针变量p加上一个字节
口袋中有若干红、黄、蓝、白、黑5种颜色的球,每次从口袋中取出3个球,编程输出得到3种不同颜色的球的所有可能取法。下面程序用三重循环模拟取球过程,但每次取出的球如果与前面的球颜色相同就抛弃。程序的运行结果如下: 1:RED,YELLOW,BLUE 2:RED,YELLOW,WHITE 3:RED,YELLOW,BLACK 4:RED,BLUE,WHITE 5:RED,BLUE,BLACK 6:RED,WHITE,BLACK 7:YELLOW,BLUE,WHITE 8:YELLOW,BLUE,BLACK 9:YELLOW,WHITE,BLACK 10:BLUE,WHITE,BLACK 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h> int main() { char *bColor[] = {"RED","YELLOW","BLUE","WHITE","BLACK"}; int i, j, k, m = 0; for (i=0; i<5; i++) { for (________; j++) k++) m++; printf("%d:%s,%s,%s\n", ___________________); } return 0;> A、第8行: j=i+1 第10行: k=j+1 第13行: m, bColor[i], bColor[j], bColor[k]
B、第8行: j=1 第10行: k=1 第13行: m, *bColor+i, *bColor+j, *bColor+k
C、第8行: j=i 第10行: k=j 第13行: m,*(bColor+i), *(bColor+j), *(bColor+k)
D、第8行: j=0 第10行: k=0 第13行: m, *bColor[i], *bColor[j], *bColor[k]
下面程序的功能是用指针变量作函数参数编程计算任意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]
A、指向含有10个元素的一维字符型数组的指针变量p
B、指向长度为10的字符串的指针变量p
C、有10个元素的指针数组p,每个元素可以指向一个字符串
D、有10个元素的指针数组p,每个元素存放一个字符串
A、(*p)++指的是先取出p指向的存储单元中的内容,然后将取出的数值加1,此时p不再指向原来的存储单元。
B、(*p)++指的是先取出p指向的存储单元中的内容,然后将取出的数值加1,而p仍然指向原来的存储单元。
C、*p++则指的是先取出p指向的存储单元中的内容,然后将p值加1,此时p不再指向原来的存储单元。
D、表达式(*p)++和*p++具有不同的含义,(*p)++并没有修改指针p的指向,而*p++则修改了指针p的指向。
A、sizeof(float)
B、1个字节
C、sizeof(p)
D、sizeof(a)
E、sizeof(float*)
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!