《大学C语言理论考试.docx》由会员分享,可在线阅读,更多相关《大学C语言理论考试.docx(88页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言概述(3*1.5)1、C语言程序的基本单位是().(3分) A、 Bx C Cx 咚、AA、函数B、过程C、子程序D、字例程2、下列各选项中,合法的c语言关键字是()。(3分)、_ A、 C B、( C、。口、*DA、 integexB、sinC、 stringD、 void3、下列选项中,是C语言提供的合法的关键字的是()(3分)飞人、匕B、C、 D,As swicthB、 cherC、 defaultD、 Case4、C语言的程序一行写不下时,应该()。(3分)匕 A、B、 OC、/ D、AA、用回车符换行B、在任意一个空格处换行C、甲分号拗行D、用逗号投仃5、以下选项中正确的整型常
2、量是()。(3分)QA、 B、,6c、:D、BA、34.1B、-80C、2,000D、1236、下列不合法的十六进制数是()(3分) A、0B、ODsAA、 oxffB、 OXcdeC、 OxllD、 0x237、在c语言中,下列合法的字符常量是()(3分)A、 OB. OC、D、BA、039B、x76C、 abD、o8、以下选项中合法的用户标识符是()(3分)。A、二 B、 OC、D、DA、intB、a#C、 5roemD、 .2439、()是构成c语言程序的基本单位(3分)。A、B、C、D、AA、函数B、变量C、子程序D、语句10、一个C语后程序总是从()开始执行(3分)A、。B、二 C、
3、( D、BA、主过程B、主函数 C、子程序 D、主程序11、以下叙述不正确的是()(3分)C A、 j-strlen(a)5printfL %d,%dn”, i, j)J )9 9 8 8 A -?9,程序运行后的输出结果是()。(3分)A、 B、 C、 D、4、以下程庠的输出结果是()#include#i include mainO (char str12-f e, t*t, i,K g J printf f%dn”, strlen,(str)!(3S A xB %CID、A、6 B、7C、11 D、125、对两个数组雨b进行如下初始化:char a= ABCDEF”:char b=, A/
4、F ,C, D,E, F;则以下叙述正确的是()。6分)A、 1B、C- C:%A数组启数组b完全相同B、数组均数组b长度相同C数组西数组b中都存放字符串数组a比敕组b长度长6、有下面的程序段:char a3,b= China”;printf (w %s,)I则()。(3分)A、 B C D A、运行后将输出ChinaB、运行后将输出chC、运行后将输出CMD、编隹出错7、判断字符串“是否大于字符串s2,应当使用()。(3分)A、if(sls2)B、if (str cap (si, s2)C、if(strcmp(s2 C)6)D、if(strcmp(sl s2)0)8、下面程序的运行结果是()
5、。/include .mainO(char ch7=w 12ab56M );int i, s=O;for G=OJ chi=/0, MchUJr I i+=2) s=10*s+chi-/ Cf ;printf (w %dn”,s)l (3分)A、 a B C、A、1B、1256C、12ab56D、12569、以下程序的输出结果是main() char a10=r f ,2,3*,4,5,6,7,8,9,0,p;int i Ii=8;p=a+i Iprintfp-3)!”3分)|nA、B、 I C I C DB、 6789C、6 Dx 78910、下列程序执行后的输出结果是ih&in() cha
6、r arr24;strcpy (arr,you); strcpy (arrl,me);arr03r ;printf (融n, arr);M3分)*A、B、 Cx D、Ax you&neB、youC、meS x err 11、设有数组定义:ch array =China;则数组ray斫占的空间为G分)二 A、B、匚 D、A、 4个字节B、5个字节C、8个字节D、7个字节12、当执行下面的程序时,如果输入ABC,则输出结果是include *stdio, h*finclude string.nainO(char =10=l,2,3,4,5:gets (ss); streat (ss,“6789);
7、 printf C*%5n ss).G分) AxB C % D、A、 ABC678gB、ABC67C、12345ABe6D、 ABC45678913、以下程序的输出结果是 nain()char h34=n23*456*,*78* Sint i JFor(i=0? i3? i+) printfC%!% chi)5M3分)A.、B 8 C xD -A、123456780B、 123456780C、12345678D、14714、给出以下定义::har x=*abcdefg*78*!? int i;for (i=OJ i14716、以下程序运行后,输出结果是main() char ch25=693S
8、 825),*p2;int i f j s=0;for (i=0;i2;i+) pi=chi;for (i=0;i j s=0;for(i=0;i2;i+) pi=chi;for (i=0;i i+)or G=0;pijX0&A: j+=2)iMOs+ptiltjHO,;printfs);N3分)A、 C)B、: C5、Ax 6385B、22C、33 D、69382517、下列程序执行后的输出结果是mainO char arr24;strcpy(arr0?you);strcpy(arr 1,me*):arr03=&.printf (*%s n, arr);N3分)A、 B、抄C、皿、A x y
9、ou&me B、youC x me D、err18、以下程序运行后,输出结果是nain()(char ch25=*693*825*p2;int it jt s=0;for(i=0;i2;i+) pi=chi;Eor(i=0;i=0虢 pijrintf r%dn* s):M3分)o k IB、 C%A、6385B、22C、33 D、69382519、以下程序运行后,输出结果是main () char s=*abcde*Js+=2;printf (*%ldn* s) IN3分)【A、B、|: C、 DxB、字符c的ASCH码值C、字符c的地址D、出错20、下面程序的运行结果是mainO char
10、ch7=*65= O Mchi9; i+=2)s=10*s+chi-0*;printf (*%dn* s);N3分)0A、 B、 C % D、A、12ba56B、6521C6D、62函数(5*1.5)1、请读程序:f (int b, int n)(int i, r;r=l;for(i=0;iprintfCd n”, fun(a+fun(d);)(吩)OA、 OB、: Cx OD、As 26Bx 177C、277D、163、C语言中,若函数类型未显式说明,则隐含类型为()(吩).A、B、 OCx : D.Ax intB、 charC、 voidD、 double4、C程序中,若函数调用采用传值方
11、式,则()(吩). A、6B、 pCs ( D、AA、实参和虚参各自占有钞单元B、实参和虚参共享存储单元C、由用户指定D、由计算机随机确定5、返回值为void的函数,其含义是一.(吩)oA、唇 B、 OC、 t:D、AA、调用函数之后,被调用的函数没有返回值B、调用函数之后,被调用的函数不返回C、调用函数之后,被调用的函数的返回值为任意的类型D、以上三种说法都是错误的6、下列关于存储类型说法正确的是()(吩)Oa、 C,B、.C、 QDxA、register型变量的个数不限B、static型变量并不长期占用内存,其存储空间可被覆盖C、ext er趣变量一段用手在程序的多个绘译单叔而德递数据D、
12、auto型变量长期有效7、C语言规定,函数返回值的类型是由(吩). A、A、return语句巾的表达式类型所决定B、调用该函数时的主调函数类型所决定C、调用该函数时系统临时决定D、在定义该函数时所指定的函数类型所决定8、若用数组名作为函数的实参,传递给形参的是(吩)QA、 CB、 OC、 QD、AA、数据的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数9、若使用一维数组名作函数实参,则以下正确的说法是(吩) Ax CB、0 CAA、必须在主调函数中说明此数组的大小B、实参数组类型与形参数组类型可以不匹配C、在被调用函数申,不需要考虑形参数组的大小D、实参数组名与形参数组名
13、必须一致10、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(3分)CA、 OB、 CC、 DsBA、地址传递B、单向值传递C、由实参传给形参,再由形参传回实参D、传递方式由用户指定11、在C语言中,形参的缺省存储类是(吩)A、 OB C)C、。D、A、 autoB、 registerC、 staticD、 extern12.有如下程序.int rune (int a, int b) return (a+b);mainO int x=2, y=5, z=8, r;r=func (func (x, y), z);printf(/z%dnx, r);该程序的输出的结果是(3分)
14、上 A、 OB、 OCx D、DA、12B、13C、14D、1513、在C语言中,函数的隐含存储类别是(吩) A、 C B、 CCx (- D、cA、 autoB、 staticC、 externD、无存储类别14、以下程序的输出结果是()。#includevoid fun(float$a, float *b)(float W;$a=*a+*a:w=*a:*a=*b:*b=W:)mainO(float X=2.0, Y=3.0;float *px=&x,*PY=&y;fun(px, PY)?printf(%2.(3分)CAx 。B、 CCx C D15、下列程序段的输出结果是()。ffincl
15、udevoid fun(int *x, int *Y)(printf (%d%d”*Y);*X=3j *Y=4?mainOint X=l, Y=2;fun(&y,&x);prinff(w %d%d”, x Y);(吩) A、 B、 Cx D、鸿A、2143B.1212Cx 2121D、 213416.下面程序的输出结果是()ottincludemainOint a=1,2,3,4,5,6,7,8,9,0,*p;P=aiprintf(?,%dn”,*P+9) i)(3分) A、 J BpC.D、cA、0B、1C、1017、若定义i int a=511,*b=&a;,则printf(%dn,*b)
16、i 的输出结果为()(3分)&: B、 ,C、 oD、JIHHEA、无确定值B、a的地址C、512D、51118.以I、相予的输出结果是(/include/includemainOchar *P= abcdeOfghjikO?printf(%dn, strlen(P) j(3分) As 艮 B、C、 OD.A、12B、15C、6D、519、设有以下语句,贝M )不是对a数组元素的正确引用,其中0i10。 int a10=0,1,2,3,4,5,6,7,8,9,*P=a;(3分)OA、f B、 OCx D、A、aP-aB、*(& ai)Cx PiD、*(*(a+i)20.请选出以下程序的输出结果
17、().includemainO int a=l,2,3,4, i;int X=0;for(i=0s iD、5A、可以把defines和if定义为用户标识符B、可以把define定义为用户标识符,但不能把i淀义为用户标识符C、可以把i淀义为用户标识符,但不能把define定义为用户标识符D、define和i嘟不能定义为用户标识符3、以下程序的输出结果是#define f(x) x*xmain() int a=6, b=2, c;c=f(a)/ f(b);printfC/%d n”, c) j)(吩)A、 B、。C、 D、A、9B、6Cx 36D、184、请读程序:# de fine ADD(x)
18、 x+xmainO(int nrl, n=2, k=3;int sum=ADD(m+n)*k;printsum);)上面程序的运行结果是(3分)A、SUITF9B、 sutofIOC、 sum=12D、 sunP185、以下程序的运行结果是#define MIN(x, y)(x)B、 OC、 OD、A、49.5B、9.5Cx 22.0D、45.010、下列程序执行后的输出结果是ttdefine MA(x) x*(x-l)main。 int a=l, b=2,print f(*%d n*, IA(l+a+b);)(3分)QA、B、6;Cs D、As 6B、8C10D、1211、以下叙述中正确的是
19、()。船用粒小山加包含的头文件的后缀不可以是a”B)若一些源程序中包含某个头文件,当该头文件有借时,只需时该头文件进行修改,包含此头文件的所有源程序不必重新进行编译、c)宏命令行可以看做是一行c语句D)C编译中的预处理是在编译之前进行的(3分) a、督 B、0C、 oD、A、AB、BC、CD、D12、下面是时宏定义的描述,不正确的是()。A)宏不存在类型问题,宏名无类型,它的参数也无类型B)宏替换不占用运行时间C)宏替换时先求出实参表达式的值,然后代入形参运算求值D)其实,宏替换只不过是字符替代而已(3分)S、 B OC、 OD、A、AB、BC、CD、D1?、以下程序的输出结果为()。ttin
20、cludettdefine SQR(x)x*x .mainO(int a, k=3;a=+SQR(k+l)jprintf(%dn, a);(吩)懿 A、。C、 D、A、AB、BCx CD、D 15、下列程序执行后的输出结果是()。ttdefine MA(x)X*(X-l)#includemainOint a:1, b=2j printf %dn, MA(l+a+b);(3分)T、 Ax B、 OC、 CD、A、6B、8C、10D、1216、有如下程序,#define N 2ttdefine M N+lttdefine NUM 2*M+1mainO int iifor(i=l: iD、A、5B、
21、6C、7D、817、程序中头文件typel. h的内容是:ttdefine N 5#define Ml N*3程序如下:#include typel. h#define M2 N*2main。 int i ;i=M1+H2; printf(%dn,i);)程序编译后运行的输出结果是()。(3分)(A、。B、 OCx ODxA、10B、20C、25Dx 3018、以下正确的描述为()oA)每个C语言程序必须在开头使用预处理命令# includeB)预处理命令必须位于C源程序的首部C)在C语言中预处理命令都以“旷开头D)C语言的预处理命令只能实现宏定义和条件编译的功能(3分)窿A、曹心、C、 gD
22、xA、AB、BCx CD、DL9、语句 typedef long cl ass 的作用是()。(3分)C1 Ax C B、 OC、。D、DA、建立了一种新的数据类型B、定义了一个整型变量C、定义了一个长整型变量D、定义了一个新的数据类型标识符20、若有以下宏定义,define N 2define Y(n)(N+l)*n)则执行语句z=2*(N+Y(5);后的结果是()。(3分)OA、 QB、C、 ODx百A、语句有错误U、 z=34V、 z=70D、z无定值指针(1*1.5)1、下列程序的输出结果是int b=2;int func (int *a) b+=*a; return(b);mainO
23、 int a=2, res=2;res += func(&a);print f(x/%d nz res);(吩).A、B、 OC、E,D、bA、4B、6C、8D、102、若已定义:int a=0,1,2,3,4,5,6,7,8,9,*p=a, i;其中0i piW、 a103、下列程序的运行结果是void fun(int *a, int *b) int *k;k= a,; b=k,)mainO int a=3, b=6,*x=&a,*y=&b;fun(x, y);print f(z/%d %d a, b);(吩)OA、B、0C、 CMBA、63B、36C、编译出错Dx 004、不合法的main
24、函数命令行参数表示形式是(吩)QA、 OB、0C、0D、A、main(int a, char *cJ)B、main(int arc, char *arv)Cx main(int argc, char *argv)D、inain(int argv, char *argc)5、若有说明:int i, j=2,则能完成;j赋值功能的语句是(吩)眼 A、B、 OCx QD、6A、 i=*p;B、 p*=*&j;C、 i=&j;D、 i=*p;6、以下定义语句中,错误的是(吩)OA、 OB、 QC、D、A、int a=1,2;B、char *a3;C、 char s10二test;D、 int n=5,
25、 an;7、已有定义int k=2;int *ptrl,*ptr2;且prtl和ptr2均已指向变量k,下面不能正确执行的赋值Ga、9 b. ocd、bA、 k=*ptrl+*ptr2;B、 ptr2=k;C、 ptrl=ptr2;D、 k=*ptrl*(*ptr2);8、若有语句int *poin3 a=4;和point二&a;下面均代表地址的一组选项是(吩)6A、 QB、 OCx ”、As a, point,*&aB、&*a,&a,*pointC、*&point,*point,&aD、&a,&*point, point9、若有说明,int *pl,*p2,np5,n,以下均是正确赋值语句的
26、选项是(吩)_- A、9C、 i D、Ax pl=&ro;p2=&plB、 pl=&ro;p2=&n;*pl=*p2;C、 pl=&ro;p2=pl;Ds pl=&m;*p2=*pl;10、下面能正确进行字符串赋值操作的是(吩)喳A、B、 oc,d、A、char s5=ABCDE;B、char s5=rA,B,CVD,E;C、 char *s;s=ABCDE”;D、char *s; scanf s);11、者有|泗叼强抒段,char s=china”; char *p, p=s;则下列叙述正确的是(3分)A、R;B、/C、.D、dA、s和p完全相同B、数组s中的内容和指针变量p中的内容相等C、
27、s数组长度和p所指向的字符串长度相等D、*p与soj相等12、若有的明语句,char a=It is mine”;char *p=It is mine;则以下不正确的叙述是(3分)A、C、D、DA、a+1表不的是字符t的地址B、p指向另外的字符串时,字符串的长度不受限制C、p变量巾存放的地址值可以改变D、a中只能存放10个字符 Q,( I /-U CZ3 E313、以下程序的输出结果是 main() char *s=*12134211*j int v4=0,0,0,0, k, iifor (k=0; sk)k+) switch(sk) case 91 x i=0scase 2: i=l;cas
28、e 3,: i=2;case 4: i=3j)vi+;for(k=0; k4678Ds 888814、以下程序的输出结果是tnain() char *pL *p2, str 50=/ABCDEFG/;pl =abed; p2=z/efghz/;strcpy(str+l, p2+l); strcpy(str+3, pl+3);printf(/z%s/?, str);(3分)OA OB、 QC、 D、As AfghdEFGB、 AbfhdC、 AfghdD、 Afgd15、若有以下定义和语句,double r=99,*p=&r;*p=n则以下正确的叙述是(吩)OA、0B、 AC、 ODsDA、以下两处的*p含义相同,都说明给指针变量赋值B、在double r=99,*p=&r;中,把r的地址赋值给了p所指的存储单元C、语句*p=n 把变量r的值赋给指针变量pD、语句*p=r;”取变量r的值放回r中16、若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是int t33,*pt (3, k;for (k=0) k3i k+) pt k=&t k0 i (3分)H As CBC、6d、A、t 20B、tC、tlD. t2l17、以下程序的输出结果是main() char *a=abcdefghit int k;