收藏 分享(赏)

97浙江大学c语言试卷.doc

上传人:dreamzhangning 文档编号:2563013 上传时间:2018-09-22 格式:DOC 页数:10 大小:160KB
下载 相关 举报
97浙江大学c语言试卷.doc_第1页
第1页 / 共10页
97浙江大学c语言试卷.doc_第2页
第2页 / 共10页
97浙江大学c语言试卷.doc_第3页
第3页 / 共10页
97浙江大学c语言试卷.doc_第4页
第4页 / 共10页
97浙江大学c语言试卷.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、计算机程序设计基础试卷一、从下列四个供选择的答案中选出最正确的一个答案(每题 2 分,共 20 分)1、语句printf(“%s%d”,”Hello World!”+2,strlen(“next”); 将输出:A) llo World!4 B) Hello World!2 C) llo World!5 D) 上述语句语法有错2、执行下列程序段后,a 值为:int a,b;a=15; b=-1;a=a+b A) 15 B) 0 C) 1 D) 163、判断整型变量 i,j 可同时被 2 整除的表达式(i,j 同时被 2 整除返回 1,否则返回 0)是:A) !(i%2)|!(j%2) B) !(

2、i%2) ii) break; else s += i;A)10 次 B) 1 次 C) 3 次 D) 以上均不是6、下列程序段执行后 s 值为:int i=1,s=0;do if(!(i%2) continue; s += i; while(+ii F F F F Ts 0 0 1 3 6i 0 1 2 3 4 i 1 2 3 4 5 6 7 8 9 !(i%2) F T F T F T F T Fs 1 1 4 4 9 9 16 16 256;A) 0 B) 1 C) 12 D) 79、对于以下结构定义:struct int x;int y; s10,*p=s,*q=s+1;则表达式(in

3、t *)q (int *)p 的值等于:A) 1 B) 2 C) 4 D)表达式语法有错10、 将 p 定义为数组指针,数组元素类型为字符指针,数组大小为 10,可写成:A)char *p10; B)char *(*p)10; C) char (*p)10; D)以上均不是11、 对于以下程序段,运行后 i 值为:int i=0,a=1;switch(a) case 1: i += 1; /* a=1 与这个 case 匹配运算后再往下流 */case 2: i +=2; break; /* 执行后 i=3 且退出 */case 3: i+=3;A) 1 B) 3 C) 6 D) 上述程序有语

4、法错误12、 对于以下递归函数 f,调用 f(4),其返回值为:int f(int n)( if(n) return f(n-2)+n;else return n;A) 6 B) 4 C) 0 D) 无限递归13、 对于下列程序段,当输入为 123,执行后:char *s;scanf(“%s”,s);A)s 值为”123” B)编译时 出错 C)编译不出错,但程序有 问题 D)以上均不M(a,b)6a=b6a=(b6) 1*p=s,*q=s+1 相差一个结构( 2 个整数)(int *)q (int *)p 相差 2 个整数char (*p)10;为指针数组char *(*p)10;为数组指针

5、f(4)f(4-2)+4(f(2-2)+2)+4f(0)+2+4=6char *s;只定义了一个指向字符的指针,而没有指向内存空间是14、 对于如下说明,则有意义的正确表达式是:int *p3,a3;A) p=a B) p0=a0 C) p0=a D) p0*=215、 对于struct node char s10;int i; p4;下列哪个赋值是正确的:A) p-i=2 B) p0.s=”abc” C) p0-i=2 D) p-s=a二、填空题(每题 2 分,共 40 分)1、用下列 for 循环将大写字母逆序输出(即从 Z 到 A),其语句应为:for(i=0;iz)判断 c 不是大或小

