c
41. 以下程序段的输出结果是 。
int j=3,s; s=j++;
printf(―%d %d\\n‖,s,j);
√A、3 4 B、4 4 C、4 3 D、3 3 42. 判断char 形变量c为数字字符的正确表达式为是 。 √A、‘0‘<=c&&c<=‘9‘ B、‘0‘<=c<=‘9‘ C、c>=0||C<=‘9‘ D、c>=0&&c<=9 43. 运算符 的优先级最高。
A、* B、= C、+ √D、++ 44. 计算变量x(x大于1)整数部分位数的表达式,可以写作 。 A、(int)log10(x) B、log10(x) C、log10(x)+1 √D、(int)log10(x)+1
45. 判断变量x、y中有且只有1个值为0的表达式为 。 √A、!(x*y)&&x+y B、(x*y)&&x+y
C、x*y==0 D、x==0&&y!=0
46. 执行语句“for(s=0,k=1; s<20||k<10; k=k+2) s+=k;”后,s、k的值为 。
A、25、9 √B、25、11 C、36、11 D、36、9 47. 下列程序段执行后s值为 。
int i=1,s=0;
while(i++) if(!(i%3)) break; else s+=i;
√A、2 B、3 C、6 D、以上均不是 48. 执行下列程序段后的输出结果是 。 char x=’9’;
while(x>’7’) printf(“%c”,x--);
A、99 √B、98 C、987 D、87 49. 该程序段的输出结果是多少?
m=37;n=13; while(m!=n) { while(m>n)
m=m-n; while(n>m)
n-=m;
}
printf(\
A、m=13 B、m=11 √C、m=1 D、m=2 50. 以下程序段的输出结果为? for(i=0;i<5;i++) { for(j=1;j<10;j++) if(j==5) break; if(i<2) continue; if(i>2) break; printf(\ }
printf(\
A、10,3 B、5,2 √C、5,3 D、10,2 51. 以下程序段的输出结果是______。
int x=3; do
{ printf(\ }while(!(--x));?
A、1 B、30 √C、1 –2 D、死循环
52. 若k、s的当前值分别为4、0,执行语句“while(--k) s+=k;”后k、s值分别为 。 A、10、0 B、0、10 C、6、0 √D、0、6 53. 执行语句“for(x=0,s=0; x!=60; x=x+0.3) s=s+x;”后,变量x的值为 。 A、不可能大于60 B、不可能大于60.3
C、一定小于60 √D、可以远大于60 54. 为表示“a和b都不等于0”,应使用的C语言表达式是 。
A、(a!=0) || (b!=0) B、a || b C、!(a=0)&&(b!=0) √D、a && b
55. 已知字符 ‘c’ 的ASCII码为 99 ,语句printf (\的输出为 。
A、99,c B、99,100 √C、99,d D、语句不合法 56. 下列程序段的输出结果是 。
int k, s;
for(k=0, s=0; k<10; k++,s--) if (s>k) break; else s += k;
printf(\
A、(4, 5) B、(4, 6) √C、(6, 9) D、不是A、B、C 57. 下列程序的输出结果是 (30) 。 #include
double d=3.4, x; x=(y=d/2.0)/2;
printf(\ (%0.2f, %d) \, x, y); }
√ A、(0.00, 1) B、(0.85, 1.7) C、(0.50, 1) D、以上都不对 58. 下列程序段的输出结果是 。 int k=1; switch(k) {
case 1: putchar('P'); case 2:
case 3: putchar('Q'); break; case 4: putchar('R'); default: putchar('S'); }
A、P √B、PQ C、PQR D、PQRS 59. 下列程序的输出结果是 。 #include
for(k=1; k<5; k++) {
if(k%2) printf(\#\); else continue; printf(\*\); } }
√A、#*#* B、*#*# C、## D、以上都不对 60. 语句float x=3.0, y=4.0 ;下列表达式中y的值为9.0的是 。 A、y/=x*27/4 √B、y+=x+2.0 C、y-=x+8.0 D、y*=x-3.0 61. 下列表示中正确的C程序常量是 。
A、2.54 B、e1 C、'ok' √D、1.414e+2 62. 表达式 x==0&&y!=0||x!=0&&y==0等效于 。
A、x==0||y==0 B、x*y==0&&(x+y==0) √C、x*y==0&&(x+y)!=0 D、x*y==0||x+y==0
63. 按C语言的实数书写规则,下列实数表示不正确的是 。 A、223. B、.456e22 √C、e22 D、345e12 64. 表达式a!=0||b!=0等效于 。
√A、a||b B、!(a||b) C、a=0||b=0 D、a!=0&&b!=0 65. 下列语句与语句while (i<100) { s+=i;i++; } 功能相同的是 。 √A、for ( ; i<100;i++) s+=i; B、for ( ; i<100;i++, s=s+i); C、for ( ; i<100;i++){ s+=i; i++;} D、for ( ; i<=100;i++) s=s+i; 66. 下列宏定义命令中,哪一个格式是正确的 。
A、#define PI=3.14159; B、define PI 3.14159 C、#define PI=‖3.14159‖ √D、#define PI (3.14159) 67. 已知x=10,ch=?a‘,y=-5;则表达式x>=y&&ch<‘B‘的值是 。 √A、0 B、1 C、“假” D、“真” 68. 语句printf(―%d %.1f‖,5/2,5.0/2)的输出结果是 。
A、2.5 2.5 B、2.5 2 √C、2 2.5 D、2 2
69. 若x、y都是整型变量,且x=2,y=3;经下列计算后,x的值等于6的是 。 √A、x*=6-y B、x=x+y>2?5:6 C、x=y*4.8/2 D、x=(5*y)/2 70. 程序中调用了库函数sqrt,必须包含头文件 。
A、string.h B、stdlib.h C、ctype.h √D、math.h 简答题
1. x=(-26)10,写出它的8位补码 。 11100110
2. 若int k=5, 循环语句while (k!=0) k=k-1; 则循环体执行几次? 5次
3. 假设整型变量a的值是一个三位整数,写出将a的百位数字赋给变量x的表达式。
x=a/100
4. 写出判断整型变量a大于0且a是偶数的逻辑表达式。a>0&&a%2==0 5. int i=-5; while(i<0) i++; 写出循环的执行次数。5次
6. a是一个整型变量,写出把a中十位数字赋值给变量x的表达式。 x=a0/10 7. 程序段 int s=0,i=1;while(i<=5) {s*=i;i++;}是否总能计算1~5的乘积?如果能计算,写出
计算结果,如果不能计算写出原因。不能。变量s的初值为0,结果为0。
8. 将数学代数式(y6+6xy-8)/(7a)写成C程序的算术表达式。(pow(y,6)+6*x*y-8)/(7*a) 9. 写出|z|>5的关系表达式。fabs(z)>5
10. 写出“求整型x的个位数字”的表达式。x
11. 若实型变量x、y已有值,写出“求x、y两个变量中较大值”的表达式。x>y?x:y 12. 将数学代数式 x2+2sin(x)+3 写成C程序的算术表达式。x*x+2*sin(x)+3 13. 设有如下定义:int a=1,b=2,c=3,d=4,m=5,n=6;则执行表达式: (m=a>b)‖(n=c>d)
后,n的值是 ? 6
14. 若 int i=3; 写出下面程序段的输出结果。AB switch(i+1)
{ case 4: printf(\
case 2: printf(\ default: printf(\ }
15. 已知方程ax2+bx+c=0,a、b、c是方程的系数且存在两个实根,写出计算任意一个实根
的算术表达式。 (-b+sqrt(b*b-4*a*c))/(2*a)
16. 写出判断整型变量a的值是偶数的逻辑表达式。 a%2==0
17. 整型变量m的值为27,语句printf(―%x ―,m);的输出结果是。 1b
18. 若int i=10,s=0;执行语句while(i!=0) { s+=i;i--; }后s、i值分别为 。 55,0 19. 表达式 1<0<5 的值是______。 1
20. 下列程序段的输出是______。 7,9.000000 int k; float s;
for (k=0, s=0; k < 7; k ++) s += k/2;
printf(\
21. 写出执行下列语句后的输出结果。3
int x=5;
if(x=3) printf(\else printf(\22. 写出“仅当char类型变量ch是大写英文字母时改变ch为对应小写字母”的C表达式。 ch=ch>=?A?&&ch<=?Z??ch-?A?+?a?:ch
23. 在C语言中,逻辑值”真“用什么表示?非0的数 24. 用for语句循环打印0 1 2 0 1 2 0 1 2;
for(i=1;i<=9;i++) printf(“-”,_____); (i-1)%3 25. 语句:printf(“%d”,(a=2)&&(b=-2));的输出结果是? 1 阅读程序题
1. #include
void main( ) { char ch;
while((ch = getchar()) != '\\n'){
if ( ch>='A' && ch<='Z' ) ch = 'a' + 'Z' - ch; putchar(ch); } }
程序运行时,输入ABC,输出 (1) 。 程序运行时,输入xyz,输出 (2) 。 程序运行时,输入a+Z,输出 (3) 。 (1) A、abc √B、zyx C、ZYX D、ABC (2) A、XYZ B、ABC C、cba √D、xyz (3) √A、a+a B、z+z C、Z+a D、a+A 2. #include
void main( ) { int choice, i; float price;
for( i = 1; i <= 5; i++) { scanf(\ if(choice == -1) break; switch (choice) { case 1: price=2.5; break; case 2: price=1.5; break; case 3: price=4.5; break; case 4: price=3.5; break; default: price=0.0; break; }
printf(\ }
printf(\}
程序运行时,输入3 7 -1,第1行输出 (1) ,第2行输出 (2) ,第3行输出 (3) 。
(1) A、0.0 B、3.0 √C、4.5 D、Thanks (2) √ A、0.0 B、3.0 C、7.0 D、Thanks (3) A、-1.0 B、0.0 C、7.0 √D、Thanks 3. 该程序的运行结果是 。 void main() { int a,b,c;
a=2;b=7;c=5; switch(a>0) { case 1:
switch(b<10)
{ case 1:printf(\case 0:printf(\} case 0:
switch(c==5)
{ case 0: printf(\
case 1: printf(\default:printf(\} default:
printf(\}
printf(\}
√A、^#& B、^