以下程序的运行结果是( )。 #include<stdio.h> void main( ) { int a=3,b=2,c=1; { int b=5,c=12;

3、以下程序的运行结果是( )。
#include<stdio.h>
void main( )
{
int a=3,b=2,c=1;
{
int b=5,c=12;
c-=b*2;
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
a+=c;
}
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
}
A.a=3,b=2,c=-3
a=0,b=2,c=-3
B.a=3,b=5,c=2
a=5,b=5,c=2
C.a=3,b=2,c=1
a=3,b=5,c=2
D.a=3,b=5,c=2
a=5,b=2,c=1

4、对函数不正确的描述是( )
A. 当用数组名作参数时,形参数组的改变可使实参数组随之改变
B. 允许函数递归调用
C.函数形参的作用范围只是局限于所定义的函数内
D. 函数说明必须在主调函数之前

5、若执行以下程序段,其运行结果是( )。
char c[ ]={‘a’, ‘b’, ‘\0’, ‘c’,‘\0’};
printf(“%s\n”,c);
A. ab c B.’a’’b’ C.abc D.ab

6、若定义int i;则以下循环语句的循环执行次数是( )。
for(i=2;i= =0;) printf(“%d”, i--);
A. 无限次 B.0次 C.1次 D.2次

7、以下程序的输出结果是( )
f(int b[ ],int m, int n)
{
int i,s=0;
for(i=m;i<n;i=i+2) s=s+b[i];
return(s);
}
void main( )
{
int x,a[ ]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf(“%d\n”,x);
}
A. 18 B.15 C.10 D.8

8、以下程序的输出结果是( )
f(int x, int y)
{
int t;
if(x<y) { t=x; x=y; y=t; }
}
void main( )
{
int a=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf(“%d,%d,%d\n”,a,b,c);
}
A. 3,4,5 B.5,3,4 C.5,4,3 D.4,3,5

9、已知变量定义如下:
int i=8,a,b;
double x=1.42,y=5.2;
则以下符合C语法的表达式是( )。
A. a+=a-=(b=4)*(a=3) B.a=a*3=2 C.x%(-3) D.y=float(i)

10、以下程序的输出结果是( )
#include<stdio.h>
void main( )
{
int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A. 0650 B.1470 C.5430 D.输出值不确定

//3、以下程序的运行结果是( D)。
#include<stdio.h>
int main( )
{
int a=3,b=2,c=1;
{
int b=5,c=12;
c-=b*2;
printf("a=%d,b=%d,c=%d\n",a,b,c); //输出显示为:a=3,b=5,c=2
a+=c;
}
printf("a=%d,b=%d,c=%d\n",a,b,c); //输出显示为:a=5,b=2,c=1
}


//4、对函数不正确的描述是( D)
//A. 当用数组名作参数时,形参数组的改变可使实参数组随之改变
//B. 允许函数递归调用
//C.函数形参的作用范围只是局限于所定义的函数内
//D. 函数说明必须在主调函数之前


//5、若执行以下程序段,其运行结果是( A)。
//char c[ ]={‘a’, ‘b’, ‘\0’, ‘c’,‘\0’};
//printf(“%s\n”,c);
//A. ab c B.’a’’b’ C.abc D.ab
#include<stdio.h>
int main( )
{
char c[ ]={'a', 'b', '\0', 'c','\0'};
printf("%s\n",c); //输出显示为:ab 
//因为 '\0' 是表示字符串的结果,所以相当于放弃了后面的字符了。 
}


//6、若定义int i;则以下循环语句的循环执行次数是( B )。
//for(i=2;i= =0;) printf(“%d”, i--);
//A. 无限次 B.0次 C.1次 D.2次
#include<stdio.h>
int main()
{
char i;
for(i=2;i==0;) 
printf("%d", i--);
//因为 i 被初始化为2,其循环条件为 i等于0 ,所以条件不成立,不执行。 
}


//7、以下程序的输出结果是( C )
#include<stdio.h>
int f(int b[],int m, int n)
{
int i,s=0;
for(i=m; i<n; i=i+2) //循环条件:大于等于3且小于7的数组
s=s+b[i]; //计算过程:0+4+6=10 
return(s);
}
int main( )
{
int x,a[ ]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x); //输出显示为:10 
}
//A. 18 B.15 C.10 D.8 


//8、以下程序的输出结果是( D )
#include<stdio.h>
void f(int x, int y) //因为函数 f 并没有返回改变后的数据。 
{
int t;
if(x<y)
{
t=x;
x=y;
y=t; 
}
}
int main( )
{
int a=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
//A. 3,4,5 B.5,3,4 C.5,4,3 D.4,3,5


//9、已知变量定义如下:
//int i=8,a,b;
//double x=1.42,y=5.2;
//则以下符合C语法的表达式是( A )。
//A. a+=a-=(b=4)*(a=3) B.a=a*3=2 C.x%(-3) D.y=float(i)
#include<stdio.h>
int main( )
{
int i=8,a,b;
double x=1.42,y=5.2;

a+=a-=(b=4)*(a=3); //a=-18  b=4
//上面的命令,相当于把命令拆解为 
// a=3;
// b=4;
// a-=b*a;
// a+=a;

// a=a*3=2; //这个不能编译 
// x%(-3); //这个提示︰无效操作数的类型
y=float(i); //y =8,考虑到 y=double  i被强制转换成  float数据,所以当这条命令无效,答案选择 A 
}


//10、以下程序的输出结果是( A )
#include<stdio.h>
int main( )
{
int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
//数组相当于 
//{1,3,5,0}
//{2,4,6,0}
//{3,5,7,0}
//{0,0,0,0}
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
//A. 0650 B.1470 C.5430 D.输出值不确定

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-05

    D

    D

    D

    B

    C

    D

    D

    A

第2个回答  2017-06-04
D. 函数说明必须在主调函数之前
第3个回答  2019-12-21
以下程序的运行结果是( )。 #include<stdio.h> void main( ) { int a=3,b=2,c=1; { int b=5,c=12;