电大计算机本科 C语言程序设计形成性作业带答案.docx
- 文档编号:29154603
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:44
- 大小:28.26KB
电大计算机本科 C语言程序设计形成性作业带答案.docx
《电大计算机本科 C语言程序设计形成性作业带答案.docx》由会员分享,可在线阅读,更多相关《电大计算机本科 C语言程序设计形成性作业带答案.docx(44页珍藏版)》请在冰豆网上搜索。
电大计算机本科C语言程序设计形成性作业带答案
C语言程序设计形成性作业一
一、 选择题
1. 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。
A.main B.MAIN C.name D.funtion
2.C语言原程序文件的缺省扩展名为(A)。
A.cpp B.exe C.obj D.C
3.由C语言目标文件连接而成的可执行的缺省扩展名为(B)。
A.cpp B.exe C.obj D.C
4.程序运行中需要从键盘输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。
A.空格或逗号 B.逗号或回车 C.回车或分号 D.空格或回车
5.每个C语言程序的编译错误分为(B)类。
A.1 B.2 C.3 D.4
6.设x和y均为逻辑值,则x&&y为真的条件是(A)。
A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假
7.设有语句“inta=12;a+=a*a;”,则执行结束后,a的值为(C)。
A.12 B.144 C.156 D.288
8.x>0&&x<=10的相反表达式为(A)。
A.x<=0||X>10 B.x<=0&&x>10 C.x<=0||x<=10 D.x>0&&x>10
9.字符串“a+b=12\n”的长度为(B)。
A.6 B.7 C.8 D.9
10.在下列符号常量定义中。
错误的定义语句格式为(C)。
A.constM1=10; B.constintM2=20; C.constM310 D.constcharmark=’3’;
11.带有随机函数的表达式rand()%20的值在(C)区间内,
A.1~19 B.1~20 C.0~19 D.0~20
12.当处理特定问题时的循环次数已知时,通常采用(A)循环来解决。
A.for B.while C.do-while D.switch
13.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(B)语句。
A.for B.if C.do D.while
14.for语句能够被改写为(D)语句。
A.复合 B.if C.switch D.while
15.下面循环语句执行结束后输出的i值为(B)。
for(inti=0;i A.n/2 B.n/2+1 C.n/2-1 D.n-1 16.在下面循环w语句中内层循环体S语句的执行次数为(D)。 for(inti=0;i for(intj=i;j A.n2 B.(n+1)/2 C.n(n-1)/2 D.n(n+1)/2 17.在下面的do循环语句中,其循环体被执行的次数为(A)。 inti=0;doi++;while(i*i<10); A.4 B.3 C.5 D.2 二、填空题 1.C语言中的每条简单语句以___;_______作为结束符。 2.C语言中的每条复合语句以___}_______作为结束符。 3.在C语言程序的每个程序行后面或单独一行的开始使用注释的标记符为___//___。 4.单行或多行注释的结束标记符为__*/_____。 5.在一个C程序文件中,若要包含另外一个头文件或程序文件,则应使用以__#include___标识符开始的预处理命令。 6.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是__用户___定义的头文件。 7.一个函数定义由__函数头______和函数体两部分组成。 8.用于输出表达式的标准输出函数是_printf()_________。 9.当不需要函数返回任何值时,则应使用__void_______标识符定义函数类型。 10.执行“printf(“%d-%d=%d”,43,18,43-18);”语句后得到的输出结果为__43-18=25_______。 11.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符为__warning______。 12.每个C程序文件在编译时可能出现有致命性错误,其对应的标识符为__error______。 13.十进制数25表示成符合C语言规则的十六进制数为___0x19___。 14.在C语言中,转义字符序列___\n___表示一个换行符。 15.执行“printf(“%c”,’F’-2);”语句后得到的输出结果为__D___。 16.已知’A’~’Z’的ASCII码为65-90,当执行“intx=’C’+5;”语句所x的值为___72___. 17.假定一个枚举类型的定义为“enumRB{ab,ac=3,ad,ae}x=ad;”,则x的值为___4___. 18.char类型的大小为__1__个字节。 19.int类型的大小为__4__个字节。 20.float类型的大小为__4__个字节。 21.十进制数28类型为___int___。 22.十进制数3.26类型为___double___。 23.若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字____const___。 24.使用const语句定义一个符号常量时,则必须对它同时进行__定义类型和赋初值__。 25.执行“intx=45,y=13;printf(“%d”,x%y);”语句序列后得到的输出结果为___6__。 26.假定x=5,则表达式2+x++的值为__7__。 27.表达式(float)25/4的值为___6.25___。 28.表达式(int)14.6%5的值为___4___。 29.表达式x=x+1表示成增量表达式为__x++___。 30.增量表达式++y表示成赋值表达式为___y+=1__。 31.关系表达式(x! =0)的等价表达式为____x___。 32.假定不允许使用逻辑非操作符,则关系表达式x+y>5的相反表达式为___x+y<=5__。 33.假定不允许使用逻辑非操作符,则逻辑表达式a>b||b==5的相反表达式为___a<=b&&(b>5||b<5)____。 34.若x=5,y=10,则x>y逻辑值为___false___。 35.若x=5,y=10,则x<=y逻辑值为___true___。 36.假定x=5,则执行“a=(x? 10: 20);”语句后a的值为__10__。 37.执行“typedefintDataType;”语句后,在使用int定义整型变量的地方都可以使用___DataType___来定义整型变量。 38.在switch语句中,每个语句标号所含保留字case后面的表达式必须是__整型__。 39.作为语句标号使用的C保留字case和default只能用于__switch__语句的定义体中。 40.在switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)___不停止__执行。 41.若do循环的“尾”为“while(++i<10)”,并且i的初值为0,同时在循环体不会修改i的值,由循环体将被重复执行__10___次后正常结束。 42.当在程序执行到___break___语句时,将结束本层循环语句或switch语句的执行。 43.在程序中执行到__return__语句时,将结束所在函数的执行过程,返回到调用该函数的位置。 44.在程序执行完__主(main)__函数调用后,将结束整个程序的执行过程,返回到操作系统或C语句集成开发环境界面窗口。 三、写出下列每个程序运行后的输出结果 1.#include voidmain() { intx=5;switch(2*x-3){ case4: printf("%d",x); case7: printf("%d",2*x+1); case10: printf("%d",3*x-1);break; default: printf("%s","default\n"); } printf("%s\n","switchend."); } 输出结果为: 1114switchend. 2.#include voidmain() { inti,s=0; for(i=1;i<=6;i++) s+=i*i; printf("s=%d\n",s); } 输出结果为: s=91. 3.#include voidmain() { inti,s1=0,s2=0; for(i=0;i<10;i++) if(i%2)s1+=i; elses2+=i; printf("%d%d\n",s1,s2); } 输出结果为: 2520. 4.#include voidmain() { intn=10,y=1; while(n--){y++;y++;} printf("y=%d\n",y); } 输出结果为: y=21. 5.#include voidmain() { intf,f1,f2,i; f1=f2=1; printf("%d%d",f1,f2); for(i=3;i<=10;i++){ f=f1+f2; printf("%d",f); if(i%5==0)printf("\n"); f1=f2; f2=f; } printf("\n"); } 输出结果为: 11235 813213455 6.#include #include voidmain() { inti,n; for(n=2;n<=20;n++){ inttemp=(int)sqrt(n);//sqrt(n)求出n的平方根并取整 for(i=2;i<=temp;i++) if(n%i==0)break; if(i>temp)printf("%d",n); } printf("\n"); } 输出结果为: 235711131719 7.#include #include constintM=20; voidmain() { inti,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); } 输出结果为: 1064 8.#include #include constintM=20; voidmain() { inti,s; for(i=1,s=0;i<15;i++){ if(i%2==0||i%3==0)continue; printf("%d",i); s+=i; } printf("%d\n",s); } 输出结果为: 157111337 C语言程序设计形成性考核册参考答案作业二 一、 选择题 1. 在下面的一维数组定义中,(C)语句有语法错误。 A.inta[]={1,2,3}; B.inta[10]={0}; C.inta[]; D.inta[5];n 2.在下面的二维数组定义中,(C)语句是正确的。 A.inta[5][]; B.inta[][5]; C.inta[][3]={{1,3,5},{2}}; D.inta[](10) 3.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(C)。 A.2 B.4 C.6 D.8 4.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。 A.0 B.4 C.8 D.6 5.将两个字符串连接起来组成一个字符串时,选用(C)函数。 A.strlen() B.strcap() C.strcat() D.strcmp() 二、填空题 1.假定一维数组的定义为“char*a[8];”,则该数组所含元素的个数为___8_______。 2.假定一维数组的定义为“char*a[8];”,则该数组所占存储空间的字节数为___32______。 3.假定二维数组的定义为“inta[3][5]”,则该数组所占存储空间的字节数为___60______。 4.假定二维数组的定义为“chara[M][N];”,则该数组所所含元素的个数为__M*N_____。 5.假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在__0~M-1___之间。 6.假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在__0~N-1___之间。 7.使用“typedefcharBB[10][50];”语句定义__BB______为含有10行50列的二维字符数组类型。 8.存储字符’a’需要占用存储器的_1_____个字节空间。 9.空字符串的长度为__0_______。 10.存储一个空字符串需要占用__1___个字节。 11.字符串”a: \\xxk\\数据”的长度为___11______。 12.用于存储一个长度为n的字符串的字符数组的长度至少为__n+1______。 13.strcmp函数用于进行两个字符串之间的___大小比较___。 14.Strcpy函数用于把一个字符串___复制到___另一个字符数组空间中。 15.一个二维字符数组a[10][20]能够存储__10___个字符串。 16.一个二维字符数组a[10][20]能够存储的每个字符串的长度至多为___19___. 三、写出下列每个程序运行后的输出结果 1.#include voidmain() { inta[10]={12,39,26,41,55,63,72,40,83,95}; inti,i1=0,i2=0; for(i=0;i<10;i++) if(a[i]%2==1)i1++;elsei2++; printf("%d%d\n",i1,i2); } 输出结果为: 64 2.#include #include voidmain() { inti; char*a[5]={"student","worker","cadre","soldier","peasant"}; char*p1,*p2; p1=p2=a[0]; for(i=0;i<5;i++){ if(strcmp(a[i],p1)>0)p1=a[i]; if(strcmp(a[i],p2)<0)p2=a[i]; } printf("%s%s\n",p1,p2); } 输出结果为: workercadre 3.#include inta[10]={4,5,6,15,20,13,12,7,8,9}; voidmain() { inti,s0,s1,s2; s0=s1=s2=0; for(i=0;i<10;i++){ switch(a[i]%3){ case0: s0+=a[i];break; case1: s1+=a[i];break; case2: s2+=a[i];break; } } printf("%d%d%d\n",s0,s1,s2); } 输出结果为: 422433 4.#include voidmain() { chara[]="abcdbfbgacd"; inti1=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); } 输出结果为: 2311 5.#include voidmain() { int a[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}}; intm=a[0][0]; intii=0,jj=0; inti,j; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>m){m=a[i][j];ii=i;jj=j;} printf("%d%d%d\n",ii,jj,a[ii][jj]); } 输出结果为: 2112 6.#include voidmain() { int a,b; for(a=1,b=2;b<50;){ printf("%d%d",a,b); a=a+b; b=a+b; } printf("\n"); } 输出结果为: 12358132134 四、写出下列每个函数的功能 1.#include intSA(inta,intb){ if(a>b)return1; elseif(a==b)return0; elsereturn-1; } 函数功能为: 根据实参a大于、等于或小于实参b,返回1,0或-1 2.#include intSC(inta,intb,intc){ if(a>=b&&a>=c)returna; if(b>=a&&b>=c)returnb; returnc; } 函数功能为: 返回实参a、b、c中的最大数 3.doubleSF(doublex,intn){//n为大于等于0的整数 doublep=1,s=1; for(i=1;i<=n;i++){ p*=x; s+=p/(i+1); } returns; } 函数功能为: 计算x+x2/2+x3/3+……+xn/(n+1)的值 4.#include intSC(intx){ inta=(int)sqrt(x); inti=2; while(i<=a){ if(x%i==0)break; i++; } if(i<=0)return0;elsereturn1; } 函数功能为: 判断一个整数是否是素数 5.#include voidtrans(intx) { chara[10]; inti=0,rem; do{ rem=x%16; x=x/16; if(rem<10)a[i]=48+rem;//'0'字符的ASCII码为48 elsea[i]=65+rem; //'A'字符的ASCII码为55
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电大计算机本科 C语言程序设计形成性作业带答案 电大 计算机 本科 语言程序设计 形成 作业 答案