C语言02 - 08年春夏学期考试试卷及答案汇总 下载本文

{FILE *fpa,*fpb;

If((fpa=fopen(“t.c”,”r”))==NULL){ printf(“Can?t open file a.txt !\\n”); exit(0); }

If((fpb=fopen(“b.txt”,”w”))==NULL){ printf(“Can?t open file b.txt!\\n”); exit(0); }

while(!feof(fpa)) fputc(fgetc(fpa),fpb); fclose(fpa);fclose(fpb); }

四、程序填空题(每空2分,共40分)

6. 读入1个正实数eps,计算并输出1-1/3+1/5-1/7+??,直到最后一项的绝对值小于eps。

# include

# include void main() { int temp,flag; double eps,item,sum;

scanf(“%le”,&eps); sum=0;item=flag=temp=1; while(fabs(item)>eps){ sum=sum+item;

temp= (1) ; (2) ; item= (3) *flag/temp;

}

printf(\ }

2.输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。 #include

void main()

{int blan=0,digit=0,latter=0,other=0; char c;

c=getchar();

while( (4) ){ if( (5) )/* 判断英文字母 */ leter++;

else if( (6) )/* 判断数字字符 */ digit++;

else if( (7) )/* 判断空格 */ blank++; else

other++;

(8) ; }

printf(“letter=%d,blank+%d,digit=%d.other=%d\\n”,letter,blank,digit,other); }

3.a是一个3X3的矩阵,输入a的元素,如果a是下三角矩阵,输出\否则,输出\下 三角矩阵即主对角线以上的元素都为0,主对角线为从矩阵的左上角至右下角的连线)。

#include void main() {int a[3][3],flag,i,k; for(i=0;i<3;i++) for(k=0;k<3;k++) scanf(“%d”,&a[i][k]); (9) ; for(i=0;i<3;i++)

for( (10) ;k<3;k++) if( (11) ){ (12) ; break;

}

if(flag)printf(“YES\\n”);

else printf(“NO\\n”); }

4. 定义函数f(numbe),它的功能是返回number的逆序数.’例如f(-123)的返回值是-321。 long f(long number) {int flag,digit; long res=0;

flag=number<0?-1:1;

if(number<0)number=-number; while(number!=0){

(13) ; number/=10;

}

(14) ; }

5. 编写一个函数delchar(s,c),该函数将字符串s中出现的所有c字符删除。 void delchar(char s[],char c) { int j=0,k=0;

while(s[j]!=?\\0?){

if(s[j]!=c){ s[k]=s[j];

(15) ; }

(16) ;

}

(17) ; }

6. 请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。

void f1(char s[],char t[])

{int j=0,k=0;

while(s[j]!=?\\0?)j++;

while((s[j++]=t[k++])!=?\\0?) ; }

void f2(char *s,char *t) {while( (18) ) (19) ++; while( (20) ) ; }

2004试卷答案 一.单项选择题(每题1分,共10分)

1.C 2.B 3.A 4.C 5.C 6.A 7.C 8.D 9.D 10.B

二、填空题(每题2分,共20分)

33. s*(s-a)*(s-b)*(s-c) 34. 0 35. 1 36. 3 37. 36 38. 6 39. 3,2 40. WO,T

41. 0 3

42. typedef int *PA;

三、程序阅读题(每题5分,共30分)

10. Pass 2. 7#-21#10#0# 3. 101 4. 120 5. you? 6. 把t.c文件复制成b.txt文件

四、程序(段)填空题(每空2分,共40分)

(1) temp+2 (2) flag=-flag

(3) 1.0 (4) c!=?\\n?

(5) c>=?a?&&c<=?z?||c>=?A?&&c<=?Z? (6) c>=?0?&&c<=?9? (7) c==? ? (8) c=getchar()

(9) flag=1 (10) k=i+1 (11) a[i][k]!=0 (12) flag=0

(13) res=res*10+number (14) return flag*res (15) k++ (16) j++ (17) s[k]='\\0' (18) *s!='\\0' (19) s (20) *s++=*t++

2002~2003学年“C程序设计基础”试卷

考试时间: 2003年6月20日上午8:30-10:30

姓名___________________ 学号___________________ 成绩____________________

一.单项选择题(每题1分,共10分)

6. 下列运算符中,优先级最低是______。

A.<<

B.!=

C.&& C.10 C.!x>0||!y>0 C.!EOF

D.+= D.1.0

D.!(x>0)||!(y>0) D.NULL D.2 D.a,b D.a++

2. 以下选项中不正确的整型常量是______。

A.0xa B.010L 3. 表达式!(x>0||y>0)等价于______。 A.!(x>0)&&!(y>0) B.!x>0&&!y>0 4. 表达式______的值不是0。

A.1/2 B.!?\\0?

5. 若x是浮点型变量,表达式(x=10/4)的值是______。 A.2.5 B.2.0 C. 3

6. 若变量已正确定义并赋值,表达式_____不正确。

A.a&b A.a[9]

B.a^b B.p[5]

C.&&x C.*p++

7. 对于变量定义int a[10],*p=a;,表达式_______是不正确的。

8. 不正确的赋值或赋初值的方式是______。 A.char str[10];str=\;

C.char *p=\; #include void fun(int x) {static int y; … return ;}

int z;

vioid main()

{int a,b; fun(a) …} A.x,y A.p=a

B.x,y,z B.p[0]=a

C.a,b,y,z C.*(a+1)=p

D.a,b,x,y,z D.a[0]=2

B.char str[]=\; D.char *p;p=\;

9. 设程序中不再定义新的变量,写出在函数fun中可以使用的所有的变量_______ 。

10. 对于变量定义int p[5],*a[5];,表达式_______是正确的。 二、填空题(每题2分,共30分)

1.数组定义为int a[2][3][4],则数组a中有__________个数组元素。 2.计算下列分段函数的条件表达式是_________________。

1 x>0

y= 0 x=0 -1 x<0

3.表达式1<10<5 的值是_______________________。