有几个问题不太懂,希望解答者能详细说明一下为什么选那个答案,谢谢!
1.fun(int **s,int p[2][3])
{ **s=p[1][1]; }
main()
{ inta[2][3]={1,3,5,7,9,11},*p;
p=(int *)malloc(sizeof(int));
fun(&p,a);
printf("%d\n,*p);
}
程式输出为: 9
问题:1.**s是什么东西?
2.p=(int *)malloc(sizeof(int))是什么?
3.为什么输出 9?
2.若如下的说明和语句:
inta[7][8],*ip;ip=(int *)a
使指针ip指向a[4][6]的正确答案是:
a)ip+=3*8+6 b)ip+=(3*8+6)*sizeof(int)
c)ip+=4*8+6 d)ip+=(4*8+6)*sizeof(int)
3.fun(int n,in*s)
{ int f1,f2;
if(n==1||n==2) *s=1;
else
{ fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{ int x;
fun(6,&x);
printf("%d\n",x);
}
程序结果为:_______
4.#include<stdio.h>
void fun(int a,int b);
int c=-2;
main()
{ int i;
for(i=0;i<=1;i++) fun(i,c);
printf("c=%d\n",c);
}
void fun(int a,int b)
{ static int c=2;
c=a+b+++c;
printf("c=%d\n",c);
}
程序输出的第一行,第二行和最后一行分别是:__.__和__。
5.#include<stdio.h>
main()
{ int i=-5;
while(i++)
{ swtich(i+5)
{ case 1:
switch(-i-3)
{ case 1:printf("%d\n",i);
case 2:printf("%d\n",i);
}
case 2: printf("%d\n",i);break;
case 3: printf("*d\n",i);
}
}
}
程序输出的最后一行是_______。
高分C语言问题~~·高手请进
思路:A[n]中,n代表有多少堆果子,A中的元素代表各堆的果子数目 int getValue(int A[]){ 初始 int S=0 1. (数组A)n个数字从小到大排序 (例如:1,2,9)2. 取上步中最小的两个数相加之和为一个M , S=S+M 3. 数组A中除去最小的两个数,然后将M加进去形成一个新数组A元素个数为 n...
c语言二级问题,请高手详细解答下
先根据运算符优先级,原式等效于 y=(--x||++y);||运算符的短路效应,--x值为非零,所以子表达式--x||++y值为1,且后半部分的++y未执行,因此y值为1
c语言问题,高手请进谢谢!!!
1、++i 时i加1得到i,此时的i=2;2、++i 时i加1得到i,此时的i=2+1=3;3、此时前面有两个i等待运行,即i+i--->这两个i些时都是3;而不是一个2,一个3;4。再一个++i 此时i加1得到i,i=3+1=4;由上面的理解知道i此时已经是4,5、由上面四步得到一个i=4,i+i+i的式...
几道c语言题目,还请高手不吝赐教,谢谢!不要嫌烦哈……
答案:A 我认为是C,求教……if(a>b) 是不成立的,后面的语句不运行!a,b,c值不变
C语言编程问题.请高手进(附源码)!!!HELP
for(c=0;c!=b;c++)sr();break;case 2:;break;case 3:;break;default:printf("输入错误,请重新打开程序输入!");} } void sr(void){ int b=0,d=0,f=0;float e=0.0;char A[20],c[20];FILE *g;g=fopen("fdsj.dat","a+");\/\/---a方式好,是追加 printf("请输入菜的类别...
c语言的问题~~请高手帮忙解答~~
9.20e+000 否则 %10.2f的话就是 9.20 2 比如输出10 : 按八进制 10= 8 + 2就应该是 12, 输出 12 3 比如输出10 : a 4 比如输出"asdfg : asd (前面两空格,总共5位,有效3位)5 应该表示总长度. 写成 %4.2 的话,4才表示整数长度.但%4f 小数部任然会补满6位....
C语言高手请进啊,高分哦,详细的解释!!!
即 第一个元素为 p[0][0]定义的数组为二维。所以 p[1] 是第二行的全部元素 即 France 另外它不是省略的 p[1][0],两者不同,前者是一行,后者是一个 另外,你可以从c语言的打印方式看出,前者 %s 是打印字符串 后者 %c 是打印字符(一个)希望对你有帮助啊!
编程高手请进!(C语言)
scanf("%c",&yes);} } 2.include <stdio.h> void main(){ int gj, mj, xj, t1, t2;for (gj=1; gj<=20; gj++){ for (mj=1; mj<34; mj++){ xj=100-gj-mj;t1=xj%3;t2=5*gj+3*mj+xj\/3;if (t1==0&&t2==100)printf("gj=%d,mj=%d,xj=%d\\n",gj,mj,xj);} }...
c语言数组、地址问题请高手解释?
定义了数组a,则机器在内存当中给数组a开辟一片内存存储数组a,数组a的元素是顺序存储的,所以说数组a所在的地址就是数组a第一个元素所在的地址,这两个指针(&a,&a[0])其实算是指向同一个地址的,所以打印出来的数值是相同的。p应该是64位32进制形式输出,%d是十进制形式输出的。&a[0]跟a其实...
c语言编程题,请高手帮忙做一下,拜谢,急急急急……
1.include <stdio.h> double funcPi(int);int main(void){ int arg;printf("Input the argument: ");\/\/ \/\/ 无异常输入 \/\/ while (!scanf("%d", &arg)){ printf("Check your input and retry: ");while (getchar()!='\\n'){ continue;} } while (getchar()!='\\n'){ continue...