考试课程: 考试时间:100分钟 考场:第一考场 考试日期:2010.05.20
考号:200920232 姓名:
剩余时间: 49:06 保存交卷退出帮助
--------------------------------------------------------------------------------
本卷共有3道大题:
一、单项选择题(40道小题,共40分)
1、能够在输出完字符串后自动输出一个回车换行的函数是( )函数。(1分)
A、putc() B、puts()
C、printf() D、putchar()
2、在C程序中,main()的位置( )。(1分)
A、可以任意 B、必须作为第一个函数
C、必须作为最后一个函数 D、必须放在它所调用的函数之后
3、一个C程序的执行是从( )。(1分)
A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束
4、若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。(1分)
A、a:=b+1 B、a=b=c+2
C、int 18.5%3 D、a=a+7=c+b
5、若要求在if后一对圆括号中表示count等于0的关系, 则能正确表示这一关系的表达式为( )。(1分)
A、count B、!count
C、count=0 D、count!=0
6、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为( )。(1分)
A、char < int < 1ong int <= float < double B、char = int < 1ong int <= float < double
C、char < int < long int = float = double D、char = int = 1ong int <= float < double
7、在C语言中,int、char和short三种类型数据在内存中所占用的字节数( )。(1分)
A、由用用户自己定义 B、均为2个字节
C、是任意的 D、由所用机器的机器字长决定
8、若有以下定义int k=7,x=12;,则能使值为3的表达式是( )。(1分)
A、x%=(k%=5) B、x%=(k-k%5)
C、x%=k-k%5 D、(x%=k)-(k%=5)
9、若已定义x和y为float类型,则表达式 x=1,y=x+3/2 的值是( )。(1分)
A、1 B、2
C、2.000000 D、2.500000
10、当z的值不为0时,( )不能正确地将z的值赋给变量x和y。(1分)
A、x=y=z B、x=z,y=z
C、(x=z)||(y=z) D、(x=z)&&(y=z)
11、以下叙述正确的是( )。(1分)
A、在C程序中,main函数必须位于程序的最前面 B、C程序的每行中只能写一条语句
C、C语言本身没有输入输出语句 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误
12、设有定义:int m=1,n=-1;,则执行语句printf("%d\\n",(m--&&++n));后的输出结果是( )。(1分)
A、-1 B、0
C、1 D、2
13、下面选项中,( )是合法的指数表示形式。(1分)
A、2e3.5 B、e3
C、1.5e0 D、3e(2+3)
14、设有 int x=11;,则表达式 (x++ * 1 / 3) 的值是( )。(1分)
A、3 B、4
C、11 D、12
15、若n为整型变量,执行for(n=10;n=0;n--);后,循环里的循环体( )。(1分)
A、无限循环 B、执行10次
C、执行一次 D、一次也不执行
16、下列关于逻辑运算符优先级的描述中,正确的是( )。(1分)
A、&& > || > ! B、&& > ! > ||
C、! > || > && D、! > && > ||
17、若以下变量均是整型,且num=sum=7;则计算表达式 sum=num++,sum++,++num 后,sum的值为( )。(1分)
A、7 B、8
C、9 D、10
18、设有说明:char w;int x;float y;double z;,则表达式 w*x+z-y 值的数据类型为( )。(1分)
A、float B、char
C、int D、double
19、有以下程序main(){ int k=4,n=0;for( ; n C、3,3 D、4,4 20、在下列运算符中,( )的优先级是最低的。(1分) A、= B、, C、> D、&& 21、sizeof(float)是( )。(1分) A、一个双精度型表达式 B、一个整型表达式 C、一种函数调用 D、一个不合法的表达式 22、若有定义:int a=7;float x=2.5,y=4.7;,则表达式 x+a%3*(int)(x+y)%2/4 的值是( )。(1分) A、2.500000 B、2.750000 C、3.500000 D、0.000000 23、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后2位,第3位进行四舍五入运算的表达式是( )。(1分) A、n=(n*100+0.5)/100.0 B、m=n*100+0.5,n=m/100.0 C、n=n*100+0.5/100.0 D、n=(n/100+0.5)*100.0 24、有如下程序段:int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');,执行该程序段后,x的值为( )。(1分) A、ture B、false C、0 D、1 25、在C语言中,凡在程序中要用到的函数都必须( )。(1分) A、要在该程序中进行定义 B、要在程序前面指出的头文件里面进行定义 C、要在该程序中进行定义或在给出的头文件里面有相关定义 D、由于C语言的灵活性可根据需要随意使用 26、设x,y分别为单精度和双精度类型变量,则下列选项( )可将表达式x+y的运算结果强制转换为整型数据。(1分) A、(int)x+y B、int(x)+y C、int(x+y) D、(int)(x+y) 27、在下列关系运算符中,( )的优先级最低。(1分) A、< B、>= C、!= D、> 28、有以下程序main(){ int a=5,b=4,c=3,d=2;if (a>b>c)printf("%d\\n", d);else if ( (c-1 >= d) == 1)printf("%d\\n", d+1);else printf("%d\\n", d+2);},执行后输出结果是( )。(1分) A、2 B、3 C、4 D、编译时有错,无结果 29、有如下程序main(){ int y=3,x=3,z=1;printf("%d %d\\n",(++x,y++),z+2);},运行该程序的输出结果是( )。(1分) A、3 4 B、4 2 C、4 3 D、3 3 30、有以下程序main(){ int i;for (i=0; i<3; i++)switch (i){ case 1: printf("%d",i);case 2: printf("%d", i);default : printf("%d", i);}},执行后输出结果是( )。(1分) A、011122 B、012 C、012020 D、120 31、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( )。(1分) A、D B、68 C、不确定的值 D、C 32、若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式 (exp) 的是( )。(1分) A、(exp==0) B、(exp!=0) C、(exp==1) D、(exp!=1) 33、若运行main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\\n",y);}时,给变量x输入12,则以下程序的运行结果是( )。(1分) A、0 B、22 C、12 D、10 34、设以下变量均为int类型,则值不等于7的表达式是( )。(1分) A、(x=y=6,x+y,x+1) B、(x=y=6,x+y,y+1) C、(x=6,x+1,y=6,x+y) D、(y=6,y+1,x=y,x+1) 35、以下叙述不正确的是( )。(1分) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 36、下列变量定义中,合法的是( )。(1分) A、short _a=1-.1e-1; B、double b=1+5e2.5; C、long do=0xfdaL; D、float 2_and=1-e-3; 37、表达式 18/4*sqrt(4.0)/8 值的数据类型为( )。(1分) A、int B、float C、double D、不确定 38、在Turbo C中,int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( )。(1分) A、0至255 B、0至65535 C、-256至255 D、-32768至32767 39、在一个C程序中,( )。(1分) A、main函数必须出现在所有函数之前 B、main函数可以在任何地方出现 C、main函数必须出现在所有函数之后 D、main函数必须出现在固定位置 40、在执行语句if((x=y=2)>=x&&(x=5))y*=x;后,变量x、y的值应分别为( )。(1分) A、2、2 B、5、2 C、5、10 D、执行时报错 二、填空题(5道小题,共20分) 1、* 按以下规律翻译密码:将每一个字母变成它后面的字母,例如,将A变成B,B变成C,…,Z变成A,非字母字符不变,“!”作为电文结束标志。 #include void main() { char ; printf("输入字符串:\\n"); while ((ch=getchar())!='') { if ((ch>='a' && ch<='z')||(ch>='A' && ch<='Z')) if (ch=='z') ch='a'; else if (ch=='Z') ch='A'; else ch=ch+1; printf("%c",ch); } printf("\\n"); } (4分) -------------------------------------------------------------------------------- 2、* 输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是小写字母,则把它变成大写字母;其它字符不变。 #include void main() { char ch; =getchar(); if ((ch>=65)&&(ch<=90)) ch=ch+32; else if ((ch>=97)&&(ch<=122)) ch=ch-32; printf("%c\\n",); } (4分) -------------------------------------------------------------------------------- 3、* 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 main( ) { long ge,shi,qian,wan,x; scanf("%ld",&x); wan=x/10000; qian=x%10000/1000; shi=x%100/10; =x%10; if(ge==wan&&==qian)/*个位等于万位并且十位等于千位*/ printf("this number is a huiwen\\n"); else printf("this number is not a huiwen\\n"); } (4分) -------------------------------------------------------------------------------- 4、* 已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值。 * y=x*(x+2), 2 #include void main() { float x,y; printf("输入X值:"); scanf("%f",); if (x<=-1) { y=x-1; printf ("Y=%6.2f\\n",y); } else if (x<=2) { y=2*x; printf ("Y=%6.2f\\n",y); } else if (x<=10) { y=x*(x+2); printf ("Y=%6.2f\\n",y); } printf("取值范围出错\\n"); } (4分) -------------------------------------------------------------------------------- 5、* 请编制程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no. #include void main() { int a; printf("请输入要验证的数:\\n"); scanf("%d",&a); if(a%5==0a%7==0) printf("Yes\\n"); printf("No\\n"); } (4分) -------------------------------------------------------------------------------- 三、编程题(3道小题,共40分) 1、* 编写程序: * 求出[1,100]以内的能被3整除的数的平方和。 (10分) (本题不要求填写运行结果) 请将你解答本题所写的源程序粘贴到下面或者上载源程序 #include main() { int i,sum=0; for(i=1;i<=100;i++) if(i%3==0) sum=sum+i*i; printf("%d\\n",sum); } -------------------------------------------------------------------------------- 2、* 编写程序: * 勾股弦数是满足公式: A^2+B^2=C^2 (假定A(15分) (本题不要求填写运行结果) 请将你解答本题所写的源程序粘贴到下面或者上载源程序 #include main() { int A,B,C,max=0; for(A=1;Afor(B=1;B if(A*A+B*B==C*C) { if(A+B+C>max) max=A+B+C; } printf("%d\\n",max); } -------------------------------------------------------------------------------- 3、* 编写程序: * 求方程8x-5y=3,在|x|<=150,|y|<=200内的整数解。试问这样的整数解中|x|*|y|的最大值是多少? (15分) (本题不要求填写运行结果) 请将你解答本题所写的源程序粘贴到下面或者上载源程序 #include main() { int i,j,max=0; for(i=-150;i<=150;i++) for(j=-200;j<=200;j++) if(8*i==5*j+3) { if(fabs(i)*fabs(j)>max) max=fabs(i)*fabs(j); } printf("%d\\n",max); } -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 考号:200920232 姓名: 剩余时间: 49:06 保存交卷退出帮助 -------------------------------------------------------------------------------- 强烈建议您使用IE5.0以上,屏幕分辨率800X600以上,真彩,小字体浏览