8、给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。
例如,有下列矩阵:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
若k为2,程序执行结果为
3 4 5 1 2
3 4 5 1 2
3 4 5 1 2
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define M 3
#define N 5
void fun(int (*a)[N],int k)
{ int i,j,p,temp;
/**********found**********/
for(p=1; p<= __1__; p++)
for(i=0; i<M; i++)
{ temp=a[i][0];
/**********found**********/
for(j=0; j< __2__ ; j++) a[i][j]=a[i][j+1];
/**********found**********/
a[i][N-1]= __3__;
}
}
main( )
{ int x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j;
printf("The array before moving:\n\n");
for(i=0; i<M; i++)
{ for(j=0; j<N; j++) printf("%3d",x[i][j]);
printf("\n");
}
fun(x,2);
printf("The array after moving:\n\n");
for(i=0; i<M; i++)
{ for(j=0; j<N; j++) printf("%3d",x[i][j]);
printf("\n");
}
} 答案:(1)k(2)N-1(3)temp
下面这道C语言的题怎么做,谢谢了
case0:switch(c==5) \/*进入第二个case入口,c==5 是真的,故其至是1 *\/ { case 0:printf("*");break;case 1:printf("#");break; \/*从这里进入,输出‘#’符号,在执行break语句跳出 这个switch语句*\/ case 2:printf("$");break;} default:printf("&"); \/*接着执行这条语...
c语言:有哪位大侠可以帮我解释一下下面这道题目???
int main() \/\/表示一下内容为主函数 {int prime(int); \/\/这个用途是前置函数声明、因为被调哈数prime是在主函数后面的所以需要函数声明 printf("input an integer:"); \/\/这个作为人机交互、在执行之后输出input an integer具体自己翻译 scanf("%d",&n); \/\/这里作为n变量的取值、功能是手动...
下面有一些关于C语言问题,希望大伙儿侃侃,最好解释详细,谢谢呢?
void f(int y,int*x) X是按地址传,而Y是按值传,当值传到函数里时,*x可以改变X的值,而Y不能返回.保持原来的值...第六题:这是C语言的内存动态分配,不是很掌握,没有把握,希望其它好心人帮忙一下补齐.第七题:efgh 这道我简单说下,语言点太多,要是不明白,发消息给我,我就这题说详细.ret...
解出并解释一下C语言的这个题目(完美的代价)
\/\/算法思想具体如下:1、从左边第i的字符串开始逐个开始与x比较是否相等 2、在字符串右边第n-i-1个位置开始,向左寻找与之相同的字符。3、找到字符后将其逐个向右移动,统计交换次数 当遇到奇数字母时,反向搜索。见代码。即看2’的算法 2‘、在字符串左边第i个位置开始,向右寻找与第n-i-1位置...
帅哥美女们,帮我看看下面一道C语言题,谢谢。
2.detax是要求的误差,进入while前 y=1,所以当detax<=1进入循环,detax>1不循环 detax=1只循环一次次 detax=0只循环两次 3.这个问题很无聊 4.汗这个更无聊,就不是算e了 5.i++ 先加1在调用 ,++i先调用 再+1 6.do { x=x*i;y=1\/x;e=e+y;++i;}while(y>=detax);汗,我真...
c语言 下边这两个的输出结果是多少?讲解一下谢谢
第一题输出的结果是:0 2 1 4 2 8 第二题没有输出,不过执行完之后,x和*y的值都是85546 解释:第一题,当 y小于5的时候会循环执行大括号内的内容。y的值从1开始,每次循环会乘以x的值,于是y的变化:1 --> 2 --> 4 --> 8 i最开始是0,每次在输出之后才自增1,因此i的...
给我解释一下这道c语言题目
b++的意思是先做其他运算,之后b再加1 ++b的意思是先加1,再做其他运算 所以a&&0的结果直接为0了,所以后面的&&运算直接忽略不做了,所以c++也没有被执行
C语言问题谢谢
x < y ,因为不成立所以条件为假 (false 也就是 0), 然后 0 < 4成立,条件为真,所以输出结果为1.备注:这个题目考察的问题点实际上就是云算符的优先级 和 结合规则,如果能熟练掌握,其实很简单的,加油。以上是我对这道题目的解析,如果对你有帮助,请采纳一下,谢谢。
请高手帮我解决一下这道C语言题目,谢谢!
p++;\/\/更新指针即p指向s[下一个]a=a\/5;\/\/a整除5 } while(a>0);\/\/a大于0循环 p='\\0';\/\/防止程序出错 puts(s);\/\/输出数组 } 第一轮循环 s[0]=12+55=67='C' a=5 第二轮循环 s[1]=5+48=53='5' a=1 第三轮循环 s[2]=1+48=49='1' a=0 注:s是字符数组,输入...
C语言题目,详细解释,每一项为什么,谢谢
这个题目选C。因为定义a[3][4]二维数组后,第一下标的取值范围是0~2三个数,第二下标的取值范围是0~3四个数,即:a[0~2][0~3],共计3×4=12个元素。显然选项C的a[0][4]并不在这个范围内,所以这个元素并不存在,是非法调用。