国家开放大学《C语言程序设计》综合测试题参考答案.docx

上传人:国**** 文档编号:67375444 上传时间:2022-12-24 格式:DOCX 页数:36 大小:56KB
返回 下载 相关 举报
国家开放大学《C语言程序设计》综合测试题参考答案.docx_第1页
第1页 / 共36页
国家开放大学《C语言程序设计》综合测试题参考答案.docx_第2页
第2页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《国家开放大学《C语言程序设计》综合测试题参考答案.docx》由会员分享,可在线阅读,更多相关《国家开放大学《C语言程序设计》综合测试题参考答案.docx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、国家开放大学C语言程序设计综合测试题参考答案综合测试1一、单选题(每小题2分,共20分)1在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。a. functionb. namec. maind. MAIN2.每个C语言程序文件的编译错误分为( )类。a. 2b. 4c. 1d. 33.字符串a+b=12n的长度为( )。a. 7b. 9c. 6d. 84.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为( )语句。a. forb. whilec. ifd. do5.在下面的do-while循环语句中,其循环体语句被执行的次

2、数为( )。 int i=0; do i+; while(ib | b=5的相反表达式为(a=b & b!=5)。16.执行“typedef int DataType;”语句后,在使用int定义整型变量的地方也可以使用(DataType)来定义整型变量。17.假定一维数组的定义语句为“char* a8;”,则该数组a所占存储空间的字节数为(32)。18.假定二维数组的定义语句为“double aMN;”,则该数组a的列下标的取值范围在0到(N-1)之间。19.存储一个空字符串需要占用(1)个字节。20.strcpy函数用于把一个字符串(拷贝)到另一个字符数组空间中。21.程序的编译单位是一个(

3、程序文件)。22.假定a是一个一维数组,则ai的指针访问方式为((a+i))。 23.执行int *p=malloc(sizeof(int)操作得到的一个动态分配的整型对象为(p)。三、写出下列每个程序运行后的输出结果(每小题6分,共30分)24.#include void main() int x=5; switch(2*x) case 4: printf(%d ,x); break; case 7: printf(%d ,2*x); break; case 10: printf(%d ,3*x); break; default: printf(%s ,default); printf(%d

4、n,4*x); 运行结果:15 2025.#include void main() int f1,f2,i; f1=1; printf(%d ,f1); for(i=2;i5;i+) f2=3*f1+i; printf(%d ,f2); f1=f2; printf(n); 运行结果:1 5 18 5826.#include #define N 8 void main() int aN=12,39,26,41,55,63,72,40; int i, i1=0, i2=0; for(i=0;iN;i+) if(ai%2=1) i1+; else i2+; printf(%d %dn,i1,i2);

5、 运行结果:4 427.#include #include void main( ) char s15=5678912340; int i, n=strlen(s) ; for(i=0; in/2; i+) char c=si; si=sn-1-i; sn-1-i=c; printf(%sn,s); 运行结果:043219876528.#include int LB(int *a, int n) int i,s=1; for(i=0;ii) if(x%i=0) printf(%d ,i); i+; printf(n); 假定使用SF(70)调用该函数,则输出的所有整数依次为(2 5 7 10

6、14 35)。30.void QC(struct IntNode* f) /f为一个单链表的表头指针 while(f) printf(%d ,f-data); f=f-next; 假定结构类型IntNode的定义为: struct IntNode int data; struct IntNode *next; 该函数的功能为:(遍历并输出由表头指针f所指向的单链表中每个结点的data域的值。)五、按题目要求编写程序(每小题6分,共12分)31.编写一个程序,首先从键盘上输入10个整数到一维数组a10中,然后按照下标从大到小的次序输出数组a10中的所有元素值。假定数组a10和循环变量i均在主函数

7、中定义。参考答案:#includevoidmain()inta10,i; printf(从键盘输入10个整数:n);for(i=0;i=0;i-)printf(%d,ai);printf(n);32.编写一个程序,已知6a50,10b30,求出满足不定方程3a+2b=120的全部整数组解。如(20,30)就是其中的一组解。参考答案: #includevoidmain()inta,b;for(a=6;a=50;a+)for(b=10;by的值为(0)。17.假定二维数组的定义为“int a45;”,则该数组所含元素的个数为(20)。18.执行“typedef int ABC20;”语句把ABC定

