全部问题 > 当前问题

程序不是从上到下执行的吗?为什么不先输出1然后再输出4呢?

紫雨静心 2016-8-4 13:49:35

共 6 个回答

嘿嘿大人 2016-8-4 21:18:42

代码是什么?

紫雨静心 2016-8-4 21:22:55

回复 嘿嘿大人有以下程序
#include <stdio.h>
void f(int *p);
main()
{
  int a[5]={1,2,3,4,5},*r=a;
  f(r);printf("%d\n",*r);
}
void f(int *p)
{ p=p+3; printf("%d,",*p); }
程序运行后的输出结果是 ______ 。

最佳答案

嘿嘿大人 2016-8-4 21:36:21

回复 紫雨静心

代码是按顺序来的,在输出一之前调用了f函数,所以应该把f(r)执行完了才执行输出1的语句

紫雨静心 2016-8-5 20:33:09

回复 嘿嘿大人:想问老师一个问题

设有定义:

double a,b,c;
若要求通过输入分别给a、b、c输入1、2、3,输入形式如下(注:此处□代表一个空格)
□□1.0□□2.0□□3.0<回车>
则能进行正确输入的语句是

A) scanf("%lf%lf%lf",a,b,c);

B) scanf("%lf%lf%lf",&a,&b,&c);

C) scanf("%f%f%f",&a,&b,&c);

D) scanf("%5.1lf%5.1lf%5.1lf",&a,&b,&c);

这道题为什么不能选D呢?

紫雨静心 2016-8-5 21:29:39

回复 嘿嘿大人:还想问老师一个问题

以下选项中,能正确进行字符串赋值的是

A) char *s = "ABCDE" ;

B) char s[5] = { 'A', 'B', 'C', 'D', 'E' };

C) char s[4][5] = { "ABCDE" };

D) char *s ; gets( s );

这题B,D错在哪


紫雨静心 2016-8-5 21:39:18

回复 嘿嘿大人

#include <stdio.h>
#include <stdlib.h>
void fun(int *p1,int *p2,int *s )
{ s=( int * )malloc( sizeof(int) );
*s = *p1 + *(p2++);
}
main()
{ int a[2]={1,2 }, b[2]={10,20}, *s=a; fun( a,b,s );
printf("%d\n", *s );
}
程序运行后的输出结果是

A) 11

B) 10

C) 1

D) 2

为什么答案不是11?

问题来自: 指针和数组