####
###
##
#
i 可控制列
输出(#)号i个
j在行中星号()根据i的值输出4-i个
300,200,100
f1()是自定义的函数,并对x y z 分别进行了初始化(默认值),在主函数中调用,当没有参数传递时,将这三个数进行输出,否则将输出传递过来的参数值
3 进行中
#include<stdioh>
main()
{
int a[6] = { 9, 7, 5, 3, 1 }; //假设排序已进行
int t;
int i, j;
for(i = 0;i<5; i++)
printf("%d ",a[i]);
printf("\n");
printf("请输入您要插入的数字(1--9) \b\b");
scanf("%d", &t);
for ( i = 0; i < 5; i++)
if( t>=a[i+1] && t<a[i] ) //小于前一个 而 大于后一个
{
for(j = 5; j >i; j--)
a[j] = a[j-1]; //重新赋值
a[i+1] = t;
break;
}
for(i = 0; i<=5; i++)
printf("%d ",a[i]);
printf("\n");
}
2473<CR>
while((c=getchar())!=’\n’)
{
switch(c-‘2’) {
case 0:
case 1:putchar(c+4); //第一次输入c=‘2’,c-'2'=0,走到这里,输出c+4='2'+4='6' 没有break继续下面case 2的语句 再输出一次c+4=6 第四次输入3,c-'2'=1走到这里,同第一次会输出两个c+4=‘7’
case 2:putchar(c+4);break; //第二次输入'4' c-'2'=2走到这里,输出c+4='4'+4='8' 然后break
case 3:putchar(c+3);
default:putchar(c+2);break; //第三次输入'7' c-'2'=5走到这里,输出c+2='7'+2='9' 然后break
}
所以答案是A 668977
显示结果是:Aa
因为c语言中,函数参数传递是单向按值传递,fun(p1,p2)在调用是相当于复制了p1p2的值给a和b,然后a指向了b,但是并不会传递回主函数,p1p2的指向并没有发生变化,主函数输出仍然是原来的c1和c2的值
如果一定要改变,只能在子函数中:a=b;这样就改变了原来变量地址里的值,尽管p1p2的指向没发生变化,但是指向的单元里的内容变了,输出为aa。相当于间接改变。
#include<stdioh>
void fun (char a,char b)
{
a=b;
}
void main()
{
char c1='A',c2='a',p1,p2;
p1=&c1;
p2=&c2;
fun(p1,p2);
printf("%c%c",p1,p2);
}
以上就是关于C语言程序分析题和编程题全部的内容,包括:C语言程序分析题和编程题、C语言的一道计算结果分析试题,百思不得其解,大家分析下,谢了、一道C语言程序分析题 求解为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)