有以下程序: #include <stdio.h> main( ) { int a=7; while(a--); print[("%d\n

题目

有以下程序: #include <stdio.h> main( ) { int a=7; while(a--); print[("%d\n",a); } 程序运行后的输出结果是( )。

A.-l

B.0

C.1

D.7

参考答案和解析
正确答案:A
此题考查a--和--a之间的区别,当while(a--)为真循环执行,a--是执行再减1,所以答案选择A。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序

#include<stdio.h>

main()

{ int a=7;

while(a--);

printf("%d\n",a);

}

程序运行后的输出结果是

A.-1

B.0

C.1

D.7


正确答案:A
解析:考察while循环,当a为0时,while(a--)下面的语句不会执行,但是会执行a--,所以最后a的结果为-1。

第2题:

有以下程序include main(){ int.i=0,a=0;while(i<20){for(;;) {if((i%10)==0)break;el

有以下程序 #include <stdio.h> main() { int.i=0,a=0; while(i<20) { for(;;) { if((i%10)==0) break; else i--; } i+=11; a+=i; } printf("%d\n",a) ; } 程序运行后的输出结果是( )

A.21

B.32

C.33

D.11


正确答案:B

第3题:

以下程序运行后,输出结果是______。includess(char*s){char *p=s; while(*.p)p++; retu

以下程序运行后,输出结果是______。#include<stdio.h>ss (char *s){ char *p=s; while(*.p)p++; return(p-s);}main(){ char *a="abded"; int i; i=ss((A); print ("%d\n",i);}

A.8

B.7

C.6

D.5


正确答案:D

第4题:

下面程序的运行结果是( )。include main(){int a=25; fun(&A); }fun(int *x){ print

下面程序的运行结果是( )。

include<stdio.h>

main()

{int a=25;

fun(&A);

}

fun(int *x)

{ printf("%d\n",++*x);

}


正确答案:26
26 解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

第5题:

有以下程序:includeint a=2;int f(int *a){return (*a) ++;}main(){ int s=0;{ int a=

有以下程序: #include <stdio.h> int a=2; int f(int *a) { return (*a) ++;} main() { int s=0; { int a=5; s+=f(&a); } s+=f(&a); printf("%d\n",s) } 执行后的输出结果是( )。

A.10

B.9

C.7

D.8


正确答案:C
解析:在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用这些变量。对于main函数中的{inta=5;s+=f(&a);},a只在花括号内有效。在函数之外定义的变量称为外部变量,外部变量是全局变量,它的有效范围是从定义该变量的位置开始到本源文件结束。程序开头的定义inta=2;使a成为全局变量,main函数中第二个s+=f(&a);语句中的a就是这个全局变量。

第6题:

有以下程序includemain(){int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t);}程序运行后的

有以下程序 #include<stdio.h> main() { int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t); } 程序运行后的输出结果是______。

A.21

B.11

C.6

D.1


正确答案:A
解析:本题主要考查了C语言的逻辑运算符,先将变量a,b的值转换为2进制数,a=00000101,b=00000001,a先左移 2位结果为00010100,再与b按位或运算,结果为00010101,转换为十进制数为21,因此,选项A是正确的。

第7题:

有以下程序includeintt b=2;int fun(int*k) {b=*k+b;return(b);}main(){int a[10]={1,

有以下程序 #include<stdio.h> intt b=2; int fun(int*k) {b=*k+b;return(b);} main() { int a[10]={1,2,3,4,5,6,7,8,},i; for(i=2;i<4;i++) {b=fun(&a[i])+b; printf("%d",b);} print("\n"); } 程序运行后的输出结果是______。

A.10 12

B.8 10

C.10 28

D.10 16


正确答案:C
解析:程序在执行for循环中,第—次调用fun()函数时,因为变量i的值为2,所以&a[i]指向a[2]),值为3,又因为b是全局变量,所以在fun函数中可以直接使用,执行“b=*k+b;”,即b=3+2=5,从被调函数中返回的值为5,此时全局变量b的值也变为5,所以由main()函数中执行语句“b=fun(&a[i])+b;”的结果b=5+5=10,因此第—次输出b的值为10;第二次调用时变量i的值为3,调用 fun函数的返回值为14,所以第二次输出28,此时for循环中,变量i=4,不符合循环条件i4,跳出循环,故选项C是正确的。

第8题:

有以下程序 include main(int argc, char *argv[]) {int

有以下程序 #include <string.h> main(int argc, char *argv[]) {int i=1,n=0; while(i<argc) {n=n+strlen(argv[i]);i++;} printf("%d\n",n); } 该程序生成的可执行文件名为:proc.exe。若运行时输入命令行: proc 123 45 67 则程序的输出结果是______。

A.3

B.5

C.7

D.11


正确答案:C
解析:main()可以带有参数,并且参数只能有两个,第一个参数(argc)类型为整型用来记下命令行的参数个数,第二个参数(argv)为—个字符型指针数组,其各个元素用来记下命令行各参数字符串的首地址。此题执行时,argc的值为4,在循环中依次使用strlen()函数求出argv(1)、argv(2)、argv(3)指向的字符串(123、45、67)的长度并把他们加到变量n中,得到n的值为7。

第9题:

有以下程序:

include <stdio.h>

main( )

{ int a=7;

while(a--);

print[("%d\n",a);

}

程序运行后的输出结果是( )。

A.-1

B.0

C.1

D.7


正确答案:A

此题考查a--和--a之间的区别,当while(a--)为真循环执行,a--是执行再减1,所以答案选择A。