S=1/1!+1/2!+1/3!+…+1/n! # include
printf(\ }
2.输入1个正整数n,如果它是素数,输出”YES”,否则,输出”NO”(素数就是只能被1和本身整除的正整数,1不是素数,2是素数)。 #include
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
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;