广州开放大学C语言程序设计作业与答案
广州开放大学C语言程序设计作业与答案C语言程序设计学校:广州开放大学平台:国家开放大学题目如下:1. 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。A. mainB. MAINC. nameD. function答案:main2. C语言源程序文件的缺省扩展名为( )。A. cppB. exeC. objD. c答案:c3. 由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。A. cppB. exeC. objD. c答案:exe4. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为( )。A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车答案:空格或回车5. 每个C语言程序文件的编译错误被分为( )。A. 1类B. 2类C. 3类D. 4类答案:2类6. 不符合C语言规定的复合语句是( )。A. {}B. {;}C. {x=0;}D. {y=10}答案:{y=10}7. C语言程序中的基本功能模块为( )。A. 表达式B. 标识符C. 语句D. 函数答案:函数8. 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和( )。A. 表达式B. 语句C. 参数表D. 函数体答案:参数表9. 在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对( )。A. 尖括号B. 双引号C. 单引号D. 花括号答案:双引号10. 在C语言程序中,多行注释语句使用的开始标记符为( )。A. //B. /*C. */D. **答案:/*11. 在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为( )。A. charB. intC. floatD. double答案:char12. 在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为( )。A. 5B. 4C. 3D. 6答案:513. 转义字符'\\'表示的字符是( )。A. 单引号B. 双引号C. 反斜线D. 问号答案:反斜线14. 枚举类型中的每个枚举常量的值都是一个( )。A. 整数B. 浮点数C. 字符D. 逻辑值答案:整数15. 设x和y均为逻辑值,则x && y为真的条件是( )。A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假答案:它们均为真16. 设有语句“int a=12; a+=a*a;”,则执行结束后,a的值为( )。A. 12B. 144C. 156D. 288答案:15617. x>0 && x<=10的相反表达式为( )。A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>10答案:x<=0 || x>1018. 字符串“a+b=12\n”的长度为( )。A. 6B. 7C. 8D. 9答案:719. 在下列的符号常量定义中,错误的定义语句格式为( )。A. const int M1=10;B. const int M2=20;C. const int M3 10;D. const char mark='3';答案:const int M3 10;20. C语言中的每条简单语句以分号作为结束符。答案:正确21. C语言中的每条复合语句以花括号作为结束符。答案:错误22. 在C语言程序中,在行尾使用注释的开始标记符为一对单斜线字符。答案:正确23. 注释内容的开始所使用的标记符为/*,则注释内容的结束所使用的标记符为*/。答案:正确24. 在一个C语言程序文件中,若要包含一个头文件,则使用以百分号开始的预处理命令。答案:错误25. 用于输出表达式值的标准输出函数是printf()。答案:正确26. 当不需要函数返回任何值时,则需要使用保留字void作为函数的返回值类型。答案:正确27. 每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为error。答案:错误28. 十进制数25表示成符合C语言规则的八进制数为31。答案:错误29. 十进制数25表示成符合C语言规则的十六进制数为0x19。答案:正确30. 在C语言中,转义字符'\n'表示一个换行符。答案:正确31. 执行“printf("%c",'F'-2);”语句后得到的输出结果为H。答案:错误32. 已知字符'C'的ASCII码为67,当执行“int x='C'+5;”语句后x的值为72。答案:正确33. 假定一个枚举类型的定义为“enum RB{ab,ac=3,ad,ae}x=ad;”,则x的值为2。答案:错误34. float的类型长度为8。答案:错误35. 在C语言中,常数28和3.26具有相同的数据类型。答案:错误36. 若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字const。答案:正确37. 使用const语句定义一个符号常量时,不必对它进行初始化。答案:错误38. 表达式45%13的值为3。答案:错误39. 假定x=5,则表达式2*x++的值为12。答案:错误40. 表达式(float)25/4的值为6。答案:错误41. 表达式x=x+1表示成增量表达式为++x。答案:正确42. 关系表达式(x!=0)的等价表达式为(x)。答案:正确43. 关系表达式x+y>5的相反表达式为x+y<=5。答案:正确44. 逻辑表达式(a>b || b==5)的相反表达式为(a>b && b==5)。答案:错误45. 若x=5,y=10,则x>y逻辑值为真。答案:错误46. 假定x=5,则执行“a=(x?10:20);”语句后a的值为10。答案:正确47. 带有随机函数的表达式rand()%20的值所在的区间范围是0~19。答案:正确48. 假定x=5,则执行“y=x++;”语句后,x的值为5。答案:错误49. 假定x=5,则执行“y=++x;”语句后,y的值为6。答案:正确50. 运算符优先级最高的是( )。A. =B. *=C. &&D. !=答案:!=51. 当处理特定问题时的循环次数已知时,通常采用的语句是( )。A. forB. whileC. do-whileD. switch答案:for52. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是( )。A. forB. ifC. doD. while答案:if53. for语句能够被改写成的语句是( )。A. 复合B. ifC. switchD. while答案:while54. 下面循环语句执行结束后输出的i值为( )。for(inti=0; in/2) {cout<A. n/2B. n/2+1C. n/2-1D. n-1答案:n/2+155. 在下面循环语句中,内层循环体S语句的执行总次数为( )。for(int i=0; iA. n2B. (n+1)/2C. n(n-1)/2D. n(n+1)/2答案:n(n+1)/256. 在下面的do循环语句中,其循环体被执行的次数为( )。int i=0; do i++; while(i*i<10);A. 4B. 3C. 5D. 2答案:457. 在下面的一维数组定义中,有语法错误的选项是( )。A. int a[]={1,2,3};B. int a={0};C. int a[];D. int a;答案:int a[];58. 在下面的二维数组定义中,语法正确的选项是( )。A. int a[];B. int a[];C. int a[]={{1,3,5},{2}};D. int a[](10);答案:int a[]={{1,3,5},{2}};59. 假定一个二维数组的定义语句为“int a={{3,4},{2,8,6}};”,则元素a的值为( )。A. 2B. 4C. 6D. 8答案:860. 假定一个二维数组的定义语句为“int a={{3,4},{2,8,6}};”,则元素a的值为( )。A. 0B. 4C. 8D. 6答案:061. 在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。答案:正确62. 在switch语句中,每个case和冒号之间的表达式只能是常量。答案:正确63. 为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句。答案:正确64. 在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置。答案:错误65. 在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口。答案:错误66. 假定一维数组的定义为“char* a;”,则该数组所含元素的个数大于8。答案:错误67. 假定二维数组的定义为“int a;”,则该数组所占存储空间的字节数为60。答案:正确68. 假定二维数组的定义为“char a;”,则该数组所含元素的个数为M+N。答案:错误69. 假定二维数组的定义为“double a;”,则每个数组元素的行下标取值范围在0~M-1之间。答案:正确70. 假定二维数组的定义为“double a;”,则每个数组元素的列下标取值范围在0~N之间。答案:错误71. 存储一个空字符串需要占用0个字节的存储空间。答案:错误72. 使用“typedef char BB;”语句定义标识符BB为含有10行50列的二维字符数组类型。答案:正确73. 存储字符'a'需要占用1个字节的存储空间。答案:正确74. 空字符串的长度为1。答案:错误75. 字符串"a:\\xxk\\数据"的长度为13。答案:错误76. 为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。答案:正确77. strcmp函数用于进行两个字符串之间的比较。答案:正确78. strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。答案:正确79. 一个二维字符数组a能够最多存储9个字符串。答案:错误80. 一个二维字符数组a能够存储的每个字符串的长度不超过20。答案:错误81. #include__ void main() {__ __int i,s=0;__ __for(i=1;i<=5;i++)s+=i*i;__ __printf("s=%d\n",s);__ } 答案:答案:s=5582. #include__ void main() {__ int i, s1=0, s2=0;__for(i=0;i<10;i++)__ if(i%2) s1+=i; else s2+=i;__ printf("%d%d\n",s1,s2);__ } 答案:答案:25 2083. #include__ void main() {__ __int n=6,y=1;__ while(n) y*=n--;__printf("y=%d\n",y);__ } 答案:答案:y=72084. #include__ const int M=20;__ void main()__ {__ int i,c2,c3,c5;__c2=c3=c5=0;__ for(i=1; i<=M; i++) {__ __if(i%2==0) c2++;__ if(i%3==0)c3++;__ if(i%5==0) c5++;__ }__ printf("%d %d %d\n",c2,c3,c5);__ } 答案:答案:10 6 485. #include__ void main()__ {__ int i,s;__ for(i=1,s=0;i<10;i++) {__if(i%3==0) continue;__ s+=i;__ }__ printf("%d\n",s);__ } 答案:答案:2786. #include__ void main() {__ int a={12,39,26,41,55,63,72,40};__ inti, i1=0, i2=0;__ for(i=0;i<8;i++)__ if(a%2==1) i1++; else i2++;__printf("%d %d\n",i1,i2);__ } 答案:答案:4 487. #include__ int a={4,5,6,15,20,13,12,7,8,9};__ void main()__ {__int i,s=0;__ for(i=0; i<10; i++) {__ switch(a%4) {__ case 0:s+=a;break;__case 1:s+=a;break;__ case 2:s+=a;break;__ default:s+=a;break;__}__ }__ for(i=0; i<4; i++) printf("%d ",s);__ } 答案:答案:44 27 6 2288. #include__ void main() {__ char a[]="abcdbfbgacd";__ inti1=0, i2=0, i=0;__ while(a) {__ if(a=='a') i1++;__ if(a=='b') i2++;____i++;__ }__ printf("%d %d %d\n",i1,i2,i);__ } 答案:答案:2 3 1189. #include__ void main() {__ inta={{1,2,7,8},{5,6,10,6},{9,12,3,4}};__ int m=a;__ int i,j;__for(i=0; i<3; i++)__ for(j=0; j<4; j++)__ if(a>m) m=a;__printf("%d\n",m);__ } 答案:答案:1290. 在下面的保留字中,不能作为函数的返回值类型的是( )。A. voidB. intC. enumD. long答案:enum91. 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。A. 1B. 2C. 4D. 8答案:492. 假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。A. aB. *a++C. *aD. *(a+1)答案:*a++93. 用calloc函数创建具有10个整型元素的一维数组的正确语句是( )。A. int *p=calloc(10,2);B. int *p=calloc(10);C. int *p=calloc(10,4);D. int *p=malloc(10)答案:int *p=calloc(10,4);94. 假定k是一个double类型的变量,则定义变量p的正确语句为( )。A. double p=&k;B. int *p=&k;C. double &p=*k;D. char *p="Thank you!";答案:char *p="Thank you!";95. 若有语句为“int a, x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为( )。A. x=pa;B. x=*(a+3);C. x=a;D. x=*pa+3;答案:x=*pa+3;96. 假定有语句为“int b; int *pb;”,则下面不正确的赋值语句为( )。A. pb=b;B. pb=&b;C. pb=b+2;D. pb=b;答案:pb=b;97. 已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为( )。A. free(p);B. free p;C. free(*p);D. free;答案:free(p);98. 在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的( )。A. 原型语句B. 参数表C. 函数名D. 返回类型答案:原型语句99. 假定一个函数定义为“static int f1(int x,int y){return x+y;}”,该函数名称为( )。A. staticB. intC. f1D. return答案:f1100. 假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a,则下面函数调用表达式不正确的是( )。A. ff(a)B. ff(a)C. ff(a+3)D. ff(&a)答案:ff(a)101. 假定一个函数的二维数组参数说明为char w[],与之等价的指针参数说明为( )。A. char (*w)B. char *wC. char (*w)ND. char**a答案:char (*w)102. 在C语言中,一个函数由函数头和函数体组成。答案:正确103. 在函数模块之外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。答案:正确104. 如果一个函数只允许同一程序文件中的函数调用,则不应在该函数定义的开始前加上保留字static。答案:错误105. 如果在一个函数体中又出现对自身函数的调用,此种函数调用被称为递归调用。答案:正确106. 调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的系统头文件。答案:正确107. 函数形参变量不属于局部变量。答案:错误108.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为46。答案:错误109. 假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为25。答案:错误110. 假定p所指对象的值为25,p+1所指对象的值为46,则执行*(p++)运算后,p所指对象的值为46。答案:正确111. 假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i字节。答案:正确112. 若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为(char*)p。答案:正确113. 假定一个数据对象为int*类型,则指向该对象的指针类型仍为int*类型。答案:错误114.假定x为一个简单变量,则&x表示x的地址。答案:正确115. 若p指向x,则*p与x的值不同。答案:错误116.NULL是一个符号常量,通常作为空指针值,它代表的值为0。答案:正确117.在下面的函数声明语句中,存在着语法错误的是( )。A. AA(int a, int b)B. AA(int, int)C. AA(int a; int b)D. AA(int a, int)答案:AA(int a; int b)118.假定变量m定义为“int m=7;”,则下面正确的语句为( )。A. int p=&m;B. int *p=&m;C. int &p=*m;D. int *p=m;答案:int *p=&m;119. 假定一个函数的数组参数说明为char a[],与之等价的指针参数说明为( )。1BA. char aB. char* aC. char& aD. char**a答案:char* a120. 在C语言中,一条简单语句的结束符是( )。A. 逗号B. 冒号C. 分号D. 空格答案:分号121.在C语言中,每条复合语句的开始标记字符为( )。A. [B. (C. {D. <答案:{122.不符合C语言规定的复合语句是( )。A. {}B. {;}C. {x=0;}D. {y=10}答案:{y=10}123.C语言中的选择类语句有两条,它们是( )。A. if和switchB. if和elseC. switch和caseD. else和case答案:if和switch124. C语言中的循环类语句有3条,它们是( )。A. for,if,whileB. for,while,doC. while,do,switchD. for,break,do答案:for,while,do125.C语言中的跳转类语句有四条,它们是goto,return和( )。A. break,constB. static,continueC. break,continueD. while,extern答案:break,continue126. 当不需要函数返回任何值时,则所使用的返回类型为( )。A. intB. unionC. voidD. Void答案:void127. 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和( )。A. 表达式B. 语句C. 函数体D. 参数表答案:参数表128. 在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为( )。A. #cludeB. #constC. #includeD. #defile答案:#include129.在#include预处理命令中,不可以包含( )。A. 系统头文件B. 程序文件C. 用户头文件D. 目标文件答案:目标文件130. 在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为( )。A. 5B. 6C. 4D. 2答案:6131. 在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为( )。A. 5B. 6C. 4D. 2答案:2132. 9.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为( )。A. 6B. 4C. 3D. 2答案:3133. 在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为( )。A. charB. intC. floatD. double答案:float134. 11.在scanf()函数调用的格式字符串中,若使用格式符为“%Lf”,则对应输入的数据类型为( )。A. charB. intC. floatD. double答案:double135. 12.每个C程序文件在编译时可能出现有严重性错误,其对应的标识符号为( )。A. warningB. errorC. warnD. err答案:error136. 在VC++环境下,为运行一个程序而建立的工作区文件的扩展名为( )。A. objB. exeC. dswD. dsp答案:dsw137. 在C语言中,作为标识符的第一个字符可以是英文字母、数字或下划线字符。答案:错误138.在C语言中,标识符中的非首字符可以是英文字母、数字或下划线字符。答案:正确139.3.当需要在程序文件中引入用户定义的头文件时,使用的不是#include命令。答案:错误140.4.使用#include命令只能包含头文件,不能包含其他任何文件。答案:错误141. 注释语句的内容只会出现在源程序文件中,不会出现在编译后而生成的目标代码文件中。答案:正确142. 6.一条注释语句的最后必须使用分号结束。答案:错误143. 源程序文件被编译成目标文件后,其目标文件中也存在有对应的注释内容。答案:错误144.源程序文件被编译成目标文件后,源程序文件中的注释语句仍然存在。答案:正确145.9.在一条注释语句中,除了注释内容外,不需要使用任何特定的标记符。答案:错误146. 多行注释语句的开始和结束标记符可以互换使用。答案:错误147.11.在执行“printf("%5d",x);”语句时,其输出的x的值所占用的显示宽度将大于等于5个字符位置。答案:正确148.12.在执行“printf("%6d",x);”语句时,其输出的x的值所占用的显示宽度将小于6个字符位置。答案:错误149. 13.在执行“printf("%2f",x);”语句时,其输出的x的值所占用的显示宽度将大于等于8个字符位置。答案:错误150.14.在“scanf("%d %d",&x,&y);”语句中,x和y变量均为整数类型。答案:正确151.15.在“scanf("%s",x);”语句中,x变量不是字符指针类型。答案:错误152.16.在“scanf("%d-%d=%d",&x,&y,&z);”语句中,有语法错误。答案:错误153. 17.在C语言程序上机操作的过程中,连接程序的操作步骤之前是编译程序。答案:正确154. 18.在C语言程序上机操作的过程中,需要对每个用户头文件进行单独的编译操作。答案:错误155. 19.在C语言程序上机操作的过程中,不能够对用户头文件进行单独的编译操作。答案:正确156. 要定义a和b为两个整型变量,则使用的定义语句为()。A. int a;b;B. int a,b;C. int a b;D. int a:b;答案:int a,b;157.运算符优先级最高的是( )。A. %B. ||C. ++D. /答案:++158.下列数值中最小值是( )。A. 28/8B. 35/3C. 28%8D. 35%3答案:35%3159. 已知x的初值为15,则下列各表达式中的最小值为( )。A. x%=20B. x+=10C. x/=2D. x*=2答案:x/=2160.若x=5,y=10,则计算y*=++x表达式后,y的值为( )。A. 50B. 40C. 60D. 55答案:60161. 设x和y均为逻辑值,则x && y为真的条件是( )。A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假答案:它们均为真162.x<=10的相反表达式为( )。A. x>=10B. x>10C. x!=10D. x>0答案:x>10163.表达式(float)25/4的值为6。答案:错误164.表达式x=x+y表示成复合赋值表达式为x=+y。答案:错误165.增量表达式++y表示成赋值表达式为y=y+1。答案:正确166.表达式sizeof(25)的值等于4。答案:正确167. 逻辑表达式(x>3 && x<10)的相反表达式为(x<=3 || x>=10)。答案:正确168. 数值常量0x62的表示方式为( )。A. 十进制B. 八进制C. 十六进制D. 二进制答案:十六进制169.在C语言中,表示换行符的转义字符为( )。A. \fB. \rC. \nD. \m答案:\n170.字符串"It\'s\'"中包含的字符个数为( )。A. 8B. 6C. 7D. 5答案:5171.执行“printf("%c",'B'+2);”语句后得到的输出结果为( )。A. AB. BC. CD. D答案:D172.常数3.26是双精度浮点数。答案:错误173.常数3.26f是单精度浮点数。答案:错误174. 浮点数包括单精度浮点数和双精度浮点数两种。答案:正确175. 在一个数组中,数组元素a前面的元素个数为( )。A. iB. i+1C. i-1D. 2*i答案:i176. 假定一维数组的定义为“char a;”,则该数组所占用的存储空间的字节数为( )。A. 8B. 16C. 64D. 32答案:8177. 对于一维数组元素,数组名后使用一对中括号。答案:正确178. 二维数组元素带有一个下标。答案:错误179. 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大()。A.1个字节B. 2个字节C. 4个字节D. 8个字节答案:1个字节180.假定变量m定义为“int m=7;”,则下面定义语句格式正确的是( )。A. int p=&m;B. int *p=&m;C. int &p=*m;D. int *p=m;答案:int *p=&m;181. 假定一个数据对象为int*类型,则指向该对象的指针类型为( )。A. intB. int*C. int**D. int***答案:int**182. 在定义指针变量的语句中,最前面的类型关键字仍然允许是指针类型。答案:正确183. 在定义指针变量的语句“int *p,**pp;”中,p和pp具有相同的指针类型。答案:错误184. 假定p是一个指向数据对象的指针,则通过p表示该数据对象为()。A. p*B. p&C. &pD. *p答案:*p185.若p指向x,则与x的等价表示为( )。A. pB. *pC. *xD. &x答案:*x186. 假定p所指对象的值为25,p+1所指对象的值为42,则表达式*++p的值为42。答案:正确187. 假定p所指对象的值为25,p-1所指对象的值为42,则执行*p--运算后,p所指对象的值为42。答案:错误188. 对于每个进行动态存储分配的函数,其返回值类型为( )。A. charB. char*C. voidD. void*答案:void*189.已知“int *p=calloc(24,sizeof(int));”,则p所指向的动态内存空间中,能够存储整型元素的个数为()。A. 6B. 12C. 58D. 24答案:24190. 在程序文件中要进行动态存储分配和释放,则需要引入的系统头文件是stdio.h。答案:错误191.进行动态存储分配的malloc()函数带有一个参数。答案:正确192.下面正确的函数原型语句是( )A. int Function(void a);B. void Function (int);C. int Function(a);D. void int(double a);答案:int Function(void a);193. 函数调用func(2+x,4*y,5)中所含实参的个数为( )。A. 2B. 3C. 4D. 5答案:3194. 在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的( )。A. 原型语句B. 参数表C. 函数名D. 返回类型答案:原型语句195. 在一个函数定义中,参数表中的参数类型可以为void类型。答案:错误196. 在一个函数定义中,参数表中的参数定义之间是采用分号分开的。答案:错误197. 在一个函数定义中,函数体是一条复合语句。答案:正确198. 在函数体中把出现调用自身函数的情况称为( )。A. 非递归调用B. 直接递归调用C. 间接递归调用D. 末尾递归调用答案:直接递归调用199. 在函数定义的参数表中,也可以使用函数参数,假定一个函数参数原型为int ff(int),则等价的函数指针说明为()。A. int *ff(int)B. int ffC. int *ffD. int (*ff)(int)答案:int (*ff)(int)200. 在函数定义中,存在着调用自身函数的函数调用表达式,则称此函数为递归函数。答案:正确201. 在递归函数的每次递归调用中,对于参数表中的每个形参,得到的值都相同。答案:错误202. 在C语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。答案:错误203. 在下面的函数声明语句中存在着语法错误的是( )。A. AA(int a, int b)B. AA(int, int)C. AA(int a; int b)D. AA(int a, int)答案:AA(int a; int b)204. 如果一个函数定义仅允许为所在的程序文件调用,则应在该函数定义的最前面添加的关键字为( )。A. staticB. autoC. defaultD. extern答案:static205.假定一个函数定义为“extern char* f1(char*x){return x;}”,表示该函数作用域的关键字为()。A. externB. char*C. charD. int答案:extern206. 假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a,则下面函数调用表达式不正确的是( )。A. ff(a)B. ff(a)C. ff(a+3)D. ff(&a)答案:ff(a)207.假定一个函数原型语句为“int f1(int a[],int n);”,与数组参数等价的表示为( )。A. int** aB. int aC. int& aD. int* a答案:int* a208.假定一个函数的参数说明为const int a,则在函数体中不能进行的操作是( )。A. printf("%d",a)B. a==0C. intx=aD. a=10答案:a=10209.在函数体中定义的变量具有( )。A. 全局作用域B. 局部作用域C. 文件作用域D. 函数作用域答案:局部作用域210.在函数外定义的变量,若带有作用域关键字static,则它具有( )。A. 函数作用域B. 局部作用域C. 全局作用域D. 文件作用域答案:文件作用域211.在函数体中定义一个静态变量时,选用的存储属性关键字为( )。A. staticB. externC. autoD. register答案:static212.假定一个函数原型为“void ff(int a[],int n)”,则对应的函数指针类型为( )。A. void(*ff)(int*a,int)B. int (*ff)(int*a,int)C. void*ff(int*a,int)D. *ff(int[],int)答案:void(*ff)(int*a,int)213.函数定义格式中的参数表被称为实参表。答案:错误214.函数定义格式中的参数表被称为形参表。答案:正确215.函数调用参数表中的每个实参可以是表达式。答案:正确216.对于标识为static属性的变量,若没有对它进行初始化,则默认的初值为0。答案:正确217.在函数体中定义一个变量时,若不选用任何存储属性关键字进行标识,则它为静态变量。答案:错误218.在C语言程序中,主函数也可以成为递归函数。答案:错误219.在C语言程序中,除主函数外的任何用户定义的函数都可以是递归函数。答案:正确220.void xk9(int x) {__ char a;__ int i=0,rem;__ do{__ rem=x%8; x=x/8;__ a=48+rem;__ //'0'字符的ASCII码为48__ __i++;__ }while(x!=0);__ while(i>0) printf("%c",a[--i]);__printf("\n");} 答案:答案:八221.int wr1(int a[], int n, int x) {__ int i;__for(i=0;i答案:查找(顺序查找)222.void wr4(int a[], int b[], int n) {__ int i;__b=b=0;__ for(i=0;i答案:奇数223.#includeint wr11(int a[], int n, int k) {__ inti,c=0;__ for(i=0;i=k) c++;__ return c;}void main() {__ inta={9,5,7,12,4,8,15,10,15};__ int c=wr11(a,9,8);__printf("%d\n",c);} 答案:答案:6224.#includeint c=15;void main() {__ int a=10, b=20;__{ int b=a+15; printf("%d ",a+b+c);}__printf("%d\n",a+b+c);} 答案:答案:50 45225.#includevoid fn2(int* a, int* b) {__ int x=*a;__*a=*b; *b=x;}void main() {__ int x=15, y=26;__ fn2(&x,&y);__printf("%d %d\n",x,y);} 答案:答案:26 15226.#includeint fn1() {__ int x=0;__ static int y=0;__x++; y++;__ return x+y;}void main() {__ int x1=fn1();__ int x2=fn1();__printf("%d %d\n",x1, x2);} 答案:答案:2 3227.int ff3(int m, int n, int b) {__ if(m答案:ff3(m,n,++b)228.假定一个链表中结点的结构类型为“struct AA{int data, struct AA*next;};”,则next数据成员的类型为( )。A. struct AAB. struct AA*C. AA*D. int答案:struct AA*229.假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为p->next=f和()。A. p=f->nextB. f=p->nextC. f=pD. f->next=p提示:答案为C。向表头指针为f的一个链表中插入表头结点p时,应通过p->next=f操作使原表头结点成为p的后继结点,再通过f=p操作使表头指针f指向新插入的表头结点(即p结点)。答案:f=p230.在一个链表中,表头结点无前驱结点,表尾结点无后继结点。答案:正确231.在一个链表中,表尾结点指针域的值为空(NULL)。答案:正确232.访问一个链表时,必须从表头指针出发,依次访问每个结点。答案:正确233.假定结构类型为“struct strNode{char name; structstrNode *next;};”,下面函数能够遍历以f为表头指针的单链表,请在横线处填写合适内容。void xb1(struct strNode* f) { while(f!=NULL){ printf("%s ",f->name); f= } printf("\n");}答案:f->next234.此程序运行后,得到的输出结果为 。 #include#includestruct intNode{int value; struct intNode *next;};void main(void) { struct intNodex={32,NULL}, y={45,&x}, *r; for(r=&y; r!=NULL; r=r->next)printf("%d ",r->value); printf("\n");}答案:45 32235.假定结构类型为“struct strNode{char name; structstrNode *next;};”,下面函数能够建立并返回以f为表头指针的单链表,请在横线处填写合适内容。 struct strNode* xb2() { structstrNode *f=NULL,*r; char a; printf("输入每个字符串,用\"-1\"作为结束标志\n"); do{ scanf("%s",a); if(strcmp(a,"-1")==0) break; r=malloc(sizeof(structstrNode)); strcpy(r->name,a); r->next=f; } while(1); return f;}答案:f=r236.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。A. mainB. MAINC. nameD. function答案:main237.每个C语言程序文件的编译错误分为( )类。A. 1B. 2C. 3D. 4答案:2238.字符串"a+b=12\n"的长度为( )。A. 6B. 7C. 8D. 9答案:7239.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句。A. forB. ifC. doD. while答案:if240.在下面的do-while循环语句中,其循环体语句被执行的次数为( )。 int i=0; doi++; while(i<10);A. 4B. 3C. 5D. 10答案:10241.将两个字符串连接起来组成一个字符串时,选用的函数为( )。A. strlen()B. strcap()C. strcat()D. strcmp()答案:strcat()242.若用数组名作为函数调用的实参,传递给形参的是( )。A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数答案:数组的首地址243.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a的地址比a数组的首地址大( )个字节。A. 4B. 8C. 16D. 32答案:16244.假定s被定义为指针类型char *的变量,初始指向的字符串为"Helloworld!",若要使变量p指向s所指向的字符串,则p应定义为( )。A. char *p=s;B. char *p=&s;C. char *p;p=*s;D. char *p; p=&s;答案:char *p=s;245.从一个数据文件中读入以换行符结束的一行字符串的函数为( )。A. gets()B. fgets()C. getc()D. fgetc()答案:fgetc()246.C语言中的每条简单语句以 作为结束符。答案:分号247.C程序中的所有预处理命令均以 字符开头。答案:#248.当不需要函数返回任何值时,则应使用 标识符来定义函数类型。答案:void249.十进制数25表示成符合C语言规则的十六进制数为 。答案:0x19250.假定不允许使用逻辑非操作符,则逻辑表达式a>b || b==5的相反表达式为 。答案:a<=b && b!=5251.执行“typedef int DataType;”语句后,在使用int定义整型变量的地方也可以使用 来定义整型变量。答案:DataType252.假定一维数组的定义语句为“char* a;”,则该数组a所占存储空间的字节数为 。答案:32253.假定二维数组的定义语句为“double a;”,则该数组a的列下标的取值范围在0到 之间。答案:N-1254.存储一个空字符串需要占用 个字节。答案:1255.strcpy函数用于把一个字符串 到另一个字符数组空间中。答案:拷贝# 复制256.程序的编译单位是一个 。答案:程序文件257.假定a是一个一维数组,则a的指针访问方式为 。答案:*(a+i)258.执行int *p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为 。答案:*p259.C语言源程序文件的缺省扩展名为( )。A. cppB. exeC. objD. C答案:C260.设x和y均为逻辑值,则x && y为真的条件是x和y( )。A. 均为真B. 其中一个为真C. 均为假D. 其中一个为假答案:均为真261.在下列的符号常量定义中,正确的定义格式为( )。A. #define M1B. const int M2 20C. #define M3 10D. const char mark答案:#define M3 10262.for循环语句能够被改写为( )语句。A. 复合B. ifC. switchD. while答案:while263.在下面的一维数组定义中,错误的定义格式为( )。A. int a[]={1,2,3};B. int a={0};C. int a[];D. int a;答案:int a[];264.下面的函数原型声明中存在语法错误的是( )。A. void AA(int a, int b);B. void AA(int, int);C. void AA(int a; int b;);D. void AA(int a, int);答案:void AA(int a; int b;);265.假定a为一个数组名,则下面存在错误的表达式为( )。A. aB. *a++C. *aD. *(a+1)答案:*a++266.假定有定义为“int a, x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为()。A. x=paB. x=*(a+3)C. x=aD. x=*pa+3答案:x=*pa+3267.char类型的长度为________个字节。A. 1B. 2C. 3D. 4答案:1268.向一个二进制文件中写入信息的函数为( )。A. fgets()B. fputs()C. fread()D. fwrite()答案:fwrite()269.C语言中的每条复合语句以 作为结束符。答案:}# 右花括号270.在#include命令中所包含的文件,可以是头文件,也可以是 文件。答案:程序271.十进制数56对应的八进制数为 。答案:070272.假定x=5,则表达式12+x++的值为 。答案:17273.增量表达式++y表示成赋值表达式为 。答案:y=y+1274.若x=5,y=6,则x>y的值为 。答案:0# 假275.假定二维数组的定义为“int a;”,则该数组所含元素的个数为 。答案:20276.执行“typedef int ABC;”语句把ABC定义为具有20个整型元素的 类型。答案:数组277.strcat()函数用于 两个字符串。答案:连接278.假定p所指对象的值为30,p+1所指对象的值为24,则*p++的值为 。答案:30279.若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为 。答案:(char*)p280.NULL是一个符号常量,通常作为空指针值,它对应的值为 。答案:0281.假定要动态分配一个类型为struct Worker的对象,并由r指针指向这个对象,则使用的表达式为=malloc(sizeof(struct Worker))。答案:struct Worker* r282.由C语言源程序文件编译而成的目标文件的默认扩展名为( )。A. cppB. cC. exeD. obj答案:obj283.设x和y均为逻辑值,则x || y为假的条件是( )。A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假答案:它们均为假284.枚举类型中的每个枚举常量的值都是一个( )。A. 整数B. 浮点数C. 字符D. 记录答案:整数285.循环语句“for(i=0; i<=n; i++) S;”中循环体S被执行的次数为( )。A. 1B. n-1C. nD. n+1答案:n+1286.假定有定义为“int a={{1,3,5},{2,8}};”,则a的值为( )。A. 3B. 5C. 2D. 8答案:8287.在下面的选项中,不能作为函数值返回类型的是( )。A. voidB. intC. newD. long答案:new288.假定x的值为4,y的值为6,则表达式x++*++y的值为( )。A. 28B. 24C. 30D. 35答案:28289.用calloc函数创建具有10个整型元素的动态存储空间的正确调用是( )。A. calloc(10,sizeof(char))B. calloc(10)C. calloc(10,sizeof(int))D. calloc(sizeof(int),10,)答案:calloc(10,sizeof(int))290.假定有定义“int b, *pb;”,则不正确的赋值为( )。A. pb=bB. pb=bC. pb=b+4D. pb=&b答案:pb=b291.标准输入设备的文件流标识符是( )。A. stderrB. stdinC. stdoutD. stdio答案:stdin292.执行“printf("%c",'A'+3);”语句后得到的输出结果为 。答案:D293.short int类型的长度为 。答案:2294.用类型关键字表示十进制常数3.26f的类型为 。答案:float295.假定y=5,则表达式--y*3的值为 。答案:12296.逻辑表达式(x==0 && y>5)的相反表达式为 。答案:(x!=0 || y<=5) 或:(x || y<=5)297.若x=5,y=10,则x!=y的逻辑值为 。答案:1# 真298.假定二维数组的定义为“int a;”,则该数组所占存储空间的字节数为 。答案:72299.使用“typedef char BB;”语句定义 为含有M行N列的二维字符数组类型。答案:BB300.字符串"a:\\xxk\\数据"的长度为 。答案:11301.假定p所指对象的值为20,p+1所指对象的值为30,则*++p的值为 。答案:30302.假定一个数据对象为int*类型,则指向该对象的指针类型为 。答案:int**303.假定一个结构类型的定义为 “struct A{int a,b; A* c;};”,则该类型的长度为 。答案:12304.假定要访问一个结构对象x中的数据成员a,则表示方式为 。答案:x.a305.由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。A. cppB. exeC. objD. c答案:exe306.设有两条语句为“int a=10; a+=a*a;”,则执行结束后,a的值为( )。A. 10B. 100C. 110D. 20答案:110307.带有随机函数调用的表达式rand()%50的值在( )区间内。A. 1~49B. 1~50C. 0~49D. 0~50答案:0~49308.for循环语句“for(i=0; iA. (n+1)/2B. n/2+1C. n/2-1D. n-1答案:(n+1)/2309.在下列的字符数组定义中,存在语法错误的是( )。A. char a="abcdefg";B. char a[]="x+y=55.";C. char a={'1','2'};D. char a='5';答案:char a='5';310.若有一个函数原型为“double *function()”,则它的返回值类型为( )。A. 实数型B. 实数指针型C. 函数指针型D. 数组型答案:实数指针型311.在C语言中,所有预处理命令都是以( )符号开头的。A. *B. #C. &D. @答案:#312.假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行*p++后,p所指数据单元的值为()。A. 40B. 30C. 70D. 10答案:40313.若要使p指向二维整型数组a,则p的类型为( )。A. int *B. int **C. int *D. int(*)答案:int(*)314.表示文件结束符的符号常量为( )A. eofB. EofC. EOFD. feof答案:EOF315.一个函数定义由 和函数体两部分组成。答案:函数头316.执行“printf("%c",'F'-3);”语句后得到的输出结果为 。答案:C317.int类型的长度为 。答案:4318.表达式(float)25/4的值为 。答案:6.25319.若x=5,y=10,则x<=y的逻辑值为 。答案:1# 真# 1(真)# 真(1)320.作为语句标号使用的case和default只能用于 语句的定义体中。答案:switch# 开关# 分情况321.在程序中执行到 语句时,将结束所在函数的执行过程,返回到调用该函数的位置。答案:return# 返回322.假定二维数组的定义为“char a;”,则该数组所含元素的个数为 。答案:M*N323.存储字符'a'需要占用存储器的 个字节空间。答案:1324.用于存储一个长度为n的字符串,需要的字符数组的长度至少为 。答案:n+1325.假定p所指对象的值为30,p+1所指对象的值为46,则执行表达式(*p)++后,p所指对象的值为 。答案:31326.假定p是一个指向整数对象的指针,则用 表示该整数对象。答案:*p327.假定一个结构类型的定义为“struct B{int a; char* b;};”,则该类型的理论长度为。答案:24328.程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用( )符号作为分隔符。A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车答案:空格或回车329.逻辑表达式(x>0 && x<=10)的相反表达式为( )。A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>10答案:x<=0 || x>10330.当处理一个问题时的循环次数已知时,最好采用( )循环来解决。A. forB. whileC. do-whileD. switch答案:for331.假定i的初值为0,则在循环语句“while(iA. n-1B. nC. n+1D. n/2答案:n332.假定一个二维数组的定义语句为“int a={{3,4},{2,8,6}};”,则元素a的值为()。A. 2B. 4C. 6D. 8答案:6333.在下列选项中,不正确的函数原型格式为( )。A. int Function(int a);B. int Function(int a);C. int Function(a);D. void int(double* a);答案:int Function(a);334.假定p是一个指向double类型的数据指针,则p+1所指向的数据的地址比p所指向的数据的地址大( )个字节。A. 1B. 2C. 4D. 8答案:4335.假定有一条定义语句为“int m=7, *p;”,则给p赋值的正确表达式为( )。A. p=mB. p=&mC. *p=&mD. p=*m答案:p=&m336.假定指针变量p的定义语句为“int *p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为()。A. free(p)B. delete(p)C. free(*p)D. free(&p)答案:free(p)337.C语言中的系统函数fopen()是( )一个数据文件的函数。A. 读取B. 写入C. 关闭D. 打开答案:打开338.用于输出表达式值的标准输出函数的函数名是 。答案:printf339.每个C语言程序文件在编译时可能出现有致命性错误,其对应的标识符为 。答案:error340.已知'A'~'Z'的ASCII码为65~90,当执行“int x='C'+6;”语句后x的值为 。答案:73341.表达式(int)24.6的值为 。答案:24342.假定不允许使用逻辑非操作符,则关系表达式x+y>5的相反表达式为 。答案:x+y<=5343.假定x=15,则执行“a=(x?10:20);”语句后a的值为 。答案:10344.假定一维数组a的定义语句为“char* a;”,则该数组所占存储空间的字节数为 。答案:4*M345.存储字符串"a"需要至少占用存储空间中的 个字节。答案:2346.strlen()函数用于计算一个字符串的 。答案:长度347.在C语言中,一个函数定义由函数头和 这两个部分组成。答案:函数体348.假定p所指对象的值为25,p+1所指对象的值为52,则执行表达式*(p++)后,p所指对象的值为 。答案:52349.假定p是一个变量,则用 表示该变量的地址。答案:&p350.把间接访问表达式p->name改写成对应的直接访问表达式为 。答案:(*p).name351.C语言程序中的基本功能模块为( )。A. 表达式B. 标识符C. 语句D. 函数答案:函数352.逻辑表达式(x>0 || y==5)的相反表达式为( )。A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==5答案:x<=0 && y!=5353.循环体至少被执行一次的循环语句为( )。A. forB. whileC. do-whileD. 任一种循环答案:do-while354.假定n的值为5,则表达式n++的值为( )。A. 6B. 5C. 4D. 7答案:5355.假定一个二维数组a的定义为“int a={{3,4},{2,8,6}};”,则元素a的值为()。A. 0B. 2C. 4D. 6答案:0356.假定一个函数原型为“char* func(int n)”,则该函数的返回值类型为( )。A. intB. int*C. charD. char*答案:char*357.假定a为一个数组名,则元素a的指针访问方式为( )。A. a+iB. *(a+i)C. &a+iD. *a+i答案:*(a+i)358.假定有语句为“int *p=calloc(n+1,sizeof(int));”,则p所指向的动态数组中所包含的元素个数为()。A. 4*nB. n-1C. n+1D. n答案:n+1359.十进制数65表示成符合C语言规定的八进制数为 ( )。A. 065B. 081C. 101D. 0101答案:0101360.若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信息,则选用的打开方式字符串为()。A. "r+"B. "ab+"C. "rb+"D. "wb+"答案:"rb+"361.在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为 。答案:#include362.用于从键盘上为变量输入值的标准输入函数的函数名为 。答案:scanf363.假定一个枚举类型的定义为“enum RA{ab,ac,ad,ae};”,则ac的值为 。答案:1364.double类型的长度为 。答案:8365.执行“int x=45,y=16;printf("%d",x/y);”语句序列后得到的输出结果为。答案:2366.把表达式x=x+y转换成复合赋值表达式为 。答案:x+=y367.假定x的值为5,则执行“a=(!x? 10:20);”语句后a的值为 。答案:20368.假定一维字符指针数组a的定义为“char* a;”,则该数组占用的存储空间的字节数为 。答案:32369.假定二维数组的定义为“double a;”,则数组元素的行下标取值范围在 之间。答案:0~M-1370.空字符串的长度为 。答案:0371.在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它所赋的初值为 。答案:0372.若p指向x,则 与x的表示是等价的。答案:*p373.直接访问表达式(*fp).score所对应的间接访问表达式为 。答案:fp->score374.假定有“struct BOOK{char title; float price;};struct BOOK book;”,则不正确的语句为( )。A. struct BOOK *x=malloc(book);B. struct BOOK x={"C++Programming",27.0};C. struct BOOK *x=malloc(sizeof(structBOOK));D. struct BOOK *x=&book;答案:struct BOOK *x=malloc(book);375.在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是( )。A. 句点B. 冒号C. 分号D. 逗号答案:分号376.假定一个结构类型的定义为 “struct A{int a,b; double c;};”,则该类型的长度为()。A. 8B. 10C. 12D. 16答案:16377.假定一个结构类型的定义为 “struct D{int a; D* next;};”,则该类型的长度为()。A. 4B. 8C. 12D. 16答案:8378.假定要访问一个结构指针变量x中的数据成员a,则表示方法为( )。A. aB. x->aC. x(a)D. x{a}答案:x->a379.假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为()。A. p->next=fB. p->next=f和f=pC. f=p->nextD. f->next=p和f=p答案:p->next=f和f=p380.标准输入设备键盘的文件流标识符是( )。A. stdinB. stdoutC. stderrD. stdio答案:stdin381.表示文件结束符的符号常量为( )。A. eofB. EofC. EOFD. feof答案:EOF382.C语言中打开一个数据文件的系统函数为( )。A. fgetc()B. fputc()C. fclose()D. fopen()答案:fopen()383.从一个数据文件中读入以换行符结束的一行字符串的系统函数为( )。A. gets()B. fgets()C. getc()D. fgetc()答案:fgets()384.向一个二进制文件中写入信息的函数fwrite()带有的参数个数为( )。A. 1B. 2C. 3D. 4答案:4385.在C语言中,为只写操作打开一个文本文件的方式为( )。A. "a"B. "r+"C. "r"D. "w"答案:"w"386.在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。答案:错误387.在结构类型的定义中,允许出现结构类型不完整的超前定义。答案:正确388.定义结构类型的变量时,不能够同时进行初始化。答案:错误389.使用一个结构类型时,必须一起使用关键字struct和类型标识符。答案:正确390.假定一个结构类型的定义为 “struct A{int a,b; A* c;};”,则该类型的长度为12。答案:正确391.假定一个结构类型的定义为 “struct B{int a; char* b;};”,则该类型的长度为20。答案:错误392.执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。答案:正确393.执行malloc(sizeof(struct BB))函数调用时,得到的动态存储空间能够保存具有structBB结构类型的一个对象。答案:正确394.假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。答案:错误395.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b。答案:错误396.与结构成员访问表达式(*fp).score等价的表达式是fp->score。答案:正确397.在C语言中,对二进制文件的所有不同打开方式共有6种。答案:正确398.C语言中的标准输入和输出设备文件都属于字符文件。答案:正确399.在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。答案:错误400.在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。答案:正确401.一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。答案:正确402.C语言系统中提供一个用来描述文件属性的类型标识符为FILE。答案:正确403.每次只能向文本文件中写入一个字符,不能一次写入一个字符串。答案:错误404.对二进制文件进行读和写操作将使用相同的系统函数。答案:错误405.在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。答案:正确406.假定有“struct BOOK{char title; float price;} book;”,则正确的语句为()。A. struct BOOK x= &book;B. struct BOOK *x=&book;C. struct BOOK x=calloc(BOOK);D. struct BOOK *x=BOOK;答案:struct BOOK *x=&book;407.与结构成员访问表达式x.name等价的表达式为( )。A. x->nameB. &x->nameC. (&x)->nameD. (*x)->name答案:(&x)->name408.假定一个链表中结点的结构类型为“struct AA{int data, struct AA*next;};”,则next数据成员的类型为( )。A. struct AAB. struct AA*C. AAD. int答案:struct AA*
页:
[1]