《工学分支结构真题》由会员分享,可在线阅读,更多相关《工学分支结构真题(10页珍藏版)》请在金锄头文库上搜索。
1、2010.6月7.下面说法错误的是: (C)A. do while 语句至少执行一次循环B. break语句可以跳出switch 语句和循环语句C. 每个 if 一定有一个else和它对应D. 每个 else一定有一个if 和它对应8以下程序输出结果为:#include “ stdio.h”main() Char c= c;printf (“ %c” ,c+2); 输出结果是: (B)A.有语法错误,不能通过编译B. e C. 99 D.c 9.判断字符串 a和 b相等的正确表达式是: (C)A.if(a=b) B.if(strcpy(a,b) C.if(strcmp(a,b)= =0) D.
2、 if(a= =b) 13.与y=ab?a:b语句等价的程序段的是:( A ) A.if (ab) y=a; else y=b; B. if (ab) y=b; else y=a;C. if (ab) y=a; y=b; D. if (ab) y=b; y=a; 17.运行以下程序段时编译出错,其原因是 :( D ) char c1= a ,c2= 123;printf(“ %c,%dn” ,c1,c2);A.字符串要用 “ 123” 表示B. 123只能赋值给字符数组C. C2是字符变量,不能用%d格式输出D. 123不是正确的字符常量,不能赋值给字符变量C2 24. 下列程序执行后输出结果
3、是:(A)main() int m=3; printf(“ f(%d)=%d ” ,m,(m=0?1:0) A. f(3)=1 B. f(3)=0 C. f(3)=3 D. f(1)=3 25. 下列程序执行后输出结果是:(A)main() int x=1,y=2,a=0,b=0; switch(x) case 1: switch(y) case 0:a+; case 1: b+; break; case 2:a+;b+;break; printf(“ a=%d,b=%dn” ,a,b); A. a=0,b=0 B. a=1,b=0 C. a=0,b= 1D. a=1,b=1 29.以下程序执
4、行后输出的结果是:(C)main() int a,b,x=45; a=b=0; if(!a) x-; if(b) x=30; else x=40; printf(“ x=%dn” ,x); A. x=0 B. x=30 C. x=40 D. x=44 2009.6月6.判断 char型变量 ch是否为大写字母的正确表达式是(C) 。A. A =ch= A ) OR (ch= A ) & (ch= Z ) D. ( A =ch) 8.若希望当 int a;a的值为奇数时, 表达式的值为 “真” ,a的值为偶数时, 表达式的值为 “假”。则以下不能满足要求的表达式是(D) 。A.a%2=1 B.
5、!(a%2=0) C. a%2 D. !(a%2) 11.正确判断字符串a和b相等的表达式为: (D)A.a=b B.a= b C.strcpy(a,b) D. strcmp(a,b)= =0 14.与y=ab?a:b语句等价的程序段的是:( A ) A.if (ab) y=a; else y=b; B. if (ab) y=b; else y=a;C. if (ab) y=a; y=b; D. if (ab) y=b; y=a; 19.语句 if(!e) 中 e等于( A)时条件为真。A. 0 B. 1 C. 非0 D. 2 22.以下程序的运行结果是(D) 。#include stdio.
6、h main() int a=9,b=10; if(a=b) printf(#); else printf(*); if(a=b) printf($n); A. # B. #$ C. * D. *$ 24.以下程序的运行结果是(C) 。#include stdio.h main() int x,a=10,b=20,c=5; if(ab) if(cd) m=3; else m=4; else m=5; printf(%d,m); _执行后输出的结果(C) 。A.3 B.4 C.5 D.6 17表达式 y3?-1.0:1.0的值是类型应是(B) 。A不确定 B实型C整型D无符号整型21.以下程序:
7、#include main() int x=1, y=3, z=0; if(!z) z+; if(x) z-; if(y) z-=1; printf (%dn, z) ; _执行后输出的结果是: (A)A-1 B0 C1 D.2 24.以下程序执行后输出的结果是:(B)#include main ( ) int a=1, b=0, c=2; a-=b+(b&c) ; printf (%dn, a) ; _ A. 0 B.1 C. 2 D.3 29.以下程序:(C)#include main() int a=0,b=1,c=2,d; d=(a+a|b)+c; printf (%d, d) ; A
8、. 1 B. 2 C. 3 D. 4 2008.1月8.若有 a=-2,b=3, c=-4,d=5,则表达式 ab?a:cd?c:d的值为:(D)A. 3 B. -2 C. -4 D. 5 10.以下程序:int a=0,b=1,c=0; if(a=b+c)printf(=); else printf(!=); 下列判断正确的是: (A)A. 输出: = = B. 输出: != C. 没有输出D. 语法错误,编译不通过24.以下程序:main() int a=4,b=1,c=0; a/=b+(b|c); printf(%dn,a); 执行后输出的结果是: (A)A. 2 B. 4 C. 0 D
9、. 1 26.以下程序:main() float x=2.0,y; if(x0.0)y=0.0; else if(xx+y) z+=x*y; else z-=x*y; printf(%dn,z); 执行后输出的结果是:(A)A.65 B.15 C.40 D.25 27. 下列程序从键盘输入65 后,程序的运行结果为:( D)main() int m; scanf(“ d“,&m); switch(m/10) case 10:Case 9:printf( “优秀” ):break:case 8 : printf( “良好” ) break:case 7 : printf( “中等” ): bre
10、ak:case 6 : printf( “及格” ): breakdefault:prJntf(“不及格” ): A.不及格B.优秀C.中等D.及格第二卷说明:(1)第二卷均为填空题,在阅读和原题程序的基础上,在第二卷答题卡上编号对应的栏目中填入适当的字符,语句,以构成一个正确的C 语言程序。(2)每空栏3 分, 10 个空栏共 30 分。1.以下程序将两个数从大到小输出: #include main() float a, b, 1;scanf( 2 ,&a,&b); if (ab) ( temp=a; 3 ; b=temp; printf( %f,% f , a, b) ; 答案: prin
11、tf( %f,% f , a, b) ;应改为 printf( %f,% f , b, a) ;1. temp 2. %f %f 3. a=b 2. 以下程序是从键盘输入一个字符如果它是一个大写字母。则把它变成小写字母,如果它是一个小写字母则把它变成大写字母,其它字符不变。#include main() char tch; scanf( %c , 4) ; if( 5 ) tch=tch+32; else if(tch= a & tch= A & tch=Z 6. tch=tch-32 2007.1月2.下列语句正确的是: (C )Acnar: a,b,c Bchar a;b;c; Cint
12、x,y; Dint x y z; 8.以下程序:main() int x=2,y=4,z=7,m; m=x&y+z); printf ( “ %d” ,m); 输出结果是()如果 m=x&(y+z);答案 B;如果 m=(x&)y+z; 答案 AA.8 B.1 C.0 D.12 16.以下程序 : main() int x=5,y=4,z=3; if (xz) x=x*2; else x=x*5 printf( “ %dn” ,x) 则执行后输出结果是:(B)A.20 B.50 C.10 D.15 31.从键盘输入B,以下程序的运行结果是:(B) main() char grade; scan
13、f(“ %c” ,&grade); switch(grade) case A ;printf( “ =90” ); case B ; case C ; printf( “ =60” );break; case D ; printf( “ =60=60 C. 60 D. error 2006.6月6.以下程序main() int x1=3,x2=0,x3=0; if(x1=x2+x3) printf( “ * ” ); else printf(“ #” ) 执行后输出的结果是(C) 。A.* B.存在语法错误C.# D.无输出结果15. 设 x, y, z 都是为 int 型变量,且x=8,y=
14、10 ,z=15;则以下的表达式中值为0 的表达式是(D) 。A x&y B.xy .C.x|y+z&y-z D.!(x16) printf( “ %dn” ,x+); else printf( “ %dn” ,x-); 执行后输出结果是(B)A18 B. 17 C. 16 D. 15 24. 以下程序 : main() int m=5; switch(m/2) case 1:m+; case 2: m+=3; case 5: m+=6;break; default: m-=7; printf( “ %dn” ,m); 执行后输出结果是(C)A.8 B.-2 C.14 D10 28当 a=1,
15、 b=3, c=5,d=4 时,执行下面一段程序后,x 的值为( B) 。if (ab) if (cb) x=1; else if (ac) if (bd) x=2; else x=3; else x=6; else x=7 ; 供选择的答案是:A. 1 B. 2 C . 3 D. 6 试题三下列程序是将两个数从小到大输出。#include main() float a, b, 8 ; scanf( 9 , &a, &b); if (ab ) t=a; 10 ; b=t; printf ( “ %f, %f ” , a, b ); 答案8 t 9 “ %f%f ”10 a=b 2006.1月3
16、.设 a、b 和 c 都是 int 型变量, 且 a=3,b=4,c=5: 则以下的表达式中,值为 0 的表达式是 (D) 。A.a&b; B.a=b; C.a|b+c&b-c; D. !(a1+2&2|2*44-!0;后, x的值为( C) 。A.-1 B.0 C.1 D. 5 8.假定 w、x、y、z、 m均为 int型变量,有如下程序段:w=1;x=2;y=3;z=4; m=(wx)?w:x; m=(my)?m:y; m=(m=85” ); case B ; case C ; printf( “ =60” ); case D ; printf( “ =85 B. =60 C. =6060 error D. error