a0答案:A31、程序的三种基本结构是()。A、顺序结构,循环结构,递归结构B、顺序结构,循环结构,选择结构C、选择结构,循环结构,递归结构D、顺序结构,选择结构,递归结构答案:B32、C语言中,逻辑真表示为()。A、TRUEB、y或YC、1D、非零值答案:C33、已知a,b,c,w时int型变量,a,b均以赋值,且满足ab,先有以下程序段:scanf(“%d”,c);w=a;if(w=b)w=b;if(w=c)printf(“%d”,w);elsew=c;为把c的值放入w中,则执行此程序段时,从键盘输入的c的值不应取的范围是()。A、bcB、c=bC、ca且cbD、ca或cb答案:B34、设a,b,w为整型变量,ch为字符型变量,用if语句改写以下的程序段:switch(ch){case+:w=a+b;break;case-:w=a-b;break;case*:w=a*b;break;case/:w=a/b;break;}在下列写法中,错误的是()A、if(ch==+)w=a+b;if(ch==-)w=a-b;if(ch==*)w=a*b;if(ch==/)w=a/b;B、if(ch==*)w=a*b;elseif(ch==/)w=a/b;if(ch==+)w=a+b;elseif(ch==-)w=a-b;C、if(ch==+)w=a+b;elseif(ch==-)w=a-b;if(ch==*)w=a*b;elsew=a/b;D、if(ch==+)w=a+b;elseif(ch==-)w=a-b;if(ch==*)w=a*b;elseif(ch==/)w=a/b;答案:C35、以下程序的输出结果是()#includestdio.hmain(){inta=0,b=l,c=0,x=0,y=0;if(x=y)if(y=l0)if(!b)a=1;elseif(c)a=10;a=-1;printf(%d,a);}A、1B、10C、-1D、不确定的值答案:C36、分析下面的C语言代码:inta=1,b=10;do{b-=a;a++;}while(b--0);则执行循环语句后b的值为()A、9B、-2C、-1D、8答案:D37、C语言中,while和do…while循环的主要区别是()A、while的循环控制条件比do…while的循环控制条件严格B、do…while的循环体可以无条件执行一次C、do…while允许从外部转到循环体内D、do…while的循环体不能是复合语句答案:B38、研究下面的C程序段:inti,j;for(i=5;i;i--)for(j=0;j4;j++){…}循环体的总执行次数是()A、20B、25C、24D、30答案:A39、分析下面的C代码段:charstr1[15]=SeaView;charstr2[15]=SeaBreeze;strcpy(str1,str2);printf(%s\n,str1);则输出结果是()A、SeaViewB、SeaBreezeC、SeaViewSeaBreezeD、SeaBreezeSeaView答案:B40、下面有关for循环的正确描述是()A、for循环只能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判断表达式C、在for循环中,不能用break语句跳出循环体D、for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来答案:D41、若i为整型变量,则以下循环执行次数是()for(i=2;i==0;)printf(“%d\n”,i--);A、无限次B、0次C、1次D、2次42、以下程序运行后,输出的结果是()main(){inti,j,sum=0;for(i=5;i;i--)for(j=0;j3;j++)sum++;printf(%d,sum);}A、3B、5C、12D、、下面程序的运行结果是()voidmain(){inti;for(i=1;i=5;i++){if(i%2)printf(“*”);elsecontinue;printf(“#”);}printf(“$\n”);}A、*#*#*#$B、#*#*#*$C、*#*#$D、#*#*$44、以下对一维数组a的正确说明是:()A、chara(10);B、inta[];C、intk=5,a[k];D、chara[3]={‘a’,’b’,’c’};45、已知:inta[10];则对a数组元素的正确引用是()A、a[10]B、a[3.5]C、a(5)D、a[0]46、下述对C语言字符数组的描述中正确的是()A、一维字符数组的第一个元素是其下标为1的元素B、一维字符数组的元素在引用时其下标大小没有限制C、任何一个一维字符数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间D、任何一维字符数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间47、若有说明:inta[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为:()A、2B、3C、4D、无确定值48、对二维数组的正确定义是()A、inta[][]={1,2,3,4,5,6};B、inta[2][]={1,2,3,4,5,6};C、inta[][3]={1,2,3,4,5,6};D、inta[2,3]={1,2,3,4,5,6};49、已知inta[3][4];则对数组元素引用正确的是()A、a[2][4]B、a[1,3]C、a[2][0]D、a(2)(1)50、合法的数组定义是()A、chara={U,V,W,X,Y};B、chara[5]={A,A,A,A,A};C、chara[6]={A,B,C,D,E};D、chara[5]=ABCDE;51、以下程序段的输出结果是()chars[]=\vwxyz\x41;printf(%d\n,strlen(s));A、8B、10C、3D、、以下程序运行后,输出结果是()voidmain(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(%d%d%d%d\n,a[0][3],a[1][2],a[2][1],a[3][0]);}A、B、C、D、输出值不定53、若有以下定义和语句:chars1[]=abced,s2[]=abcd;printf(%d\n,strlen(strcpy(s1,s2)));则输出结果是:()A、4B、5C、9D、、一个C语言程序总是从()开始执行的。A、书写顺序的第一个函数B、书写顺序的第一条执行语句C、主函数mainD、不确定55、在C语言中,有关函数的说法,以下正确的是()A、函数不可嵌套定义,但可嵌套调用B、函数可嵌套定义,但不可嵌套调用C、函数可嵌套定义,也可嵌套调用D、函数不可嵌套定义,也不可嵌套调用56、调用函数的实参与被调用函数的形参应有如下关系()A、只要求实参与形参个数相等B、只要求实参与形参顺序相同C、只要求实参与形参数据类型相同D、上述三点均应具备57、为了判断两个字符串s1和s2是否相等,应使用()A、if(strcpy(s1,s2))B、if(s1=s2)C、if(strcmp(s1,s2)==0)D、if(s1==s2)58、以下4个字符串函数中,与其他3个所在的头文件不同是()A、putcharB、printfC、scanfD、strcmp59、若用数组名作为函数调用的实参,传递给形参的是()A、数组的首地址B、数组中第一个元素的值C、数组中的全部元素的值D、数组元素的个数60、以下正确的说法是()A、实参和与其对应的形参各占用独立的存储单元B、实参和与其对应的形参共占用一个存储单元C、有当实参和与其对应的形参同名时才共占用相同的存储单元D、形参是虚拟的,不占用存储单元61、关于函数声明,以下不正确的说法是()A、如果函数定义出现在函数调用之前,可以不必加函数原型声明B、如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明C、函数在调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查D、标准库不需要函数原型声明62、以下叙述中正确的是()A、源程序中所有的行都参加编译。B、宏定义常量与const定义常量是一样的。C、宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。D、其余选项都不正确。63、凡在函数中未指定存储类别的变量,其隐含的存储类别是()A、自动B、静态C、外部D、寄存器64、在源程序的一个文件中定义的全局变量的作用域是()A、在本文件的全部范围B、该程序的全部范围C、一个函数的范围D、从定义该变量的位置开始至该文件的结束65、下列程序的输出结果是()#includestdio.hintabc(intu,intv){intw;while(v){w=u%v;u=v;v=w;}returnu;}main(){inta=24,b=16,c;c=abc(a,b);printf(%d\n,c);}A、8B、6C、5D、、函数调用可以在()A、函数表达式中B、函数语句中C、函数参数中D、以上都是67、以下不正确的叙述是()A、宏替换不占用运行时间B、宏名无类型C、宏替换只是字符替换D、宏名必须用大写字母表示68、C语言的编译系统对宏命令的处理()A、在程序运行时进行的B、在程序连接时进行C、和C程序中的其它语句同时进行编译的D、在对源程序中其它语句正式编译之前进行的69、全局类型的变量作用范围大,因此编程中应尽量使用全局变量,少使用局部变量。()70、形参只有在被调用时才分配存储空间。()71、形参可以是常量、变量或表达式。()72、宏替换时先求出实参表达式的值,然后代入形参运算求值。()73、调用函数只能得到一个返回值,而用宏可以得到几个结果。()74、在宏定义#definePI3.l4l59中,如果将1误输成小写的L,则编译时不出错,运行时出错。()75、指针变量是把内存中另一个数据的()作为其值的变量。A、变量名B、值C、地址D、标识符76、有以下程序段,输出结果为()。#includestdio.hmain(){inta[10]={11,32,43,25,16,71,24,23,80,44};int*p=a;int*s,;s=p+2;printf(%d,%d,*p,*s);}A、11,32B、11,13C、0,2D、11,、有以下程序段,输出结果为()。#includestdio.hmain(){inta[10]={5,10,15,20,25,30,35,40,45,50};int*p=a;int*s,m;s=p++;m=*p++;printf(“%d,%d,%d”,*p,*s,m);}A、5,10,11B、15,5,10C、5,10,15D、10,15,、有以下程序段,输出结果为()。#includestdio.hmain(){inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int(*p)[4]=a;printf(%d\n,*p);}A、1B、12C、语法错误D、随机值79、有以下程序段,输出结果为()。#includestdio.hmain(){inta=10,*p,**q,***s;p=a;q=p;s=a;printf(%d,%d,%d,*p,**q,***s);}A、10,10,10B、10,随机值,随机值C、10,10,随机值D、语法错误80、在以下程序段的空白处填入(),能够正确输出teacher。#includestdio.hmain(){char*p[3]={student,teacher,classroom};printf(%s,);}A、*(p+1)B、*p+1C、*p[1]D、*p+、在以下程序段的空白处填入(),能够使程序正确运行。#includestdio.hintsum(intx,inty){returnx+y;}main(){inta=3,b=5,c;p=sum;c=(*p)(a,b);printf(%d,c);}A、int*p(int,int)B、int(*p)()C、int(*p)(int,int);D、其余选项都不对82、有以下程序段,输出结果为()。#includestdio.hvoidswap(int*p1){intb=20;p1=b;}main(){inta=10,*pa;pa=a;swap(pa);printf(%d,%d,a,*pa);}A、10,20B、20,10C、10,10D、20,、有以下程序段,在空白处填入(),可以使程序正确运行。#includestdio.hint(intx,inty){if(xy)returnx;elsereturny;}main(){inta=3,b=5,*p;p=f(a,b);printf(%d,*p);}A、fB、*fC、(*f)D、其余选项都不对84、有如下结构体定义,能够正确引用结构体的是()。structstudent{longnum;charname[10];charsex;intage;floatscore;}stu;A、stu.age=20B、stu-sex=’f’C、stu.num=””D、stu=”lili”85、有以下程序段,输出结果为()。#includestdio.hstructs{inta;charb;doublef;};main(){printf(%d,sizeof(structs));}A、12B、13C、16D、、有以下程序段,输出结果为()。#includestdio.hstructperson{charname[20];intcount;}leader[3]={Li,0,Zhang,0,Sun,0};main(){printf(%s,leader[1].name);}A、LiB、ZhangC、sunD、、有以下程序段,输出结果为()。#includestdio.hstructstudent{intnum;charname[20];floatscore;};main(){structstudentstu[5];printf(%d,sizeof(stu));}A、B、C、5D、随机值88、以下程序段,在空白处填写()能使程序正确运行并输出结果。#includestdio.hstructstudent{longnum;charname[10];charsex;floatscore;};main(){structstudentstu={,lili,m,89.5},*pt;printf(%.2f,pt-score);}A、*pt=stu;B、pt=stu;C、pt=stu;D、*pt=stu;89、有结构体声明如下,成员next是一个指针,指向对象的类型是()。structnode{charch;structnode*next;};A、intB、floatC、charD、node90、有以下共用体声明,赋值错误的是()。uniondata{inti;charch;floatf;}A、uniondataa={97};B、uniondataa;a.i=97;C、uniondataa={97,b,1.5};D、uniondataa;a.i=’a’;91、以下程序段的运行结果为()。#includestdio.huniondata{inti;charch;floatf;};main(){uniondataa;a.i=98;a.ch=B;printf(%d,a.i);}A、98B、66C、0D、随机值92、有枚举定义enumsex{m,f}stu;能够正确赋值的是()。A、stu={m,f}B、stu=fC、stu=manD、stu=nan93、有新类型名声明typedefintNum[10];以下各项中与inta[10]含义相同的是()。A、Numa[10]B、typedefa[10]C、NumaD、typedefa94、下列关于C语言数据文件的叙述中正确的是()A、文件由ASCII码字符序列组成,C语言只能读写文本文件B、文件由二进制数据序列组成,C语言只能读写二进制文件C、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件95、fwrite函数的一般调用形式是()A、fwrite(buffer,count,size,fp);B、fwrite(fp,size,count,buffer);C、rite(buffer,size,count,fp);D、fwrite(fp,count,size,buffer);96、C语言文件操作函数fread(buffer,size,n,fp)的功能是()A、从文件fp中读n个字节存入bufferB、从文件fp中读n个大小为size字节的数据项存入buffer中C、从文件fp中读入n个字节放入大小为size字节的缓冲区buffer中D、从文件fp中读入n个字符数据放入buffer中97、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()A、EOFB、0C、非零值D、NULL98、若要用fopen函数建一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应该为()A、ab+B、wb+C、rb+D、ab99、C语言把文件看作是一个()的序列。A、记录B、单词C、字D、字符、语句FILE*fp;定义了一个指向()A、FILE类型的指针变量B、某一个文件的结构体变量C、FILE文件的变量D、某一个文件的变量、语句fp=fopen(file1,r);表示()A、打开文件file1,可向该文件添加数据B、打开文件file1,可向该文件输出数据C、打开文件file1,可从该文件输入数据D、打开文件file1,可向该文件输入输出数据、如果希望向文本文件末尾添加数据,则应以()方式打开文件。A、aB、wC、rD、ab、从操作系统的角度来看,键盘和打印机是输出文件。()、对设备文件的输入输出操作就是读写设备文件的过程。()、C语言中文件可以顺序存取,也可随机存取。()、gets函数的功能是从文件指针所指向文件中读取一个字符。()、对已打开的文件进行输入输出操作是通过指向该文件结构的指针变量进行的。()、只有通过文件,才能进行大量的原始数据的输入和保存,这些数据甚至可能远远超过内存容量。()、语句:printf(%d\n,);的输出结果是()A、12B、8C、6D、、设intb=2;表达式(b2)/(b1)的值是()A、0B、2C、4D、、有如下程序段inta=14,b=15,x;charc=A’;x=(ab)(cB’);执行该程序段后,x的值为()A、tureB、falseC、0D、、整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是()A、x
yB、x
yC、xyD、x^y、设char型变量x中的值为,则表达式(2+x)^(~3)的值是()A、001B、001C、11111D、004、请读程序片段:charx=56;x=x;printf(“%d,%o\n”,x,x)以上程序片段的输出结果是()A、56,70B、0,0C、40,50D、62,、若有以下程序段:intx=1,y=2;x=x^y;y=y^x;x=x^y;则执行以上语句后x和y的值分别是A、x=1,y=2B、x=2,y=2C、x=2,y=1D、x=1,y=、设有以下语句:charx=3,y=6,z;z=x^y2;则z的二进制值是()A、00010B、00C、00D、00007、表达式ab
~cd的运算顺序是()A、~,,,
B、~,
,,C、~,,
,D、~,,,
、将一个数左移一位,相当于该数乘以2;右移一位相当于除以2。()、~运算符的优先级低于算术运算符,高于关系运算符、逻辑运算符。()、位运算的运算量可以是整型、字符型或实型数据。()、要将一个存储单元i清零,可以实施如下运算:i0。()