c语言试题(b卷)
好文档当选:http:/www.docin.com/honghaochem2C语言试题(B卷)第一部分:选择题一、单项选择题 (本大题共20小题,每小题1分,共20分) 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。1. 下列表达式的值为0的是 【 】A. 35 B. 3/5.0C. 3/5 D. 3<52. 正确的C语言用户自定义标识符是 【 】A. print B. floatC. when? D. random23. 设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是【 】A. 0和2 B. 0和3C. 1和2 D. 1和34. 下列叙述中,正确的是 【 】A. 引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致B. 宏名必须用大写字母表示C. 宏替换不占用运行时间,只占编译时间D. 在程序的一行上可以出现多个有效的宏定义5. 下列保留字中用于构成循环结构的是 【 】A. if B. whileC. switch D. default6. 与语句if(a>b)if(c>d)x = 1;else x = 2;等价的是 【 】A. if(a>b)if(c>d) x = 1;else x = 2;B. if(a>b)if(c>d) x = 1; else x = 2;C. if(a>b) && (c>d) x = 1;else x = 2;D. if(a< =b) x = 2;else if (c>d) x = 1;7. 设 char x =a;则printf(x = c, y = c n,x,97);的输出是【】A. x = a,y = 97 B. x = 97,y = aC. x = 97,y = 97 D. x = a,y = a8. 设int x = 1,2,3,4,5,6,* p = x;则值为3的表达式是【 】A. p + = 2, * + + p B. p + = 2, * p + +C. p + = 3, * p D. p + = 2, + + * p9. 完成 C 源文件编辑后、到生成执行文件, C 语言处理系统必须执行的步骤依次为【 】A. 连接、编译 B. 编译、连接C. 连接、运行 D. 运行 10.C 语句“ x*=y+2 ;”还可以写作【 】A. x=x*y+2; B. x=2+y*x; C. x=x*(y+2); D. x=y+2*x; 11. 执行语句“ for(s=0,i=1;i<=10;i=i+3) s+=i; ”后,变量 s 、 i 的当前值是 【 】A. 22,13B. 12,10 C. 22,10D. 12,1312不用第三个变量,将变量a和b的值进行互换的操作是【 】A.a+=b;b-=a;a-=b; B.a+=b;b=a-b;a-=b;C.b-=a;a-=b;a-=b; D.b-=a;a=b-a;a+=b;13自动型变量分配在【 】A.内存的数据区中 B.CPU的通用寄存器中C.内存的程序区中 D.内存的堆栈区中14下列程序段运行后,x的值是【 】a=1;b=2;x=0;if(!(-a)x-;if(!b)x=7;else +x;A.0 B.3C.6 D.715设int x=1,a=9,b=6,c=7,d=8;则执行语句:if(a>b) if(c>d)x=2;else x=3;后,x的值是【 】A.1 B.2C.3 D.不确定16对于如下定义的枚举型enum list1x1,x2,x3,x4=6,x5,x6;枚举常数x2和x6的值分别是【 】A.1,6 B.1,8C.2,6 D.2,817设int a=1,b=2,c=4;经过表达式(c=a!=b)&&(a= =b)&&(c=b)运算后,a、b和c的值分别是【 】A.1,2,0 B.1,2,1C.1,2,2 D.1,2,318下列程序的运行结果是【 】#define EVEN(x)x%2= =0?1:0main( )if(EVEN(9+1) printf(is even);else printf(is odd);A.is even B.出错C.无结果 D.is odd19以下程序的输出结果是【 】main() int a44=1,3,5,2,4,6,3,5,7;printf("%d%d%d%dn",a03,a12,a21,a30;)A 0650 B 1470 C 5430 D 输出值不定20以下程序的输出结果是【 】main() int a, b;for(a=1, b=1; a<=100; a+) if(b>=10) break;if (b%3= =1) b+=3; continue;printf("%dn",a);A 101 B 6 C 5 D 4第二部分 非选择题二、填空题 (本大题共10小题,每小题2分,共20分)21. 表达式 !10! = 1的值是_。22. 表达式a = 1,a + 1,a + + 的值是_。23. 设int i = 5;则循环语句while (i > = 1) i - -;执行后,i的值为_。24. 计算 a 、 b 中最小值的条件表达式为 _ 。 25. 执行语句“ a=5+(c=6); ”后,变量 a 、 c 的值依次为 _ 。26.a 、 b 都是结构体变量,语句“ a=b; ”能够执行的条件是 _ 。 27设for(k=0;k<0;k+)+k;则该循环共执行_ 次。28设int a =1,b=2;经表达式a=ab,b=ab,a=ab运算后a,b的值分别是_ 。29表示空类型的保留字是_ 。30.表达式8&3的结果是_。三、程序分析题 (本大题共5小题,每小题5分,共25分) 阅读下列程序,将输出结果写到各题右侧的空白处。31 #define N 7#define PRINT for(i=0;i<N;i+)printf(%5d,a);printf(n);main( )int i,j,temp,aN=1,2,3,4,5,6,7;PRINTfor(i=0,i<N/2,i+)j=N-1-i;temp=a;a=aj;aj=temp;PRINT32. int a = 200;main() int i; for(i = 1;i< = 5;i + +) a + + ; printf(d,a); s() s() static int a = 20; a + + ; printf(d n,a); 33. # define N 7 main() int i,j,temp,aN=1,2,3,4,5,6,7; for(i = 0;i<N/2;i + + ) j = N - 1 - i; temp = ai;ai=aj;aj=temp; for(i = 0;i<N;i + + ) printf(5d,ai); 34. struct porb char * name; int count; x=Li ning,19,Lang ping,21,Zhu jian hua,20;main() int i; for(i = 0;i<3;i + + ) printf(s: d n,xi.name,xi.count); 35. main() union short a;char ch; M; M.a = 100;M.ch =A; printf(d,d,c n,sizeof(M),M.a,M.ch); 四、程序填充题 (本大题共3小题,每小题5分,共15分) 给出下列程序,将横线处缺少的部分补上,使其能正确运行。36. 以下程序的功能是用选择法对数组a中的整数由小到大进行排序。void sort(int b,int n) int i,j,t; for(i = 0;i<n - 1;i + ) for(_;j<n;j + ) if(bi_bj) t = bi;_;bj=t; main() int a=5,8,6,2,7,4,1,3; int i; sort(a,8); for(i = 0;i<8;i + ) printf(5d,ai); printf( n); 37一个一维数组和一个二维数组同处一个共用型,将数据输入一维数组后,在二维数组中输出。main( )union data int a10;int b_ ; ;union data ab;int i,j;for(i=0;i<10,i+)scanf(%d, _ ); for(i=0;i<2;i+)for(j=0;j<5;j+)printf(%5d, _ ); 38用指针法输出二维数组,每行三个数。main( )int i,j,a33=1,2,3,4,5,6,7,8,9,(*p)3;_ for(i=0;i<3;i+)for(j=0;j<3;j+) printf(%5d, _ ); _ ;五、程序设计题 (第39小题5分,第40、41小题各6分,共17分)。1. 编程,先输入 n ,再输入 n 个实数并分别统计正数的和、负数的和,然后输出统计结果。 2. 编程,输入 a 1 、 a 2 、 . 、 a 15 后,计算下列表达式的值并输出。 3. 把文本文件 x1.dat 复制到文本文件 x2.dat 中,要求仅复制 x1.dat 中的非空格字符。