C语言程序设计形考任务2
- 格式:doc
- 大小:115.55 KB
- 文档页数:18
c语言程序设计形考任务二答案————————————————————————————————作者:————————————————————————————————日期:一、选择题(共20分,每小题2分)当处理特定问题时的循环次数已知时,通常采用的语句是()。
a. forb. whilec. do-whiled. switch题目2在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。
a. forb. ifc. dod. while题目3for语句能够被改写成的语句是()。
a. 复合b. ifc. switchd. while题目4下面循环语句执行结束后输出的i值为()。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}a. n/2b. n/2+1c. n/2-1d. n-1题目5在下面循环语句中,内层循环体S语句的执行总次数为()。
for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;a. n2b. (n+1)/2c. n(n-1)/2d. n(n+1)/2题目6在下面的do循环语句中,其循环体被执行的次数为()。
int i=0; do i++; while(i*i<10);a. 4b. 3c. 5d. 2题目7在下面的一维数组定义中,有语法错误的选项是()。
a. int a[]={1,2,3};b. int a[10]={0};c. int a[];d. int a[5];题目8在下面的二维数组定义中,语法正确的选项是()。
a. int a[5][];b. int a[][5];c. int a[][3]={{1,3,5},{2}};d. int a[](10);题目9假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为()。
一、选择题共20分,每小题2分当处理特定问题时的循环次数已知时,通常采用的语句是;a. forb. whilec. do-whiled. switch题目2在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是;a. forb. ifc. dod. while题目3for语句能够被改写成的语句是;a. 复合b. ifc. switchd. while题目4下面循环语句执行结束后输出的i值为;forint i=0; i<n; i++ ifi>n/2 {cout<<i<<endl; break;}a. n/2b. n/2+1c. n/2-1d. n-1题目5在下面循环语句中,内层循环体S语句的执行总次数为; forint i=0; i<n; i++forint j=i; j<n; j++ S;a. n2b. n+1/2c. nn-1/2d. nn+1/2题目6在下面的do循环语句中,其循环体被执行的次数为; int i=0; do i++; whileii<10;a. 4b. 3c. 5d. 2题目7在下面的一维数组定义中,有语法错误的选项是;a. int a={1,2,3};b. int a10={0};c. int a;d. int a5;题目8在下面的二维数组定义中,语法正确的选项是;a. int a5;b. int a5;c. int a3={{1,3,5},{2}};d. int a10;题目9假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a11的值为;a. 2b. 4c. 6d. 8题目10假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a21的值为;a. 0b. 4c. 8d. 6二、判断题共20分,每小题1分;叙述正确则回答“是”,否则回答“否”题目11在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用; 对题目12在switch语句中,每个case和冒号之间的表达式只能是常量; 对题目13为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句; 对题目14在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置;错题目15在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口; 错题目16假定一维数组的定义为“char a8;”,则该数组所含元素的个数大于8; 错题目17假定二维数组的定义为“int a35;”,则该数组所占存储空间的字节数为60; 对题目18假定二维数组的定义为“char aMN;”,则该数组所含元素的个数为M+N;错题目19假定二维数组的定义为“double aMN;”,则每个数组元素的行下标取值范围在0~M-1之间; 对题目20假定二维数组的定义为“double aMN;”,则每个数组元素的列下标取值范围在0~N之间;错题目21存储一个空字符串需要占用0个字节的存储空间; 错题目22使用“typedef char BB1050;”语句定义标识符BB为含有10行50列的二维字符数组类型; 对题目23存储字符'a'需要占用1个字节的存储空间; 对题目24空字符串的长度为1; 错题目25字符串"a:\\xxk\\数据"的长度为13; 错题目26为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1; 对题目27strcmp函数用于进行两个字符串之间的比较; 对题目28strcpy函数用于把一个字符串拷贝到另一个字符数组空间中; 对题目29一个二维字符数组a1020能够最多存储9个字符串; 错题目30一个二维字符数组a1020能够存储的每个字符串的长度不超过20; 错三、填空题:写出下列每个程序运行后的输出结果共40分,每小题4分题目31include<stdio.h>void main{int x=5;switch2x-3 {case 4: printf"%d ",x;case 7: printf"%d ",2x+1;case 10: printf"%d ",3x-1; break;default: printf"%s","default\n";}}11 14题目32include<stdio.h>void main {int i,s=0;fori=1;i<=5;i++ s+=ii;printf"s=%d\n",s;}s=55题目33include<stdio.h>void main {int i, s1=0, s2=0;fori=0;i<10;i++ifi%2 s1+=i; else s2+=i;printf"%d %d\n",s1,s2;}25 20题目34include<stdio.h>void main {int n=6,y=1;whilen y=n--;printf"y=%d\n",y;}y=720题目35include<stdio.h>const int M=20;void main{int i,c2,c3,c5;c2=c3=c5=0;fori=1; i<=M; i++ {ifi%2==0 c2++;ifi%3==0 c3++;ifi%5==0 c5++;}printf"%d %d %d\n",c2,c3,c5;}10 6 4题目36include<stdio.h>void main{int i,s;fori=1,s=0;i<10;i++ {ifi%3==0 continue;s+=i;}printf"%d\n",s;}27题目37include<stdio.h>void main {int a8={12,39,26,41,55,63,72,40};int i, i1=0, i2=0;fori=0;i<8;i++ifai%2==1 i1++; else i2++;printf"%d %d\n",i1,i2;}4 4题目38include<stdio.h>int a10={4,5,6,15,20,13,12,7,8,9};void main{int i,s4=0;fori=0; i<10; i++ {switchai%4 {case 0: s0+=ai;break;case 1: s1+=ai;break;case 2: s2+=ai;break;default: s3+=ai;break;}}fori=0; i<4; i++ printf"%d ",si;}44 27 6 22题目39include<stdio.h>void main {char a="abcdbfbgacd";int i1=0, i2=0, i=0;whileai {ifai=='a' i1++;ifai=='b' i2++;i++;}printf"%d %d %d\n",i1,i2,i;}2 3 11题目40include<stdio.h>void main {int a34={{1,2,7,8},{5,6,10,6},{9,12,3,4}};int m=a00;int i,j;fori=0; i<3; i++forj=0; j<4; j++ifaij>m m=aij;printf"%d\n",m;}12四、简答题:根据下列每个题目要求编写程序共20分,每小题4分题目41编写一个函数,函数头格式为“double Meandouble aMN,int m,int n”,要求返回二维数组amn 中所有元素的平均值,假定在计算过程中采用变量v存放平均值;double Meandouble aMN,int m,int n{int i,j;double v=0.0;fori=0; i<m; i++forj=0; j<n; j++ v+=aij;v/=mn;return v;}题目42编写一个递归函数“int FFint a, int n”,求出数组a中所有n个元素之积并返回;include<stdio.h>int FFint a , int n{int mul=1;ifn==1mul=a0;else mul=an-1FFa,n-1;return mul;}/void main{int a6={1,2,3,4,5,6};printf"%d\n",FFa,6;}/题目43编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+……+1/n>5的最小n 值;include<stdio.h>void main{int i=0; double s=0; //或int i=1; double s=1;whiles<5 s+=double1/++i;printf"n=%d\n",i;}题目44编写一个主函数,求出满足不等式22+42+...+n2<1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程;include<stdio.h>void main{int i=0; //用i作为依次取值偶数的变量int s=0; //用s作为累加变量do {i+=2;s+=ii;}whiles<1000;printf"n=%d\n",i-2;}题目45编写一个主函数,计算并输出12+22+...+n2值,其中n值由键盘输入;include<stdio.h>void main{int i; //用i作为计数循环变量int s=0; //用s作为累加变量int n;printf"输入一个自然数: ";scanf"%d",&n;fori=1; i<=n; i++ s+=ii;printf"s=%d\n",s;}。
一、选择题(共20分,每小题2分)当处理特定问题时的循环次数已知时,通常采用的语句是()。
a. forb. whilec. do-whiled. switch题目2在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。
a. forb. ifc. dod. while题目3for语句能够被改写成的语句是()。
a. 复合b. ifc. switchd. while题目4下面循环语句执行结束后输出的i值为()。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}a. n/2b. n/2+1c. n/2-1d. n-1题目5在下面循环语句中,内层循环体S语句的执行总次数为()。
for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;a. n2b. (n+1)/2c. n(n-1)/2d. n(n+1)/2题目6在下面的do循环语句中,其循环体被执行的次数为()。
int i=0; do i++; while(i*i<10);a. 4b. 3c. 5d. 2题目7在下面的一维数组定义中,有语法错误的选项是()。
a. int a[]={1,2,3};b. int a[10]={0};c. int a[];d. int a[5];题目8在下面的二维数组定义中,语法正确的选项是()。
a. int a[5][];b. int a[][5];c. int a[][3]={{1,3,5},{2}};d. int a[](10);题目9假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为()。
a. 2b. 4c. 6d. 8题目10假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。
国开C语言程序设计形考任务2二、简答题(共30分,每小题10分)题目1请简述for循环语句的语法和用法。
答:for循环语句的语法为:for (初始化表达式。
条件表达式。
更新表达式) 循环体语句。
其中,初始化表达式在循环开始前执行一次,用于初始化循环变量;条件表达式在每次循环开始前进行判断,若为真则执行循环体语句,否则循环结束;更新表达式在每次循环结束后执行,用于更新循环变量。
for循环语句通常用于已知循环次数的情况下进行循环操作。
题目2请简述switch语句的语法和用法。
答:switch语句的语法为:switch (表达式) { case 常量1:语句1.break。
case 常量2: 语句2.break。
default: 语句n。
}。
其中,表达式的值会依次与各个常量进行比较,若匹配则执行对应的语句,并在语句末尾加上break语句跳出switch语句;若都不匹配则执行default语句。
switch语句通常用于多分支的情况下进行选择操作。
题目3请简述数组的定义和使用方法。
答:数组是一种存储多个同类型数据的数据结构。
数组的定义方式为:类型名数组名[元素个数] = {元素1.元素2.}。
其中,元素个数可以省略,但初始化时必须指定元素个数或者用{}进行初始化。
数组的使用方法为通过下标访问数组元素,下标从0开始,即数组名[0]表示第一个元素。
可以使用循环结构对数组进行遍历和操作。
C语言中,变量名可以以数字开头。
选择一项:错对错题目29在C语言中,可以使用“++”运算符对一个常量进行自增运算。
选择一项:错对错题目30在C语言中,可以使用“&”运算符获取一个变量的地址。
选择一项:对对错改写后的文章:第一部分:阅读理解(共40分,每小题2分)1.C语言中,下列哪个不是C语言的关键字?A.whileB.intC.doubleD.else答案:C2.下列哪个不是C语言的数据类型?A.charB.stringC.intD.float答案:B3.下列哪个符号不是C语言中的运算符?A.+B.-C.%D.&答案:C4.下列哪个不是C语言中的流程控制语句?A.whileB.switchC.XXXD.try答案:D第二部分:文章改错(共40分,每小题2分)已删除明显有问题的段落,剩下的段落已进行小幅度改写)C语言中,关键字是指在C语言中具有特定含义和作用的单词。
一、选择题(共20分)分,每小题2)。
当处理特定问题时的循环次数已知时,通常采用的语句是(a. forb. whilec. do-whiled. switch题目2语句容易被语句结束的,则此switchcase在switch语句的每个块中,假定都是以break 改写成的语句是()。
a. forb. ifc. dod. while题目3for语句能够被改写成的语句是()。
a. 复合b. ifc. switchd. while4题目)。
i下面循环语句执行结束后输出的值为(for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;} a. n/2b. n/2+1c. n/2-1d. n-15题目。
)在下面循环语句中,内层循环体S语句的执行总次数为(for(int i=0; i<n; i++) for(int j=i; j<n; j++) S; a. n2b. (n+1)/2c. n(n-1)/2d. n(n+1)/2题目6循环语句中,其循环体被执行的次数为(在下面的do )。
int i=0; do i++; while(i*i<10); a. 4b. 3c. 5d. 27题目。
在下面的一维数组定义中,有语法错误的选项是()a. int a[]={1,2,3};b. int a[10]={0};c. int a[];d. int a[5];8题目)。
在下面的二维数组定义中,语法正确的选项是(a. int a[5][];b. int a[][5];};d. int a[](10);9题目的值a[1][1]8,6}};”,则元素假定一个二维数组的定义语句为“int)。
为(a. 2b. 4c. 6d. 8题目10的值假定一个二维数组的定义语句为“int 8,6}};”,则元素a[2][1])。
为(a. 0b. 4c. 8d. 6二、判断题(共20分,每小题1分。
C语言程序设计形考任务1题目1在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
选择一项:A. mainB. MAINC. nameD. function题目2C语言源程序文件的缺省扩展名为()。
选择一项:A. cppB. exeC. objD. c题目3由C语言目标文件连接而成的可执行文件的缺省扩展名为()。
选择一项:A. cppB. exeC. objD. c题目4程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。
选择一项:A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车每个C语言程序文件的编译错误被分为()。
选择一项:A. 1类B. 2类C. 3类D. 4类题目6在·()。
选择一项:A. {}B. {;}C. {x=0;}D. {y=10}题目7C语言程序中的基本功能模块为()。
选择一项:A. 表达式B. 标识符C. 语句D. 函数题目8在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。
选择一项:A. 表达式B. 语句C. 参数表D. 函数体在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。
选择一项:A. 尖括号B. 双引号C. 单引号D. 花括号题目10在C语言程序中,多行注释语句使用的开始标记符为()。
选择一项:A. //B. /*C. */D. **题目11在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。
选择一项:A. charB. intC. floatD. double题目12在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。
选择一项:A. 5B. 4C. 3D. 6题目13转义字符'\\'表示的字符是()。
选择一项:A. 单引号B. 双引号C. 反斜线D. 问号题目14枚举类型中的每个枚举常量的值都是一个()。
文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.一、选择题(共20 分,每小题 2 分)当处理特定问题时的循环次数已知时,通常采用的语句是()。
a.forb.whilec.do-whiled.switch题目 2在 switch 语句的每个case 块中,假定都是以break 语句结束的,则此switch 语句容易被改写成的语句是()。
a. forb. ifc. do题目d. while 3for语句能够被改写成的语句是()。
a. 复合b. ifc. switchd. while题目 4下面循环语句执行结束后输出的i 值为()。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}a.n/2b.n/2+1c.n/2 -1d.n-1题目 5在下面循环语句中,内层循环体S语句的执行总次数为()。
文档来源为 :从网络收集整理.word 版本可编辑 .欢迎下载支持.for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;a. n2b. (n+1)/2c. n(n-1)/2d. n(n+1)/2题目 6在下面的do 循环语句中,其循环体被执行的次数为()。
int i=0; do i++; while(i*i<10);a. 4b. 3c. 5d. 2题目 7在下面的一维数组定义中,有语法错误的选项是()。
a. int a[]={1,2,3};b. int a[10]={0};c. int a[];d. int a[5];题目 8在下面的二维数组定义中,语法正确的选项是()。
a. int a[5][];b. int a[][5];c. int a[][3]={{1,3,5},{2}};d. int a[](10);题目9假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}; ,则元素” a[1][1] 的值为()。
一、选择题〔共20分,每一小题2分〕题目1当处理特定问题时的循环次数时,通常采用的语句是〔〕。
选择一项:a. forb. whilec. do-whiled. switch正确答案是:for题目2在switch语句的每个case块中,假定都是以break语句完毕的,如此此switch 语句容易被改写成的语句是〔〕。
选择一项:a. forb. ifc. dod. while正确答案是:if题目3for语句能够被改写成的语句是〔〕。
选择一项:a. 复合b. ifc. switchd. while正确答案是:while题目4下面循环语句执行完毕后输出的i值为〔〕。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}选择一项:a. n/2b. n/2+1c. n/2-1d. n-1正确答案是:n/2+1题目5在下面循环语句中,内层循环体S语句的执行总次数为〔〕。
for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;选择一项:a. n2b. (n+1)/2c. n(n-1)/2d. n(n+1)/2正确答案是:n(n+1)/2题目6在下面的do循环语句中,其循环体被执行的次数为〔〕。
int i=0; do i++; while(i*i<10);选择一项:a. 4b. 3c. 5d. 2正确答案是:4题目7在下面的一维数组定义中,有语法错误的选项是〔〕。
选择一项:a. int a[]={1,2,3};b. int a[10]={0};c. int a[];d. int a[5];正确答案是:int a[];题目8在下面的二维数组定义中,语法正确的选项是〔〕。
选择一项:a. int a[5][];b. int a[][5];c. int a[][3]={{1,3,5},{2}};d. int a[](10);正确答案是:int a[][3]={{1,3,5},{2}};题目9假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};〞,如此元素a[1][1]的值为〔〕。
一、选择题(共20分,每小题2分)题目1当处理特定问题时的循环次数已知时,通常采用的语句是()。
选择一项:a. forb. whilec. do-whiled. switch正确答案是:for题目2在switch语句的每个case块中,假定都是以break语句结束的,则此switch 语句容易被改写成的语句是()。
选择一项:a. forb. ifc. dod. while正确答案是:if题目3for语句能够被改写成的语句是()。
选择一项:a. 复合b. ifc. switchd. while正确答案是:while题目4下面循环语句执行结束后输出的i值为()。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}选择一项:a. n/2b. n/2+1c. n/2-1d. n-1正确答案是:n/2+1题目5在下面循环语句中,内层循环体S语句的执行总次数为()。
for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;选择一项:a. n2b. (n+1)/2c. n(n-1)/2d. n(n+1)/2正确答案是:n(n+1)/2题目6在下面的do循环语句中,其循环体被执行的次数为()。
int i=0; do i++; while(i*i<10);选择一项:a. 4b. 3c. 5d. 2正确答案是:4题目7在下面的一维数组定义中,有语法错误的选项是()。
选择一项:a. int a[]={1,2,3};b. int a[10]={0};c. int a[];d. int a[5];正确答案是:int a[];题目8在下面的二维数组定义中,语法正确的选项是()。
选择一项:a. int a[5][];b. int a[][5];c. int a[][3]={{1,3,5},{2}};d. int a[](10);正确答案是:int a[][3]={{1,3,5},{2}};题目9假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为()。
选择一项:a. 2b. 4c. 6d. 8正确答案是:8题目10假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。
选择一项:a. 0b. 4c. 8d. 6正确答案是:0二、判断题(共20分,每小题1分。
叙述正确则回答“是”,否则回答“否”)题目11在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。
选择一项:对错正确的答案是“对”。
题目12在switch语句中,每个case和冒号之间的表达式只能是常量。
选择一项:对错正确的答案是“对”。
题目13为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break 语句。
选择一项:对错正确的答案是“对”。
题目14在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置。
选择一项:对错正确的答案是“错”。
题目15在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口。
选择一项:对错正确的答案是“错”。
题目16假定一维数组的定义为“char* a[8];”,则该数组所含元素的个数大于8。
选择一项:对错正确的答案是“错”。
题目17假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为60。
选择一项:对错正确的答案是“对”。
题目18假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为M+N。
选择一项:对错正确的答案是“错”。
题目19假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在0~M-1之间。
选择一项:对错正确的答案是“对”。
题目20假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在0~N之间。
选择一项:对错正确的答案是“错”。
题目21存储一个空字符串需要占用0个字节的存储空间。
选择一项:对错正确的答案是“错”。
题目22使用“typedef char BB[10][50];”语句定义标识符BB为含有10行50列的二维字符数组类型。
选择一项:对错正确的答案是“对”。
题目23存储字符'a'需要占用1个字节的存储空间。
选择一项:对错正确的答案是“对”。
题目24空字符串的长度为1。
选择一项:对错正确的答案是“错”。
题目25字符串"a:\\xxk\\数据"的长度为13。
选择一项:对错正确的答案是“错”。
题目26为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。
选择一项:对错正确的答案是“对”。
题目27strcmp函数用于进行两个字符串之间的比较。
选择一项:对错正确的答案是“对”。
题目28strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。
选择一项:对错正确的答案是“对”。
题目29一个二维字符数组a[10][20]能够最多存储9个字符串。
选择一项:对错正确的答案是“错”。
题目30一个二维字符数组a[10][20]能够存储的每个字符串的长度不超过20。
选择一项:对错正确的答案是“错”。
三、填空题:写出下列每个程序运行后的输出结果(共40分,每小题4分)题目31#include<stdio.h>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","default\n");}}11 14题目32#include<stdio.h>void main() {int i,s=0;for(i=1;i<=5;i++) s+=i*i;printf("s=%d\n",s);}正确答案是:s=55题目33#include<stdio.h>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 20题目34#include<stdio.h>void main() {int n=6,y=1;while(n) y*=n--;printf("y=%d\n",y);}正确答案是:y=720题目35#include<stdio.h>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 4题目36#include<stdio.h>void main(){int i,s;for(i=1,s=0;i<10;i++) {if(i%3==0) continue;s+=i;}printf("%d\n",s);}正确答案是:27题目37#include<stdio.h>void main() {int a[8]={12,39,26,41,55,63,72,40};int i, i1=0, i2=0;for(i=0;i<8;i++)if(a[i]%2==1) i1++; else i2++;printf("%d %d\n",i1,i2);}正确答案是:4 4题目38#include<stdio.h>int a[10]={4,5,6,15,20,13,12,7,8,9};void main(){int i,s[4]=0;for(i=0; i<10; i++) {switch(a[i]%4) {case 0: s[0]+=a[i];break;case 1: s[1]+=a[i];break;case 2: s[2]+=a[i];break;default: s[3]+=a[i];break;}}for(i=0; i<4; i++) printf("%d ",s[i]);}正确答案是:44 27 6 22题目39#include<stdio.h>void main() {char a[]="abcdbfbgacd";int i1=0, i2=0, i=0;while(a[i]) {if(a[i]=='a') i1++;if(a[i]=='b') i2++;i++;}printf("%d %d %d\n",i1,i2,i);}正确答案是:2 3 11题目40#include<stdio.h>void main() {int a[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}};int m=a[0][0];int i,j;for(i=0; i<3; i++)for(j=0; j<4; j++)if(a[i][j]>m) m=a[i][j];printf("%d\n",m);}正确答案是:12四、简答题:根据下列每个题目要求编写程序(共20分,每小题4分)题目41编写一个函数,函数头格式为“double Mean(double a[M][N],int m,int n)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程中采用变量v 存放平均值。
double Mean(double a[M][N],int m,int n){int i,j;double v=0.0;for(i=0; i<m; i++)for(j=0; j<n; j++) v+=a[i][j];v/=m*n;return v;}题目42编写一个递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素之积并返回。