- 以下选项中,仅当 x 的绝对值在 1 至 6 范围内时,表达式值
为“真”的是
A)(x>=-6)&&(x<=-1)||(x>=1)&&(x<=6)
B)(x>=1)&&(x<=6)&&(x>=-6)&&(x<=-1)
C)(x>=-6)||(x<=-1)||(x>=1)||(x<=6)
D)(x>=1)&&(x<=6)||(x>=-1)&&(x<=-6)
答案:A - 以下程序段中,输出信息不能正确反映变量大小关系的是
A)if (x>y) printf(" x>y “);
if (x<y) printf(” x<y “);
else printf(” x=y “);
B)if(x>=y)
if(x>y) printf(“x>y”);
else printf(“x=y”);
else printf(“x<y”);
C)if (x>y) printf(” x>y “);
if (y>x) printf(” x<y “);
if (x==y) printf(” x=y “);
D)if (x>y) printf(” x>y “);
else if (y<x) printf(” x<y “);
else printf(” x=y ");
答案:A - 有以下程序
#include <stdio.h>
main()
{ int x,y=0,z=0,t;
do
{ scanf("%d",&x);
t=x>0;
switch (t)
{ case 0: break;
case 1: y+=x; continue;
}
z+=x;
}
while(x);
printf("%d,%d\n",y,z);
}
程序运行时输入:-1 1 -2 2 0<回车>,则输出结果是
A) 1,0
B) 3,-3
C)1,1
D)3,0
答案:B - 有以下程序
#include <stdio.h>
main()
{ int x,a=1,b=1;
while(1)
{ scanf("%d",&x);
if(x>0) { a*=x; break; }
if(x<0) { b*=x; continue; }
printf("%d,%d\n",a,b);
} }
程序运行时输入:-1 -2 0 1 2 <回车>,则输出结果是
A) 2,2
B) 1,2
C)-1,1
D)-2,1
答案:B - 设有以下定义和输入语句
char c1,c2;
scanf("%3c%3c", &c1, &c2);
若要求给 c1 输入字母 M,给 c2 输入字母 N,则以下输入形式中
正确的是(注: 代表空格,输入从第一列开始)
答案:A - 有以下程序
#include <stdio.h>
main()
{ int i,j;
for( i=3; i>0; i-- ) { for( j=1; j<=i; j++ )
putchar( '’);
for( j=1; j<=3-i; j++ )
putchar(’#’);
putchar(’\n’);
} }
执行后的输出结果是
A)***
**#
*##
答案:A - 若有定义:int a=0,b=1,c=1;
关于逻辑表达式 a++ || b++ && c++ 中各个部分的执行顺
序,以下说法正确的是
A)先执行 a++, 再执行 b++,最后执行 c++
B)先执行 b++, 再执行 c++,最后执行 a++
C)先执行 c++, 再执行 b++,最后执行 a++
D)先执行 b++, 再执行 a++,最后执行 c++
答案:A - 有以下程序
#include <stdio.h>
main( )
{ char s=“01234”;
while((++s) !=’\0’)
{ switch(*s-‘0’)
{ case 0:
case 1: putchar(*s+1); break;
case 2: putchar(*s+1); break;
case 3: putchar(*s+1);
default: putchar(*s+1); break;
} } }
程序执行后的输出结果是
A) 2345
B) 23445
C)12345
D)22345
答案:B - 有以下程序
#include <stdio.h>
main( )
{ int a=-2, b=2;
for(; ++a && --b;)
printf("%d,%d,", a,b);
}
程序执行后的输出结果是
A) -1,1,0,0,
B)-1,1,0,1,
C) -1,1,
D)0,1,
答案:C - 有以下程序
#include <stdio.h>
main()
{ int a=6, i;
for (i=1; i<=3; i++)
{ if (a>=5) break;
if (a%2) { a+=2; continue; }
a= (a-3, a+4);
}
printf("%d,%d", i,a);
}
程序执行后的输出结果是
A)1,6
B)0,6
C)8,6
D)4,2
答案:A - 以下字符常量中,输出后仍是原英文字母的是
A) ‘\t’
B) ‘\s’
C)’\n’
D)’\r’
答案:B - 有以下程序
#include <stdio.h>
main( )
{ char *a=“12345678”;
char b[ ]=“happynewyear”;
int i=4;
printf("%c%c%s%s",*a, b[0], b+5, a+6);
}
程序执行后的输出结果是
A) 1happynewyear78
B)1hn78
C) 1hnewyear78
D)1hn7
答案:C - 对于 if(表达式) 语句,以下说法正确的是
A)“表达式”可以使用任意合法的数值
B)在“表达式”中不能出现双精度类型的变量
C)在“表达式”中不能出现字符串常量
D)“表达式”的值必须是逻辑值或逻辑变量的运算
答案:A - 有如下程序
#include <stdio.h>
main()
{
int a, b;
a = 0, b = 1;
if (a++ && b++)
printf(">");
else
printf("<");
}
程序运行后的输出结果是
A)<a=1,b=1
B)<a=0,b=2
C)>a=1,b=2
D)>a=0,b=1
答案:A - 有如下程序
#include <stdio.h>
main()
{
int i, data;
scanf("%d", &data);
for (i=0; i<8; i++)
{
if (i <= data) continue;
printf("%d,", i);
} }
程序运行时,从键盘输入:5<回车>,则程序输出结果为
A) 0,1,2,3,4,
B) 6,7,
C)5,6,7,
D)6,7,8,
答案:B - 有如下程序
#include <stdio.h>
main()
{
int i, data;
scanf("%d", &data);
for (i=0; i<8; i++)
{
if (i >= data) break;
printf("%d,", i);
} }
程序运行时,从键盘输入:5<回车>,则程序输出结果为
A)0,1,2,3,4,
B)5,6,7,
C)5,6,7,8,
D)6,7,
答案:A - 有如下程序
#include <stdio.h>
main()
{
char a, b;
int i;
a = ‘3’;
b = ‘A’;
for (i=0; i<6; i++)
{
if (i % 2) putchar(a + i);
else putchar(b + i);
} }
程序运行后的输出结果是
A) B4D6F8
B)AB56EF
C) A4C6E8
D)A5C7E9
答案:C - 有如下程序
#include <stdio.h>
main()
{
int i;
for (i=0; i<5; i++)
putchar(‘9’ - i % 2);
}
程序运行后的输出结果是
A)98989
B)98765
C)‘9’‘8’‘7’‘6’‘5’
D)‘98989’
答案:A - 如图所示一平面圆,圆心是(2,1),半径为 1:
以下选项中,判断平面点(x,y)位于圆内时为真的表达式是
A)(x-2)(x-2)+(y-1)(y-1)<1
B)abs(x-2)<1&&abs(y-1)<1
C)x>1&&x<3&&y>0&&y<2
D)(x-2)2+(y-1)2<1
答案:A - 若要利用 if-else 语句判断 year 是否闰年,是闰年则返回 1,
不是闰年则返回 0。
以下选项中不能完成正确判断的程序段是
A)if(year%400= =0) return 1;
else if(year%100!=0)
if(year%4= =0) return 1;
else return 0;
B)if(year%400!=0)
if(year%100= =0) return 0;
else if(year%4= =0) return 1;
else return 0;
else return 1;
C)if(year%100= =0)
if(year%400= =0) return 1;
else return 0;
else if(year%4= =0) return 1;
else return 0;
D)if(year%4!=0) return 0;
else if(year%400= =0) return 1;
else if(year%100= =0) return 0;
else return 1;
答案:A - 以下关于 switch 语句的叙述中正确的是
A) char 型常量不能做 case 的标号使用
B)所有 case 的标号都应当是连续的
C) 每个 case 语句标号后面可以没有 break 语句
D)default 必须放在全部 case 的最后
答案:C - 有以下程序
#include<stdio.h>
#include<math.h>
main()
{
int s; float n,t,pai;
t=1,pai=0,n=1.0,s=1;
while(fabs(t)>1.0e-6)
{
pai+=t;
n+=2; s=-s;t=s/n;
}
printf(“total=%f\n”,pai);
}
程序所计算的是
A)1-1/3+1/5-1/7+1/9-…
B)1+1/3+1/5+1/7+1/9-…
C)1+1/2+1/3+1/4+1/5-…
D)1-1/2!+1/3!-1/5!+1/7!-…
答案:A - 设有定义:int sum=100,i;
以下选项中,能够实现 sum -=1+2+3…+10 的程序段是
A) for(i=0;i<=10;)
sum=sum-i++;
B) i=0;
do
{
sum=sum-++i;
}while(i<=10);
C) i=0;
while(i<>10)
sum=sum - ++i;
D) i=1;
for( ;i<10;i++)
sum=sum-i++;
答案:A - 有以下程序
#include<stdio.h>
main()
{
int i;
for(i=1;i<=10;i++)
{
if(i%3= =0)
{ printf("%d “,i);
continue;
}
if(i%5= =0)
{
printf(”%d “,i);i++;
}
if(i%7= =0)
{
printf(”%d ",i);i++;
break;
} } }
程序的运行结果是
A) 4 6 8
B) 3 5 7
C)3 6 9
D)3 3 3
答案:B - 以下叙述中错误的是
A)C 语言逻辑运算的结果是 0 和任意非 0 值
B)C 语言中任意合法的表达式都可以作为逻辑运算的对象
C)C 语言关系运算的值只有 0 和 1 两种可能
D)C 语言中用 0 表示逻辑“假”,非零表示逻辑“真”
答案:A - C 语言的逻辑表达式在特定情况下会产生“短路”现象。若
有如下逻辑表达式:
x++ && y++
则以下叙述中正确的是
A)若 x 的值为 0,则 y++操作被“短路”,y 值不变
B)若 x 的值为 1,则 y++操作被“短路”,y 值不变
C)若 y 的值为 0,则&&运算被“短路”,y 值不变
D)若 y 或 x 的值为 0,则表达式值为 0,x++和 y++均不执行
答案:A - 有以下程序
#include <stdio.h>
main()
{
int i,x,k=0,m;
for(i=0;i<5; i++)
{
scanf("%d",&x);
x/=10;
switch(x)
{
case 0: case 1: case 2: k++;m=1;
default : k++; m=2;
case 3: k++; m=3;
case 4: k++; m=4;
} }
printf("%d,%d",k,m);
}程序运行时输入:35 20 52 40 106<回车>,则输出结果是
A) 5,2
B) 13,4
C)15,2
D)5,4
答案:B - 有如下程序
#include <stdio.h>
main()
{ int f=-2,k=4,a=0;
while(f)
{ do
{ if(k%2) a++;
else break;
} while(–k);
f++;
}
printf("%d,%d,%d",f,k,a);
}
程序的运行结果是
A) 0,0,2
B) 0,4,0
C)2,4,0
D)0,4,2
答案:B - 有如下程序
#include <stdio.h>
main()
{
int i,f=1,s=0;
for(i=1; i<100; i++)
{
s=s+fi;
f=-f;
i++;
}
printf(“s=%d\n”,s);
}
程序的功能是
A)计算 1-3+5-7+…-99 的值
B)计算 1-2+3-4+…-99 的值
C)计算 1234*…99 的值
D)计算 1357*…*99 的值
答案:A - 以下表达式中,其值不等于数值 3 的是
A)0 +‘3’
B)‘D’-‘A’
C)‘3’-‘0’
D)‘d’- ‘a’
答案:A - 有下列程序
#include <stdio.h>
main()
{
int a=0,b=0,c=0;
if (++a || ++b && ++c)
printf("%d,%d,%d\n", a, b, c);
}
程序执行后的输出结果是
A) 0,1,1
B)1,1,1
C) 1,0,0
D)1,1,0
答案:C - 有下列程序
#include <stdio.h>
main( )
{ int a=123456, b;
while(a)
{ b = a%10;
a /= 10;
switch(b)
{ default: printf("%d", b++);
case 1:
case 2: printf("%d", b++); break;
case 3: printf("%d", b++); break;
case 4: printf("%d", b++);
}
}
}
程序执行后的输出结果是
A) 12345667
B) 67564321
C)76654321
D)654321
答案:B - 有下列程序
#include <stdio.h>
main( )
{ int a=-2, b=2;
for(; a++ , b—; )
printf("%d,%d,", a, b);
}
程序执行后的输出结果是
A)-1,1,0,0,
B)-1,1,0,1,
C)-1,1,
D)-1,1,-1,0,
答案:A - 有下列程序
#include <stdio.h>
main()
{ int a = 6, i;
for (i=1; i<=3; i++)
{ if (a<5) break;
if (a%2) { a += 2; continue; }
a = a + 4;
}
printf("%d,%d", i, a);
}
程序执行后的输出结果是
A) 4,6
B)3,18
C) 4,18
D)4,2
答案:C - 关于字符常量’\141’,以下说法正确的是
A)字符\后的数 141 是八进制
B)字符\后的数 141 是十进制
C)字符\后的数 141 是十六进制
D)字符\后的数 141 前因为没有写 0 或 0x,因此无法断定是什么进
制
答案:A - 有下列程序
#include <stdio.h>
main( ) {
char b[] = “happynewyear”;
printf("%s%s", “12345678”+4, b+8);
}
程序执行后的输出结果是
A) 12345682year
B)52345678year
C) 5678year
D)5678wyear
答案:C - 对于 if(表达式) ,以下说法正确的是
A)“表达式”的值可以是 1
B)在“表达式”中必须出现变量
C)在“表达式”中不能出现非逻辑值
D)“表达式”的值必须是逻辑值
答案:A - 有如下程序
#include <stdio.h>
main()
{
int a = 0, b = 1;
if (a++ && b++)
printf(“T”);
else
printf(“F”);
a = b++;
printf(“a=%d,b=%d\n”, a, b);
}
程序运行后的输出结果是
A) Fa=1,b=1
B) Fa=1,b=2
C)Ta=0,b=2
D)Ta=0,b=1
答案:B - 有如下程序
#include <stdio.h>
main()
{
int i, data;
scanf("%d", &data);
for (i=0; i<5; i++)
{
if ((i < data && i % 2) || (i > data && i % 3 == 0)) conti
nue;
printf("%d,", i);
} }
程序运行时,从键盘输入:13<回车>后,程序输出结果为
A)0,2,4,
B)1,3,5,
C)0,1,2,3,4,5,
D)0,1,2,3,
答案:A - 有如下程序
#include <stdio.h>
main()
{
int i;
char data;
scanf("%c", &data);
printf("%d\n", data);
for (i=2; i<10; i++)
{
if (data % i) continue;
printf("%d,", i);
} }
程序运行时,从键盘输入: B<回车>后,程序输出结果的第一行为
66,则第二行内容为
A) 6,
B)2,3,4,5,6,7,8,9,
C)10,
D) 2,3,6,
答案:D - 有如下程序
#include <stdio.h>
main()
{
char a = ‘0’, b = ‘A’;
int i;
for (i=1; i<6; i++)
{
if (i % 2 == 0) putchar(a + i);
else putchar(b + i);
} }
程序运行后的输出结果是
A) 2B4DF
B) B2D4F
C)B4CD7
D)A2A3B
答案:B - 有如下程序
#include <stdio.h>
main()
{
int i;
for (i=0; i<3; i++)
putchar(‘K’ - i);
}
程序运行后的输出结果是
A) KLM
B) KJI
C)LMN
D)012
答案:B - 以下各选项中的代码段执行后,变量 y 的值不为 1 的是
A)int x=10,y=0; if(x=y) y=1;
B)int x=5,y=0; if(x) y=1;
C)int x=5,y=0; if(5) y=1;
D)int x=5,y=10; if(x=y) y=1;
答案:A - 以下选项中,与表达式 flag ? a*=2 : a/=3 等价的是
A)flag!=0 ? a+=a : a/=3
B)flag= =0 ? a*=2 : a/=3
C)flag!=1 ? a*=2 : a/=3
D)flag= =1 ? a*=2 : a/=3
答案:A - 有以下程序
#include <stdio.h>
main()
{
int a=1,b=2,c=3;
char flag;
flag = b>=2 && c<=3;
switch(a)
{
case 1: switch(flag)
{
case 0: printf(""); break;
case 1: printf("%%"); break;
}
case 0: switch©
{
case 1: printf("$ $ “); break;
case 2: printf(”& & “); break;
default : printf(”##");
} }
printf("\n");
}
程序运行后的输出结果是
A) %&&
B)$$
C) %##
D)**##
答案:C - 对于循环语句:for(i=0;i<=10;i++) { ; } 下面各选项的叙述
中错误的是
A)省略 i=0,可引起无限循环
B)省略 i<=10,可引起无限循环
C)省略 i++,可引起无限循环
D)圆括号( )内三个表达式都省略,可引起无限循环
答案:A - 有以下程序段
char c1,c2;
for(c1=‘0’,c2=‘9’; c1<c2; c1++,c2–)
printf("%c%c",c1,c2);
程序段的执行结果是
A)0918273645
B)0123456789
C)0123498765
D)9876543210
答案:A - 有以下程序
#include <stdio.h>
main()
{
char i,j,n;
for(i=‘1’;i<=‘9’;i++)
{
if(i<‘3’) continue;
for(j=‘0’;j<=‘9’;j++)
{
if(j<‘2’||j>=‘4’) continue;
n=(i-‘0’)*10+j-‘0’;
printf("%d “,n);
}
if(i==‘4’) break;
}
printf(”\n");
}
程序运行后的输出结果是
A) 30 31 40 41
B) 32 33 42 43
C)34 35 44 45
D)35 36 45 46
答案:B - 以下能够正确描述“k 是大于 0 的偶数”的表达式是
A)(k>0) && (k%2!=1)
B)(k>0) && (k%2=0)
C)(k>0) || !(k%2)
D)(k>0) || (k%2= =0)
答案:A - 设有定义:int m=1,n=2;
则以下 if 语句中,编译时会产生错误信息的是
A)if(m>n) m–
else n–;
B)if(m=n){ m++; n++; }
C)if(m<0 && n<0) { }
D)if(m>0) ;
else m++;
答案:A - 有如下程序
#include <stdio.h>
main()
{ int i,f=1,s=0;
for(i=1; i<100;i++)
{ s=s+fi;
f=-f;
}printf(“s=%d\n”,s);
}
程序的功能是
A) 计算 1-3+5-7+…-99 的值
B) 计算 1-2+3-4+…+99 的值
C)计算 1234*…99 的值
D)计算 1357*…*99 的值
答案:B - 设变量 n 已正确定义并赋值,以下不能实现自然数 1 到 n 累
加求和的程序段是
A)int sum=1,i=0;
while(i<=n)
{ i++; sum+=i; }
B)int sum=0,i=1;
while(i<=n)
{ sum+=i; i++; }
C)int sum=0,i=0;
while(i<n)
{ i++; sum+=i; }
D)int sum=1,i=1;
while(i<n)
{ i++; sum+=i; }
答案:A - 有以下程序
#include <stdio.h>
main( ) { int i=0,j=0,x=0;
while(i<2)
{ x++;
for( ; j<=3; j++)
{ if(j%2) continue;
x++;
}
x++; i++;
}
printf(“x=%d\n”,x);
}
程序运行后的输出结果是
A) x=5
B)x=4
C) x=6
D)x=8
答案:C - 有以下程序
#include <stdio.h>
main( ) { char x,a=‘A’,b=‘B’,c=‘C’,d=‘D’;
x=(a<b) ? a : b;
x=(x>c) ? c : x;
x=(d>x) ? x : d;
printf("%c\n",x);
}
程序运行后的输出结果是
A)A
B)B
C)C
D)D
答案:A - 有以下程序
#include <stdio.h>
void main()
{
int i, m = 0, n = 0, k = 0;
for(i = 9; i <= 11; i++)
switch(i / 10)
{ case 0: m++; n++; break;
case 10: n++; break;
default: k++; n++;
}
printf("%d %d %d\n", m, n, k);
}
程序运行后的输出结果是
A) 3 5 4
B) 1 3 2
C)1 5 4
D)4 5 1
答案:B - 设 a、b 和 c 都是 int 型变量,且 a=3,b=4,c=5,则以下
表达式中值为 0 的是
A)!((a<b)&&!c||1)
B)a&&b
C)a<=b
D)a||b+c&&b-c
答案:A - 有以下程序
#include <stdio.h>
void main()
{ int y=10;
for(; y>0; y–)
if(y%3 == 0)
{ printf("%d", --y); }
printf("\n");
}
程序运行后的输出结果是
A) 741
B) 852
C)963
D)875421
答案:B - 以下叙述中错误的是
A)while 语句的循环体至少会被执行一次
B)break 语句只能在循环体内和 switch 语句体内使用
C)执行 continue 语句时将跳过本次循环体中余下尚未执行的语句
D)在 C 语言中有三种可以构成循环结构的循环语句:while、do–
while 和 for
答案:A - 有以下程序
#include <stdio.h>
void main()
{ char s = “\ta\018bc”;
for (; s != ‘\0’; s++)
printf("");
printf("\n");
}
程序运行后的输出结果是
A)****
B)*********
C) ******
D)*******
答案:C - 以下选项中,当 char 型变量 c 中是大写字母时,表达式为真
的是
A)(c>=‘A’) && (c<=‘Z’)
B)‘A’ >= c >= ‘Z’
C)(c>=‘A’) OR (c<=‘Z’)
D)(‘A’<=c) AND (‘Z’>=c)
答案:A - 有下列程序
#include <stdio.h>
main()
{ int a=0,b=0,c=0;
if (a++ || b++ && ++c)
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, c, b);
}
程序执行后的输出结果是
A) 1,1,1
B) 1,0,1
C)1,0,0
D)1,1,0
答案:B - 有下列程序
#include <stdio.h>
main( )
{ int a=123456, b;
while(a)
{ b = a%10;
a /= 10;
switch(b)
{ default: printf("%d", b++);
case 1: continue;
case 2: printf("%d", b++); continue;
case 3: printf("%d", b++);
case 4: printf("%d", b++); continue;
}
}
}
程序执行后的输出结果是
A) 234456
B) 654342
C)1234456
D)6543421
答案:B - 有下列程序
#include <stdio.h>
main( )
{ int a=-1, b=2;
for(; a++ && b–😉
printf("%d,%d,", a,b);
printf("%d,%d", a,b);
}
程序执行后的输出结果是
A) 0,1,1,0
B) 0,1,1,1
C)0,1,1,0,1,0
D)0,1,1,1,1,1
答案:B - 有下列程序
#include <stdio.h>
main()
{ int a=7, i;
for (i=1; i<=3; i++)
{ if (a>13) break;
if (a%2) { a+=3; continue; }
a= a+4;
}
printf("%d,%d", i,a);
}
程序执行后的输出结果是
A) 3,18
B) 3,14
C)4,18
D)2,10
答案:B - 以下正确的字符常量是
A)’\xAB’
B)’\0AB’
C)‘AB’
D)“AB”
答案:A - 有下列程序
#include <stdio.h>
main( )
{ char b[ ]=“happynewyear”, k;
for (k=0; b[k]; k++)
printf("%c", b[k]- ‘a’+‘A’);
}
程序执行后的输出结果是
A)HAPPYNEWYEAR
B)Happynewyear
C)hAppynewyeAr
D)HaPPYNEWYEaR
答案:A - 若有定义:int a=3,b=2;,则下面表达式中,值为真的选项
是
A)!(b/a)
B)!(a/b)
C)!b||!a
D)!a && !b
答案:A - 若要求:当数学式 3<x<7 成立时,使得 y=1,且设 x、y 为
int 型变量,则以下能够实现这一要求的选项是
A)if(x>3)
if(x<7) y=1;
B)if(x>3||x<7) y=1;
C)if(x<3) ;
else if(x<7) y=1;
D)if(!(x<=3)) y=y;
else if(7>x) y=1;
答案:A - 有下列程序
#include <stdio.h>
main( ) {
char c,d;
c=getchar();
d=getchar();
switch(c-‘0’)
{
case 1: switch(d%‘0’)
{
case 1: printf("");
case 2: printf("@");
}
case 2: switch(d%‘0’)
{
case 1: printf("#");
case 2: printf("&");
} } }
若运行时输入:21<回车>,程序的输出结果是
A)#&
B)&
C)@#&
D)@#&
答案:A - 有下列程序
#include <stdio.h>
main( ) {
int i,a,b,c;
a=b=c=0;
for(i=0;i<3;i++)
{
switch(i%3)
{
case 0:a++;
break;
case 1:b++;
break;
case 2:c++;
break;
}
if(i%3==0)
break;
}
printf("%d %d %d\n",a,b,c);
}
程序执行后的输出结果是
A) 2 0 1
B)1 1 1
C) 1 0 0
D)2 1 0
答案:C - 有下列程序
#include <stdio.h>
main( ) {
int i,j,a,b;
a=b=j=0;
while(j<3)
{
j++;
if(j==1)continue;
for(i=0;i<3;i++)
{
if(i>1) break;
a=a*10+i;
if(i<1) b=a;
} }
printf("%d %d\n",a,b);
}
程序执行后的输出结果是
A) 10 0
B)101 101
C) 101 10
D)10 101
答案:C - 有下列程序
#include <stdio.h>
main( ) {
char c,i;
for(i=0;i<3;i++)
{
c=getchar();
printf("%c,",(c-‘A’+5)%26+‘a’);
}
printf("\n");
}
若程序运行时输入:APE<回车>,则输出结果是
A) F,U,J,
B) f,u,j,
C)E,T,I,
D)E,t,I,
答案:B - 对于 if(表达式) 语句,以下说法正确的是
A)“表达式”可以是算术表达式
B)在“表达式”中不能调用返回整数的函数
C)在“表达式”中不能含有函数调用
D)“表达式”的值只能是整数值
答案:A - 有如下程序
#include <stdio.h>
main()
{
int a = 0, b = 4;
if (a++)
{
if (b++) printf(“T”);
}
else
printf(“F”);
printf(":a=%d,b=%d\n", a, b);
}
程序运行后的输出结果是
A) T:a=1,b=5
B)F:a=0,b=4
C) F:a=1,b=4
D)T:a=0,b=5
答案:C - 有如下程序
#include <stdio.h>
main()
{
int i, data;
scanf("%d", &data);
for (i=2; i<6; i++)
{
if (data % i)
printf("%d-", i);
else
continue;
} }
程序运行时,从键盘输入:10<回车>后,程序输出结果为
A)3-4-
B)2-3-4-5-
C)0-1-
D)2-5-
答案:A - 有如下程序
#include <stdio.h>
main()
{
int i, data;
scanf("%d", &data);
for (i=0; i<10; i++)
{
if (i > data)
break;
else
printf("%d,", i);
} }
程序运行时,从键盘输入:10<回车>后,程序输出结果为
A) 0,
B) 0,1,2,3,4,5,6,7,8,9,
C)1,3,5,7,9,
D)0,2,4,6,8,
答案:B - 有如下程序
#include <stdio.h>
main()
{
if (’\0’ == 0) printf("<1>OK");
if (‘0’ == 0) printf("<2>OK");
if (‘z’ > ‘A’) printf("<3>OK");
}
程序运行后的输出结果是
A)<1>OK<3>OK
B)<1>OK
C)<2>OK
D)<2>OK<3>OK
答案:A - 有如下程序
#include <stdio.h>
main()
{
int i;
for (i=0; i<3; i++)
putchar(‘A’ + i*2);
}
程序运行后的输出结果是
A) A012
B)ABC
C) ACE
D)AA
答案:C - 有下列程序
#include <stdio.h>
main()
{
int a=1,b=1,c=1;
if (a-- || b-- && --c)
printf("%d,%d,%d\n", a, b, c);
else
printf("%d,%d,%d\n", a, c, b);
}
程序执行后的输出结果是
A) 0,1,0
B) 0,1,1
C)0,0,1
D)0,0,0
答案:B - 有下列程序
#include <stdio.h>
main( ) {
int a=123456, b;
while(a)
{ b = a%10;
a /= 10;
switch(b)
{
default: printf("%d", b++);
case 1: break;
case 2: printf("%d", b++); break;
case 3: printf("%d", b++);
case 4: printf("%d", b++);
case 5: printf("%d", b++);
} } }
程序执行后的输出结果是
A) 65432
B) 65453452
C)654321
D)654534521
答案:B - 有下列程序
#include <stdio.h>
main( ) {
int a=1, b=-2;
for (; a-- && b++;)
printf("%d,%d,", a,b);
printf("%d,%d", a,b);
}
程序执行后的输出结果是
A)0,-1,-1,-1
B)0,-1,-1,0
C)0,-1,-1,0,-1,0
D)0,-1,-1,-1,-1,-1
答案:A - 有下列程序
#include <stdio.h>
main()
{
int a=7, i;
for (i=1; i<=3; i++)
{
if (a>14) break;
if (a%2) { a+=3; continue; }
a = a+4;
printf("%d,%d,", i,a);
}
printf("%d,%d", i,a);
}
程序执行后的输出结果是
A) 1,14,2,18,3,18
B) 2,14,3,18,4,18
C)2,14,3,18,4,22
D)1,14,2,18,3,18,4,18
答案:B - 以下正确的字符常量是
A)’\012’
B)’\089’
C)’\0XAB’
D)’\0xab’
答案:A - 有下列程序
#include <stdio.h>
main( ) {
char b[ ]=“happychristmas”, k;
for (k=0; b[k]; k++)
{
if (b[k] < ‘m’)
b[k] = b[k]- ‘a’+‘A’;
printf("%c", b[k]);
} }
程序执行后的输出结果是
A) hAppychristmAs
B)happychristmas
C) HAppyCHrIstmAs
D)HAPPYCHRISTMAS
答案:C - 有以下程序
#include <stdio.h>
main()
{
int s = 0, i;
for (i = 1; i < 5; i++)
{
switch (i)
{
case 0:
case 3: s += 2;
case 1:
case 2: s += 3;
default: s += 5;
} }
printf("%d\n", s);
}
程序运行后的输出结果是
A) 10
B)13
C) 31
D)20
答案:C - 有以下程序
#include <stdio.h>
main()
{
int w=4,x=3,y=2,z=1;
printf("%d\n", (w < x ? w : z < y ? z : x));
}
程序运行后的输出结果是
A)1
B)2
C)3
D)4
答案:A - 有以下程序
#include <stdio.h>
main()
{
int x,i;
for (i = 1; i <= 100; i++)
{ x = i;
if (++x % 2 == 0)
if (++x % 3 == 0)
if (++x % 7 ==0)
printf("%d “, x);
}
printf(”\n");
}
程序运行后的输出结果是
A) 42 84
B) 28 70
C)26 68
D)39 81
答案:B - 以下叙述中正确的是
A)在 switch 语句中,不一定使用 break 语句
B)break 语句只能用于 switch 语句
C)break 语句必须与 switch 语句中的 case 配对使用
D)在 switch 语句中必须使用 default
答案:A - 有以下程序
#include <stdio.h>
char fun(char ch)
{
if (ch>=‘A’ && ch<=‘Z’) ch = ch - ‘A’ +‘a’;
return ch;
}
main()
{
char s[] = “ABC+abc=defDEF”, *p=s;
while (*p)
{
*p = fun(*p);
p++;
}
}
程序运行后的输出结果是
A) abc+ABC=DEFdef
B) abc+abc=defdef
C)abcABCDEFdef
D)abcabcdefdef
答案:B - 若要判断 char 型变量 c 中存放的是否为小写字母,以下正确
的表达式是
A)(c>=‘a’) && (c<=‘z’)
B)‘a’<=c<=‘z’
C)(c>=‘a’) || (c<=‘z’)
D)(‘a’<=c) AND (‘z’>=c)
答案:A - 设有定义:int a=0,b=1;,则执行以下表达式后,不能使变
量 a 和 b 的值都增 1 的是
A) a++ || ++b
B)a++ || b++
C)++a && ++b
D) a++ && b++
答案:D - 有以下程序
#include <stdio.h>
main ( ) {
int s,m=10;
scanf("%d", &s);
if (s<30) m–;
if (s<40) m–;
else
if(s<50) m–;
else m++;
printf ( “m=%d\n”,m);
}
程序运行时输入:25<回车>,则输出结果是
A)m=7
B)m=8
C)m=9
D)m=10
答案:B - 有以下程序
#include <stdio.h>
main ( ) {
int m=10247,a=0,b=0,c=0;
do {
switch(m%10)
{
case 0: m/=10; a++;
case 1: case 3: case 5: case 7: case 9: m/=10; b++;
case 2: case 4: case 6: case 8: m/=10; c++;
}
}while(m!=0);
printf ("%d,%d,%d\n",a,b,c);
}
程序运行后的输出结果是
A) 1,2,2
B) 1,2,3
C)1,3,5
D)1,3,4
答案:B - 有以下程序
#include <stdio.h>
main ( ) {
int m=128,n=256,k=100;
while(n/k>m/k)
{
n %= k;
m %= k;
k /= 10;
}
printf (“n=%d\n”,n);
}
程序运行后的输出结果是
A)n=0
B)n=6
C)n=56
D)n=256
答案:B - 以下合法的字符常量是
A)’\x6D’
B)’\0x41’
C)’\X51’
D)’\068’
答案:A - 有以下程序
#include <stdio.h>
#include <ctype.h>
main ( ) {
char ch;
do
{
ch = getchar();
if (islower(ch)) ch-=32;
else continue;
printf ("%c",ch);
} while(ch!=’!’);
}
程序运行时输入:1aB2cD!<回车>,则输出结果是
A) ac
B)bd
C) AC
D)1B2D
答案:C - 若有说明语句: int *ptr[10]; 以下叙述正确的是
A)ptr 是一个具有 10 个指针元素的一维数组
B)ptr 是指向整型变量的指针
C)ptr 是一个指向具有 10 个整型元素的一维数组的指针
D)ptr 是一个指向 10 个整型变量的函数指针
答案:A - 有以下程序
#include <stdio.h>
main()
{
printf("%d\n", NULL );
}
程序运行后的输出结果是
A)1
B)变量无定义,输出不确定
C)-1
D)0
答案:D - 函数调用语句:
fun( ( exp1, exp2 ), ( exp1, exp2, exp3) ); 含有的实参个数是
A)1
B)4
C)5
D)2
答案:D - 若有定义语句:int a[10]={0,1,2,3,4,5,6,7,8,9},p=a;,以下选
项中错误引用 a 数组元素的是(其中 0≤i<10)
A)((a+i))
B)a[ p-a ]
C)p[i]
D)( &a[i] )
答案:A
12-31