6、写字母的表达式(不是返回 1,否则返回 0)为: (7) 8、将 A 定义为 整型函数指 针类型名,可写为: (8)typedef int (*A)(); 9、实现字符串拷贝的函数 strcpy 为:void strcpy(char *s,char *t) while( (9)* s+ = *t+ ); 10、下面的 C 代码段用于 计算 s=x-x3/3+x5/5-x7/7+x9/9-的近似值(xn 表示 x 的 n 次方)i=1; t=x; s=t;while(fabs(t)0.00001) /* fabs(t): t 的绝对值 */i+;t=-t * (10) x*x*(2*i-3)/(

7、2*i-1) ;s+=t;11、下面的程序把输入信息直接复制到输出,在复制过程中,用t 符号代替制表符,用b 符号代替退格符,用符号代替右斜杠,这样这些符号都可以成为可见符号。#include main()int c;while(c=getchar()!=EOF) if(c=t)(11) printf(“t”) ; /* 二个”代表一个” */else if(c=b)(12) printf(“b”) ;else if(c=)(13) printf(“”) ; else putchar(c);12、下面是统计链表 first 中元素个数的 C 语言程序段struct link struct li

8、nk *next;char data;struct link *first;struct link *p;int c;c=0;p=first;while( (14) p ) p= (15) p-next ;(16) c+ ;13、int i=0,s=0,a10; /* 将 a数组中非负数加到 s 中 */while(i=0)s+=ai+;等价于int s=0,a10,*p=a;for( (17) ;p int f(int x,int a,int n) /* 在 an中二分法检索 x */int low,high,mid;low=0; high=n-1;datadatafirst data 0P

9、while(lowamid) high=mid-1;else if(x=0j-;aj+1=t; /* 排序后 a=4,3,2,1,0 */printf(“%dn”,f(3,a,5); /* 调用 f(3,a,5),即求 3 的位置,是 1 */问题 1:程序执行后的输出结果是 1 。问题 2:若将程序的输出语句改为:printf(“%dn”,f(5,a,5);程序执行后的输出结果是 -1 。/* 调用 f(5,a,5),即求 5 的位置,找不到为-1 */2、程序#include int cal(int a,int b,char op) /* 能计算*或 +的计算器 */if(op=*) re

10、turn(a*b);else return(a+b);void main()int x,y,z,result;char op1,op2;scanf(“%d%c%d%c%d”, /* 输入 2+3*5 */if(op1=+ /*问题 1 当输入 2+3*5 时先算 3*5,值为 17 */else /* 先*后+ 表达式 */result=cal(cal(x,y,op1),z,op2); /*问题 2 当输入 2+3*5 时先算 2+3,值为 25 */printf(“%dn”,result);问题 1:当输入为 2+3*5 时,上述程序将输出 17 。问题 2:把 op1=+if(n%2|n=

11、2) /* n 是奇数或是 2 显示错误*/printf(“Error: %d is an odd number or equals to 2!n”,n);return;for(i=n-2;i=n/2;i-) /* 对2 的偶数 */for(j=2;i%j;j+); if(j!=i) continue;for(j=2;(n-i)%j;j+);if(j!=n-i) continue;printf(“%3d=%3d+%3d “,n,i,n-i);int test_data=6,8,10;main()int i;for(i=0;i2 的偶数,进行分解成两个质数之和的所有分解,但第一个和数(质数)必须

12、在 n-2 至 n/2 范围内 。4、程序#include int k=0; /* k 是全局变量 */void f(int n) /* 求 f(3); 是递归 函数 */k+; /* k1 2 3 ,4 5 6 7 */if(n!=1) f(n-1); /* f(2) f(1) */f(n-1); /* f(1) f(2) f(1) f(1) */main()f(3);printf(“%d”,k);问题:1 程序输出的结果为: 7 。2 当 n 值范围为什么 时,函数调用 f(n)无限递归 nmain(int argc,int *argv)int count=1,n1,n2;char c;F

13、ILE *fp;If(argc!=4) printf(“Usage: test n filenamen”);exit(0);n1=atoi(argv1);n2=atoi(argv2);if(fp=fopen(argv3,”r”)=NULL)printf(“Can not open file: %sn”,argv2);exit(0);while(c=fgetc(fp)!=EOF)if(count=n1 if(c=n)count+;if(n2count)break;fclose(fp);计算机程序设计基础答卷班级 姓名 学号 成绩 一、 选择题(每题 2 分)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15A、 填空题(每空 2 分)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)、 程序理解(共 20 分)1、2、3、4、 编程(10 分)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报