
关于c语言的几道题 想问一下怎么算的
下列程序运行的结果是___a=19,a=3,b=10__________#include<stadio.h>inta=8,b=10;woidFunc(intn){intt...
下列程序运行的结果是___a=19,a=3,b=10__________
#include<stadio.h>
int
a=8,b=10;
woid Func(int n)
{
int
t=1;a+=t+n;printf("a=%d,",a++);
}
main()
{
int
a=3;
Func(b);
printf("a=%d,b=%d",a,b);
}
2.
下面程序的功能是求存储在array数组中的矩阵两条对角线上元素之和。
#include"stadio.h"
main()
{
int
array[3][3]={2,3,4,8,3,2,7,9,8},a=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(____i=j||i+j=2______________________)
a=a+aray[i][j];
printf("%d\n",a);
}
3.下面程序的功能是输出结构体数组的所有元素的值
#include<stadio.h>
structs
s
{
char name[10];
int age;
};
main()
{
structs
a[3]={{"John",19},{"Paul",17},{"Mary",18}};
structs *p;
int
i=0;
for(_______p=a;i<3;i++,p++_______________)
printf("%s,%d\n",p>name,p>age);
}
下划线就是问题
结果已经给出来了 就是有点小疑惑
这三道题 问问 答题的过程 希望能详细点 谢谢 展开
#include<stadio.h>
int
a=8,b=10;
woid Func(int n)
{
int
t=1;a+=t+n;printf("a=%d,",a++);
}
main()
{
int
a=3;
Func(b);
printf("a=%d,b=%d",a,b);
}
2.
下面程序的功能是求存储在array数组中的矩阵两条对角线上元素之和。
#include"stadio.h"
main()
{
int
array[3][3]={2,3,4,8,3,2,7,9,8},a=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(____i=j||i+j=2______________________)
a=a+aray[i][j];
printf("%d\n",a);
}
3.下面程序的功能是输出结构体数组的所有元素的值
#include<stadio.h>
structs
s
{
char name[10];
int age;
};
main()
{
structs
a[3]={{"John",19},{"Paul",17},{"Mary",18}};
structs *p;
int
i=0;
for(_______p=a;i<3;i++,p++_______________)
printf("%s,%d\n",p>name,p>age);
}
下划线就是问题
结果已经给出来了 就是有点小疑惑
这三道题 问问 答题的过程 希望能详细点 谢谢 展开
展开全部
第一题~你再看看,调用函数里和主函数里都有写,输出a的值~当然就会输出2个a的值了
第二题:对角线有2条~第2条右斜向上的条件是i+j=2
因为它们下标是
00,01,02
10,11,12
20,21,22
第二题:对角线有2条~第2条右斜向上的条件是i+j=2
因为它们下标是
00,01,02
10,11,12
20,21,22
追问
哦哦 这回明白了 谢谢了 真是感谢
展开全部
第一题是考察全局变量和局部变量的作用域问题,main函数里a=3,调用func函数,使用全局变量b的值10,执行func函数,n使用b的值10,执行语句a+=t+n,这条语句先执行t+n=11,在执行a=a+11,a使用全局变量值8,所以最后a为19,执行输出语句输出a=19,最后a自身加1,函数调用完毕在执行主函数剩余语句,输出a的值是主函数里的3,b是全局变量10,因为这条输出语句是在主函数内部,是输出内部a=3的值而不是全局变量a=8的值
追问
我不理解的是为什么输出两个a的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.func()中的a调用的是全局变量。main中的printf()中的a是调用局部变量。
2.这个就是个满足在对角线上的单元的累加,主对角线满足 i=j 这个是很明显的,正方形嘛。反对角线满足的就是i+j=2了(阶-1) 这个可以画个图来理解下.
3.是个指针问题,p一开始要指向的是结构数组的首地址在这里也是第一个元素a,所以有p=a这个语句,总的要输出三次,i<3,然后偏移量自增指向下一个单元,i自增登记下次数。
2.这个就是个满足在对角线上的单元的累加,主对角线满足 i=j 这个是很明显的,正方形嘛。反对角线满足的就是i+j=2了(阶-1) 这个可以画个图来理解下.
3.是个指针问题,p一开始要指向的是结构数组的首地址在这里也是第一个元素a,所以有p=a这个语句,总的要输出三次,i<3,然后偏移量自增指向下一个单元,i自增登记下次数。
追问
第一题 我不理解的是为什么输出2个a的值 第二题 i+j=2不太明白 第三题 明白了 谢谢
追答
1输出两个a的值是因为 func()中有个printf,main()中也有个独立的printf;
2.第二题你画个矩阵出来,每个框框都弄上下标你就明白了,对角线是有主对角线和反对角线的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
唉,你还是多看书吧!
追问
感觉书上的内容 大多都是定义上的 而 习题往往很深奥 需要琢磨一番 才明白
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询