8、义为具有20个整型元素的(数组)类型。19.strcat()函数用于(连接)两个字符串。20.假定p所指对象的值为30,p+1所指对象的值为24,则*p+的值为(30)。21.若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为((char )p)。22.NULL是一个符号常量,通常作为空指针值,它对应的值为(0)。23.假定要动态分配一个类型为struct Worker的对象,并由r指针指向这个对象,则使用的表达式为(struct Worker r)=malloc(sizeof(struct Worker)。三、写出下列每个程序运行后的输出结果(每小题6分,共30分)24.#incl

9、ude void main() int i,s=0; for(i=1;i7;i+) s+=i*i; printf(“s=%dn”,s); 输出结果:s=9125.#include #define N 6 void main() int i,aN=2,5,8,10,15,20; for(i=0; iN; i+) if(ai%4=0) printf(%d ,ai); printf(n); 输出结果:8 2026.#include #include void main() int i; unsigned int len; char* a5=stud,work,cadre,soldier,zan123

10、; len=strlen(a0); for(i=1; ilen) len=strlen(ai); printf(%dn,len); 输出结果:727.#include void main() int a,b; for(a=2,b=3; b30;) printf(%d %d ,a,b); a=a+b; b=a+b; 输出结果:2 3 5 8 13 2128.#include void LE(int* a, int* b) int x=*a; *a=*b; *b=x; void main() int x=5, y=8; printf(%d %d ,x,y); LE(&x,&y); printf(%

11、d %dn,x,y); 输出结果:5 8 8 5四、写出下列每个函数的功能(每小题6分,共12分)29.#include int SG(int x) /x为大于等于2的整数 int a=(int)sqrt(x); /sqrt(x)取x的平方根 int i=2; while(i=a) if(x%i=0) break; i+; if(idata; f=f-next; while(f) if(f-datax) x=f-data; f=f-next; return x; 假定struct IntNode的类型定义为: struct IntNode int data; struct IntNode* n

12、ext;函数功能:求出由f所指向的单链表中所有结点的最大值。五、按题目要求编写程序或函数(每小题6分,共12分)31.编写一个程序,输出35以内(含35)的、能够被4或者7整除的所有整数。参考答案: #includeVoid main()int i;for (i = 1; i =35; i+)if(i%4=0|i%7=0)printf(“%d”,i);printf(“n”);32.编写一个递归函数“int FF(int a, int n)”,求出数组a中所有n个元素之积并返回。参考答案: int FF(int a, int n) if(n=0) printf(“n值非法n”),exit(1);

13、 If(n=1) return an-1; else return an-1* FF(a, n-1);综合测试3一、单选题(每小题2分,共20分)1.由C语言源程序文件编译而成的目标文件的默认扩展名为( )。a. exeb. cppc. cd. obj2.设x和y均为逻辑值,则x | y为假的条件是( )。a. 它们均为假b. 其中一个为假c. 其中一个为真d. 它们均为真3.枚举类型中的每个枚举常量的值都是一个( )。a. 字符b. 整数c. 浮点数d. 记录4.循环语句“for(i=0; i5)的相反表达式为((x!=0 | y=5) 或:(x | y=5))。16.若x=5,y=10,则

14、x!=y的逻辑值为(1)。17.假定二维数组的定义为“int a36;”,则该数组所占存储空间的字节数为(72)。18.使用“typedef char BBMN;”语句定义(BB)为含有M行N列的二维字符数组类型。19.字符串a:xxk数据的长度为(11)。20.假定p所指对象的值为20,p+1所指对象的值为30,则*+p的值为(30)。21.假定一个数据对象为int*类型,则指向该对象的指针类型为(int)。22.假定一个结构类型的定义为 “struct Aint a,b; A* c;”,则该类型的长度为(12)。23.假定要访问一个结构对象x中的数据成员a,则表示方式为(x.a)。三、写出

15、下列每个程序运行后的输出结果(每小题6分,共30分)24.#include void main() int i, s=0; for(i=1;i+) if(s20) break; if(i%2) s+=i; printf(s=%dn,s); 输出结果:s=2525.#include void main() int a9=36,25,48,24,55,40,18,30,20; int i, b1, b2; b1=b2=a0; for(i=1; ib1) b1=ai; if(aib2) b2=ai; printf(%d %dn,b1,b2); 输出结果:55 1826.#include void S

16、B(char ch) switch(ch) case A: case a: printf(WW ); break; case B: case b: printf(GG ); break; default: printf(BB ); break; void main() char a1=a,a2=B,a3=f; SB(a1);SB(a2);SB(a3); printf(n); 输出结果:WW GG BB27.#include #define M 6 void main() int i,x; int aM=10,15,22,37,46,58; for(i=0; iM/2; i+) x=ai; ai

17、=aM-1-i; aM-1-i=x; printf(%d %dn,a2,a4); 输出结果:37 1528.#include struct Worker char name15; int age; float pay; ; void main() struct Worker x=wanghua,34,4250; struct Worker y, *p; y=x; p=&x; printf(%d %7.2fn, y.age+p-age, p-pay+300); 输出结果:68 4550.00四、写出下列每个函数的功能(每小题6分,共12分)29.int FH() int x,y=0; scanf

