当前位置:首页 > C09A试卷-中文
浙江大学2009–2010学年秋冬学期
《程序设计基础及实验》课程期末考试试卷
课程号: 21186020__,开课学院:_计算机学院__ 考试试卷:√A卷、B卷(请在选定项上打√)
考试形式:√闭、开卷(请在选定项上打√),允许带____∕__入场 考试日期: 2010 年 01 月 27 日,考试时间: 120 分钟
诚信考试,沉着应考,杜绝违纪。
考生姓名: 学号: 所属院系: _ (注意:答题内容必须写在答题卷上,写在本试题卷上无效)
试题一、单选题(每小题2分,共20分)
1. 在C语言中,long int型数据在内存中的存储形式是 。
A.补码
B.反码
C.原码
D.ASCII码
2. 假设有定义:int k;下面程序段编译运行的情况是_____。
for (k=1; k; k++) printf (\
A.编译错误
B.能运行, 是死循环 C.能运行, 正常结束
D.以上说法都不对
3. 循环语句while (!x&&!y)中的循环条件表达式等价于______。
A.x=0 && y=0 B.!(x || y) C.!( x==0 || y==0) D.!( x==0 && y==0)
4. 对于 int x, y; 语句 if (x < 0) y = -1; else if (!x) y = 0; else y = 1;等价于_____。 A.if (x>=0) y=0; if(x) y=1; else y=-1; B.y=0; if (x>=0) if(x) y=1; else y=-1; C.if (x != 0) if (x > 0) y = 1; else y = -1; D.y=0; if (x!=0) if(x>0) y=1; else y=-1; 5. 语句 if (4/5 > 3/4) a=1; else a=0; 运行后,a的值是_____。
A.1 B.0 C.编译出错 D.与编译器相关 6. 下列描述不正确的是_______。 A.外部变量定义在函数外部 B.局部变量定义在函数内部
C.自动变量定义在函数内部
D.静态变量定义在函数外部
7. 假设sizeof(int)的值为4,对数组定义:int a[3][6];则sizeof( a[0] )的值为______。 A.12 B.4 C.24 D.18
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 1 / 8
8. 有如下定义:int x[]={1,2,3},*p=x,y; 则y=*p++;相当于_____。
B.y=1,x++ y=2,p=x+1 A.y=x[0],p++ C.y=*(++p)
9. 根据声明int p[5], *a[5];下列表达式正确的是______。
D. a[0]=2 A.p=a B.p[0]=a C.*(a+1)=p
10. 有如下定义,下列赋值正确的是________。
struct node { char s[10]; int k;
struct node *next; } p[5],*q=p;
D.q->s=“a” A.q.k=2 B.p[0]->k=2 C.(p->s)[0]=?a?
试题二、填空题(每小题2分,共30分)
1. 表示“当 x 的取值在 [-10, 0] 或 [10, 15] 的范围内为真,否则为假”的C语言表达式是_____。 2. 若 int a = 6, b = 0, c = 3,则表达式 a && b || b - c 的结果是_____。 3. 表达式 !!”2010-01-27” 的值为_______。
4. 假设字符变量ch中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是______。 5. 执行下面程序代码后,s值为_____。
int i, s;
for (i=5,s=0;i>s;i--) { if (i==0) break; if(i%2) continue; s+=--i;
}
6. 执行下面程序代码的输出结果是_____。 char *s1=\ while (*s1++ == *s2++); printf(\
7. 执行下面程序代码后,s值为_____。
int a=1, b=2, s=0; switch (a>b) {
default: switch(s){
case 0:s+=1;
default:s+=2;break; }
case 1: s+=3; break;
}
8. 已知字符0和a的ASCII分别为48和97,当输入12e<回车> 时,下列程序输出是_____。 char c; int s=0;
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 2 / 8
while( (c=getchar()) != '\\n') if('0'<=c<='9') s=s*10+c-'0'; printf(\
9. 下列命令行参数程序生成的执行程序为command.exe,执行command abc 111 222<回车>,
输出结果是_______。 # include
main(int argc,char *argv[]) {
argc--;
while(--argc)
printf(\}
10. 下列程序段的输出是_______。
#define DF(a,b) (a+2*b) int s=5;
int k= DF(s+1,s-3); printf(\
11. 下列程序段输出_______。
int fun(int x) {
return (x<3?1:(fun(x-1)+2*fun(x-2))); }
int main() {
printf(\}
12. 下列程序段输出_______。
int a=1;int b=2; void change(int *p) {
int *temp=&b; p=temp; *p=3; }
int main() {
int *p=&a; change(p); printf(\
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 3 / 8
}
13. 用 typedef 写出类型定义 ,使得NEWSTR表示含有20个元素的字符数组类型。 14. 有定义:int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*q[4],k;则下列程序段的输出是_______。
for(k=0;k<4;k++) q[k]=&a[k*3]; printf(\
15. 下列程序段执行后,z的值是_______。
static struct {
int x, y[3];
} a[3] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p=&a[-1]; int z;
z=*((int *)(++p+1)-1);
试题三、程序阅读题(每小题5分,共30分)
1. 下列程序的输出是_______。
#include
void p(int *y, int x) {
static int w;
*y++; x++; w = x+*--y;
printf(\}
int main(void) {
int x, y, z, w; x=y=z=w=1; do{
static int x; p(&x, y);
printf(\ } while(0); return 0; }
2. 下列程序的输出是_______。
#include
char a[20]=\
char *s=\
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 4 / 8
共分享92篇相关文档