A.n2B.(n+1)/2C.n(n-1)/2D.n(n+1)/2
6、在下面的do循环语句中,其循环体被执行的次数为()。
inti=0;doi++;while(i*i<10);
A.4B.3C.5D.2
7、在下面的一维数组定义中,有语法错误的选项是()。
A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];
8、在下面的二维数组定义中,语法正确的选项是()。
A.inta[5][];B.inta[][5];C.inta[][3]={{1,3,5},{2}};D.inta[](10);
9、假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为()。
A.2B.4C.6D.8
10、假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。
A.0B.4C.8D.6
二、判断题(正确的打“√”,错误的打“×”)
()11、在执行“typedefintDataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。
()12、在switch语句中,每个case和冒号之间的表达式只能是常量。
()13、为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句。
()14、在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置。
()15、在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口。
()16、假定一维数组的定义为“char*a[8];”,则该数组所含元素的个数大于8。
()17、假定二维数组的定义为“inta[3][5];”,则该数组所占存储空间的字节数为60。
()18、假定二维数组的定义为“chara[M][N];”,则该数组所含元素的个数为M+N。
()19、假定二维数组的定义为“doublea[M][N];”,则每个数组元素的行下标取值范围在0~M-1之间。
()20、假定二维数组的定义为“doublea[M][N];”,则每个数组元素的列下标取值范围在0~N之间。
()21、存储一个空字符串需要占用0个字节的存储空间。
()22、使用“typedefcharBB[10][50];”语句定义标识符BB为含有10行50列的二维字符数组类型。
()23、存储字符'a'需要占用1个字节的存储空间。
()24、空字符串的长度为1。
()25、字符串"a:
\\xxk\\数据"的长度为13。
()26、为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。
()27、strcmp函数用于进行两个字符串之间的比较。
()28、strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。
()29、一个二维字符数组a[10][20]能够最多存储9个字符串。
()30、一个二维字符数组a[10][20]能够存储的每个字符串的长度不超过20。
形考任务三
一、单项选择题
1、在下面的函数声明语句中,存在着语法错误的是()。
A.AA(inta,intb)B.AA(int,int)C.AA(inta;intb)D.AA(inta,int)
2、在下面的保留字中,不能作为函数的返回值类型的是()。
A.voidB.intC.enumD.long
3、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为()。
A.1B.2C.4D.8
4、假定a为一个数组名,在下面的表达式中,存在语法错误的是()。
A.a[i]B.*a++C.*aD.*(a+1)
5、用calloc函数创建具有10个整型元素的一维数组的正确语句是()。
A.int*p=calloc(10,2);B.int*p=calloc(10);
C.int*p=calloc(10,4);D.int*p=malloc(10)
6、假定变量m定义为“intm=7;”,则下面正确的语句为()。
A.intp=&m;B.int*p=&m;C.int&p=*m;D.int*p=m;
7、假定k是一个double类型的变量,则定义变量p的正确语句为()。
A.doublep=&k;B.int*p=&k;
C.double&p=*k;D.char*p="Thankyou!
";
8、若有语句为“inta[10],x,*pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。
A.x=pa[3];B.x=*(a+3);C.x=a[3];D.x=*pa+3;
9、假定有语句为“intb[10];int*pb;”,则下面不正确的赋值语句为()。
A.pb=b;B.pb=&b[0];C.pb=b+2;D.pb=b[5];
10、已知“int*p=malloc(100);”,要释放p所指向的动态内存,正确的语句为()。
A.free(p);B.freep;C.free(*p);D.free[p];
11、在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的()。
A.原型语句B.参数表C.函数名D.返回类型
12、假定一个函数定义为“staticintf1(intx,inty){returnx+y;}”,该函数名称为()。
A.staticB.intC.f1D.return
13、假定一个函数的原型语句为“intff(int*x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是()。
A.ff(a)B.ff(a[0])C.ff(a+3)D.ff(&a[0])
14、假定一个函数的数组参数说明为chara[],与之等价的指针参数说明为()。
1B
A.charaB.char*aC.char&aD.char**a
15、假定一个函数的二维数组参数说明为charw[][N],与之等价的指针参数说明为()。
A.char(*w)[N]B.char*w[N]C.char(*w)ND.char**a
二、判断题(正确的打“√”,错误的打“×”)
()16、在C语言中,一个函数由函数头和函数体组成。
()17、在函数模块之外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。
()18、如果一个函数只允许同一程序文件中的函数调用,则不应在该函数定义的开始前加上保留字static。
()19、如果在一个函数体中又出现对自身函数的调用,此种函数调用被称为递归调用。
()20、调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的系统头文件。
()21、函数形参变量不属于局部变量。
()22、假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为46。
()23、假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为25。
()24、假定p所指对象的值为25,p+1所指对象的值为46,则执行*(p++)运算后,p所指对象的值为46。
()25、假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i字节。
()26、若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为(char*)p。
()27、假定一个数据对象为int*类型,则指向该对象的指针类型仍为int*类型。
()28、假定x为一个简单变量,则&x表示x的地址。
()29、若p指向x,则*p与x的值不同。
()30、NULL是一个符号常量,通常作为空指针值,它代表的值为0。
形考任务四
一、选择题
1、假定有“structBOOK{chartitle[40];floatprice;};structBOOKbook;”,则不正确的语句为()。
A.structBOOK*x=malloc(book);
B.structBOOKx={"C++Programming",27.0};
C.structBOOK*x=malloc(sizeof(structBOOK));
D.structBOOK*x=&book;
2、假定有“structBOOK{chartitle[40];floatprice;}book;”,则正确的语句为()。
A.structBOOKx=&book;
B.structBOOK*x=&book;
C.structBOOKx=calloc(BOOK);
D.structBOOK*x=BOOK;
3、在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是()。
A.句点B.冒号C.分号D.逗号
4、假定一个结构类型的定义为“structA{inta,b;doublec;};”,则该类型的长度为()。
A.8B.10C.12D.16
5、假定一个结构类型的定义为“structD{inta;D*next;};”,则该类型的长度为()。
A.4B.8C.12D.16
6、假定要访问一个结构指针变量x中的数据成员a,则表示方法为()。
A.x.aB.x->aC.x(a)D.x{a}
7、与结构成员访问表达式x.name等价的表达式为()。
A.x->nameB.&x->nameC.(&x)->nameD.(*x)->name
8、假定一个链表中结点的结构类型为“structAA{intdata,structAA*next;};”,则next数据成员的类型为()。
A.structAAB.structAA*C.AAD.int
9、假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为()。
A.p->next=fB.p->next=f和f=p
C.f=p->nextD.f->next=p和f=p
10、标准输入设备键盘的文件流标识符是()。
A.stdinB.stdoutC.stderrD.stdio
11、表示文件结束符的符号常量为()。
A.eofB.EofC.EOFD.feof
12、C语言中打开一个数据文件的系统函数为()。
A.fgetc()B.fputc()C.fclose()D.fopen()
13、从一个数据文件中读入以换行符结束的一行字符串的系统函数为()。
A.gets()B.fgets()C.getc()D.fgetc()
14、向一个二进制文件中写入信息的函数fwrite()带有的参数个数为()。
A.1B.2C.3D.4
15、在C语言中,为只写操作打开一个文本文件的方式为()。
A."a"B."r+"C."r"D."w"
二、判断题(正确的打“√”,错误的打“×”)
()16、在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。
()17、在结构类型的定义中,允许出现结构类型不完整的超前定义。
()18、定义结构类型的变量时,不能够同时进行初始化。
()19、使用一个结构类型时,必须一起使用关键字struct和类型标识符。
()20、假定一个结构类型的定义为“structA{inta,b;A*c;};”,则该类型的长度为12。
()21、假定一个结构类型的定义为“structB{inta[5];char*b;};”,则该类型的长度为20。
()22、执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。
()23、执行malloc(sizeof(structBB))函数调用时,得到的动态存储空间能够保存具有structBB结构类型的一个对象。
()24、假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。
()25、假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b。
()26、与结构成员访问表达式(*fp).score等价的表达式是fp->score。
()27、在C语言中,对二进制文件的所有不同打开方式共有6种。
()28、C语言中的标准输入和输出设备文件都属于字符文件。
()29、在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。
()30、在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。
()31、一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。
()32、C语言系统中提供一个用来描述文件属性的类型标识符为FILE。
()33、每次只能向文本文件中写入一个字符,不能一次写入一个字符串。
()34、对二进制文件进行读和写操作将使用相同的系统函数。
()35、在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。