c语言程序分析题评分标准,C语言程序设计预赛主观题答案及评分标准

41528d3028836879cd698677c3999917.gifC语言程序设计预赛主观题答案及评分标准

程序填充题(6题,5分/题,共30分) 1、下列代码欲实现将一个二进制字符串转换为整数。请填写缺少的语句: char *p = “1010110001100 “; int n=0; for(int i=0; i< strlen(p); i++) { ; } printf(“ %d\n “, n); 【分 数】5分 【评分标准】n=n*2+(*(p+i)-48)【5分】 2、计算3个A,2个B可以组成多少种排列的问题(如:AAABB,AABBA)属于组合数学的研究领域。下列程序将计算出m个A,n个B可以组合成多少个不同的排列。请补充缺少的代码。 int f(int m, int n) { if(m==0 || n==0) return 1; return ; } 【分 数】5分 【评分标准】f(m-1,n)+f(m,n-1) 【5分】 3、下列代码是把一个缓冲区中的整数重新排列,使得所有负数都在正数的左边。请分析其工作流程,补充缺失的代码。 void reorder(int *pData, int len) { if(pData == NULL || len == 0) return; int *pBegin = pData; int *pEnd = ① ; while(pBegin < pEnd) { if(*pBegin = 0) { pEnd--; ③ ; } int temp = *pBegin; *pBegin = *pEnd; *pEnd = temp; } int main(int argc, char **argv) { int a[] = {1, 2, 3, -5, -4, 5, 9, -8, -1}; reorder(a, 9); for(int i=0; i<9; i++) printf(“%d “, a[i]); printf(“\n “); return 0; } 【分 数】5分 【评分标准】 ①pData + len-1【3分】; ②continue【1分】; ③continue【1分】。 4、下列程序可以求出1~299中能被3整除,且至少有一位数字为5的所有整数,并将结果写到文件d:\result.txt中。请补充缺失的代码。 #include int IsDivBy5(int m) { int i; for(i=0;i<3;i++){ if(m%10==5) return 1; ① ; } return 0; } void main() { int i; FILE *fp; if( (fp= ② ) == NULL){ printf(“open file error“); exit(0); } for(i=0;i<300;i++){ if( ③ ) fprintf(fp,“%d\n“,i); } fclose(fp); } 【分 数】5分 【评分标准】 ①m /=10【2分】; ②(“d:\\result.txt“,“w+“)【1分】; ③i%3==0 char sb[]=“00000000“; int n=0; int i,j; sprintf(sa,“%8d“,a); sprintf(sb,“%8d“,b); for(i=0;i<8;i++) { for(j=1;jn) ② ; } sa[i+j] = t; } } return n; } 【分 数】5分 【评分标准】 ①sa[i+j]【3分】; ②n++【2分】。 6、某比赛采用5分制一局,现有甲和乙的比赛,对甲而言W代表得一分,L代表输一分。比赛记录如下: WWLWLWLLWWLWLLWWWLLLWWL 现在要求把比赛记录转化为每局的比分对比情况,如上述结果记为: 3:2 3:2 2:3 2:3 2:1 最后的2:1表示比赛正在进行。 请完善下面的程序,将上述计分串变为比分的形式。 #include void countRec(char rec5[5],int n) { int i,win=0,lose=0; for(i=0;i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值