1、上海电机学院 20102011学年第 2 学期高级语言程序设计期中考试试卷B 2011.5开课学院:电子信息学院, 考试形式:闭卷, 所需时间 90 分钟考生姓名: 学号: 班级 题序一 二 三四五六总 分得分一、填空题(共20分,每空格1分)1将数学式转换成C语言表达式 。2getchar函数的作用是 。3C语言程序的基本单位是函数。程序的执行总是从 开始。4在C程序中,逻辑运算符的操作对象,用 表示“真”,用 表示“假”。在求逻辑值时,用 表示逻辑表达式值为“真”,用 表示逻辑表达式值为“假”。矚慫润厲钐瘗睞枥庑赖。5执行 printf(%dn,(int)(2.5+3.0)%2); 的输出
2、结果是 。 聞創沟燴鐺險爱氇谴净。6C语言提供的三种逻辑运算符为: 、 和 。残骛楼諍锩瀨濟溆塹籟。7设整型变量 x、y、z均为3:则 执行xy+x后,x 执行xyz后,x 8. 设有说明语句:int a=21, b=6; 则a/b的十进制数值为_ 9. 设有说明语句:int x=3, y=2; 则计算表达式(x=5) | (y=6*x) 后变量y的值是_酽锕极額閉镇桧猪訣锥。10 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&b+c/2后,彈贸摄尔霁毙攬砖卤庑。t的值是 11结构化程序设计的三种基本结构是 结构, 结构和 结构。謀荞抟箧飆鐸怼类
3、蒋薔。12设定义 int k=1,n=163;执行下面程序段后,k的值是 。dok*=n%10;n/=10; while(n);二、选择题 (共17分,每小题1分)1表达式3/5的值为: ( )厦礴恳蹒骈時盡继價骚。A 0 B 0.6 C 0.600000 D1茕桢广鳓鯡选块网羈泪。2表达式“9!=9”的值是 ( )鹅娅尽損鹌惨歷茏鴛賴。A true B非0值 C 0 D1籟丛妈羥为贍偾蛏练淨。3设ch是char型变量,其值为A,则下面表达式的值是 ( ) ch(chA& chy) z=x; x=y; y=z; printf(“%d,%d,%d”,x,y,z);后,输出是( )擁締凤袜备訊顎轮
4、烂蔷。A. 10,20,30 B. 20,30,10 C. 20,30,30 D. 20,30,20贓熱俣阃歲匱阊邺镓騷。10. 程序段:int num=1; while(numb)&(ycd)”后x,y的值是( )蜡變黲癟報伥铉锚鈰赘。 A 0,l B 0,0 C1,0 D 1,l 15. 以下不正确的描述是( )Abreak语句不能用于循环语句和switch语句外的任何其它语句B在switch语句中使用break语句或continue语句的作用相同C在循环语句中使用continue语句结束本次循环,但不会终止整个循环D在循环语句中使用break语句是,会跳出循环体,提前结束循环16字符串”
5、123”在计算机内所占用的字节数是 ( ) 个。A 1 B 2 C 3 D 417. C语言中合法的字符常量是 ( )。A 058BabCxabD ”0”18. 要把高级语言编写的源程序转换为目标程序,需要使用 ( )A. 编辑程序 B. 驱动程序 C. 诊断程序 D. 编译程序19假定x和y为int型,且x=10,y=3,则以下语句的输出结果是 ( ) printf(%d,%dn,x-,+y);A10,4 B9,3 C 9,4 D 10,2買鲷鴯譖昙膚遙闫撷凄。20以下程序运行后的输出结果是 ( ) void main() int a=3; printf(%dn,(a-=a+=a*a); A
6、 -6 B 12 C -12 D0綾镝鯛駕櫬鹕踪韦辚糴。三、改错题(共8分)1下列程序的功能为:输出如下的图形,要求顶端的*定位在第21字符位置,请纠正程序中存在错误,使程序实现其功能。驅踬髏彦浃绥譎饴憂锦。 * * * *#include /*1*/ void main()/*2*/ int i,j;/*3*/ for (i=0;i=4;i+)/*4*/ for (j=0;j=20;j+)/*5*/ printf(n);/*6*/ for (j=0;j 100 )/*7*/ printf(mark100, Reinput!n); /*8*/ break; /*9*/ n+; sum += m
7、ark; /*10*/ if ( markmax ) max = mark;/*11*/ else min = mark; /*12*/ /*13*/ sum %= n; /*14*/ printf(%d,%d,%d,%dn, max,min,n,sum);锹籁饗迳琐筆襖鸥娅薔。 四、程序填空(共13分,每空格1分)1编一个C程序,判断从键盘上输入的一个字符,并按下列要求输出。若该字符是数字 输出字符串0-9若该字符是大写字母 输出字符串A-Z若该字符是小写字母 输出字符串a-z若该字符是其他字符 输出字符串!, #include main() char ch; scanf( ); if(ch
8、 =0 &ch=a&ch=z) printf(a-zn); else printf(!,n);2以下程序计算某年某月有几天。其中判别闰年的条件是:能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年。構氽頑黉碩饨荠龈话骛。#include main() int yy,mm,len; printf(year,mouth); scanf(%d %d,&yy,&mm); switch(mm) case 1:case 3:case 5:case 7: case 8:case 10:case 12: ;break; case 4:case 6:case 9:case 11:len=30;b
9、reak; case 2: if(yy%4=0&yy%100!=0|yy%400=0) ; else ; break; default:printf(input error); break; printf(the length of %d %d is %dn,yy,mm,len);3从键盘输入3个整数x、y、z,要求把y的值给x,把x的值给z,把z的值给y,然后输出x、y、z的值。(提示:使用中间变量)輒峄陽檉簖疖網儂號泶。#include main () int x,y,z, ;printf(Please input x,y,z: );scanf(%d%d%d, ); ; ; ; ;printf(x=%d y=%d z=%dn,x,y,z);五、程序分析题(共18分,每题3分) 请写出执行下述程序的输出结果 。 六、编程题 (共24分,每小题6分)2x x72从键盘输入一个小写字母,转换成对应大写字母的后一个字母输出。例如:a将转换成B、y将转换成Z,其中的z将转换成A。尧侧閆繭絳闕绚勵蜆贅。 3编一个程序,输入20个整数,统计并输出其中正数、负数和零的个数。4编写一个程序实现如下功能:用下列公式计算s的值。5