-1-《C程序设计》期中考试试卷(2014/2015学年第一学期)考试号姓名一、选择题(每题2分计60分)1.putchar函数可以向终端输出一个()。A)整型变量表达式B)实型变量值C)字符串D)字符或字符型变量值2.下列运算符中优先级最高的是()。A)<B十C)%D)!=3.一个c程序的执行是从().A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束4.设charch;以下正确的赋值语句是().A.ch='123';B.ch=\xff';C.ch='\08’;D.ch=\”;5.以下结果为整数的表达式(设有inti;charc;floatf;)().A.i十fB.i*cC.c十fD.i十c十f6.printf函数中用到格式符%3s,其中数字3表示输出的字符串占用3列。如果字符串长度大于3,则输出按方式()。A)从左起输出该字符串,右补空格B)按原字符长从左向右全部输出C)右对齐输出该字符串,左补空格D)输出错误信息7.下面四个选项中,均是合法整形常量的选项是().A)160B)-0xcdfC)-01D)-0x48a-0xffff01a986,0122e50110xe06680x8.设n=12,i=4、则赋值运算n%=i+1执行后,n的值是().A.0B.3C.2D.19.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是().A)’x’&&’y’B)x<=yC)x||y+z&&y-zD)!((x<y)&&!z||1)10.下面四个选项中,均是合法浮点数的选项是().A)+1e+1B)-1.60C)123eD)-e35e-9.412e-412e-.4.8e-403e2-8e5+2e-15.e-011.逗号表达式(a=3*5,a*4),a十15的值为()。A.15B.60C.30D.不确定12.下面四个选项中,均是不正确的八进制数或十六进制数的选项是().A)016B)oabcC)010D)0a120x8f017-0x117ff0180xa0x16-12313.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是().-2-A)A%2==1B)!(A%2==0)C)!(A%2)D)A%214.若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是().A)scanf(“%d%d1x,%1e”,&x,&y,&z);B)scanf(“%2d*%d%1f”,&x,&y,&z);C)scanf(“%x%*d%o”,&x,&Y);D)scanf(“%x%o%6.2f”,&x,&y,&z);15.根据定义和数据的输入方式,输入语句的正确形式为。已有定义:floatf1,f2;数据的输入方式:4.523.5A)scanf(“%f,%f”,&f1,&f2);B)scanf(“%f%f”,&f1,&f2);C)scanf(“%3.2f%2.1f”,&f1,&f2);D)scanf(“%3.2f,%2.1f”,&f1,&f2);16.以下正确的叙述是().A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是正数还是实数,都能被准确无误的表示D)在C程序中,%是只能用于整数运算的运算符17.已有程序和输入数据的形式,程序中输入语句的正确形式应当为。(注:︼表示空格,CR表示回车)main(){inta;floatf;printf(“\nInputnumber:”);输入语句printf(“\nf=%f,a=%d\n”,f,a);}Inputnumber:4.5︼︼2CRA)scanf(“%d,%f”,&a,&f);B)scanf(“%f,%d”,&f,&a);C)scanf(“%d%f”,&a,&f);D)scanf(“%f%d”,&f,&a);18.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’;后,c2的值为().A)DB)68C)不确定的值D)C19.在C语言中,要求运算数必须是整型的运算符是().A)/B)++C)!=D)%20.以下不正确的语句是()。A)if(xy&&x!=y);B)if(x==y)x+=y;C)if(x!=y)scanf(“%d”,&x)D)if(xy)x=10;21.在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。A)由用户自己定义B)均为2个字节C)是任意的D)有所用的机器的机器字长决定22.若有说明语句:charc=‘\72’;则变量c()。A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定23.语句if(!i)的条件!i等价于()。A)i==0B)i!=1C)i!=0D)noti24.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为()。A)intB)floatC)doubleD)不确定25.设intn=3;则十十n后n的结果是()A)2B)3C)4D)5-3-26.阅读以下程序。判断程序的输出是()。voidmain(){inta=5,b=0,c=0;if(a=b+c)printf(“***\n”);elseprintf(“$$$\n”);}A)语法有错不能通过编译B)可以通过编译但不能通过连接C)输出***D)输出$$$27.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是().if(x>y)z=x;x=y;y=z;A)x=l0,y=20,z=30B)x=20,y=30,z=20C)x=20,y=30,z=10D)x=20,y=30,z=2028.阅读以下程序,当输入数据的形式为:251310CR(注:CR表示回车),则正确的输出结果为。main(){intx,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值29.为了避免在嵌套的条件语句if-else中产生二意性,c语言规定else子句总是与()配对。A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行的if30.有如下程序,若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是()。main(){inta1,a2;charc1,c2;scanf(%d%d,&a1,&a2);scanf(%c%c,&c1,&c2):}A)1020ABCRB)1020ABCCRC)1020CRD)1020ABCRABCR二、填空题(每题2分计20分)1.表达式10%3的结果是。2.表达式13/3的结果是。3.结构化设计中的三种基本结构是。4.定义intx,yl执行y=(x=1,十十x,x十2)5语句后,y的值是。5.在C语言中的实型变量分为两种类型,他们是和。6.若a、b和c均是int型变量,则计算表达式后,a值为,b值为。a=(b=4)+(c=2)7.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为。8.在C语言中,表示逻辑“真”值。-4-9.设x,y,z均为int型变量,则描述“x或y中有一个小于z”的表达式是。10.已知表达式为x=(a=5)+(b-8),则x的值为。三、程序阅读题(每题4分计40分)1.阅读程序,并按给定的输出格式写出“运行结果”。#includestdio.hvoidmain(){inti=010,j=10,k=0x10;printf(i=%d,j=%d,k=%d\n,i,j,k);}2.写出下列程序的运行结果。#includestdio.hvoidmain(){intx=20,y=13,z;z=(x%y,x/y);printf(x=%d,z=%d\n,x,z);}3.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后#includestdio.hvoidmain(){intx=0210;printf(%X\n,x);}4.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后已知字母A的ASCII码为65。以下程序运行后的输出结果是______。#includestdio.hvoidmain(){chara,b;a='A'+'5'-'3';b=a+'6'-'2';printf(%d%c\n,a,b);}5.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后#includestdio.hvoidmain(){inta,b,c;a=10;b=20;c=(a%b1)||(a/b1);printf(%d%d%d\n,a,b,c);}6.下面的程序框图,如果输入三个实数a,b,c,要求输出这三个数中最大的数,那么在空白的判断框中,应填写什么语句?-5-7.以下程序的执行结果是()。#includestdio.hmain(){inta,b,c;a=2;b=3;c=1;if(ac)printf(%d\n,a);elseprintf(%d\n,b);printf(end\n);}8.以下程序的执行结果是()。#includestdio.hmain(){inta,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;if(!c)x=15;elsex=25;printf(d=%d\n,d);}9.以下程序在输入5,2之后的执行结果是().-6-#includestdio.hmain(){ints,t,a,b;scanf(%d,%d,&a,&b);s=1;t=1;if(a0)s=s+1;if(ab)t=s+t;elseif(a==b)t=5;elset=2*s;printf(s=%d,t=%d\n,s,t);}10.以下程序的结果是().main(){intx,y,z;x=1,y=1,z=0;x=x||y&&z;printf(“%d,%d”,x,x&&!y||z);}四、程序填空题。(每题6分计30分)1.从键盘输入一个大写字母,要求改用小写字母输出。#include“stdio.h”voidmain(){charc1,c2;①printf(“%c,%d\n”,c1,c2);②printf(“%c,%d\n”,c2,c2);}2.从键盘输入两个实数,按代数值由小到大的顺序输出这两个数。#include“stdio.h”voidmain(){floata,b,t;③if(ab){t=a;④b=t;}printf(“%5.2f,%5.2f”,a,b);-7-}3.闰年的条件是符合下列条件之一:(1)能被4不整除,但不能被100整除;(2)能被4整除,又能被400整除。请编写写一个程序,判断某一年是否闰年。#include“stdio.h”voidmain(){intyear,leap;scanf(“%d”,&year);if(⑤)leap=1;elseleap=0;if(leap)printf(“%disaleapyear.“,year);elseprintf(“%disnotaleapyear.”,year);}4.试编程判断输入的正整数是否既是5又是7的正倍数。若是,则输出yes;否则输出no。voidmain(){intx;scanf(%d,&x);if(⑥)printf(yes);else⑦}5.请编写程序,要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b个位上的数字,否则输出两数的和。voidmain(){inta,b,x,y;scanf(%d%d,&a,&b);x=a*a+b*b;if(x100){⑧printf