控制结构
78、以下程序段运行时,若从键盘输入10,则输出结果是()
int a;
scanf(“%d”,&a); if(a++>10)
printf(“%d\\n”,a); else
printf(“%d\\n”,++a);
A. 2 B. 11 C. 3 D. 12 79、以下程序的运行结果是()
void main() {
int x,y=1,z; z=-1; if(z==0) z=-z; else
x=y>0?3:5;
printf(“%d\\n”,x); }
A. -1 B. 3 C. 1 D. 5
80、对于整型变量x,下属if语句()与赋值语句:x=x%2==0?1:0;不等价。 A. if(x%2!=0) x=0;else x=1; B. if(x%2) x=1;else x=0; C. if(x%2==0) x=1;else x=0; D. if(x%2==1) x=0;else x=1; 81、以下程序段运行的结果是() int a,b,c,x; a=b=c=0;x=15; if(!a) x--; else if(b); if(c) x=3; else x+=4;
printf(\
A. 15 B. 17 C. 18 D. 19
82、若有定义:int a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为()
if(a
{c=a;a=b;b=c;}
A. a=1,b=2,c=3 B. a=2,b=3,c=1 C. a=2,b=3,c=3 D. a=2,b=1,c=1 83、以下程序段运行后变量a的值为()
int x=6,y=5; int a;
a=(--x==y++)?x:y+1
A. 0 B. 1 C. 6 D. 5
6
84、以下程序的运行结果是()
void main() {
int n=?e?; switch(n--) {
defalut:printf(“error ”); case ?a?:
case ?b?:printf(“good”);break; case ?c?:printf(“pass”); case ?d?:printf(“warn”); } }
A. error B. good C. error good D. warn 85、以下程序的运行结果是()
void main() {
int n=?c?; switch(n++) {
defalut:printf(“error”); case ?a?:
case ?b?:printf(“good”);break; case ?c?:printf(“pass ”); case ?d?:printf(“warn”); } }
A. pass B. warn C. pass warn D. error 86、以下程序的运行结果是()
void main() {
int n=5; if(n++>6)
printf(“%d\\n”,n); else
printf(“%d\\n”,++n); }
A. 4 B. 5 C. 6 D. 7
87、下面关于switch语句的叙述中,错误的是() A. case后面的表达式可以是关系表达式 B. switch语句是多分支选择语句
C. 每一个case后面的值必须互不相同,否则会出现矛盾的现象
D. 在执行一个case分支后,可用一个break语句使流程跳出switch语句88、若有定义:int a=1,b=2,c=3;则以下程序段运行后c的值为()
7
if(a>b) c=a*b; else c=a-b;
A. 2 B. 0 C. 1 D. -1
89、若有定义:int x;以下不会产生死循环的是() A. for(;(x=getchar())!=?\\n?;); B. while(1){x++;} C. for(i=10;;i++); D. for(;;x+=1);
90、在循环语句的循环体中,break语句的作用是() A. 暂停程序的运行 B. 结束本次循环
C. 继续执行break语句之后的循环体各语句 D. 提前结束循环,接着执行该循环后续的语句
91、以下程序段运行后,循环体中的“count+=2;”语句运行的次数为()
int i,j,count=0; for(i=1;i<=4;i++) {
count+=2;
printf(“%d”,count); }
A. 4次 B. 10次 C. 16次 D. 20次
92、在c语言中while循环和do-while循环的主要区别是()
A. do-while循环体内可以使用break语句,while循环体内不能使用break语句 B. do-while的循环体至少无条件执行一次,while的循环体不是
C. do-while循环体可以使用continue语句,while循环体内不能使用continue语句D. while的循环体至少无条件执行一次,do-while的循环体不是 93、以下程序段运行后,循环体运行的次数为()
int i=0,x;
for(;i<10;i++) x=x+i;
A. 10 B. 0 C. 1 D. 无限 94、以下程序段运行后变量n的值为()
int i=1,n=1; for(;i<3;i++)
{continue;n=n+i;}
A. 4 B. 3 C. 2 D. 1 95、有以下程序:
void main() {
int i;
for(i=0;i<3;i++) switch(i) {
case 1:printf(“%d”,i); case 2:printf(“%d”,i); case 3:printf(“%d”,i);
8
}
}
执行后输出的结果是()
A. 11122 B. 01222 C. 013020 D. 120 96、以下程序的运行结果是()
void main() {
int sum=0,item=0; while(item<5) {
item++; sum+=item; if(sum>=6) break; }
printf(“%d\\n”,sum); }
A. 10 B. 15 C. 6 D. 7 97、以下程序的运行结果是()
voin main() {
int sum=0,item=0; while(item<5) {
item++;
if(item==2) continue; sum+=item; }
printf(“%d\\n”,sum); }
A. 10 B. 13 C. 15 D. 1 98、以下程序段执行后变量sum的值为()
int i,j=1,sum=0; for(i=1,i<=3,i++) {
sum+=j; j++; }
A. 5 B. 3 C. 6 D. 4 99、以下程序的运行结果是()
#include
9
int y=10; do
{y--;} while(--y);
printf(\}
A. 1 B. 2 C. -1 D. 0
数组
100、C语言中数组元素下标的数据类型是() A. 实型常量 B. 整型常量或整型表达式 C. 任何类型的表达式 D. 字符型常量 101、下列数组定义中,正确的是()
A. int a[10]; B. int n=10,a[n];
C. int N=10;int a[N]; D. int n;scanf(“%d”,&n);int a[n]; 102、若已定义:int a[13];则不能正确引用a数组的元素的是() A. a[0] B. a[10] C. a[10+3] D. a[13-5] 103、若有定义:int a[3]={0,1,2};则a[1]的值为() A. 0 B. 1 C. 2 D. 3 104、若有定义:int a[5]={1,2,3,4,5};
则语句a[1]=a[2]+a[2+2]-a[3-1];运行后a[1]的值为() A. 6 B. 5 C. 1 D. 2 105、以下合法的数组定义是()
A. int a[]=“string”; B. int a[5]={0,1,2,3,4,5}; C. char a[]={0,1,2,3,4,5}; D. char s={“string”}; 106、若有如下程序段:
char s[10]; s=“abcd”;
printf(“%s\\n”,s); 则()。
A. 执行时输出:abcd B. 执行时输出:a C. 执行时输出:ab D. 编译不通过 107、下面程序段的运行结果是()
int i=0,a[]={7,5,7,3,8,3}; do{
a[i]+=2;
}while(a[++i]>5); for(i=0;i<6;i++) printf(\
A. 9 7 9 5 10 5 B. 9 5 9 3 10 3 C. 9 5 7 3 8 3 D. 7 5 7 3 8 3 108、下面程序段的运行结果是()
int i=0,a[]={1,2,3,4,5}; do{
10