C语言程序分析题和编程题

C语言程序分析题和编程题,第1张

####

###

##

#

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语言程序分析题 求解为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9305951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存