cmn.docx
- 文档编号:26131695
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:40
- 大小:27.03KB
cmn.docx
《cmn.docx》由会员分享,可在线阅读,更多相关《cmn.docx(40页珍藏版)》请在冰豆网上搜索。
cmn
1)、填空题
题目1:
注意事项
1.请删除标有$BLANK?
$的程序行上的下划线,将正确的答案填在原下划线处
2.请不要删除$BlaNK?
$错误标志
3.请不要将需要填空的行分成多行
4.请不要修改任何注释
5.不要自己运行windows下的nsDOs方式
进入TC进行编程等,其结果不能保证正确收回,导致评分错误
以下程序对学生的记录数据统计不及格的人数并输出不及格学生的信息,请填空
structstu
{intnum;
charname[12];
floatscore;
};
main()
{____stud[5]={{101,“Liping”,45},/*$BLANK1$*/
{102,“Zhangping”,62.5},
{103,“Hefang”,92.5},
{104,“Chengling”,87},
{105,“wangming”,58}};
inti,n=0;
printf(“num\tname\tscore\n”)
i=0;
while(i<5)
{
if(_____<60)/*$BLANk2$*/
{printf(“%d\t%s\t%.2f\n”,stud[i].num,stud[i].name,stud[i].score);
______;/*$BLANK3$*/
}
i++;
}
printf(“n=%d\n”,n);
}
题目2:
以下程序的功能是删除字符串s(已知)中的所有数字字符。
请完善程序。
#include
main()
{intn=0,i;
chars[]=“asdgdfbsfj120mjd456m6m7n987nhyr”};
for(i=0;___s[i]!
=’\0’_______;i++)/*$BLANK1$*/
if(!
(s[i]>=‘0’&&s[I]<=‘9’))
s[n++]=s[i]___________;/*$BLANK2$*/
s[n]=____’\0’_________;
puts(s);
}
题目3:
求s=1+1+2+3+5+8+13+21+34+………的求和。
(前两项的值都为1,
从第三项开始每一项的值等于前两项的和,例如:
2=1+1,3=1+2,…….;
本题求前20项的和)
main()
{inti,a,b,c;
longs;
a=1;b=1;
i=3;
__s=0________/*$BLANK1$*/
while(i<=20)
{c=a+b;
s=__s+c___________;/*$BLANK2$*/
a=b;b=c;
___i++______/*$BLANK3$*/
}
printf(“s=%ld”,s);
}
题目4:
下列程序输出200~300之间的全部素数的和,请填空。
#include main() {inti,j,f,s; s=__0_______;/*$BLANK1$*/ for(i=201;i<300;i+=2) {f=1; for(j=2;j<=i/2;j++) if(i%j==0) {f=0; __break_________;/*$BLANK2$*/ } if(_f=1________)s+=i;/*$BLANK3$*/ } printf(“s=%d\n”,s); } 题目5: 以下程序的功能是在主函数中输入n的值,计算1! +2! +……+n! 的值, fac函数是求阶乘函数,请填空。 #include longfac(intn) { inti; longs; s=________;/*$BLANK1$*/ for(i=1;i<=n;i++) s=s*i; returns; } main() {longs; intk,n; scanf(“%d”,&n); s=______________;/*$BLANK2$*/ for(k=1;k<=n;k++) s=s+______________;/*$BLANK3$*/ printf(“%ld\n”,s); } 题目6: 百马百担问题。 有100匹马驮100担货,大马驮3担,中马驮2担,2匹小马分 驮1担。 下列程序输出大、中、小马的匹数(大、中、小马的匹数均不得为0)。 #include main() {inti=1,j,k; while(i<33) {______;/*$BLANK1$*/ while(j<50) {k=100-i-j; if(i*3+j*2+k/2==100&&___________)/*$BLANK2$*/ printf(“big=%d,min=%d,smaill=%d\n”,i,j,k); _______;/*%BLANK3$*/ } i++; } } 题目7: 输出以下图形(数字之间没有空格) 0001000 0011100 0111110 1111111 0111110 0011100 0001000 程序如下 #include main() {inti,j; for(i=-3;i<=3;i++) {j=1; while(j__<=_____abs(i))/*$BLANK2$*/ {printf(“0”);j++;} j=1; while(j__<=___7-2*abs(i))/*BLANK2$*/ {printf(“1”);j++;} j=1; while(j___<=sbs(i)__________)/*BLANK3$*/ {printf(“0”);j++;} printf(“\n”); } } 题目8: 求解满足条件1+2+3+……..+n>=1000的最小的值。 #include main() {inti,n,s; ___s=0_____;/*BLANK1$*/ i=1; while(s<1000) {_s=s+i____;/*BLANK2$*/ i=i+1; } n=n-1_______;/*BLANK3$*/ printf(“n=%d”,n); } 题目9: 以下程序通过指针操作,找出输入的三个整数中最大的数并输出。 #include main() {intx,y,z,max,*a=&x,*b=&y,*c=&z; scanf(“%d,%d,%d”,___________);/*$BLANK1$*/ printf(“x=%d,y=%d,z=%d\n”,x,y,z); max=*a; if(max<*b)____;/*$BLANK2$*/ if(max<*c)____;/*$BLANK3$*/ printf(“max=%d\n”,max); } 题目10: 完善程序,使5X5数组的主对角线元素为1,其他元素为0。 #include main() {intj,k,a[5][5]; for(j=0;j<5;j++) for(k=0;k<5;k++) {if(k==______);/*$BLANK1$*/ __________;/*$BLANK2$*/ else ___________;/*$BLANK3$*/ } for(j=0;j<5;j++) {for(k=0;k<5;k++) printf(“%d”,a[j][k]); printf(“\n”); } } 题目11: 删除一个字符串中的某个特定字符(设本例中要删除的特定字符为‘s’)。 main() {char[]=“thisisabook”; charc=‘s’; inti,j=0; for(i=0;a[i]! =___‘\0’_____;i++)/*$BLANK1$*/ if(a[i]! =__’s’______)/*$BLANK2$*/ a[j++]=a[i]; ___a[j]____=‘\0’;/*$BLANK3$*/ printf(“%s”,a); } 题目12: 数组的平均值。 #include floatmean(_intx[],intnum______________)/*$BLANK1$*/ {inti; floatavg; for(_avg=0_____,i=0;i avg+=x[i]; avg/=num; return(avg)_________;/*$BLANK3$*/ } main() {inti,a[15]; for(i=0;i<15;i++) a[i]=i+1; printf(“average: %6.2f\n”,mean(a,15)); } 题目13: 下列程序实现将1,2,3,4,5分别赋给数组a的5个元素,然后输出数组a的值。 #include main() {inta[5],i,*pa; pa=a; for(i=0;i<5;i++) {*pa=i+1; ________;/*BLANK1$*/ } _________;/*BLANK2$*/ for(i=0;i<5;i++) {printf(“a[%d]=%d\n”,i,*pa); __________;/*$BLANK3$*/ } } 题目14: 编程输出以下的杨辉三角形(输出前7行)。 1 11 121 1331 14641 15101051 1615201561 #defineN7 main() {inti,j,a[N][N]; for(i=0;i {a[i][i]=1; _a[i][0]_______=1;/*$BLANK1$*/ } for(i=2;i for(j=1;j<=i-1;j++) a[i][j]=_a[i-1][j-1]+a[i-1][j]_______________________;/*$BLANK2$*/ for(i=0;i {for(j=0;_j printf(“%5d”,a[i][j]); printf(“\n”); } } 题目15: 用冒泡法对10个数排序(从小到大),然后输出。 main() {inta[10]; inti,j,t; printf(“Enter10numbers: \n”); for(i=0;i<10;i++) scanf(“%d”,__&a[i]______);/*$BLANK1$*/ printf(“\n”); for(j=0;j<9;j++) for(i=0;i<_9-j__;i++)/*$BLANK2$*/ if(_a[i]>a[i+1]_______)/*$BLANK3$*/ {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf(“Thesortednumbers: \n”); for(i=0;i<10;i++) printf(“%d”,a[i]); } 题目16: 以下程序输入一行字符(以回车结束输入),统计其中每种数字字符的个数,存放到一维数组a中,并输出a中不为0的元素值。 #include“stdio.h” main() {charch; inti,a[10]={0}; while((ch=getchar())! =__’\0’______)/*$BLANK$1*/ if(ch>=‘0’_&&_____ch<=‘9’)/*$BLANK2$*/ a[ch-‘0’]++; for(i=0;i<=9;i++) if(_a[i]______! =0)/*$BLANK3$*/ printf(“a[%d]=%d\n”,i,a[i]); } 题目17: 下列程序中的数组a包括10个整数元素,从a的第二个元素开始,分别将后一项减前一项之差存入数组b,并按每行3个元素输出b。 (b中实际只有9个数,其中b[1]=a[1]-a[0],…,b[9]=a[9]-a[8])。 main() {inta[10],b[10],i; for(i=0;_i<10______;i++)/*$BLANK1$*/ scanf(“%d”,&a[i]); for(i=1;i<10;i++) b[i]=_a[i]-a[i-1]______;/*$BLANK2$*/ for(i=1;i<10;i++) {printf(“%3d”,b[i]); if(__i%3==0_______)printf(“\n”);/*$BLANK3$*/ } } 题目18: 已知一个首项大于0的等差数列前四项之和是26,积是880,求该四项之值。 #include main() {inta1,sum,product,a2,a3,a4; for(a1=1;a1<=5;a1++) for(a2=1;a2<=5;a2++) {a3=2*a2-a1; a4=2*a3-a2; __sum_______=a1+a2+a3+a4;/*$BLANK1$*/ __product_______=a1*a2*a3*a4;/*$BLANK2$*/ if(sum==26__&&______product==880)/*$BLANK3$*/ printf(“a1=%2d,a2=%2d,a3=%2d,a4=%2d\n”,a1,a2,a3,a4); } } 题目19: 下列程序的功能是: 输出100以内能被3整除且个位数为6的所有数。 main() {_inti,j;______/*$BLANK1$*/ for(i=0;__i<10_______;i++)/*$BLANK2$*/ {j=i*10+6; if(_j%3==0________)continue;/*$BLANK3$*/ printf(“%d”,j); } } 题目20: 以下程序中,主函数调用了Linenax函数,实现在N行M列的二维数组中,找出每一行上的最大值。 #defineN3 #defineN4 voidlinemax(inta[N][M]) {inti,j,p; for(i=0;i {p=0; for(j=1;j if(a[i][p] __________;/*$BLANK1$*/ printf(“Themaxvalueinline%dis%d\n”,i_________);/*$BLANK2$*/ } } main() {inta[N][M]={1,5,7,4,2,6,4,3,8,2,3,1,3}; _________________;/*$BLANK3$*/ } 题目21: 以下程序用函数的递归调用打印的n的阶乘值。 longfac(intn) {longf; if(n<0)printf(“n<0,dateerror”); elseif(n==0||n==1)f=1; elsef=__fac(n-1)*n_____________________;/*$BLANK1$*/ ___return(f)________________;/*$BLANK2$*/ } main() {intn; longy; printf(“inputaintergernumber: ”); scanf(“%d”,&n); y=_fac(n)___________;/*$BLANK3$*/ printf(“%d! =%ld”,n,y); } 2)、改错题 题目1: 将数组a中所有大于或等于10的数按原来的顺序依次存放到另外一个相同长度的数组b中,数组b剩余的元素全部赋值为-1 main() {inta[15]={20,9,-25,30,11,26,88,-8,0,50,129,92,2,4,12}; intb[15]; inti,j; j=0; i=0;/*$ERROR1$*/ while(i<15)/*$ERROR2$*/ {if(a[i]>=10) {b[j]=a[i];j++;} i++; } while(j<15) b[j++]=-1; for(i=0;i<15;i++) printf(“%d\n”,b[i]);/*$ERROR3$*/ } 题目2: 输出以下图形(输出数字之间无空格,每行第一个数字前也没有空格) 1 23 345 4567 56789 main() {inti,j; i=1;/*$ERROR1$*/ while(i<=5)/*$ERROR2$*/ {for(j=i;j<2*i;j++) printf(“%d”,j);/*$ERROR3$*/ printf(“\n”);i++; } } 题目3: 下列程序功能是: 从键盘输入一个字符串,统计其中大写字母个数m和小写字母个数n,并输出m,n中的较大者。 #include“stdio.h” #include“string.h” main() {chars[80]; inti,k,m=0,n=0; gets(s); i=0;/*$ERROR1$*/ k=strlen(s); while(i {if(s[i]>=‘A’&&s[i]<=‘Z’)m++; elseif(s[i]>=‘a’&&s[i]<=‘z’)n++; i++ } if(n printf(“max=%d\n”,m); elseprintf(“max=%d\n”,n); } 题目4: 以下程序的功能: 输出数组中的最大元素及其下标值。 (数组元素的值已知,不得修改,否则不得分) main() {inta[10]={0,-3,9,2,5,4,8,7,6,1};/*$ERROR1$*/ intt,max,i; max=a[0]; t=1;/*$ERROR2$*/ i=0; while(i<10)/*$ERROR3$*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cmn