B)2,4 C)3,4 D)4,6
(38)有以下程序
#include <stdio.h>
main()
{ int a=2,b;
b=a<<2;
printf("%d\n",b);
)
程序运行后的输出结果是
A)2 B)4 C)6 D)8
(39)下列选项中叙述错误的是
A)C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
B)在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
C)C程序函数中定义的自动变量,系统不自动赋确定的初值
D)C程序函数的形参不可以说明为static型变量
(40)有以下程序
#include <stdio.h>
int main()
{
FILE *fp;
int k,n,i,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w");
for (i=0; i<6; i++) fprintf(fp,"%d\n",a[i]);
fclose(fp);
fp=fopen("d2.dat","r");
for (i=0; i<3; i++) fscanf(fp,"%d%d",&k,&n);
fclose(fp);
printf("%d,%d\n",k,n);
return 0;
}
程序运行后的输出结果是
A)1,2 B)3,4 C)5,6 D)123,456
二、程序填空题(18分)
下面程序中函数fun的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串yes!;否则函数返回字符串no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <string.h>
/**********found**********/
___1___ fun(char *str)
{
char *p1,*p2;
unsigned int i,t=0;
p1=str;
/**********found**********/
p2=___2___;
for (i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--)
{ t=1; break; }
/**********found**********/
if (___3___) return ("yes!");
else return ("no!");
}
int main()
{
char str[50];
printf("Input:");
scanf("%s",str);
printf("%s\n",fun(str) );
return 0;
}
三、程序修改题(18分)
下列给定程序中,函数fun的功能是:根据下面的公式求π的近似值。形参n给出了公式右边的项数,如n=4表示π/4=1-1/3+1/5-1/7。例如,给定实参项数的值为5000,则程序运行后,输出为PI = 3.1413927。
请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
double fun(int n)
{
double pi = 0.0;
int i,f=1;
for (i=1;i<=n;i++)
{
/*************found**************/
pi = pi + f/(2*i-1);
f = -f;
}
/*************found**************/
return pi;
}
int main