18、(%d,&x); while(x!=-1) y+=x; scanf(%d,&x); return y; 函数功能:求出从键盘上输入的一批整数的总和,以-1作为结束数据输入的标志。30.int FF(struct IntNode *f) /f为指向一个单链表的表头指针 int n=0; if(!f) return 0; while(f) n+; f=f-next; return n; 假定struct IntNode的类型定义为: struct IntNode int data; struct IntNode* next; ; 函数功能:求出并返回由f所指向的单链表中所有结点的个数。五、按题目要

19、求编写程序或函数(每小题6分,共12分)31.编写一个程序,利用while循环,计算并打印输出1+12+13+1n的值,其中正整数n值由键盘输入。假定求和变量用sum表示,计数变量用i表示,sum、i和n均定义为全局变量,sum和i的初值分别被赋予0和1。参考答案: #include int n,i=1; double sum=0;void main() scanf(“%d”,&n); while(i=n) sum+=(double)1/i+; printf(“sum=%1fn”,sum);32.根据函数原型“void DD(int a, int n, int MM)”编写函数定义,利用双重循

20、环查找并打印输出数组an中任何两个元素的值等于MM值的元素值。假定ai+aj等于MM,则输出格式为:(ai,aj)。参考答案:void DD(int a,int n,int MM) int I,j; for(i=0;in;i+) for(j=i+1;jn;j+) if(ai+aj=MM) printf(“%d,%dn”,ai,aj);综合测试4一、单选题(每小题2分,共20分)1.由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。a. objb. cppc. exed. c2.设有两条语句为“int a=10; a+=a*a;”,则执行结束后,a的值为( )。a. 110b. 20c.

21、 100d. 103.带有随机函数调用的表达式rand()%50的值在( )区间内。a. 049b. 050c. 150d. 1494.for循环语句“for(i=0; in; i+=2) S;”中循环体S语句被执行的次数为( )。a. n/2+1b. n-1c. (n+1)/2d. n/2-15.在下列的字符数组定义中,存在语法错误的是( )。a. char a20=abcdefg;b. char a=x+y=55.;c. char a10=5;d. char a15=1,2;6.若有一个函数原型为“double *function()”,则它的返回值类型为( )。a. 函数指针型b. 数组

22、型c. 实数型d. 实数指针型7.在C语言中,所有预处理命令都是以( )符号开头的。a. #b. &c. d. *8.假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行*p+后,p所指数据单元的值为( )。a. 40b. 30c. 10d. 709.若要使p指向二维整型数组a1020,则p的类型为( )。a. int(*)20b. int *c. int *d. int *2010.表示文件结束符的符号常量为( )a. feofb. EOFc. eofd. Eof二、填空题(每小题2分,共26分)11.一个函数定义由(函数头)和函数体两部分组成。12.执行“printf

23、(%c,F-3);”语句后得到的输出结果为(C)。13.int类型的长度为(4)。14.表达式(float)25/4的值为(6.25)。15.若x=5,y=10,则x=y的逻辑值为(1)。16.作为语句标号使用的case和default只能用于(switch)语句的定义体中。17.在程序中执行到(return)语句时,将结束所在函数的执行过程,返回到调用该函数的位置。18.假定二维数组的定义为“char aMN;”,则该数组所含元素的个数为(M N)。19.存储字符a需要占用存储器的(1)个字节空间。20.用于存储一个长度为n的字符串,需要的字符数组的长度至少为(n+1)。21.假定p所指对象

24、的值为30,p+1所指对象的值为46,则执行表达式(*p)+后,p所指对象的值为(31)反馈22.假定p是一个指向整数对象的指针,则用(p)表示该整数对象。23.假定一个结构类型的定义为“struct Bint a5; char* b;”,则该类型的理论长度为(24)。三、写出下列每个程序运行后的输出结果(每小题6分,共30分)24.#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 %dn,s1,s2); 输出结果:25 3025.#include cons

25、t int M=20; void main() int i=2; while(1) if(iM/2) break; if(M%i=0) printf(%d ,i); i+; printf(n); 输出结果:2 4 5 1026.#include int a7=4,5,6,15,20,12,9; void main() int i,s1,s2; s1=s2=0; for(i=0; i7; i+) switch(ai%2) case 0: s2+=ai;break; case 1: s1+=ai;break; printf(%d %dn,s1,s2); 输出结果:29 4227.#include void main() int a33=3,15,7,9,11,10,6,8,20; int i,*p=&a00; for(i=0;i10) printf(%d ,*p); p+; printf(n); 输出结果:15 11 2028.#include #include

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 考试试题 > 试题库答案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