《C语言程序设计形考任务1-4综合.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计形考任务1-4综合.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、形考任务一 题目1 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。答案A.main 题目2 C语言源程序文件的缺省扩展名为()。答案D.c 题目3 由C语言目标文件连接而成的可执行文件的缺省扩展名为()。答案B.exe 题目4 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。答案D.空格或回车 题目5 每个C语言程序文件的编译错误被分为()。答案B.2类 题目6 不符合C语言规定的复合语句是()。答案D.y=10 题目7 C语言程序中的基本功能模块为()。答案D.函数 题目8 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。答案
2、C.参数表 题目9 在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。答案B.双引号 题目10 在C语言程序中,多行注释语句使用的开始标记符为()。答案B./*题目11 在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。答案A.char 题目12 在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。答案A.5 题目13 转义字符II表示的字符是()。答案C.反斜线 题目14 枚举类型中的每个枚举常量的值都是一个()。答案A.整数
3、 题目15 运算符优先级最高的是()。答案D.!=题目16 设x和y均为逻辑值,则x&y为真的条件是()。答案A.它们均为真 题目17 设有语句“int a=12;a+=a*a;”,则执行结束后,a的值为()。答案C.156 题目18 x0&x=10的相反表达式为()。答案A.x10 题目19 字符串“a+b=12n”的长度为()。答案B.7 题目20 在下列的符号常量定义中,错误的定义语句格式为()。答案C.const int M310;题目21 C语言中的每条简单语句以分号作为结束符。答案对 题目22 C语言中的每条复合语句以花括号作为结束符。答案错 题目23 在C语言程序中,在行尾使用注
4、释的开始标记符为一对单斜线字符。答案对 题目24 注释内容的开始所使用的标记符为/*,则注释内容的结束所使用的标记符为*/。答案对 题目25 在一个C语言程序文件中,若要包含一个头文件,则使用以百分号开始的预处理命令。答案错 题目26 用于输出表达式值的标准输出函数是printf()。答案对 题目27 当不需要函数返回任何值时,则需要使用保留字void作为函数的返回值类型。答案对 题目28 每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为error。答案错 题目29 十进制数25表示成符合C语言规则的八进制数为31。答案错 题目30 十进制数25表示成符合C语言规则的十六进制数为0
5、 x19。答案对 题目31 在C语言中,转义字符n表示一个换行符。答案对 题目32 执行“printf(%c,F-2);”语句后得到的输出结果为H。答案错 题目49 题目33 已知字符的ASCll码为67,当执行“int x=C+5;”语句后x的值为72。答案对 题目34 假定一个枚举类型的定义为“enum RBab,ac=3,ad,aex=ad;”,则x 的值为2。答案错 题目35 float的类型长度为8。答案错 题目36 在C语言中,常数28和3.26具有相同的数据类型。答案错 题目37 若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字const。答案
6、对 题目38 使用const 语句定义一个符号常量时,不必对它进行初始化。答案错 题目39 表达式45%13的值为3。答案错 题目40 假定x=5,则表达式2*x+的值为12。答案错 题目41 表达式(float)25/4的值为6。答案错 题目42 表达式x=x+1 表示成增量表达式为+x。答案对 题目43 关系表达式(x!=0)的等价表达式为(x)。答案对 题目44 关系表达式x+y5的相反表达式为x+yblb=5)的相反表达式为(ab&b=5)。答案错 题目46 若x=5,y=10,则xy逻辑值为真。答案错 题目47 假定x=5,则执行“a=(x?10:20);”语句后a的值为10。答案对
7、 题目48 带有随机函数的表达式 rand()%20的值所在的区间范围是019。答案对 假定x=5,则执行“y=x+;”语句后,x的值为5。答案错 题目50 假定x=5,则执行“y=+x;”语句后,y的值为6。答案对 形考任务2 一、选择题(共20分,每 小 题 2 分)题目1 当处理特定问题时的循环次数已知时,通常采用的语句是()。答案a.for 题目2 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。答案b.if 题目3 for 语句能够被改写成的语句是()。答案d.while 题目4 下面循环语句执行结束后输出的i值为(
8、)。for(inti=0;in/2)coutiendl;break;答案b.n/2+1 题目5 在下面循环语句中,内层循环体S语句的执行总次数为()。for(inti=0;in;i+)for(int j=i;jn;j+)S;答案d.n(n+1)/2 题目6 在下面的do循环语句中,其循环体被执行的次数为()。int i=0;do i+;while(i*i10);答案a.4 题目7 在下面的一维数组定义中,有语法错误的选项是()。答案c.int a;题目8 在下面的二维数组定义中,语法正确的选项是()。答案c.int a3=1,3,5,2;题目9 假定一个二维数组的定义语句为“int a34=(
9、3,4,2,8,6;”,则元素a11的值为()。答案d.8 题目10 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a21的值为()。答案a.0 题目11 在执行“typedef int DataType;”语句后,标识符DataType 与保留字int具有完全相同的含义和作用。答案对 题目12 在switch语句中,每个case和冒号之间的表达式只能是常量。答案对 题目13 为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句。答案对 题目14 在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置。答案
10、错 题目15 在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界窗 口。答案错 题目16 假定一维数组的定义为“char*a8;”,则该数组所含元素的个数大于8。答案错 题目17 假定二维数组的定义为“int a35;”,则该数组所占存储空间的字节数为60。答案对 题目18 假定二维数组的定义为“charaMN;”,则该数组所含元素的个数为M+N。答案错 题目19 假定二维数组的定义为“double aMN;”,则每个数组元素的行下标取值范围在0M-1之间。答案对 题目20 假定二维数组的定义为“double aMN;”,则每个数组元素的列下标取值范
11、围在0N之间。答案错 题目21 存储一个空字符串需要占用0个字节的存储空间。答案错 题目22 使用“typedef char BB1050;”语句定义标识符BB为含有10行50列的二维字符数组类型。答案对 题目23 存储字符a需要占用1个字节的存储空间。答案对 题目24 空字符串的长度为1。答案错 题目25 字符串a:|xxk数据的长度为13。答案错 题目26 为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。答案对 题目27 strcmp函数用于进行两个字符串之间的比较。答案对 题目28 strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。答案对 题目29 一个二维字
12、符数组a1020能够最多存储9个字符串。答案错 题目30 一个二维字符数组a1020能够存储的每个字符串的长度不超过20。答案错 三、填空题:写出下列每个程序运行后的输出结果(共40分,每 小 题 4 分)题目31#include void main()int x=5;switch(2*x-3)case 4:printf(%d,x);case 7:printf(%d,2*x+1);case 10:printf(%d,3*x-1);break;default:printf(%s,defaultn);答案1114 题目32#include void main()int i,s=0;for(i=1;
13、i=5;i+)s+=i*i;printf(s=%dn,s);答案s=55 题目33#include void main()int i,s1=0,s2=0;for(i=0;i10;i+)if(i%2)s1+=i;else s2+=i;printf(%d%dn,s1,s2);答案2520 题目34#include void main()int n=6,y=1;while(n)y*=n-;printf(y=%dn,y);答案y=720 题目35#include const int M=20;void main()int i,c2,c3,c5;c2=c3=c5=0;for(i=1;i=M;i+)if(
14、i%2=0)c2+;if(i%3=0)c3+;if(i%5=0)c5+;printf(%d%d%dn,c2,c3,c5);答案1064 题 目 3 6#include void main()int i,s;for(i=1,s=0;i10;i+)if(i%3=0)continue;printf(%dn,s);答案 27 题 目 3 7#include void main()int a8=12,39,26,41,55,63,72,40;int i,i1=0,i2=0;for(i=0;i8;i+)if(ai%2=1)i1+;else i2+;printf(%d%dn,i1,i2);答案44 题 目
15、3 8#include int a10=4,5,6,15,20,13,12,7,8,9;void main()int i,s4=0;for(i=0;i10;i+)switch(ai%4)case 0:s0+=a;break;case 1:s1+=a;break;case 2;s2+=a;break;default:s3+=ai;break;for(i=0;i4;i+)printf(%d,sj);答案4427622 题 目 3 9#include s+=i;for(j=0;jn;j+)v+=aij;void main()char a=abcdbfbgacd;int i1=0,i2=0,i=0;w
16、hile(ai)if(ai=a)i1+;if(aj=b)i2+;i+;printf(%d%d%dn,i1,i2,i);答案2311 题目40#include void main()int a34=1,2,7,8,5,6,10,6,9,12,3,4;int m=a00;int ij;for(i=0;i3;i+)for(j=0;jm)m=aiUj;printf(%dn,m);答案 12 题 目 4 1 编写一个函数,函数头格式为double Mean(double aMN,int m,int n)”,要求返回二维数组amn 中所有元素的平 均值,假定在计算过程中采用变量v存放平均值。答案 doub
17、le Mean(double aMN,int m,int n)int i,j;double v=0.0;for(i=0;im;i+)v/=m*n;return v;题目42 编写一个递归函数“int FF(int a,intn)”,求出数组a中所有n个元素之积并返回。答案 int FF(int a,int n)if(n=1)return an-1;else return an-1*FF(a,n-1);题目 43 编写一个主函数,利用while循环,求出并显示满足不等式的最小n值。答案#include void main()int i=0;double s=0;/或int i=1;double
18、s=1;i+=2;while(s5)s+=(double)1/+i;printf(n=%dn,i);题 目 4 4 编写一个主函数,求出满足不等式2+42+.+n1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。答案#include void main()inti=0;/用i作为依次取值偶数的变量 int s=0;/用s作为累加变量 do s+=i*i;while(s1000);printf(n=%dn,i-2);题 目 4 5 编写一个主函数,计算并输出12+22+.+n值,其中n值由键盘输入。答案#include void main()inti;/用i
19、作为计数(循环)变量 int s=0;/用s作为累加变量 int n;printf(输入一个自然数:);scanf(%d,&n);for(i=1;i=n;i+)s+=i*i;printf(s=%dn,s);形考任务三 题 目 1 在下面的函数声明语句中,存在着语法错误的是()。答案 CAA(int a;int b)题 目 2 在下面的保留字中,不能作为函数的返回值类型的是()。答案 Cenum 题 目 3 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为()。答案 C4 题 目 4 假定a为一个数组名,在下面的表达式中,存在语法错误的是()。答案B
20、*a+题 目 5 用calloc函数创建具有10个整型元素的一维数组的正确语句是()。答案 Cint*p=calloc(10,4);题 目 6 假定变量m定义为“int m=7;,则下面正确的语句为()。答案B int*p=&m 题目7 假定k是一个double类型的变量,则定义变量p的正确语句为()。答案D char*p=Thank you!;题目8 若有语句为“int a10,x,*pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。答案 Dx=*pa+3;题目9 假定有语句为“int b10;int*pb;,则下面不正确的赋值语句为()。答案Dpb=b5;题目10 已
21、知“int*p=malloc(100);,要释放p所指向的动态内存,正确的语句为()。答案Afree(p);题目11 在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的()。答案 A原型语句 题目12 假定一个函数定义为staticint f1(int x,int y)return x+y;”,该函数名称为()。答案Cf1 题目13 假定一个函数的原型语句为“int ff(int*x);”,一个整型数组为a10,则下面函数调用表达式不正确的是()。答案 Bff(a0)题目14 假定一个函数的数组参数说明为chara,与之等价的指针参数说明为()。1B 答案
22、 Bchar*a 题目15 假定一个函数的二维数组参数说明为charwN,与之等价的指针参数说明为()。答案 Achar(*w)N 题目16 在C语言中,一个函数由函数头和函数体组成。答案“对”题目17 在函数模块之外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。答案“对”题目18 如果一个函数只允许同一程序文件中的函数调用,则不应在该函数定义的开始前加上保留字static。答案“错”题目19 如果在一个函数体中又出现对自身函数的调用,此种函数调用被称为递归调用。答案“对”题目20 调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的系统头文件。答案“对”
23、题目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*类型,则指向该对象的指针类型仍
24、为int*类型。答案“错”题目28 假定x为一个简单变量,则&x表示x的地址。答案“对”题目29 若p指向x,则*p与x的值不同。答案“错”题目30 NULL 是一个符号常量,通常作为空指针值,它代表的值为0。答案“对”题目31#include int WF(int x,inty)x=x+y;y=x+y;return x+y;void main()int x=5,y=7;int z=WF(x,y);printf(z=%dn,z);答案z=31 题目32#include#include void fun(char ss);void main()char s15=0123456789;fun(s)
25、;printf(%s(n,s);void fun(char ss)int i,n=strlen(ss);for(i=0;in/2;i+)char c=ssi;ssi=ssn-1-i;ssn-1-i=c;(答案9876543210 题目33#include int Count(int a,int n,int x)int i,c=0;for(i=0;ix)c+;return c;void main()int a8=20,15,32,47,24,36,28,70;int b=Count(a,8,30);printf(b=%dn,b);答案B=4 题目 34#include void main()in
26、t a8=3,5,7,9,2,3,4,8;int s=0,*p;for(p=a;pa+8;)s+=*p+;printf(s=%dn,s);答案s=41 题目35#include int LA(int*a,int n,int x)int i,s=0;for(i=0;in;i+)if(aix)s+=ai;return s;void main()int a8=5,10,15,8,12,3,9,20;int b=LA(a,5,10);int c=LA(a+2,6,10);printf(%d%dn,b,c);答案1320 题目36 double SF(doublex,int n)/n为正整数 doubl
27、e p=1,s=1;int i;for(i=1;i=n;i+)p*=x;5+=P return s;答案计算出1+x+x2+x的值并返回。题目37 int SG(int x)/x为大于等于2的整数 int i=2;while(i*i=x)if(x%i=0)break;i+;if(i*i=x)return O;else return 1;答案判断x是否为一个质数(素数),若是则返回1,否则返回0。题目38 int WB(int a,int n,int x)for(int i=0;in;i+)if(ai=x)return 1;return 0;答案从数组an中顺序查找值为x的元素,若查找成功则返回
28、1,否则返回0。题目39 int fun(int m,int n)int c=0;static int b=2;if(mb l nb)return m*n;else if(m%b=0&n%b=0)c=b;return c*fun(m/b,n/b);elseb+;return fun(m,n);答案一个递归函数过程,求出两个自然数m和n的最小公倍数。题目40 int LK(double a,int n)double s=0;int i,m=0;for(i=0;in;i+)s+=ai;for(i=0;i=s)m+;return m;答案求出并返回数组a的n个元素中大于等于平均值的元素个数。形考任务
29、四 题 目 1 假定有“struct BOOKchar title40;float price;struct BOOK book;”,则不正确的语句为()。s/=n;答案A.struct BOOK*x=malloc(book);题目2 假定有“struct BOOKchar title40;float price;book;”,则正确的语句为()。答案B.struct BOOK*x=&book;题目3 在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是()。答案C.分号 题目4 假定一个结构类型的定义为“struct Aint a,b;double c;”,则该类型的长度为()。答案
30、D.16 题目5 假定一个结构类型的定义为“struct Dint a;D*next;”,则该类型的长度为()。答案B.8 题目6 假定要访问一个结构指针变量x中的数据成员a,则表示方法为()。答案B.x-a 题目7 与结构成员访问表达式x.name等价的表达式为()。答案C.(&x)-name 题目8 假定一个链表中结点的结构类型为“struct AAint data,struct AA*next;”,则next数据成员的类型为()。答案 B.struct AA*题目9 假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为()
31、。答案B.p-next=f和f=p 题目10 标准输入设备键盘的文件流标识符是()。答案A.stdin 题目11 表示文件结束符的符号常量为()。答案C.EOF 题目12 C语言中打开一个数据文件的系统函数为()。答案D.fopen()题目13 从一个数据文件中读入以换行符结束的一行字符串的系统函数为()。答案B.fgets()题目14 向一个二进制文件中写入信息的函数fwrite()带有的参数个数为()。答案D.4 题目15 在C语言中,为只写操作打开一个文本文件的方式为()。答案D.w 题目16 在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。()答案错 题目17 在结构类型的
32、定义中,允许出现结构类型不完整的超前定义。()答案对 题目18 定义结构类型的变量时,不能够同时进行初始化。()答案错 题目19 使用一个结构类型时,必须一起使用关键字struct和类型标识符。()答案对 题目20 假定一个结构类型的定义为“struct Aint a,b;A*c;”,则该类型的长度为12。()答案对 题目21 假定一个结构类型的定义为“struct Binta5;char*b;”,则该类型的长度为20。()答案错 题目22 执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。()答案对 题目23 执行malloc(sizeof(struct BB)函数
33、调用时,得到的动态存储空间能够保存具有struct BB结构类型的一个对象。()答案对 题目24 假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。()答案错 题目25 假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p-b。()答案错 题目26 与结构成员访问表达式(*fp).score等价的表达式是fp-score。()答案对 题目27 在 C 语 言 中,对二进制文件的所有不同打开方式共有6种。()答案对 题目28 C语言中的标准输入和输出设备文件都属于字符文件。()答案对 题目29 在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,
34、不可省略。()答案错 题目30 在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。()答案对 题目31 一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。()答案对 题目32 C语言系统中提供一个用来描述文件属性的类型标识符为FILE。()答案对 题目33 每次只能向文本文件中写入一个字符,不能一次写入一个字符串。()答案错 题目34 对二进制文件进行读和写操作将使用相同的系统函数。()答案错 题目35 在 C 语 言 中,系统函数fseek()用来移动数据文件中的文件位置指针。()答案对 题目36#include struct Worker
35、 char name15;/姓名 int age;/年龄 float pay;/工资;void main()struct Worker x=wanghua,52,4300;struct Worker y,*p;y=x;p=&x;printf(%s%d%6.2fn,x.name,yage,p-pay);答案wanghua 524300 题目37#include#include struct Worker char name15;/姓名 int age;/年龄 float pay;/工资;void main()struct Worker x;char *t=liouting;int d=38;fl
36、oat f=3493;strcpy(x.name,t);x.age=d;x.pay=f;printf(%s%d%6.0fn,x.name,x.age,x.pay);答案liouting 392493 题目38#include struct Workerchar name15;int age;float pay;int Less(struct Worker r1,struct Workerr2)if(r1.ager2.age)return 1;else return 0;void main()struct Worker a4=abc,25,2420,def,58,4638,ghi,49,4260
37、,jk!,36,3750;struct Worker x=a0;int i;for(i=1;i4;i+)if(Less(x,aj)x=ai;printf(%s%d%6.0fn,x.name,x.age,x.pay);答案def 584638 题目39 void QA(struct Worker a,int n)int i;for(i=1;inext;return c;假定struct IntNode 的类型定义为:struct IntNode int data;IntNode*next;答案统计出以表头指针为f的链表中结点的个数。题目41 void xw1(char*fname)FILE*fout=fopen(fname,w);char a20;printf(每个字符串长度小于20,字符串end作为结束标志n);while(1)scanf(%s,a);if(strcmp(a,end)=0)break;fputs(a,fout);fputc(n,fout);fclose(fout);答案把从键盘上输入的若干个字符串保存到由fname参数所指定的文本文件中。