资源描述
一、 选择题1结构化程序设计的3种结构是A顺序结构、选择结构、转移结构B分支结构、等价结构、循环结构C多分支结构、赋值结构、等价结构D顺序结构、选择结构、循环结构2以下叙述中正确的是AC语言比其他语言高级BC语言可以不用编译就能被计算机识别执行CC语言以接近英语国家的自然语言和数学语言作为语言的表达形式 DC语言出现的最晚,具有其他语言的一切优点3C语言中用于结构化程序设计的3种基本结构是A顺序结构、选择结构、循环结构 Bif,switch,break Cfor,while,do-whileDif,for,continue4C语言中最简单的数据类型包括A整型、实型、逻辑型B整型、实型、字符型C整型、字符型、逻辑型D字符型、实型、逻辑型若变量已正确定义并赋值,以下符合C语言语法的表达式是Aa:=b+1Ba=b=c+2Cint 18.5%3Da=a+7=c+b下列可用于C语言用户标识符的一组是Avoid, define, WORDBa3_b3, _123,CarCFor, -abc, IF CaseD2a, DO, sizeofC语言中运算对象必须是整型的运算符是A%=B/C=D=若变量a,i已正确定义,且i已正确赋值,合法的语句是Aa= =1B+i;Ca=a+=5;Da=inti;已知int t=0;while t=1.则以下叙述正确的是A循环控制表达式的值为0B循环控制表达式的值为1C循环控制表达式不合法D以上说法都不对10若变量已正确说明为float型,要通过语句scanf;给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是A102233B10.0,22.0,33.0C10.022.033.0D10223311有如下程序:main int x=1,a=0,b=0;switchxcase 0: b+;case 1: a+;case 2: a+;b+;printfa=%d,b=%dn,a,b;该程序的输出结果是Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=212有以下程序mainint i=1,j=1,k=2;if&i+printf;执行后输出结果是A1,1,2B2,2,1C2,2,2D2,2,313有如下程序mainfloat x=2.0,y;ifx0.0y=0.0;else ifx10.0y=1.0/x;else y=1.0;printf%fn,y;该程序的输出结果是A0.000000B0.250000C0.500000D1.00000014有如下程序:mainint n=9;while6n-; printf;该程序的输出结果是A987B876C8765D987615在下列选项中,没有构成死循环的是Aint i=100;whilei=i 0+1;if100break; Bfor;Cint k=10000;dok+;while10000;Dint s=36;while-s;16设int x=1,y=1;表达式的值是A0B1C2D-117若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A函数调用可以作为独立的语句存在 B函数调用可以作为一个函数的实参C函数调用可以出现在表达式中 D函数调用可以作为一个函数的形参18有以下程序float fun return;main int a=2,b=5,c=8; printf%3.0fn,funfun,a-c;程序运行后的输出结果是A编译出错B9C21D9.019若有以下调用语句,则不正确的fun函数的首部是main int a50,n;fun;Avoid funBvoid funCvoid funDvoid fun20fseek函数的正确调用形式是AfseekBfseekCfseekDfseek21若fp是指向某文件的指针,且已读到文件末尾,则函数feof的返回值是AEOFB-1C1DNULL22若有说明语句:char c=72;则变量c A包含1个字符B包含2个字符C包含3个字符D说明不合法,c的值不确定23若有说明 int a34;则a数组元素的非法引用是Aa02*1Ba13Ca4-20Da0424设有以下说明语句struct stuint a;float b;stutype;则下面的叙述不正确的是Astruct是结构体类型的关键字Bstruct stu是用户定义的结构体类型Cstutype是用户定义的结构体类型名Da和b都是结构体成员名25在C语言中,引用数组元素时,其数组下标的数据类型允许是A整型常量B整型表达式C整型常量或整型表达式D任何类型的表达式26若运行时给变量x输入12,则以下程序的运行结果是mainint x,y;scanf;y=x12?x+10:x-12;printf; A0B22C12D1027以下说法正确的是AC语言程序总是从第一个的函数开始执行B在C语言程序中,要调用函数必须在main函数中定义CC语言程序总是从main函数开始执行DC语言程序中的main函数必须放在程序的开始部分28表达式0x130x17的值是A0x04B0x13C0xE8D0x1729有以下程序 mainint a=3, b=4; printf%dn, *; 程序运行后的输出结果是 A12B15C16D2030下列程序执行后的输出结果是void func b0=*a+6; mainint a,b5;a=0; b0=3;func; printf;A6B7C8D931若有下面的程序段:char s=china;char *p; p=s;则下列叙述正确的是As和p完全相同B数组s中的内容和指针变量p中的内容相等Cs数组长度和p所指向的字符串长度相等D*p与s0相等32以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort int i,j,t; fori=0;iforj=i+1;j ifai t=ai; ai=aj; aj=t; main int aa10=1,2,3,4,5,6,7,8,9,10,i; sort; fori=0;iprintf; printf;程序运行后的输出结果是A1,2,3,4,5,6,7,8,9,10,B10,9,8,7,6,5,4,3,2,1,C1,2,3,8,7,6,5,4,9,10,D1,2,10,9,8,7,6,5,4,3,33以下程序的运行结果是struct dateint year,month,day;today;mainprintf%dn,sizeof;A6B8C10D1234若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是Aa,point,*&aB&*a,&a,*pointC*&point,*point,&aD&a,&*point,point35在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A地址传递B单向值传递C由实参传形参,再由形参传实参D传递方式由用户指定36fun while!=0p1+;p2+; 函数的功能是 A将p1所指字符串复制到p2所指内存空间 B将p1所指字符串的地址赋给指针p2 C对p1和p2两个指针所指字符串进行比较 D检查p1和p2两个指针所指字符串中是否有037若执行下述程序时,若从键盘输入6和8时,结果为mainint a,b,s;scanf;s=aifas=b;s*=s;printf;A36B64C48D以上都不对38fscanf函数的正确调用形式是Afscanf;Bfscanf;Cfscanf;Dfscanf;39下列关于C语言数据文件的叙述中正确的是 A文件由ASCII码字符序列组成,C语言只能读写文本文件 B文件由二进制数据序列组成,C语言只能读写二进制文件 C文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件40有以下程序void sswhileif *s=t-a+A;s+;mainchar str1100=abcddfefdbd,c=d;ss; printf;程序运行后的输出结果是AABCDDEFEDBDBabcDDfefDbDCabcAAfefAbADAbcddfefdbd41struct link int data;struct link *next;a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c.则能够把c插入到a和b 之间并形成新的链表的语句组是:Aa.next=c; c.next=b;Bp.next=q; q.next=p.next;Cp-next=&c; q-next=p-next;D.next=q; .next=&b;42在设计程序时,应采纳的原则之一是A不限制goto语句的使用B减少或取消注解行C程序越短越好D程序结构应有助于读者理解43程序设计语言的基本成分是数据成分、运算成分、控制成分和A对象成分B变量成分C语句成分D传输成分44下列不属于软件工程的3个要素的是A工具B过程C方法 D环境45下列叙述中正确的是AC语言编译时不检查语法BC语言的子程序有过程和函数两种CC语言的函数可以嵌套定义 DC语言的函数可以嵌套调用46在C语言中,退格符是AnBtCfDb48以下叙述中正确的是 A构成C程序的基本单位是函数B可以在一个函数中定义另一个函数Cmain函数必须放在其他函数之前D所有被调用的函数一定要在调用之前进行定义49在C程序中,判逻辑值时,用非0表示逻辑值真, 又用0表示逻辑值假. 在求逻辑值时,用A分别表示逻辑表达式值为真和假.A1 0B0 1C非0 非0D1 150在C语言中,运算对象必须是整型数的运算符是A%BC%和D*51字符型数据在机器中是用ASCII码表示的,字符5和7在机器中表示为A10100011和 01110111B01000101和01100011C00110101和00110111D01100101和0110011152若已定义:int a=25,b=14,c=19;以下三目运算符所构成语句的执行后a=25&b-=2&c?printf:printf;程序输出的结果是A*a=25,b=13,c=19B*a=26,b=14,c=19C# a=25,b=13,c=19D# a=26,b=14,c=1953若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*%2/4的值是A2.500000B2.750000C3.500000D0.00000054下列程序段的输出结果是:int a=1234;float b=123.456;double c=12345.54321;printf;A无输出B12,123.5,12345.5C1234,123.5,12345.5D1234,123.4,1234.555若运行以下程序时,从键盘输入 ADescriptor表示回车,则下面程序的运行结果是#include mainchar c;int v0=1,v1=0,v2=0;doswitchc=getcharcase a:case A:case e:case E:case i:case I:case o:case O:case u:case U:v1+=1;default:v0+=1;v2+=1; whilec!=n; printfv0=%d,v1=%d,v2=%dn,v0,v1,v2;Av0=7,v1=4,v2=7Bv0=8,v1=4,v2=8Cv0=11,v1=4,v2=11Dv0=13,v1=4,v2=1256设有以下程序段int x=0,s=0;while!x!=0s+=+x;printf%d,s;则A运行程序段后输出0B运行程序段后输出1C程序段中的控制表达式是非法的D程序段执行无限次57执行下面的程序段后,变量k中的值为int k=3, s2;s0=k; k=s1*10;A不定值B33C30D1058以下程序段的描述,正确的是x=-1;dox=x*x;while!x;A是死循环 B循环执行两次C循环执行一次D有语法错误59以下有错误的是Amainint x,y,z;x=0;y=x-1;z=x+y;Bmain int x,y,z;x=0,y=x+1;z=x+y;Cmain int x;intint y;x=0,y=x+1;z=x+y;Dmain int x,y,z;x=0;y=x+1;z=x+y,60有如下程序段int a=14,b=15,x;char c=A;x=&c;执行该程序段后,x的值为AtureBfalseC0D161下列程序执行后的输出结果是void func1;void func2;char st=hello,friend!;main int i=0;func1;printf;void func1printf;ifii+=2;func2;void func2 printf;ifii+=2;func1;AhelloBhelChloDhlm62以下函数返回数组a中最大值所在的下标值funint i,j=0,p;p=j;fori=j;iap;returnp;在下划线处应填入的内容是Ai=pBap=aiCp=jDp=i63下面说明不正确的是Achar a10=china;Bchar a10,*p=a;p=chinaCchar *a;a=china;Dchar a10,*p;p=a=china64以下程序的输出结果是#include void prtprintf%d,%d,%dn,+*x,+*y,*;mainint a=10,b=40,c=20;prt;prt;A11,42,31 12,22,41B11,41,20 12,42,20C11,21,40 11,21,21D11,41,21 12,42,2265若有函数内部说明:int a34;则数组a中各元素A可在程序的运行阶段得到初值0B可在程序的编译阶段得到初值0C不能得到确定的初值D可在程序的编译或运行阶段得到初值066有如下程序main char s=ABCD,*p; forp=s+1;p printf;该程序的输出结果是AABCDBCDCDDBABCDCBCDDBCDCDD67下列程序执行后的输出结果是main int a33,*p,i;p=&a00;fori=1; ipi=i+1;printf;A3B6C9D随机数68定义如下变量和数组:int k;int a33=9,8,7,6,5,4,3,2,1;则下面语句的输出结果是fork=0;k3;k+printf%d,akk;A7 5 3B9 5 1C9 6 3D7 4 169下列程序执行后的输出结果是main char arr24;strcpyarr,you; strcpyarr1,me;arr03=&;printf%sn,arr;Ayou&meByouCmeDerr70有以下函数char funchar *preturn p;该函数的返回值是A无确切的值B形参p中存放的地址值 C一个临时存储单元的地址D形参p自身的地址值71以下正确的说法是A定义函数时,形参的类型说明可以放在函数体内Breturn后边的值不能为表达式C如果函数值的类型与返回值类型不一致,以函数值类型为准D如果形参与实参类型不一致,以实参类型为准72有以下程序int fint n ifn=1return 1;else return fn-1+1;main int i,j=0;fori=1;i3;i+j+=fi;printf%dn,j;程序运行后的输出结果是A4B3C2D173设有如下定义:struct sk int a;float b;data;int *p;若要使P指向data中的a域,正确的赋值语句是Ap=&a;Bp=data.a;Cp=&data.a;D*p=data.a;74以下对结构体类型变量的定义中,不正确的是Atypedef struct aa int n;float m;AA;AA tdl;B#define AA struct aaAA int n;float m;tdl;Cstruct int n;float m; aa;struct aa tdl;Dstruct int n;float m;tdl;75若说明int *p,n;则通过语句scanf能够正确读入数据的程序段是Ap=&n;scanf%d,&p;Bp=&n;scanf%d,*p;Cscanf%d,n;Dp=&n;scanf%d,p;76在下述程序中,判断ij共执行的次数是mainint i=0, j=10, k=2, s=0;for ;i+=k;ifijprintf%d,s;break;s+=i;A4B7C5D677以下4个选项中,不能看做一条语句的是A;Ba=5,b=2.5,c=3.6;Cifa5;Difb!=5x=2;y=6;78在C语言中,变量的隐含存储类别是AautoBstaticCexternD无存储类别79若有以下程序#include void f;main void f;f;void f printf; 则以下叙述中不正确的是A若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D函数f无返回值,所以可用void将其类型定义为无返回值型80若有下面的说明和定义struct test int ml; char m2; float m3;union uu char ul5; int u22; ua; myaa;则Turbo C 中,sizeofstruct test 的值是A12B16C14D981以下程序的输出是#includestruct st int x; int *y; *p;int dt4= 10,20,30,40 ;struct st aa4= 50,&dt0,60,&dt0,60,&dt0,60,&dt0;main p=aa; printf%dn,+x; getch;A10B11C51D6082若有运算符,sizeof,&=,则它们按优先级由高至低的正确排列次序是Asizeof,&=,Bsizeof,&=C,sizeof,&=D,&=,sizeof83函数fseekpf, OL,SEEK_END中的SEEK_END代表的起始点是A文件开始B文件末尾C文件当前位置D以上都不对84有以下程序#include main FILE *fp; int i=20,j=30,k,n;fp=fopend1.dat,w;fprintffp,%dn,i;fprintffp,%dn,j;fclosefp;fp=fopend1.dat,r;fscanffp,%d%d,&k,&n; printf%d %dn,k,n;fclosefp;程序运行后的输出结果是A20 30B20 50C30 50D30 2085结构化程序所规定的三种最基本控制结构是A输入、处理、输出B树形、网形、环形C顺序、选择、循环D主程序、子程序、函数86一个C语言程序是由A一个主程序和若干子程序组成B函数组成C若干过程组成D若干子程序组成87请选出可用作C语言用户标识符的是Avoid,define,WORDBa3_b3,_123,IFCFOR,-abc,CaseD2a,Do,Sizeof88下列各数据类型不属于构造类型的是A枚举型B共用型C结构型D数组型89在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是Aa=20000+20000;Ba=4000*10;Ca=30000+10000;Da=4000L*10L90以下不正确的叙述是A在C程序中,逗号运算符的优先级最低B在C程序中,APH和aph是两个不同的变量C若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值91sizeoffloat是A一个双精度型表达式B一个整型表达式C一种函数调用D一个不合法的表达式92若x,i,j和k都是int型变量,则计算表达式x=i=4,j=16,k=32后,x的值为A4B16C32D5293下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空.#include main int i=0,j,k;doi+;k=316-13*i;while B ;j=k/11; printf316=13*%d+11*%d,i,j;Ak/11Bk%11Ck/11=0Dk%11=094设有定义:int n=0,*p=&n,*q=&p,则下列选项中正确的赋值语句是Ap=1;B*q=2;Cq=p;D*p=5;95下面程序的运行结果是#include main int y=10;doy-;while-y;printf%dn,y-; A-1B1C8D096下面程序的输出结果是main int a10=1,2,3,4,5,6,7,8,9,10,*p=a;printf%dn,*p+2;A3B4C1D297设有int x=11;则表达式x+*1/3的值是A3B4C11D1298请选出以下语句的输出结果printf%dn,strlent065xffn;A5B14C8D输出项不合法,无正常输出99下列程序的输出结果是main double d=3.2; int x,y;x=1.2; y=x+3.8/5.0;printf%dn, d*y;A3B3.2C0D3.07100下列程序的输出结果是int b=2;int funcint *a b += *a; returnb;main int a=2, res=2;res += func&a;printf%dn,res;A4B6C8D10To 328二、 填空题1设y是int型,请写出y为奇数的关系表达式 =1或!=0 .2设int a=5,b=6,表达式?+a:-b的值是 7 .3下列程序的输出结果是 Hello .maimchar b = Hello you;b5 = 0;printf;4当调用函数时,实参是一个数组名,则向函数传递的是 数组的首地址 .5用高级语言编写的程序称为 源程序 ,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行.6以下程序的输出结果是 16 .mainint a=0;a+=;printf;7该程序运行的结果是 M=7 .#include #define M 100void fun int i,j=0; fori=1;i if aj+ = i; *n=j;main int aaM,n,k; fun; fork=0;k if =0 printf; else printf; printf;8下列函数的功能是:求出字符串ss中包含字符c的个数,并返回此值.请填入合适的表达式,使函数能正常运行int fun int i=0; for ifi+; return i;9设有如下宏定义#define MYSWAP z=x;x=y;y=z;以下程序段通过宏调用实现变量a,b内容交换,请填空.float a=5,b=16,c;MYSWAP;10以下程序的运行结果是 9 .define MAX a,bab?a:b+1main int i=6,j=8,k;printf %dn,MAXi,j;11以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束.请填空.mainfloat x,amax,amin;scanf %f,&x;amax=x;amin=x;while x0 if xamaxamax=x;else if xaminamin=x; else scanf%f,&x;printf n amax=%fn amin=%fn,amax,amin;12在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是 rewind或fseek .13在计算机中,字符的比较是对它们的 ASCII码 进行比较.14在内存中,存储字符x要占用1个字节,存储字符串X要占用 2 个字节.15下列程序的输出结果是16.00,请填空.mainint a=9, b=2;float x= 6.6 , y=1.1,z;z=a/2+b*x/y+1/2;printf%5.2fn, z ; 16设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部 void fun .要求形参名为b.maindouble s1022;int n; funs;17下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空.mainint i, x, y=1;scanf%d, &x;fori=2; i=x/2; i+if y=0; break;printf%dn, y;18下面程序的功能是将一个字符串str的内容颠倒过来,请填空.#includemain int i,j, k ;char str=1234567;fori=0,j=strlenstr -1 ;ij;i+,j-k=stri;stri=strj;strj=k;printf%sn,str;19以下程序可把输入的十进制数以十六进制数的形式输出,请填空.main char b17=0123456789ABCDEF; int c64,d,i=0,base=16; long n; printf;scanf; do ci= n%base ; i+; n=n/base;while; printf; for=0;-i d=ci; printf; printf;20若给fun函数的形参s传送字符串:6354abcc,则函数的返回值是 6354 . #include long funlong n;int sign;for;isspace;s+;sign=?-1:1;ifs+;forn=0;isdigit;s+n=10*n+;return sign*n;21设有定义struct int a; float b; char c; abc, *p_abc=&abc;,则对结构体成员a的引用方法可以是abc.a和p_abc - a.22下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空.#include main int i; char s21,*p;for i=0;i20;i+si=getchar ;si= 0 ;p = s while *pputchar *p+ ;23以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空.#include main FILE *fp;char a4=1234,b6=abcedf;iffp=fopen lett.dat ,wb=NULLexit0;fwritea,sizeofchar,4,fp;fwriteb, 6*sizeof ,1,fp;fclosefp;24在C语言中,一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为 8 .25以下程序输出的结果是 0 .main int a=5,b=4,c=3,d;d=abc;printf%dn,d;26以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,然后返回这些除数的个数.例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15.请按题意,完成填空.试题程序:int fun int x, int pp int i,j=0;fori=1;i ifx%i=0ppj+=i;return j ;27mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回.请填空.int mystrlenchar *str int i;fori=0; *或stri != 0;i+;returni;28以下程序的输出结果为 9 .#define JFTx*xmain int a, k=3;a=+JFT;printf;29以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整.struct node int info;struct node * link;30设有以下结构体类型:struct st char name8;int num;float s4;student50;并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:fwritestudent, sizeof*50 ,1,fp;31以下程序段的输出结果是 28 .mainint a=2,b3,c=4;a*=16+b+-+c;printf%d,a;32若变量n中的值为24,则print函数共输出 5 行,最后一行有 3 个数.void print int i;for i=1; iprintf ;if! printf ;printf ;33调用C语标准库函数时要求用 #include 命令.34stract函数的作用是 连接两个字符数组中的字符 .35C语言程序的注释可以出现在程序中的任何地方,一个注释以 /* 作为开始和 */ 结束.36设二进制数A是00101101,若想通过异或运算AB使A的高4位取反,低4位不变,则二进制数B应是 11110000 .37若已知a=10,b=20,则表达式!ab的值为 1 .38设i,j,k均为int型变量,则执行完下面的for语句后,k的值为 10 .fori=0, j=10; i=j; i+, j-k=i+j;39下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回.数组元素中的值已在主函数中赋予.主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标.请填空.#include#includevoid fun int i;*max=a0;*d=0;fori=0; iif*max*max=ai;*d=i;main int i, x20, max, index, n=10;randomize;fori=0;ixi=rand%50; printf;printf;fun;printf;40以下程序的输出结果是 2 4 6 .void fun static int a=0;a+=2; printf%d,a;main int cc;forcc=1;cc4;cc+fun;printfn;42以下程序的输出结果是 7 .#define MAX?:main int a=5,b=2,c=3,d=3,t;t=MAX*10;printf;43用以下语句调用库函数malloc,使字符指针st指向具有11个字
展开阅读全文