2012-2013学年第一学期期末试试卷B卷 下载本文

一、 填空题(每空 1 分,共 20 分) 1. C语言的输入输出函数包含在头文件__________中,数学函数包含在头文件_______

___________院系_______________专业______年级_______班 姓名_____________学号________________ 中。 2.C语言程序的三种基本结构是____ 、_____________、____ 。 3.转义字符‘\\n’的意义是 ,‘\\r’的意义是 。 4.若 s='d',执行语句 s=(s>='a'&&s<='z')?s-32:s; 字符变量s的值为 . 。 5. a小于等于b的C语言表达式是 ______,a不等于b的C语言表达式是______。 6.若有定义int a=-1;则printf(“%d”, a++);的输出结果为________ 。 7.若有语句scanf(“-=”,&a,&b);从键盘上输入12345678则printf(“%d,%d”,a,b);输出结果为:________ 。 8.设初值a=9,则表达式 a*=a+2的运算结果是____,表达式 a-=a*=3的运算结果是____。 9.设a=3,b=4,c=5表达式:(a+b>c)&&(b==c)的结果为 ______。表达式:!(a>b)&&!c||1的结果为 ______。 10.若int a=3,b;则表达式:b=(a*2,a+4,a*3);的值为_____。 11.若有定义:int a[3][4]={{1,2},{3,5,7},{4,6,8,10}};则初始化后,a[1][2]得到的初值是______。 12. 表达式(int)((double)(5/2)+2.5)的值是_____。 13.设x为int变量,请写出一个关系表达式_____________,用以判断x为3或5的倍数时,关系表达式值的真。 二、单项选择题(共13题,1-6题每题1分,7-13题每题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。 第 1 页 共 5 页

学号: 1、在C语言中,char(字符型)在内存中占用的字节是( )。 A.2 B.1 C.4 D.8 2、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( )。 A、算术运算、赋值运算、关系运算 B、算术运算、关系运算、赋值运算 C、关系运算、赋值运算、算术运算 D、关系运算、算术运算、赋值运算 3、可在C程序中用做用户标识符的一组标识符是( ) A)and B)Date C)Hi D)_2007 case y-m-d Dr.Tom Bigl 4、以下选项中能表示合法常量的是( ) A)整数:1,200 B)实数:1.5E2.0 C)字符斜杠:'\\’ D)字符串:\5、执行语句“x=(a=3,b=a--);整数变量x、a、b的值依次是( )。 A. 3,2,2 B. 3,2,3 C. 3,3,2 D. 2,3,2 6、已知char a;int b;float c;double d;则表达式a*b+c-d结果为( )型。 A)double B)int C)float D)char 7、如下程序的输出结果是( ) #include main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf(“a=%d,b=%d\\n”,a,b); } A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2 8、能正确表示“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是( )。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) C、(x>=1)||(x<=10)||(x>=200)||(x<=210) D、(x>=1)&&(x<=10)||(x>=200)||(x<=210) 9、以下程序的输出结果是( ) #include main() { int a=-1,b=1,k; if((++a<0)&&!(b--<=0)) printf(“%d%d\\n”,a,b); 第 2 页 共 5 页

else printf(“%d%d\\n”,b,a); } A)-1 1 B)0 1 C)1 0 D)0 0 10.已知字母A的ASCII码为十进制的65,则下面程序的输出是( ) main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf(\\n\} A.67,D B.B,C C.C,D D.不确定的值 11.若有代数式3aebc:,则不正确的C语言表达式为( ) A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3 12. 判断下面的循环体的执行次数是( )。 m=10; n=100; while(m=10) m=n--; A.100 B.90 C.10 D.无数次 13. 若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是( ) A)a[0][4] B)a[1][3] C)a[0][3] D)a[1] 三、程序分析和程序填空题 (每空3分 ,共30分) 1、main() {int s=10,k=10; do {s=s-3;k--;} while (s>1); printf(“k=%d”,k); } 程序运行的结果是____________ 2、程序是求数组中最大元素的下标。 main( ) {int s[100],i,k; for(i=0;i<100;i++) scanf(\ for(i=0,k=0;i<100;i++) if(s[i]>s[k])__________; printf(\ } 第 3 页 共 5 页

学号: 3、程序:main() { char ch; int k=0; for(ch='A';ch<'H';ch++,k++) if(k%2==0) printf(\ printf(\输出结果:______________________ 4、下列程序的功能是输出200以内(含200)的正整数中能同时被3和7整除的最大数。 main() { int i; for(_____; _____; _____) if(_____ ) break; printf(“%d”,i); } 5、以下程序的功能是在输入的一组正整数中找出其中的最大者,若输入的数值为0,程序结束。 main() {int a,max=0; scanf(”%d”,&a); while(a) {if(________) max=a; scanf(“%d”, );} printf(“%d”,max); } 6、#include main() {int k=0; char c=′A′; do { switch (c++) { case ′A′:k++; break; case ′B′:k--; case ′C′:k+=2;break; case ′D′:k=k%2;break; case ′E′:k=k*10;break; default:k=k/3;} k++;} while(c<′G′); printf(″k=%d\n″,k); } 输出结果:_______ 四.编程题 (每题10分,共30分) 1.从键盘任意输入二个整数a、b,编程实现大数放在a中,小数放在b中并输出。 2.求s?1?3?5?7?.....?99?101的值 3.编写程序,求4×4矩阵两条对角线元素值的和。 第 4 页 共 5 页

B卷参考答案 一、填空题(每空1分,共20分) 1.stdio.h math.h 2. 顺序结构、分支结构、循环结构 3.换行 回车 4.’Da<=b a!=b 6.-1 7.12,345 8. 99、0 9. 0 1 10.9 11.7 12.413. x%3==0||x%5==0 二、单项选择题(共13题,1-6题每题1分,7-13题每题2分,共20分) 1.B 2. B 3.D 4.D 5.B 6.A 7.A 8. B 9.C 10.A 11.C 12.D 13.D 三、程序分析和程序填空题 (每空3分 ,共30分) 1.k=7 2.k=I 3. A C E G 4.i=200 i>0或者i>=1 i-- i%3==0&&i%7==0 5.m者 a>max &a 四.编程题 (1、2题每题5分,3、4题每题10分,共30分) 1.从键盘任意输入二个整数a、b,编程实现大数放在a中,小数放在b中并输出。 main() { int a,b,t; scanf(“%d,%d”,&a,&b); if(a

第 5 页 共 5 页