yuyue-edu 发表于 2025-6-30 10:10:38

黑龙江开放大学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. forB. whileC. do-whileD. switch答案:for51. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是( )。A. forB. ifC. doD. while答案:if52. for语句能够被改写成的语句是( )。A. 复合B. ifC. switchD. while答案:while53. 下面循环语句执行结束后输出的i值为( )。for(inti=0; in/2) {cout<A. n/2B. n/2+1C. n/2-1D. n-1答案:n/2+154. 在下面循环语句中,内层循环体S语句的执行总次数为( )。for(int i=0; iA. n2B. (n+1)/2C. n(n-1)/2D. n(n+1)/2答案:n(n+1)/255. 在下面的do循环语句中,其循环体被执行的次数为( )。int i=0; do i++; while(i*i<10);A. 4B. 3C. 5D. 2答案:456. 在下面的一维数组定义中,有语法错误的选项是( )。A. int a[]={1,2,3};B. int a={0};C. int a[];D. int a;答案:int a[];57. 在下面的二维数组定义中,语法正确的选项是( )。A. int a[];B. int a[];C. int a[]={{1,3,5},{2}};D. int a[](10);答案:int a[]={{1,3,5},{2}};58. 假定一个二维数组的定义语句为“int a={{3,4},{2,8,6}};”,则元素a的值为( )。A. 2B. 4C. 6D. 8答案:859. 假定一个二维数组的定义语句为“int a={{3,4},{2,8,6}};”,则元素a的值为( )。A. 0B. 4C. 8D. 6答案:060. 在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。答案:正确61. 在switch语句中,每个case和冒号之间的表达式只能是常量。答案:正确62. 为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句。答案:正确63. 在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置。答案:错误64. 在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口。答案:错误65. 假定一维数组的定义为“char* a;”,则该数组所含元素的个数大于8。答案:错误66. 假定二维数组的定义为“int a;”,则该数组所占存储空间的字节数为60。答案:正确67. 假定二维数组的定义为“char a;”,则该数组所含元素的个数为M+N。答案:错误68. 假定二维数组的定义为“double a;”,则每个数组元素的行下标取值范围在0~M-1之间。答案:正确69. 假定二维数组的定义为“double a;”,则每个数组元素的列下标取值范围在0~N之间。答案:错误70. 存储一个空字符串需要占用0个字节的存储空间。答案:错误71. 使用“typedef char BB;”语句定义标识符BB为含有10行50列的二维字符数组类型。答案:正确72. 存储字符'a'需要占用1个字节的存储空间。答案:正确73. 空字符串的长度为1。答案:错误74. 字符串"a:\\xxk\\数据"的长度为13。答案:错误75. 为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。答案:正确76. strcmp函数用于进行两个字符串之间的比较。答案:正确77. strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。答案:正确78. 一个二维字符数组a能够最多存储9个字符串。答案:错误79. 一个二维字符数组a能够存储的每个字符串的长度不超过20。答案:错误80. #include__ void main() {__ __int i,s=0;__ __for(i=1;i<=5;i++)s+=i*i;__ __printf("s=%d\n",s);__ } 答案:答案:s=5581. #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 2082. #include__ void main() {__ __int n=6,y=1;__ while(n) y*=n--;__printf("y=%d\n",y);__ } 答案:答案:y=72083. #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 484. #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);__ } 答案:答案:2785. #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 486. #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 2287. #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 1188. #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);__ } 答案:答案:1289. 假定有“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);90. 在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是( )。A. 句点B. 冒号C. 分号D. 逗号答案:分号91. 假定一个结构类型的定义为 “struct A{int a,b; double c;};”,则该类型的长度为( )。A. 8B. 10C. 12D. 16答案:1692. 假定一个结构类型的定义为 “struct D{int a; D* next;};”,则该类型的长度为( )。A. 4B. 8C. 12D. 16答案:893. 假定要访问一个结构指针变量x中的数据成员a,则表示方法为( )。A. aB. x->aC. x(a)D. x{a}答案:x->a94. 假定一个链表的表头指针为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=p95. 标准输入设备键盘的文件流标识符是( )。A. stdinB. stdoutC. stderrD. stdio答案:stdin96. 表示文件结束符的符号常量为( )。A. eofB. EofC. EOFD. feof答案:EOF97. C语言中打开一个数据文件的系统函数为( )。A. fgetc()B. fputc()C. fclose()D. fopen()答案:fopen()98. 从一个数据文件中读入以换行符结束的一行字符串的系统函数为( )。A. gets()B. fgets()C. getc()D. fgetc()答案:fgets()99. 向一个二进制文件中写入信息的函数fwrite()带有的参数个数为( )。A. 1B. 2C. 3D. 4答案:4100.在C语言中,为只写操作打开一个文本文件的方式为( )。A. "a"B. "r+"C. "r"D. "w"答案:"w"101.在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。答案:错误102.在结构类型的定义中,允许出现结构类型不完整的超前定义。答案:正确103.定义结构类型的变量时,不能够同时进行初始化。答案:错误104.使用一个结构类型时,必须一起使用关键字struct和类型标识符。答案:正确105.假定一个结构类型的定义为 “struct A{int a,b; A* c;};”,则该类型的长度为12。答案:正确106.假定一个结构类型的定义为 “struct B{int a; char* b;};”,则该类型的长度为20。答案:错误107.执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。答案:正确108.执行malloc(sizeof(struct BB))函数调用时,得到的动态存储空间能够保存具有structBB结构类型的一个对象。答案:正确109.假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。答案:错误110.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b。答案:错误111.与结构成员访问表达式(*fp).score等价的表达式是fp->score。答案:正确112.在C语言中,对二进制文件的所有不同打开方式共有6种。答案:正确113.C语言中的标准输入和输出设备文件都属于字符文件。答案:正确114.在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。答案:错误115.在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。答案:正确116.一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。答案:正确117.C语言系统中提供一个用来描述文件属性的类型标识符为FILE。答案:正确118.每次只能向文本文件中写入一个字符,不能一次写入一个字符串。答案:错误119.对二进制文件进行读和写操作将使用相同的系统函数。答案:错误120.在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。答案:正确121.在下面的保留字中,不能作为函数的返回值类型的是( )。A. voidB. intC. enumD. long答案:enum122.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。A. 1B. 2C. 4D. 8答案:4123.假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。A. aB. *a++C. *aD. *(a+1)答案:*a++124.用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);125.假定k是一个double类型的变量,则定义变量p的正确语句为( )。A. double p=&k;B. int *p=&k;C. double &p=*k;D. char *p="Thank you!";答案:char *p="Thank you!";126.若有语句为“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;127.假定有语句为“int b; int *pb;”,则下面不正确的赋值语句为( )。A. pb=b;B. pb=&b;C. pb=b+2;D. pb=b;答案:pb=b;128.已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为( )。A. free(p);B. free p;C. free(*p);D. free;答案:free(p);129.在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的( )。A. 原型语句B. 参数表C. 函数名D. 返回类型答案:原型语句130.假定一个函数定义为“static int f1(int x,int y){return x+y;}”,该函数名称为()。A. staticB. intC. f1D. return答案:f1131.假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a,则下面函数调用表达式不正确的是()。A. ff(a)B. ff(a)C. ff(a+3)D. ff(&a)答案:ff(a)132.假定一个函数的二维数组参数说明为char w[],与之等价的指针参数说明为( )。A. char (*w)B. char *wC. char (*w)ND. char**a答案:char (*w)133.在C语言中,一个函数由函数头和函数体组成。答案:正确134.在函数模块之外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。答案:正确135.如果一个函数只允许同一程序文件中的函数调用,则不应在该函数定义的开始前加上保留字static。答案:错误136.如果在一个函数体中又出现对自身函数的调用,此种函数调用被称为递归调用。答案:正确137.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的系统头文件。答案:正确138.函数形参变量不属于局部变量。答案:错误139.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为46。答案:错误140.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为25。答案:错误141.假定p所指对象的值为25,p+1所指对象的值为46,则执行*(p++)运算后,p所指对象的值为46。答案:正确142.假定a是一个指针数组,则a+i所指对象的地址比a地址大4*i字节。答案:正确143.若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为(char*)p。答案:正确144.假定一个数据对象为int*类型,则指向该对象的指针类型仍为int*类型。答案:错误145.假定x为一个简单变量,则&x表示x的地址。答案:正确146.若p指向x,则*p与x的值不同。答案:错误147.NULL是一个符号常量,通常作为空指针值,它代表的值为0。答案:正确148.假定变量m定义为“int m=7;”,则下面正确的语句为( )。A. int p=&m;B. int *p=&m;C. int &p=*m;D. int *p=m;答案:int *p=&m;149.假定一个函数的数组参数说明为char a[],与之等价的指针参数说明为( )。1BA. char aB. char* aC. char& aD. char**a答案:char* a
页: [1]
查看完整版本: 黑龙江开放大学C语言程序设计作业与答案