C语言理论试题库

上传人:阳*** 文档编号:46616414 上传时间:2021-12-14 格式:DOC 页数:86 大小:262KB
返回 下载 相关 举报
C语言理论试题库_第1页
第1页 / 共86页
C语言理论试题库_第2页
第2页 / 共86页
C语言理论试题库_第3页
第3页 / 共86页
点击查看更多>>
资源描述
语言程序设计理论试题库选择题100例选择题1.以下选项中属于C语言的数据类型是()A、复数型B、逻辑型C、双精度型D、集合型2.在C语言中,不正确的int 类型的常数是()A、32768B、0 C、037D、0xAF3.设有说明语句:char a= 72;则变量a ()A、包含1个字符B、包含2个字符 C、包含3个字符 D、说明不合法4.以下所列的C语言常量中,错误的是()A、0xFF B、1.2e0.5 C、2L D、725.以下选项中合法的字符常量是()A、BB、010C、-268 D、D6.在C语言中,合法的长整型常数是()A、0LB、4962710C、324562&D、216D7.下列标识符中,合法的标识符是( ) A、-abc1B、1abcC、_abc1D、for8.C语言程序的基本单位是()A、语句B、 程序行C、函数D、字符9.以下叙述正确的是( )A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义不用户标识符 D、define和if都不能定义为用户标识符10以下叙述正确的是( )A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义为用户标识符 D、define和if都不能定义为用户标识符11有如下程序long fib(int n) if(n2) return(fib(n-1)+fib(n-2);else return(2);main( )printf(%dn,fib(3);该程序的输出结果是()A、2B、 4C、 6D、8 12在C语言中,函数的隐含存储类别是()A、 autoB、 staticC、 externD、 无存储类别13以下所列的各函数首部中,正确的是()A、void play(var:Integer,var b:Integer)B、 void play(int a,b)C、 void play(int a,int b)D、 Sub play(a as integer,b as integer)14在C程序中,可把整型数以二进制形式存放到文件中的函数是()A、 fprintf函数B、 fread函数C、fwrite函数D、 fputc函数15若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是( )A、 EOFB、 0C、 非零值D、 NULL16若要打开A盘上的user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()A、 fopen(A:userabc.txt,r)B、fopen(A:userabc.txt,r+)C、fopen(A:userabc.txt,rb)D、fopen(A:userabc.txt,w)17以下程序的输出结果是()A、 0B、 29C、 31D、 无定值fun(int x,int y,int z) z=x*x+y*y;main( ) int a=31;fun(5,2,a);printf(%d,a);18当调用函数时,实参是一个数组名,则向函数传送的是()A、数组的长度 B、数组的首地址C、数组每一个元素的地址 D、数组每个元素中的值19以下只有在使用时才为该类型变量分配内存的存储类说明是()A、auto和staticB、auto和registerC、register和static D、extern和register20以下程序的输出结果是()A、1B、2C、3D、4long fun( int n) long s;if(n= =1 | n= =2)s=2;else s=n-fun(n-1)return s;main( ) printf(%ldn,fun(3); 21以下程序的输出结果是()main( ) int num= 0;while(num=2) num+; printf(%dn,num);A、 1B、1C、1D、l2 2 23 3422以下程序的输出结果是()int f( ) static int i=0; int s=1; s+=i;i+; return s; main( )int i,a=0; for(i=0;i5;i+) a+=f(); printf(%dn,a); A、20B、24C、25D、1523以下程序的输出结果是()f(int b ,int m,int n) int i,s=0; for(i=m;in;i=i+2) s=s+bi; return s; main( ) int x,a =1,2,3,4,5,6,7,8,9; x=f(a,3,7); printf(%dn,x); A、10B、18C、8D、1524下列程序执行后的输出结果是()A、G B、H C、I D、Jmain( ) int x=f; printf(%c n,A+(x-a+1); 25下列程序执行后的输出结果是()A、-32767 B、FFFE C、-1 D、-32768main( ) int x=0xFFFF; printf(%d n,x-); 26语句printf(abrehiyboun);的输出结果是( )A、abrehiybou B、abrehiybouC、rehiyou D、abrehiybou(说明:b是退格符)27有如下程序main( ) int y=3,x=3,z=1; printf(%d %dn,(+x,y+),z+2); 运行该程序的输出结果是( )A、3 4B、4 2C、4 3D、3 328若变量已正确说明为float类型,要通过语句scanf(%f %f %f ,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:()A、102233B、10.0,22.0,33.0C、10.022.033.0 D、1022 3329x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )A、INPUT x、y、z;B、scanf(%d%d%d,&x,&y,&z);C、scanf(%d%d%d,x,y,z);D、read(%d%d%d,&x,&y,&z);30以下程序段的输出结果是( )int a=1234; printf(%2dn,a);A、12B、34C、1234D、提示出错、无结果31设int b=2;表达式(b2)/(b1)的值是( )A、0B、2C、4D、832有如下定义( )struct personchar name9; int age;struct person class10= Johu,17,Paul,19,Mary,18,Adam,16;根据上述定义,能输出字母M的语句是( )A、 prinft(%cn,class3.mane);B、 pfintf(%cn,class3.name1);C、 prinft(%cn,class2.name1);D、 printf(%cn,class2.name0);33设有以下说明语句struct ex int x;float y;char z;example;则下面的叙述中不正确的是( )A、struct是结构体类型的关键字 B、example是结构体类型名C、x,y,z都是结构体成员名 D、struct ex是结构体类型名34以下程序的输出是( )A、10B、11C、51D、60struct 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,+(p-x);35以下程序的输出结果是( )main( ) char x=040; printf(%on,xb?(ac?a:c):(b); A、5B、4C、6D、不确定38.设x,y,z和k都是int 型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值( )A、4B、16C、32D、5239当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是()A、c=b=a;B、(a=c)|(b=c);C、(a=c)&(b=c);D、a=c=b;40能正确表示a和b同时为正或同时为负的逻辑表达式是()A、(a=0|b=0)&(a0|b=0&b=0)&(a0&b0)&(a+b041语句:printf(%d,(a=2)&(b=-2);的输出结果是()A、无输出B、结果不确定C、-1D、142设有 int x=11; 则表达式 (x+ * 1/3) 的值是()A、3B、 4C、 11D、 1243设 int x=1, y=1; 表达式(!x|y-)的值是()A、0 B、 1 C、 2D、 -144C语言中运算对象必须是整型的运算符是()A、%= B、/ C、= D、=45若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()A、1 B、2 C、2.0 D、2.5 46若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是()A、0 B、0.5 C、1D、247能正确表示逻辑关系:“a10或a0”的C语言表达式是()A、a=10 or a=0|a=10 &a=10a=048.下程序的输出结果是()A、-1 1B、0 1C、1 0D、0 0main( ) int a= -1,b=1,k;if(+a0)& ! (b- =0) printf(%d %dn,a,b);elseprintf(%d %dn,b,a); 49.若有定义: float w;int a,b;则合法的switch语句是()A、switch(w) B、switch(a) case 1.0:printf(*n); case 1printf(*n);case 2.0:printf(*n); case 2printf(*n); C、switch(b) D、switch(a+b) case 1:printf(*n); case 1:printf(*n);default:printf(n); case 2:printf(*n);case 1+2:printf(*n); default:printf(n); 50.如下程序 main( ) int x=1,a=0,b=0; switch(x) case 0:b+;case 1:a+;case 2:a+;b+;printf(a=%d,b=%dn,a,b);该程序的输出结果是()A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=251.有如下程序main( ) float x=2.0,y;if(x0.0)y=0.0;else if(x10.0)y=1.0/x;elsey=1.0;printf(%fn,y);该程序的输出结果是( )A、0.000000B、0.250000C、0.500000D、1.000000 52.有如下程序main( ) int a=2,b=-1,c=2;if(ab)if(b0)c=0;else c+;printf(%dn,c); 该程序的输出结果是( )53.若执行以下程序时从键盘上输入9,则输出结果是()A、11B、10C、9D、8main( ) int n;scanf(%d,&n);if(n+10) printf(%dn,n);else printf(%dn,n-);54.阅读以下程序:main( ) int x;scanf(%d,&x);if(x-8;y=+i)printf(%d,%d,x-,y); 57以下程序的输出结果是()A、2 0B、3 1C、3 2 1D、2 1 0main( ) int n=4;while(n-) printf(%d ,-n);58以下程序的输出结果是()A、#*#*# B、# C、* D、*#*#*main( ) int i;for(i=1;i6;i+) if(i%2) printf(#);continue;printf(*);printf(n);59以下程序的输出结果是()A、编译不通过,无输出 B、acegC、acegiD、abcdefghimain( ) int i;for(i=A;iI;i+,i+) printf(%c,i+32);printf( n);60以下循环体的执行次数是()A、3 B、2 C、1D、0main( ) int i,j;for(i=0,j=1; i20) break; while(a=14);62有如下程序main( ) int i,sum;for(i=1;i6) n-;printf(%d,n);该程序段的输出结果是( )A、987B、876C、8765D、987665有以下程序段int k=0;while(k=1)k+;while 循环执行的次数是()A、无限次B、有语法错,不能执行C、一次也不执行D、执行1次66以下程序执行后sum的值是()A、 15B、14C、不确定D、0min( ) int i,sum;for(i=1;i6;i+)sum+=i;printf(%dn,sum);67有以下程序段int x=3;do printf(%d,x-=2);while (!(-x);其输出结果是( )A、1B、3 0C、1 2D、死循环68t为int类型,进人下面的循环之前,t的值为0( )while( t=l ) 则以下叙述中正确的是A、循环控制表达式的值为0B、循环控制表达式的值为1C、循环控制表达式不合D、以上说法都不对69以下循环中,while循环的次数是()main( ) int i=0; while(i10) if (i1) continue;if(i=5) break;i+;A、1B、10C、6D、死循环,不能确定次数70以下程序的输出结果是()main( ) int a=0,j; for(j=0;j4;j+) switch( j ) case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf(%dn,a);A、36B、13C、10D、2071下列程序的输出结果是()A、非法B、a4的地址C、5D、3main( ) char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5;printf(%d,*-p);72有如下程序段int a=14,b=15,x;char c=A;x=(a&b)&(cB);执行该程序段后,x的值为()A、tureB、falseC、0D、173.下列描述中不正确的是()A、 字符型数组中可以存放字符串B、 可以对字符型数组进行整体输入、输出C、 可以对整型数组进行整体输入、输出D、 不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值74.执行下面的程序段后,变量k中的值为()A、不定值B、33C、30D、10int k=3,s2;s0=k;k=s1*10;75.设有数组定义:char array =China; 则数组 array所占的空间为( )A、4个字节 B、5个字节 C、6个字节 D、7个字节76.有如下程序 main( ) int n5=0,0,0,i,k=2;for(i=0;ik;i+)ni=ni+1;printf(%dn,nk);该程序的输出结果是()A、不确定的值B、2C、1D、077.若有以下的定义:int t32;能正确表示t数组元素地址的表达式是( )A、&t32B、t3C、t12D、t278.有如下程序main( ) int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;i+)for(j=0;j=i;j+)s+=aij;printf(%dn,s);该程序的输出结果是()A、18B、19C、20D、2179.以下程序的输出结果是()A、20B、21C、22D、23main( ) int i,k,a10,p3;k=5;for (i=0;i10;i+)ai =i;for (i=0;i3;i+)pi =ai *(i+1);for (i=0;i3;i+)k+=pi *2;printf(%dn,k);80以下程序的输出结果是()A、1,5,9,B、1,4,7,C、3,5,7,D、3,6,9,main( ) inti,x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)printf(%d,xi2-i);81以下程序的输出结果是()A、ABCDB、ABCDC、EFGD、EFGHFGHEFGJK IJKLKLIJ OMmain( ) char w 10= ABCD,EFGH,IJKL,MNOP,k;for(k=1;k3;k+)printf(%sn,wk);82当执行下面的程序时,如果输入ABC,则输出结果是()A、ABC6789B、ABC67C、12345ABC6D、ABC456789#include stdio.h#include string.hmain( ) char ss10=1,2,3,4,5;gets(ss);strcat(ss,6789);printf(%sn,ss);83以下程序段的输出结果是()char s = 141141abct;printf(%dn,strlen(s);A、9B、12C、13D、1484若有定义:int aa8;。则以下表达式中不能代表数组元素aa1的地址的是( )A、&aa0+1B、&aa1C、&aa0+D、aa+185以下程序的输出结果是()main( ) char cf35= AAAA,BBB,CC; printf(%sn,ch1); A、AAAAB、BBBC、BBBCCD、CC86以下不能正确进行字符串赋初值的语句是()A、char str5= good!;B、char str = good!;C、char *str=good!;D、char str5= g,o,o,d;87以下程序的输出结果是() main( ) int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+)for(j=i;j=i;j+) t=t+bibjj; printf(%dn,t); A、3B、4C、1D、988以下程序的输出结果是()A、52B、51C、53D、97 Main( ) int I,x33=9,8,7,6,5,4,3,2,1,*p=&x11; for(I=0;I4;I+=2) printf(%d,pI); 89以下程序的输出结果是()A、6B、6789C、6D、789 main( ) char a10=1,2,3,4,5,6,7,8,9,0,*p; int i;i=8;p=a+i;printf(%sn,p-3); 90以下程序的运行结果是( )A、运行后报错B、6 6 C、6 12 D、5 5#include stdio.hmain( )int a =1,2,3,4,5,6,7,8,9,10,11,12,;int *p=a+5, *q=NULL;* q=*(p+5);printf(%d %d n,*p,*q);91若已定义:int a9,*p=a;并在以后的语句中未改变p的值,不能表示a1 地址的表达式是( )A、p+1B、a+1C、a+D、+p92若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是( )A、*p=&a; scanf(%ld,p);B、p=(long *)malloc(8); scanf(%ld,p);C、scanf(%ld,p=&a);D、scanf(%ld,&a);93若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是( )A、t20 B、t22C、tl2D、t2lint t33, *pt(3, k;for (k=0;kaB、*pa0 C、*p*a0 D、*p0 *a0main( ) int a10=6,7,2,9,1,10,5,8,4,3,*p=a,i;for(i=0;i10;i+,p+)if(_) *a=*p;printf(%d,*a);95以下程序的输出结果是()A、123456780 B、123 456 780 C、D、147main( ) char ch34=123,456,78, *p3; int i;for(i=0;i3;i+) pi=chi;for(i=0;i3;i+) printf(%s,pi);96有以下函数 char fun(char *p) returnp;该函数的返回值是()A、无确切的值B、形参p中存放的地址值 C、一个临时存储单元的地址 D、形参p自身的地址值97以下程序的输出结果是()A、4 2 1 1 B、0 0 0 8 C、4 6 7 8 D、8 8 8 8main( ) char *s=12134211; int v4=0,0,0,0,k,i;for(k=0;sk;k+) switch(sk) case 1:i=0;case 2:i=1;case 3:i=2;case 4:i=3;vi+;for(k=0;k4;k+) printf(%d ,vk);98以下程序的输出结果是()A、AfghdEFG B、Abfhd C、Afghd D、Afgd#includestring.hmain( ) char *p1,*p2,str50=ABCDEFG;p1=abcd; p2=efgh;strcpy(str+1,p2+1); strcpy(str+3,p1+3);printf(%s,str);99若已定义:int a =0,1,2,3,4,5,6,7,8,9,*p=a,i;其中 0i2); printf(%dn,j); 45.设有以下程序: main() int n1,n2; scanf(%d,&n2); while(n2!=0) n1=n2%10; n2=n2/10; printf(%d,n1); 程序运行后,如果从键盘上输入1298;则输出结果为_。 46.以下程序输出的最后一个值是_。 int ff(int n) static int f=l; f=f*n; return f; main() int i; for(I=1;I=5;I+ printf(%dn,ff(i); 47.设有以下程序: main() int a, b, k=4, m=6, *p1=&k, *p2=&m; a=pl=&m; b=(*p1)(*p2)+7; printf(a=%dn,a); printf(b=%dn,b); 执行该程序后,a的值为_,b的值为_。 48.若已定义:int a10, i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。 fun( int a ) int i; for(i=1; i=10; i+)_=i; for(i=0; i0?p/10:p%3);51.以下程序运行后的输出结果是_。main()charm;m=B+32;printf(%cn,m);52.以下程序运行后的输出结果是_。main()inta=1,b=3,c=5;if(c=a+b)printf(yesn);elseprintf(non);53.以下程序运行后的输出结果是_。main()inti,m=0,n=0,k=0;for(i=9;i=11;i+)switch(i/10)case0:m+;n+;break;case10:n+;break;default:k+;n+;printf(%d%d%dn,m,n,k);54.执行以下程序后,输出#号的个数是_。#includemain()inti,j;for(i=1;i5;i+)for(j=2;j=i;j+)putchar(#);55.以下程序的功能是调用函数fun计算:m=1-2+3-4+9-10,并输出结果。请填空。intfun(intn)intm=0,f=1,i;for(i=1;i=n;i+)m+=i*f;f=_;returnm;main()printf(m=%dn,_);56.以下程序运行后的输出结果是_.main()inti,n=0,0,0,0,0;for(i=1;i=0;i-) t*=i; printf(“%dn”,t);执行后输出结果是_ 。60.有以下程序main( ) int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(“%dn”,x);执行后输出结果是_ 。61.#include main( ) char ch1,ch2; int n1,n2; ch1=getchar(); ch2=getchar(); n1=ch1-0; n2=n1*10+(ch2-0); printf(“%dn”,n2);程序运行时输入:12,执行后输出结果是_ 。62. 有以下程序void f( int y,int *x)y=y+*x; *x=*x+y;main( ) int x=2,y=4; f(y,&x); printf(“%d %dn”,x,y);执行后输出的结果是_ 。63.函数fun的功能是计算xndouble fun(double x,int n) int i; double y=1; for(i=1;i50) printf(%d,a); if(a40) printf(%d,a); if(a30) printf(%d,a); 66以下程序的输出结果是_main( )char s = abcdef ; s3= 0;printf(%sn,s);67.下列程序段的输出结果是_。mai
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!