欢迎来到天天文库
浏览记录
ID:42393351
大小:164.00 KB
页数:27页
时间:2019-09-14
《2013年软考程序员笔试考前练习试题_免费下载》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、阅读以下程序说明和C程序,将应填入__(n)__处的字句,写在答卷的对应栏内。 [程序说明] 本程序中的函数factor(m,fac,cp)用来计算正整m(m>2)的除自身以外的所有不同因子的和。该函数返回因子和,并把各因子从小到大依次存放在数组fac中,其因子个数存入在cp所指的变量中。 例如m=16,求得的因子为 (1,2,4,8) 提示:因子和为15,因子个数为4。 程序假定正整数m的不同因子个数不会超过100个。 [程序] #include #defineN100 longfactor(intm,intfac[],i
2、nt*cp) { intc1,c2,i,k; longs; fac[0]=1; for(c1=s=1,c2=N-1,____(1)____;;) { k=m/i; if(____(2)____) if(____(3)____) {fac[c1++]=i; fac[c2--]=k; s+=i+k; } else{ fac[c1++]=i; s+=i; } i++; if(i>=k)brdak; } for(c2++;c2<=N-1;c2++) ____(4)____; *cp=c1; return_
3、___(5)____; 答案: 1)3分i=2,或cl+1 2)3分m%i==0(或!(m%i)或m==i*k) 3)3分i!=k(或i4、是() (1)0 (2)1 (3)2 (4)3 3.下述程序执行后的输出结果是( ) #include main() { intx=’f’; printf("%c",’a’+(x-’a’+1)); } (1)G (2)H (3)I (4)J 4.设有程序, #include main() { inti,j; for(i=0,j=1;i<=j+1;i+=2,j--) printf("%d",i); } 在运行上述程序时,for语句中循环体的执行次数是() (1)3 (2)2 (3)1 5、 (4)0 5.在下述选项时,没有构成死循环的程序是() (1)inti=100 while(1) { i=i0+1; if(i>100) break; } (2)for(;;); (3)intk=1000; do { ++k; }while(k>=10000); (4)ints=36; while(s);--s; 答案: 1.(2)2.(2)3.(1)4.(3)5.(3) 1.假定a和b为int型变量,则执行下述语句组后,b的值为()。 a=1; b=10; do { b-=a; a++; }6、while(b--<0); (1)9(2)-2(3)-1(4)8 2.设有变量说明语句 inta=1,b=0; 则执行以下程序段的输出结果为()。 switch(a) { case1: switch(b) { case0:printf("**0**");break; case1:printf("**1**");break; } case2:printf("**2**");break; } printf(""); (1)**0**(2)**0****2**(3)**0****1****2**(4)有语法错误 7、3.以下合法的数组说明是()。 (1)chara[6]="string"; (2)inta[5]={0,1,2,3,4,5}; (3)chara="string"; (4)INTa[]={0,12,3,4,5}; 4.下述程序代码中有语法错误的行是()。 inti,ia[10],ib[10];/*第一行*/ for(i=0;i<=9;i++)/*第2行*/ ia=0;/*第3行*/ ib=ia;/第4行*/ (1)第1行(2)第2行(3)第3行(4)第4行 5.若已定义 inta[9],*p=a; :在以后的语句中未改8、变p的值,则不能表示a[1]地址的表达式是()。 (1)p+1(2)a+1(3)a++(4)++p 答案: 1.(4)2.(2)3.(4)4.(
4、是() (1)0 (2)1 (3)2 (4)3 3.下述程序执行后的输出结果是( ) #include main() { intx=’f’; printf("%c",’a’+(x-’a’+1)); } (1)G (2)H (3)I (4)J 4.设有程序, #include main() { inti,j; for(i=0,j=1;i<=j+1;i+=2,j--) printf("%d",i); } 在运行上述程序时,for语句中循环体的执行次数是() (1)3 (2)2 (3)1
5、 (4)0 5.在下述选项时,没有构成死循环的程序是() (1)inti=100 while(1) { i=i0+1; if(i>100) break; } (2)for(;;); (3)intk=1000; do { ++k; }while(k>=10000); (4)ints=36; while(s);--s; 答案: 1.(2)2.(2)3.(1)4.(3)5.(3) 1.假定a和b为int型变量,则执行下述语句组后,b的值为()。 a=1; b=10; do { b-=a; a++; }
6、while(b--<0); (1)9(2)-2(3)-1(4)8 2.设有变量说明语句 inta=1,b=0; 则执行以下程序段的输出结果为()。 switch(a) { case1: switch(b) { case0:printf("**0**");break; case1:printf("**1**");break; } case2:printf("**2**");break; } printf(""); (1)**0**(2)**0****2**(3)**0****1****2**(4)有语法错误
7、3.以下合法的数组说明是()。 (1)chara[6]="string"; (2)inta[5]={0,1,2,3,4,5}; (3)chara="string"; (4)INTa[]={0,12,3,4,5}; 4.下述程序代码中有语法错误的行是()。 inti,ia[10],ib[10];/*第一行*/ for(i=0;i<=9;i++)/*第2行*/ ia=0;/*第3行*/ ib=ia;/第4行*/ (1)第1行(2)第2行(3)第3行(4)第4行 5.若已定义 inta[9],*p=a; :在以后的语句中未改
8、变p的值,则不能表示a[1]地址的表达式是()。 (1)p+1(2)a+1(3)a++(4)++p 答案: 1.(4)2.(2)3.(4)4.(
此文档下载收益归作者所有