C语言简单习题:auto int b=0 。。。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言简单习题:auto int b=0 。。。。相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
int f (int a)
auto int b=0 ;
static int c=1 ;
b++ ;
c+=3 ;
return(a+b+c) ;

void main( )
int a=5 , I ;
for(I=0 ; I<3 ; I++)
printf("%4d", f(a)) ;

最后输出是什么?请解释原因。

auto声明后,每次调用这个函数都会将这个b重定义为0;

而进行stable声明后,c将不会被改变,所以值是不同的;

第一次循环:

a=5(这个是固定的);

b=0+1=1(自增运算符);

c=1+3=4;

返回一个值并输出a+b+c=10;


第二次循环:

a=5;

b=0+1=2(在这里重置);

c=4+3=7(而它并没有);

a+b+c=13;


第三次循环也是一样的,b重置,c加3,而a为定值5,所以三次输出相差3,就是c的三次加3,和b无关。


纯手打,求采纳,有问题,继续问

参考技术A 因为 static int c=1 ; c 的值 相当全局量,函数退出后,它的当前值继续有效并保留着。
所以:
(循环1):
b=0; b=b+1=1;
c=1; c=c+3=4
a+b+c=5+1+4
(循环2):
c=4;c=c+3=7;
a+b+c=5+1+7=13;
(循环3):
c=7;c=c+3=10
a+b+c=5+1+10=16
==
输出:
10 13 16

C语言指针练习题

1.如有下面的语句说明, 则表达式 *(p+3) 的值是 (  )。
 int a[]=2,3,4,5,6,7;
‎ int *p=a;
A.6 B.5 C.4 D.3
‌‌2.如有下面的语句说明, 则执行语句for(i=0;*s++;i++); 后变量i的值是 (  )。
 int i;
‏ char *s="a\\n46\\b"; 
A.7 B.5 C.6 D.8
3.如有下面的语句说明, 则正确的赋值语句是 (  )。
char a[10], *p=a;
A.p=”VC++”;
B.a=”VC++”;
C.a[10]=”VC++”;
D.*p=”VC++”; 
​4.如有下面的语句说明, 则下面赋值表达式合法的是 (   )。
 int i,  *p;
A.*p=*i
B.p=i
C.p=&i
D.*p=&i
5.若有程序段
‍    int b[4],*p,*q;
‍    p=&b[1]; q=&b[3];
则q-p表示的意义是(  )。
A.p与q之间的字节数
B表达式错误
C.p占据的字节数 
D.p与q之间数据个数
6.假设有下面定义语句:
‍    ‎float a[10];
‍    float *p=a;
则p++相当于是加上()个字节
‎A.sizeof(float*)
B.sizeof(float)
C.1个字节
D.sizeof(a)
7.‌若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为
A.*(a+i*n+j)
B.*(*(a+i)+j)
C.*(a+j*n+i)
D.*(*a+i)+j
8.以下程序运行后的输出结果是
    int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],b;
    b=p[5];
    printf("%d",b);
A.5
B.6
C.8
D.9
‏9.下面给出的选项中,能定义为一个指针数组的语句是
A.int (*ptr)[5];
B.int *ptr[5];
C.int ptr[5];
D.int *(ptr[5]);
10.下面关于表达式(*p)++和*p++的含义分析说明中,错误的是
A.(*p)++指的是先取出p指向的存储单元中的内容,然后将取出的数值加1,而p仍然指向原来的存储单元。
B.表达式(*p)++和*p++具有不同的含义,(*p)++并没有修改指针p的指向,而*p++则修改了指针p的指向。
C.*p++则指的是先取出p指向的存储单元中的内容,然后将p值加1,此时p不再指向原来的存储单元。
D.(*p)++指的是先取出p指向的存储单元中的内容,然后将取出的数值加1,此时p不再指向原来的存储单元。
​11.有int *p[10];以下说法错误的是________。
A.p中每个元素都是一个指针变量
B.p++操作是合法的
C.p是数组名
D.p是一个指针数组

以上是关于C语言简单习题:auto int b=0 。。。。的主要内容,如果未能解决你的问题,请参考以下文章

C语言课后习题

C语言指针练习题

C语言指针练习题

C语言习题

c语言一些简单算法

谭浩强版本C语言课后习题第四章