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

S=1/1!+1/2!+1/3!+…+1/n! # include void main() { int j,k,n;float f,s; scanf(“%d”,&n); (1) ; for(k=1;k<=n;k++){ (2) ; for(j=1; (3) ;j++) (4) ; s=s+1.0/f; }

printf(\ }

2.输入1个正整数n,如果它是素数,输出”YES”,否则,输出”NO”(素数就是只能被1和本身整除的正整数,1不是素数,2是素数)。 #include #include void main() {int n;

int prime(int m); scanf(“%d”,&n); if( (5) ) printf(“YES\\n”); else

printf(“NO\\n”); }

int prime(int m) {int I,n;

if(m==1) return 0; n=sqrt(m);

for(i=2;i<=n;i++)

if( (6) )return (7) ; (8) ; }

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

int f1(char s[]) {int k=0;

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

int f2(char *s) {char *ss;

(9) ; while(*s++!= (10) ); return (11) ; }

4.输入30位学生的姓名和成绩,输出成绩最高的学生的姓名及其成绩。 #include struct student{ char name[10]; int score; }

void main() {int k;

struct student s[30],*ptr;

struct student *f(struct student *stud,int n); for(k=0;k<30;k++)

scanf(“%s%d”,s[k].name,&s[k].score); (12) ; printf(“%s %d\\n”,ptr->name,ptr->score); }

struct student *f(struct student *stud,int n) {struct student *pmax,*p;

(13) ; for(p=stud;p

if(p->score>pmax->score) (14) ; retrun (15) ; }

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

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

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

43. 24

44. x>0?1:(x==0)?0:1 45. 1 46. 0 47. 6

48. k=10,s=25 49. 47 50. k=1,s=30 51. 1#2#3# 52. 5 53. 2, 1 54. 10#30 55. FOUR,P 56. 0,4

57. typedef char *CP[10];

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

11. 33#366#3699# 2. 3#-1#

3. 1#0#2#3#

4. a[0][0]=9#a[1][2]=7#a[1][1]=4# 5. How Are You 6. 3#0#2#

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

(1) s=0 (2) f=1

(3) j<=k (4) f=f*j (5) prime(n) (6) m%i==0 (7) 0

(8) retrun 1 (9) ss=s

(10) ?\\0? (11) s-ss-1 (12) ptr=f(s,30) (13) pmax=stud (14) pmax=p (15) pmax

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

考试时间: 2002年6月30日下午2:00-4:00

姓名___________________ 学号___________________ 成绩____________________

一.单项选择题(每题2分,共20分)

7. C语言程序三种基本结构是顺序结构、选择结构和______结构。

A.递归

B.转移

C.循环 C.&& C.!x>0&&!y>0

D.嵌套 D.=

D.!(x>0)&&!(y>0) D.11 D.2.3e0 D.!NULL D.121

2. 下列运算符中,优先级最高是______。

A.-> B.++ 3. 表达式!(x>0&&y>0)等价于______。 A.!(x>0)||!(y>0) B.!x>0||!y>0

4. 表达式sizeof(“\\nsum=%d\\n”)的值是______。 A.8 B.9 C.10 5. 以下选项中不正确的实型常量是______。 A.0.23E B.2.3e-1

C. 1E3.2 C.!EOF C.100

6. 表达式_____的值不是1。

A.0?0:1 A.12

B.5%4 B.144

7. 数组定义为int a[11][11],则数组a 有_______个数组元素 。 8. 对于以下的变量定义,表达式_______是不正确的 。

struct node{int j,k;}x,*p=&x; A.p->k=2 B.(*p).k=2 9. 不正确的赋值或赋初值的方式是______。 A.char str[]=\;

C.char str[10];str=\;

int z;

int p(int x)

{ static int y; return x+y;} vioid main()

{int a,b;printf(“%d\\n”,p(a));} A.a,b B.a,b,z

C.a,b,y,z

D.a,b,x,y,z

C.x.k=2

D.x->k=2

B.char str[7]={'s', 't', 'r', 'i', 'n', 'g'};

D.char str[7]={'s', 't', 'r', 'i', 'n', 'g', '\\0'};

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

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

1.设字符变量ch的值是小写英文字母,将它转换为相应大写字母的表达式是__________。 2.表达式1<0<5 的值是_________________。

3.表达式~(10>>1^~5)的值是_______________________。 4.下列程序段输出结果___________________________。

Int a=1;

long b=a*0x12345678;

printf(“%x\\n”,b);

5.设变量已正确定义,在程序段B中填入正确的内容,使程序段A和程序段B等价。 程序段A

for(k=s=0;k<=10;s+=[k++])

if(a[k]<0)break;