一、程序题
(类型:程序填空题、改错题和设计题)
第一组
1、下面程序是求[1,450]之间同时满足除3余2和除5余3条件的数的个数。请将程序补充完整,并给出正确结果,填入相应窗口。 程序: 结果是:30
3、下面程序是求[50,300]之间的所有偶数的平方和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序: 结果是:4525500
第二组
1、程序是求 s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*....*n)/(3*5*7*.....(2*n+1)) 请修改程序中的错误,并运行修改后的程序。当n=30时,程序的运行结果(按四舍五入保留10位小数)。 程序:结果:1.5707963267
2、下面的程序是计算如下公式的A30值。 A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ...... 请改正程序中的错误, 并给出程序运行的正确结果(按四舍五入保留10位小数)。 程序: 结果为:0.6180339887
3、下面的程序是求表达式的值:
s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*......*n)/(3*5*7*......(2*n+1)) 请将程序补充完整,并给出当n=25时,程序的运行结果(按四舍五入保留10位小数) 程序:
结果:1.5707963218
4、下面的程序中,函数fun的功能是:根据形参m,计算下面公式的值。 T=1+1/(2*3)+1/(3*4)+......+1/(m*(m+1)) 请改正程序中的错误,并运行改正后的程序。当从键盘输入50时,给出程序运行的正确结果(按四舍五入保留6位小数)。 程序:
结果是: %lf \n",fun(m)
第三组
1、斐波那契数列的前二项是1,1,以后每一项都是前面两项之和。求10000000以内有多少个斐波那契数? 结果是:35
2、已知fibonacci数列:1,1,2,3,5,8,......,它可由下面公式表述:
F(1)=1 if n=1 F(2)=1 if n=2 F(n)=F(n-1)+F(n-2)
if n>2 以下程序是求F(35),请将程序补充完整,并给出正确结果,填入相应窗口。 程序:结果:9227465
3、已知 : f(0)=f(1)=1 f(2)=0 f(n)=f(n-1)-2*f(n-2)+f(n-3) (n>2) 求f(0)到f(50)中的最大值 。 结果是:598325
第四组
1、所谓“水仙花数”是指一个三位数,其各位数字的三次方之和等于该数本身,例如:153=1^3+3^3+5^3,故153是水仙花数,求[100,999]之间所有水仙花数之和。结果:1301
2、若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。例如: 由于7396=86^2,且7+3+9+6=25=5^2,则称7396是“四位双平方数”。若把所有“四位双平方数”按升序排列,求前5个“四位双平方数”的和。
结果:10132
printf怎么加两个条件3、设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的所有四位数abcd的和。结果:3665
4、所谓“同构
数”是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[2,1000]之间有多少个同构数。结果:6
5、某些分数的分子和分母都是二位正整数的真分数具有下列特点:如果将该分数的分子的两位数字相加作分子,而将该分数的分母的两位数字相加作分母,得到的新分子跟原分子相等。例如,63/84=(6+3)/(8+4)。试求所有具有这种特点的真分子(非约简真分数)的分子与分母之和的和。结果:10134
6、若某正整数平方等于某两个正整数平方之和,称该正整数为弦数。例如:由于3^2+4^2=5^2,则5为弦数,求[131,200]之间最小的弦数 结果:135
7、一个数如果恰好等于它的所有真因子之和,这个数就称为“完数”。例如,6的真因子为1,2,3,而6=1+2+3,因此,6是“完数”。求[1,1000]之间的第二大完数。结果是:28
8、以下程序求10000以内的所有完全数之和,请将程序补充完整,并给出正确结果,填入相应窗口。“完全数”是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完全数。 程序:结果是:8658
9、已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好能被其因子数8整除,求正整数[10,100]之间有多少个正整数能被其因子的个数整除。结果是:12
10、已知24有8个因子(即:1,2,3,4,6,8,12,24),而24正好被8整除。求[10,200]之间有多少个整数能被其因子的个数整除,将下列程序补充完整,正确结果填入相应窗口。 程序:结果是:21
11、求[200,300]之间第二大有奇数个不同因子的整数(在计算因子个数时,包括该数本身)。
结果是:256
12、若某整数平方等于某两个正整数平方之和的正整数称为弦数。例如:由于3^2+4^2=5^2,则5为弦数,求[100,200]之间弦数的个数。 结果是:55
13、 A,B,C是三个小于或等于100正整数,当满足1/A^2+1/B^2=1/C^2关系时,称为倒勾股数。求130<A+B+C<150且A>B>C的倒勾股数有多少组。结果是:1
1、素数
下面的程序是求[20,700]之间所有的素数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。结果:117
2、下面的程序是求1000以内的最大的20个素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。 程序:结果:18580
3若两个素数之差为2,则称这两个素数为双胞胎数。求出[200,1000]之内有多少对双胞胎数。 结果是:20
4、梅森尼数是指能使2^n-1为素数的数n,求[2,21]范围内最大的梅素尼数?结果是:19
1、爱因斯坦走台阶:有一台阶,如果每次走两阶,最后剩一阶;如果每
次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每次走七阶,刚好走完.求满足上述条件的最小台阶数是多少? 结果是:119
2、穷举法
把一张一元钞票,换成一分、二分和五分硬币,每种至少5枚,问有多少种方案? 结果是:205
3、下面的程序是求如下表达式的值。 S=sqrt(ln(1)+ln(2)+ln(3)+……+ln(n)) 请改正程序中的错误,并运行修改后的程序, 当n=50时,给出程序运行结果(按四舍五入保留6位小数)。 程序:
4、某一正整数,进行递减,每次将该数减半后再减一,当对该数进行第10次减半时发现该数只剩下1不能再减了,求该数。 结果是:1534
5、已知A<B, A和B均为正整数,且A*B=2698,求A+B的最小值。 结果是:109
第七组:综合题一
1、下面的程序是求500以内的所有的素数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序: 结果是:95
2、下面的程序是求如下表达式的值。 S=sqrt(ln(1)+ln(2)+ln(3)+……+ln(n)) 将程序补充完整, 当n=40时,给出程序运行结果(按四舍五入保留6位小数)。 程序: 结果是:10.503363
3、若某整数平方等于某两个正整数平方之和的正整数称为弦数。例如:由于3^2+4^2=5^2,则5为弦数,求[100,200]之间弦数的个数。 结果是:55
第八组:综合题二
1、列程序的功能是求出以下分数序列的前25项之和, 2/1,3/2,5/3,8/5,13/8,21/13,...... 请改正程序中的错误,并运行修改后程序,给出程序结果(按四舍五入保留6位小数)。
程序: 结果是:40.750431
2、下面程序是求[1,100]之间的所有整数的立方和。请将程序补充完整,并给出正确结果,填入相应窗口。 程序: 结果是:25502500
3、有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的所有四位数bcde的和。 结果是:16659
二、选择题
1. 在TC中,若k是int型变量,且有下面的程序片段:
int k = -2;
if (k<=0)
printf("####");
else
printf("&&&&");
上面程序片段的输出结果是( D #### )。
2. C语言程序是由( A 函数 )组成的。
3. 下列语句中符合C语言语法的赋值语句是( C a=0x7b,c=a7; )。
4. 在TC中,已知 unsigned int x=65535;则执行以下语句后的x值为 ( D -1 ) 。printf(“%d\n”,x);
5. 在C语言中,下列不正确的转义字符是( C '074' )。
6. 在C语言中,要求运算数必须是整型的运算符是( B % ) 。
7. 在C语言中,以下一组运算符中,优先级最高的运算符是( B % )。
8. 在TC中,若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是( A 2.000000 )
9. 在C语言中,能
实现字符串连接的函数是( A strcat() )。
A strcat() B strcmp() C strcpy() D strlen()
10. 在TC中,为了判断两个字符s1和s2是否相等,应当使用( A if (strcmp(s1,s2)==0) )。
11. 在TC中,函数调用:strcat(strcpy(str1,str2),str3)的功能是( D 将串str2复制到串str1中后再将串str3连接到串str1之后 )。
12. 在C语言中,以下哪个函数用于将字符输出到标准输出设备( A putchar() )。
13. 在TC中,下列关于switch语句和break语句的结论中,只有( A 在switch语句中可以根据需要使用或不使用break语句 )是正确的。
14. 在TC中,设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为( C 2 )。
15. 在C语言中,当do-while语句中的条件为( C 0 )时,结束该循环。
16. 在C语言中,有表达式 x=abs(8-10), 则x的值为( 80)。
17. 在C语言中,有:char str[]="abcd"; printf(%d\n",strlen(str)); 上面程序片段的输出结果是( 4 )。
18. 在TC中,下列语句的输出结果是( 9 )。
printf("%d\n", strlen("ATS\n012\1\\"));
19. 在TC中,表达式: 10!=9 的值是( 1 )。
20. 在TC中,假定有以下变量定义: int k=7 ,x=12; 则能使其值为 3 的表达式是((x%=k)-(k%=5) )。
21. 在TC中,若u=1,v=2,w=3,则表达式w==(v=-u)执行完后w 的值是(3 )。
22. 在TC中,若w=1, x=2 , y=3, z=4; 则条件表达式: w>x ? w : y<z ? y:z 的结果为( 3 )。
23. 在TC中,若x和y都是int型变量,x=100,y=200,下列语句的输出结果是(200 )。printf("%d\n",(x,y));
24. 在TC中,已知: int x=10, y=3 , z; 则下列语句的输出结果是 ( 3 ) 。 printf(“%d\n”, z=(x%y,x/y));
25. 在C语言中,合法的数组定义是( char a[]={0,1,2,3,4,5}; )。
26. 在C语言中,定义数组int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},则a[3]的值为( 4)。
A 3 B 4 C 5 D 6
27. 在C语言中,定义数组int a[2][4]={3,4,5,6,7,8,9,10},则a[0][3]的值为(6 )。
28. 在TC中,若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(a )
29. 在TC中,表示关系 X<=Y<=Z 的表达式为( (X<=Y)&&(Y<=Z) )。
30. 在TC中,表示关系 x<y<z 所对应的表达式是( (x < y) && (y < z) )。
31. 在TC中,下列符号中可以作为函数名的是( _sysf )。
32. C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是( 值传递 )。
33. 在TC中, 若有定义和语句: char s[10];s="abcd";printf("%s\n",s); 则结果是( 编译不通过 )(以下u代表空格)。
34. 在C语言中,定义 char a[]={'a','b','l','l','o'},已知字符'b'的ASCII码为98,则 printf("%d\n",a[0]); 的值为( 97 )。
35. 在TC中,若定义 int a[4][6],则数组 a 有( 24 )个元素。
36. 在TC中,若有以下定义:char a; int b; float
c; double d; 则表达式a*b+d-c值的类型为( double )。
37. 在C语言中,若a=0x21,则printf("%d",a);输出值为( 33 )。
38. 在C语言中,执行语句:for(i=1;i<4;i++);后,变量i的值是( 4 )。
39. 在C语言中,执行语句:for(j=1;j<=4;++j);后,变量j的值是( 5 )。
40. 在TC中,执行语句: for (i=1;i++<4;);后,变量i的值是( 5 )。
41. 在TC中,与语句 "while(!x)" 等价的语句是( double )。
42. 在TC中, while(x)中的x与下面条件表达式等价的是( X!=0 )。
43. 在TC中,执行下面程序片段的结果是(打印出12 )。
int x=13;
do { printf("%2d",--x);} while(!x);
44. 在TC中,若i,j已定义为int类型,且内循环体不改变i,j的值,则以下程序段中内循环体的总的执行次数是( 20 )。
for(i=5;i;i--)
for(j=0;j<4;j++) {…}
45. 在TC中,若x=0,y=1,则语句while(x==y){x++; break;} 循环体执行次数 是(0 )。
46. 在TC中,设k为整型变量,则下面while循环共执行( 2 )次。
k=2; while(k!=0) printf("%d",k), k--; printf("\n");
47. 在TC中,设已定义k为int整型变量,则有下面while循环执行( 一次也不执行 )次。 k=10; while(k=0) k=k-1;
48. 在C语言中,若i=3,则语句 while (i) { i--; break;}的循环次数为(1 )。
49. 在TC中,若已知int a,x; 以下( a=-a=(x=1,x++,x+2) )是正确的赋值语句。
50. 在TC中,不能把字符串 "Hello!" 赋给数组b的语句是( char b[10];b="Hello!"; )。
51. 在TC中,假定所有变量均已正确说明,下列程序段运行后x的值是 (3 )。 a=b=c=0;x=35; if(!a) x=3; else x=4;
52. 在C语言中,执行下面语句后,输出的结果是( 3 )。
int x=10,y=3; printf("%d\n",y=x/y);
53. 在TC中,定义 int *swap() 指的是( 指一个返回指向整型值指针的函数swap)
54. 在TC中,设有如下定义: int (*ptr)(); 则以下叙述中正确的是( ptr是指向函数的指针,该函数返回一个
int型数据 )。
55. 在TC中,若 int x=2, y=2, z=2 ; 则表达式 z+=++x+y++的值为( 7 )。
56. 在TC中,设x,y,z,t均为int型变量,则执行以下语句后,t的值为( 1 ) x=y=z=1; t=++x||++y&&++z;
57. 在TC中,若有定义 int y=2; int z=5 ,x=-4; 则表达式y+=abs(x)+x+z的值为( 7)。
58. 在TC中,若有定义:static int x[2][3]={2,3,4,5,6,7},则表达式*x[0]的值为( 2)
59. 在TC中,设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( p2=k; )。
60. 在TC中,已知定义:int b[]={1,2,3,4},y,*p=b;执行y=*p++后,y的值为( 1 )。
61. 在TC中,若有以下定义: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g;则结果数值为4的表达式是( a['d'-c] )。
62. 在TC中,以下程序运行后,输出结果是( 字符C的地址 ) 。
main( ){
char *s="abcde"; s+=2; printf("%ld \n",s);}
63. 在TC中,以下程序运行后,输出结果是( c ) 。
main( ){ char *s="abcde"; s+=2; printf("%c \n",*s);}
64. 在TC中,以下程序运行后,输出结果是( cde ) 。
main( ){ char *s="abcde"; s+=2; printf("%s \n",s);}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论