第一、二章1.以下关于C语言特点的叙述,哪一个是错误的【】A.数据类型丰富B.C语言对字符的大小写敏感,C.语言允许直接访问内存的物理地址D.可自动对数组下标是否越界做严格的检查2.以下关于C语言源程序main函数的叙述,哪一个是错误的【】A.main函数可以有形参B.每个C语言程序都必须有一个main函数C.C语言程序总是从main函数开始执行D.main函数必须是程序中定义的第一个函数3.将高级语言编写的源程序转换成可执行的程序需要的是【】A.编辑程序与解释程序B.编辑程序与调试程序C.编译程序与链接程序D.汇编程序与链接程序4.以下有关算法和数据的叙述,错误的是【】A.一个程序包含两方面的内容,即数据和算法B.算法是解决问题的步骤C.数据可以用不同的数据结构来组织D.不同的数据结构不会影响算法的步骤5.C语言中注释部分以开始,以结束。6.C语言语句的结束标志是。第三章数据类型、运算符、表达式1.下列C语句中出现的数据类型,不属于C语言基本类型的是【】A.inta;B.doubleb;C.inta[4];D.charc;2.以下在C语言中是非法的常量表示形式的是【】A.0x40B.'abc'C.100D.3.4e103.C语言的基本类型中,可用来表示无符号数的是【】A.intB.unsignedintC.doubleD.long4.下列数据中,不属于字符常量的是【】A.'b'B.'\n'C.BD.'$'5.以下选项中,能用作用户标识符的是【】A.voidB.8_8C._0_DD.#a6.下列变量赋初值的形式不正确的是【】A.inta=b=c=3;B.charstr='b';C.char*pstr=abc;D.inta[]={1,2,3};7.有以下定义语句,编译时会出现编译错误的是【】A.chara='a';B.chara='\n';C.chara='aa';D.chara='\x2d';8.关于字符型数据叙述不正确的是【】A.一个字符数据可以以字符形式输出,也可以以整数的形式输出B.字符在内存中存储的是字符的ASCII码C.可以用一个字符串常量来初始化一个字符型变量D.C语言中没有专门的字符串变量9.若有定义语句:intx=10;,则表达式x-=x+x的值为【】A.-20B.-10C.0D.1010.若已定义a和b为double类型,则a=2,b=a+3/2值是【】A.1B.3.0C.2.0D.3.511.在C语言中,负整数数据在内存中的存储形式是【】A.反码B.补码C.原码D.ASCII码12.以下选项中正确的定义语句是【】A.inta;b;B.inta=b=7;C.inta=7,b=7;D.int,a,b;13.下列表达式中结果值与其它三个表达式不同的是【】A.3/2B.3.0/2C.3%2D.3214.关于常量和变量的叙述,错误的是【】A.常量分字面常量和符号常量两种B.变量可以先使用后定义C.每个变量都要有确定的类型D.程序中用#define来定义符号常量15.C语言中求余运算符%的运算对象必须是两个。16.表达式3.6-5/2+1.2+5%2的值是。17.设有程序段如下:charc1=’a’;ptintf(″﹪d,﹪c\n″,c1,c1);执行后输出的是:97,a,其中97是字符'a'的。18.当一个表达式中包含多个运算符时,要根据运算符的和来决定运算顺序。19.设有变量doublea;,对其进行强制类型转换为int型数据的的语法是:。20.各种不同的基本类型数据之间可以进行混合运算,但运算前要进行转换。21.在C语言中字符串结尾的标志是。22.C语言对变量遵循“先_____________,后_____________”的原则。23.以下程序段的输出结果是。floati=18.2;printf(%d\n,i);24.若有定义inta=8,b=5,c;,则执行语句c=a/b+0.4;后c的值为。第五、六章关系、逻辑运算,顺序、选择、循环1.关于程序的基本结构,叙述不正确的是【】A.程序的三种基本结构是顺序结构、选择结构、循环结构B.用基本结构的顺序组合可以表示任何复杂的算法结构C.程序的三种基本结构是顺序结构、返回结构、函数调用D.C语言具有结构化的控制语句来方便实现各种程序结构2.结构化程序设计的三种基本控制结构是【】A.输入、处理、输出B.顺序、选择、循环C.调用,返回,转移D.顺序、分支、调用3.以下关于C语言标准函数库的叙述,哪一个是错误的【】A.每种C语言的编译系统都要提供基本的标准函数库B.标准函数库属于C语言语法的一部分C.使用系统提供的标准函数库中的函数时,要在程序的开头用#include命令包含相应的头文件D.C语言没有输入输出语句,输入和输出的操作是由库函数scanf和printf等完成的4.在C语言中,表示逻辑值“假”用【】A.0B.非1的数C.1D.非0的数5.下列保留字中用于构成循环结构的是【】A.switchB.forC.ifD.default6.若有说明语句inti=5,j=4,k=6;floatf;则执行f=(ij&&ik)?i:k;语句后,f的值为【】A.4.0B.4C.6.0D.67.以下程序执行后sum的值是【】main(){inti,sum=0;for(i=1;i6;i++)sum+=i;}A.15B.14C.不确定D.08.若有表达式(w)?(x):(++y),则其中与w等价的表达式是【】A.w==1B.w==0C.w!=1D.w!=09.有下面程序段intk=2;while(k==0){printf(“%d”,k);k--;}则下面描述中正确的是【】A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次10.if(表达式)中的表达式作为条件,以下叙述正确的是【】A.该表达式只能是关系表达式B.该表达式只能是逻辑表达式C.该表达式是所有可以求值的表达式,如算术表达式、关系表达式、逻辑表达式等D.该表达式的结果为非0,代表条件不成立11.与语句a=(b0?1:0);等价的是【】A.if(a0)b=1;B.if(b0)a=1;elsea=0;C.b=1;if(a=0)b=0;D.if(a=0)b=1;12.有以下程序main(){inti;for(i=0;i3:i++)Switch(i){case1:printf(%d,i);case2:printf(%d,i);default:printf(%d,i);}}执行后输出的结果是【】A.011122B.012C.012020D.12013.有如下程序,该程序段的输出结果是【】main(){intn=9;While(n6){n--;printf(%d,n);}}A.987B.876C.8765D.987614.设for(k=0;k10;k+=2){;}则该循环共执行次。【】A.10B.5C.11D.没法确定15.C语言中,关于while和dowhile循环语句的正确叙述是【】A.while语句的循环控制条件为真时结束循环。B.dowhile语句的循环控制条件为真时结束循环。C.while循环体中不允许是空语句。D.dowhile的循环体至少被执行一次。16.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是【】A.1B.0C.2D.不知道a的值,不能确定17.设有定义inta=5,b=2,c=3;,则以下语句中执行效果与其它三个不同的是【】A.if(ab)c=a,a=b,b=c;B.if(ab){c=a,a=b,b=c;}C.if(ab)c=a;a=b;b=c;D.if(ab){c=a;a=b;b=c;}18.将数学式80≤x≤100转换成C语言表达式为。19.dowhile的循环体至少被执行次20.用switch语句可以方便的实现结构。21.设有for(k=0;k10;k++){k++;},则该循环共执行次。22.设a=3,b=4,c=5,则逻辑表达式!(ab)&&!c||1的值是:_______________。23.若定义有inta=8,b=10,max;,则执行语句max=(ab)?a:b后max的值为。第七章数组1.若有定义inta[3]={1,2,3};intb[3];则以下语句编译不能通过的是【】A.b=a;B.a[4]=5;C.b[1]=a[0];D.b[0]=*(a+1);2.以下定义数组并赋初值的语句不正确的是【】A.inta[10]={0,1,2,3,4};B.inta[]={1,2,3,4,5};3.下列变量赋初值的形式不正确的是【】A.inta=b=c=3;B.charstr='b';C.char*pstr=abc;D.inta[]={1,2,3};C.inta[3]={1,2,3};D.inta[3];a={1,2,3};4.若有定义语句chars[10]=12345\0\0;则strlen(s)的值是【】A.5B.6C.7D.85.若有定义:intb[9],则对数组b的元素正确的引用是【】A.b[8]B.b(5)C.b[4.5]D.b[9]12.已知:charstr[]=Hello,数组str的长度为【】A.5B.6C.0D.缺少信息,没法确定6.以下定义字符数组并初始化语句中,数组长度与其它三个不相等的是【】A.charc[]={hello};B.charc[]=hello;C.charc[]={'h','e','l','l','o'};D.charc[]={'h','e','l','l','o','\0'};7.下列选项中,能正确定义数组的语句是【】A.intnum[0..2008];B.intnum[];C.IntN=2008;D.#defineN2008Intnum[N];intnum[N];8.C语言中,数组名是一个常量,不能对它进行赋值运算。9.已知:charstr[]=Hello,数组str的长度为。10.C语言中,某一维数组第3个元素的下标为。11.构成数组的各个元素必须具有相同的。12.C语言中,数组元素的下标下限为。13.设inta[10]={10,5,9,4};则*a+2的值是。14.数组在内存中占的存储区。15.C语言中,数组名是一个常量,不能对它进行赋值运算。16.C语言中,一维数组第1个元素的下标为。17.设inta[8]={1,2,3};则*(a+3)的值是_______________。第十章指针1.关于指针的使用,叙述错误的是【】A.变量的指针就是变量的地址B.存放变量地址的变量是指针变量C.通过指针变量不可以间接改变其所指变量的内容D.一个指针变量必须初始化后,才能使用2.下列程序段对指针变量的使用错误的是【】A.inta=9;int*p;B.inta=3,b;P=&a;int*p=&a;*p=8;b=*p;C.inta=3,b;D.inta[3]={1,2,3};int*p;int*p;b=*p;p=a;3.下列函数的功能是【】fun(char*a,char*b){while((*b=*a)!='\0'){a++;b++;}}A.将a所指字符串赋给b所指空间B.使指针b指向a所指字符串C.将a所指字符串和b所指字符串进行比较D.检查a和b所指字符串中是否有'\0'第八章函数1.关于函数声明,以下不正确的说法是【】A.如果函数定义出现在函数调用之前,则可以不必加函数原型声明B.如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明C.函数原型声明的作用是遇到函数调用时保证编译系统能进行全面的调用检查D.标准库函数在调用前不需要做函数原型声明2.C语言中规定,决定函数返回值的类型是【】A.return语句中的表达式类型B.调用该函数时的主调函数类型C.调用该函数时由系统临时D.在定义函数时所指定的函数类型3.以下对于函数的调用叙述正确的是【】A.C语言不能嵌套定义函数,但可以嵌套调用函数B.若在fun1()中调用fun2(),fun2