还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
一、单选题(每题
1.5分,共60分)
1、C程序是 A.顺序执行 B.从Main函数开始 C.从函数体开始 D.任意语句 答案B
2、以下说法中正确的是 ) A.C语言程序中是从第一定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main函数中定义 C.C语言程序总是从main函数开始执行 D.C语言程序中的main函数必须放在程序的开始部分 答案C
3、算法的表示方法有________ A.自然语言,传统流程图,N-S流程图,伪代码,计算机语言 B.高级语言,汇编语言,机器语言 C.C语言,QBASIC语言,InterDev D.图形图像法,描述法,编程法 E.计算机语言 答案A
4、以下选项中,非法的字符常量是 A.\t B.\17 C.n D.\xaa 答案C
5、以下所列的C语言常量中,错误的是 A.0xFF B. C.2L D.\72 答案B
6、下列变量名合法的是 A.#1 B.$567 C.a-b D.m_number 答案D
7、下面四个选项中,均是不正确的八进制数或十六进制数的选项是 A.0160x8f018 B.0abc0170xa C.010-0x110x16 D.0a127ff-123 答案D
8、sizeoffloat是 A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用 D.一个不合法的表达式 答案B
9、C语言中double类型数据占 个字节char类型数据占 个字节 A.1 B.2 C.4 D.8和1 答案D
10、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 A.c=b=a; B.a=c‖b=c; C.a=cb=c; D.a=c=b; 答案C
11、若已定义x和y为double型,则表达式x=1y=x+3/2的值是 A.1 B.2 C.
2.0 D.
2.5 答案C
12、执行语句x=a=3b=a--后xab的值为; A.332 B.322 C.323 D.232 答案C
13、语句printfa\bre\hi\y\\\bou\n;的输出结果是 A.a\bre\hi\y\\\bou B.a\bre\hi\y\bou C.rehiyou D.abrehiy\bou 答案C
14、在下列运算符中,优先级别最高的是 A.= B.= C.% D. 答案C
15、若执行下面的程序时从键盘上输入3和4则输出是 main{ int abs;a=3b=4;scanf%d%dab;s=a+b; printf%d\ns--; printf%d\n--s;} A.77 B.75 C.67 D.76 答案B
16、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 #includestdio.h main { int x; seanf”%d”,&x; ifx++5printf”%d”,x; else printf”%d\n”,x--;} A.7和5 B.6和3 C.7和4 D.6和4 答案A
17、设a、b、C、d、m、n均为int型变量,且a=
5、b=
6、c=
7、d=
8、m=
2、n=2,则逻辑表达式m=a bn=c d运算后,n的值为: A.0 B.1 C.2 D.3 答案C
18、逻辑运算符两侧运算对象的数据类型 A.只能是0或1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 答案D
19、表示关系X =Y =Z的C语言表达式为________ A.X=YY=Z B.X=YANDY=Z C.X=Y=Z D.X=YY=Z 答案A
20、判断字符型变量x是否是大写字母的正确的表达式______. A.A=x=Z B.x=Ax=Z C.A=xZ=x D.x=Ax=Z 答案D
21、有如下程序main0{ int x=1a=0b=0;switchx{case 0: b++;case 1: a++case 2: a++;b++}printfa=%db=%d\nab;}该程序的输出结果是 A.a=2b=1 B.a=1b=1 C.a=1b=0 D.a=2b=2 答案A
22、已知 int x=10y=20z=30;以下语句执行后xyz的值是ifxy z=x;x=y;y=z; A.x=10y=20z=30 B.x=20y=30z=30 C.x=20y=30z=10 D.x=20y=30z=20 答案B
23、以下程序的输出结果是main{int a=100x=10y=20ok1=5ok2=0; ifx y ify!=10 if!ok1 a=1; else ifok2 a=10; a=-1; printf%d\na; } A.1 B.0 C.-1 D.值不确定 答案C
24、i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for i=5; i; i-- forj=0; j 4; j++{…} A.20 B.24 C.25 D.30 答案A
25、以下程序的输出结果是main { int x=10,y=10,i;fori=0;x 8;y=++iprintf%d,%d ,x--,y;} A.10192 B.9876 C.10990 D.101091 答案D
26、执行语句: for i=1;i++ 4;;后变量i的值是______. A.3 B.4 C.5 D.不定 答案C
27、以下程序的输出结果是{ int i,j,x=0; fori=0;i 2;i++ { x++; forj=0;j 3;j++ { ifj%2 continue; x++; } x++ } printfx=%d\n,x;} A.x=4 B.x=8 C.x=6 D.x=12 答案B
28、有以下程序段int k=0whilek=1k++;while 循环执行的次数是 A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行1次 答案A
29、在whilex语句中的x与下面条件表达式等价的是 A.x==0 B.x==1 C.x!=0 D.x!=1 答案C
30、执行下面的程序段后变量k中的值为s
[0]=k; k=s
[1]*10; A.不定值 B.33 C.30 D.10 答案A
31、若有说明int a
[10];则对a数组元素的正确引用是 A.a
[10] B.a
[35] C.a5 D.a[10-10] 答案D
32、设有数组定义char array[]=”China”;,则数组array所占的空间为 A.4个字节 B.5个字节 C.6个字节 D.7个字节 答案C
33、从下列选项中选择不会引起二义性的宏定义是 A#define POWERXX*X B#define POWERXX*X C#define POWERXX*X D#define POWERXX*X A.A B.B C.C D.D 答案D
34、在说明语句int *f;中标识符f代表的是 A.一个用于指向整型数据的指针变量 B.一个用于指向一维数组的行指针 C.一个用于指向函数的指针变量 D.一个返回值为指针型的函数名 答案D
35、 若有说明int i j=2,*p=i;,则能完成i=j赋值功能的语句是 A.i=*p; B.p*=*j; C.i=j; D.i=**p; 答案D
36、下面程序的输出是main{ char x=040; printf%d\nx=x1;} A.100 B.160 C.120 D.64 答案D
37、C语言中____函数的递归调用 A.允许 B.不允许 C.由用户自己而定 D.不确定 答案A
38、关于建立函数的目的,以下正确的说法是 A.提高程序的执行效率 B.提高程序的可读性 C.减少程序的篇幅 D.减少程序文件所占内存 答案B
39、有如下函数调用语句funcrec1rec2+rec3rec4rec5;该函数调用语句中,含有的实参个数是 A.3 B.4 C.5 D.有语法错 答案A
40、以下函数 ffffloat x { printf”%d\n”,x*x; } 的类型是 A.与参数x的类型相同 B.void类型 C.int类型 D.无法确定 答案C填空题(每题
1.5分,共24分)
1、在C语言中以16位PC机为例,一个float型数据在内存中所占的字节数为_____;一个double型数据在内存中所占的字节数为_________ 答案4,
82、设有以下变量定义并已赋确定的值charw;intx;floaty;doublez;则表达式:w*x+z-y所求得的数据类型为__________ 答案double
3、设x和y均为int型变量且x=1y=2则以下表达式0+x/y的值为___ 答案
04、若a是int型变量,则计算表达式后a的值为_______a=25/3%3 答案
25、语句x++;++x;x=x+1;x=l+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同) 答案X+=
16、若变量已正确定义,以下语句段的输出结果是——x=0;y=2;z=3;switchx{caseO switchy==2{case1printf”*”;break;case2printf”%”;break;}case1switchz{case1printf”$”;case2tprintf”$”;break;d 答案*#
7、设xy、z均为int型变量,请写出描述“x或Y中至少有一个小于Z”的表达式—— 答案xZ||YZfont
8、已知charch;则判断ch是英文字符的逻辑表达式是_______________ 答案ch=zch=a||ch=Zch=A
9、表示条件10x100或x0的C语言表达式是________ 答案(X10X100)||X
010、请写出以下程序的输出结果——#includemain{inta=100ifa100printf”%d\n”,a100;elsepIintf”%d\n”,a=100;} 答案!&&||
11、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数请填空#includestdio.hmain{intij;fori=0;______________;i++{j=i*10+6;if________continue;printf%dj;}} 答案i10j%3!=
012、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列其它元素不变请填空#includestdio.h#includestring.hmain{chara[]=clanguaget;intijk;k=strlena;fori=0;i=k-2;i+=2forj=i+2;j=k;_______________if_______________ 答案j+=2a[i]a[j]
13、读入一个1到9的数a,求s=a+aa+aaa+…+aa…a(共20项)请对下述程序填空,其中temp保存当前处理项aa…a(每个空分别以序号标注,如
(1)____)#includestdio.hmain{intI;longastemp;s=temp=0;printfPleaseenteranumber1-9;scanf1____;s=a;forI=1;2____;3____ 答案%lfai20i++a+a*10temp
14、下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存人数组b,并按每行3个元素输出数组b请填空#includemain{inta
[10],b
[10],i;fori=0;_________;i++scanf”%d”,a[i];fori=1;__________;i++b[i]=a[i]-a[i-1];fori=1;i10;i++{printf”%3d”,b 答案i10i10i%3==
015、下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空#include#includemain{chara[]=”clanguage”,t;inti,j,k;k=strlena;fori=0;i=k-2;i+=2forj=i+2;jif___________{t=a[i];a[i]=a 答案i+=2a[ija[j]
16、阅读以下程序并填空,该程序是求阶乘的累加和S=0!+1!+2!+…+n!#includelongfintn{inti longs;s=________;fori=1;i=n;i++s=________;returns;}main{longs;intk,n;scanf”% 答案1s*i0fk程序设计题(请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分)
1、编程序求出100到200之间同时满足除3余2和除5余3条件的数的个数 答案main{intinum=0;fori=100;i=200;i++{ifi%3==2i%5==3num=num+1;}printf\n%dnum;}本题答案:
62、回文数是指正读和反读都一样的正整数例如3773等都是回文数求出[1000,9999]以内的回文数是6的倍数的最大回文数 答案main{inta1b1a2b2ihwm;fori=1000;i=9999;i++{a1=i/1000;b1=i/100-a1*10;b2=i/10-a1*100-b1*10;a2=i%10;ifa1==a2b1==b2i%6==0hwm=i;}printf所求的最大回文数为%dhwm;}参考答案
3、编写程序,统计1000~9999之间的所有满足以下条件的四位数的个数该数是一个完全平方数,第
1、2位数字之和为12,第
3、4位数字之积为24 答案#includemath.hmain{intn=0;intabcdem;form=32;m=99;m++{e=m*m;a=e/1000;/*a为千位*/b=e%1000/100;/*b为百位*/c=e%1000%100/10;/*。