26、在TC中,已知:int a=15,b=0;则表达式(a&b)&&b的结果为 (A) A .0 B.1 C.TRUE D.FLASE 27、设int a=10,则执行完语句a+=a-=a*a后,a的值是 (D) A .99 B .100 C. 110 D. -180 28、在C语言中,以下叙述不正确是 (B) A.一个C源程序可由一个或多个函数组成 B在C程序中,注释说明只能位于一条语句后面
C.C程序的基本组成单位是函数 D. 一个C源程序必须包含一个main函数 29、在c语言中,以下程序的输出结果是()答案:B long fun(int n) { long int s;
解析:fun(3)= s, [s=3-fun(2)] lf(n==1||n==2) s=2;
Fun(2)=s, [s=2] 此时n= =2 else s=n-fun(n-1);
故:fun(3)=3-2= 1 return s;} main()
{ printf(“%ld\\n”,fun(3));}
A .2 B.1 C.3 D.4 30、在C语言中,有以下程序
(B)答案” main() { int a=1,b; 解析:b=1, a+5?6, b+1?2 for(b=1;b<=9;b++) b=2, a-3?3,b+1?3 { if(a>=8) break; b=3, a+5?8, b+1?4; if(a%2==1){a+=5;continue;} b=4, a>=8 跳出循环体。 a-=3
} printf(“%d\\n”,b);}
A.3 B.4 C. 5 D.6 改错题:
求1~500中所有素数之和 #include
if(n<=1) {return 0;} yes=1;
for(i=2;i<=sqrt(n);i++) /*下行有错*/
if(n%i!=0) (改为 if(n%i= =0)) { yes=0;break;} return yes;} void main() { int sum=0,i; for(i>2;i<500;i++)
if(prime(i)) /*下行有错*/
sum+=1; (改为 sum+=i;) printf(”%d\\n”,sum);} 此题结果是:21536 填空题:
求[1000,9999]中的四位数abcd满足等式a+c=b*d式的数之和。 #include
for(n=1000;n<=9999;n++) { a=n/1000;
b=(n-a*1000)/100;(=n/100 ) c=(n-a*1000-b*100)/10; ( =n/10) d=n;
if(a+c= =b*d) s=s+n;
printf(“%ld\\n”,s);} 结果是:1078289. 程序设计题:
A,B,C是三个小于或等于100的正整数,当满足1/A2+1/B2=1/C2关系时。称为倒勾股数。求130B>C的倒勾股数有多少组。 #include
表达式也可化成整数形式:for(a=1;a<=100;a++)
c*c*b*b+c*c*a*a = =a*a*b*b for(b=1;b<=100;b++)
for(c=1;c<=100;c++)
if(1/pow(a,2)+1/pow(b,2)= =1/pow(c,2)&&(a+b+c)>130&&(a+b+c)<150&&a>b&&b>c) i=i+1;
printf(“%d”,i);} 此题结果为:1
26、在TC中,若有定义float a[5][4],则数组a可以有()个元素。20 27、在TC中,已知:int x=15,y=6,z;则下列语句的输出结果() 2
printf(“%d\\n”,z=(x%y,x/y))
解析:z=(3,2) ?2 逗号表达式值是最后一个表达式2的值是2。 答案:2
28.在TC中若有int x=4,y=5 ,则执行完表达式x*=y-1后,x值为() 16 29.在TC中,执行下面程序片段的结果是() int x=13 do
{ printf(“-”,--x);}
while(!x) 12 30、在TC中,设a=3,b=4,c=5,d=6,则表达式:b
下面程序是求如下表达式的值 s=sqrt(ln(1)+ln(2)+?+ln(n)) 修改程序,当n=50时,求结果(6位小数) #include
int fun (int n) 修改 float fun (int n) { int s=0;int i; for (i=1;i<=n;i++) s+=log(1.0*i); s=sqrt(s); return s;} main()
{ printf(“%lf\\n”,fun(50));} 结果为12.185145
下面程序是求[2,60]之间的所有偶数的立方和。请补充。 #include
{ long sum; Int I; sum=o;
for(i=2;i<=0;i++) { if(fmod(I,2)==0) sum=sum+i*i*i;}
printf(“%ld\\n”sum);} 结果:
若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数,例:2*3-1=5,因此2与3是友数对,5是友素数,求[2,49]之间友素数对的数目。 #include
for(i=2;i void main() { int i,count=0; for(i=2;i<49;i++) if(prime(i*(i+1)-1)count++; printf(\} 26、在C语言中,以下程序的输出结果是(B) long fun(int n) { long s; if(n==1||n==2)s=2; else s=n-fun(n-1); return s;} main() { printf(“%ld\\n”,fun(3));} A.2 B.1 C.3 D.4 27、在TC中,设已定义k为int整型变量,则有下面while循环执行(C)次。 k=10; while(k=0)k=k-1; A.执行10次 B.无限循环 C.一次也不执行 D.执行一次 28、在C语言中,下面程序段的运行结果是(A) main {char a[]=”student”,*p; p=a; while(*p!=?d?){printf(“%c”,*p-32);p++;} } A. STU B. den C. DEN D. stu 29、在TC中,下面能正确进行字符串赋值操作的语句是(B错:数组元素个数有6+1=7个) 答案:C A. char s[5]={?a?,?b?,?c?,?d?,?e?,?f?} B. char s[5]={“ABCDEF”,} C. char *s;s=”ABCDEF”; D. s;scanf(“%s”,s) 30、在C语言中,x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句(D) A.int x,y,z; B.read(“%d%d%d”,&x,&y,&z); C.scanf(“%d%d%d”,x,y,) D.scanf(“%d%d%d”,&x,&y,&z) 【已有】程序填空题: 下面的程序是求如下表达式的值 s=sqrt(ln(1)+ln(2)+ln(3)+…+ln(n)) 将程序补充完整,当n=20是,把程序运行的结果填入相应窗口(按四舍五人保留6为小数) 程序: #include for(i=1;i<=n;i++) s+=long(1.0*i); ____________________ return s;} main() { clrscr(); printf(%.6lf”,fun(20));} 结果6.506583 程序设计题 因子(除它本身外)之和等于它本身的数称为完数。如6的因子是1,2,3,而1+2+3=6。,所以6是完数。求[2,1000]区间类的完数之和。 #include { int i,j,s,sum=0; for(i=2;i<=1000;i++) { s=0; //因子和 for(j=1;j printf(\} 26、在TC中,已知int x=17,y=7,则执行以下语句printf(%d/n,x%=(y%=z)后的输出为(0) “Z”没有定义,不是Z,应该是2吧。 27、在TC中,若有定义int y=2;int z=5;int x=-4,则表达式y+=abs(x)+x+z的值为(7) 28、在TC中,若有定义static int xx[2][3]={2、3、4、5、6、7},则表达式xx[0]的值(&xx[0][0],即2这个元素的地址) 29、在TC中,执行下面程序片段的结果是(打印出23) int x=23; do { printf(?-?,x--);} while(!x); 30、在TC中,设x=1,y=2,执行表达式(x>y)?x++;y++以后x和y的值分别为(1和3) 选择题: 26、在C语言中,定义 char a[]={?a?,?b?,?l?,?l?,?o?},已知字符?b?的ASCII码值为98,则printf(“%d\\n”,a[0]):的值为( A ) A.97 B.a C.98 D.b 27、在C语言中,若i=3,则语句while(i){i--;break;}的循环次数为( B ) A.3 B.1 C.2 D.0 28、在TC中,若有以下定义: char a; int b; float c; double d; 则表达式a*b+d-c值得类型为( C ) A.float B.int C.double D.char 29、在C语言中,定义数组int a[2][4]={3,4,5,6,7,8,9,10},则a[0][3]的值为( D ) A.9 B.8 C.7 D.6 30、在TC中,表示关系X<=Y<=Z的表达式为( A ) A.(X<=Y)&&(Y<=Z) B.(X<=Y)AND(Y<=Z) C.(X<=Y<=Z) D.(X<=Y)&(Y<=Z)