(完整word版)同济大学C语言期末考试卷
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
同济大学C语言期末考试卷
2005-2006学年第二学期《C程序设计期末试卷》(闭卷)
一、单项选择题(20分)
1.在定义函数时,能用以下(1)标识符作函数名。
A.struct B._abc C. 8abc D. abc@sina.com
2在一个函数被调用执行过程中,当执行到函数体中(2)语句后立即无条件返回主调函数。
A.puts(strcpy(t,s)); B. puts(strcpy(t,s+6)); C. puts(strcat(t,s)); D. puts(strcat(t,s+6));
13.在以下结构类型定义中,正确的是(13)。
A. struct for
{ int x,y; };
C. struct For
5.若函数定义为void fun(int x,int y,int *p) { *p= x>y ? x : y; },且main函数中有声明“int a=1,b=2,c[2]={0};”,则以下语句中正确的是(5)。
A.printf(“%d”,fun(a,b,c)); B.fun(a,b,c+1);
C.fun(a,b,c[2]); D.fun(1,2);
D. float fun(double x,double y);
7.以下程序段中,有语法错误的是。
A. double f;
double f (double x)
{ return f=x*x; }
C. double f (double x)
{ double f;
return f=x*x;
}
B. double f (double f)
9.以下二维数组声明中,正确的是(9)。
A. char b[2][3]={“a”.”b”.”c”}; B. char b[][3]={0};
C. char b[2][]={0}; D. char b[][]={0};
10.已知有二维数组声明“int a[3][3]={1,2,3,4,5,6,7,8,9};”,不能正确输出数组a中第2行(行下标为1)第3列元素(列下标为2)的语句是(10)。
A.printf(“%d”,a[1][2]); B. printf(“%d”,*(*(a+1)+2));
C. printf(“%d”,*(a+1)[2]); D. printf(“%d”,*(a[1]+2));
11.若需要将字符串“happy”和“good luck”存储到数组中,则以下选项中正确的是(11)。
4.以下函数定义中正确的是(4)。
A. double fun(int x,y){ return x*y;}
B. double fun(int x,int x){ return x*x; }
C. double fun(register int x,int y){ return x*x;}
D. double fun(extern int x,int y){ return x*y;}
}s={1,”mark”},*ps=&s;
则以下Fra Baidu bibliotek项中能够输出“mark”的语句是(14)。
A.puts(name);B.puts(b.name)C.puts(s.b.name);D.puts(*p.b.name);
15.若已有数据类型定义为“struct { int x,y;}a={2,3},b={0};”,则以下语句中正确的是(15)。
D. char s[2][10]; strcpy(s[0],“happy”);strcpy(s[1],“good luck”);
12.已知有声明“char *s=”happy birthday”,t[10];”,要求将s指向的字符串中“birthday”子串复制到t数组中并输出t数组中的字符串,正确的操作的是(12)。
A.b=a; B.if(a!=b)b=a; C.b+=a; D.b++;
16.在基于以下全局对象标识符p的声明中,不能做p++运算的声明是。
A.int p; B.int a[10], *p=a; C. int a[2],*p[2]={a}; D. int a[2][2], (*p)[2]=a;
{ static int x, y; };
B. struct FOR
{ int x,y; };
D. struct FOR
{ int x; int x; };
A.B.C.D.
13.
A.B.C.D.
14.已知有数据类型定义及变量声明如下:
struct
{ int a;
struct { char name[10];}b;
6.若函数定义为double fun(double x,double y){ return x/y;},则以下fun引用声明(函数原型)中错误的是(6)。
A. double fun(double x,double y);
B. double fun(double a,double b);
C. double fun(double ,double );
{ return f*f;}
D. double f (double x)
{ if(x>0){ double f ; return f=x;}
else{ double f ; return f= -x;}
}
8.以下一维数组声明中,正确的是(8)。
A. int a[ ]; B.int b[10],a[b]; C. int a[4]={1,2,3,4,5}; D. int a[sizeof('a')]={'a'};
A.goto B.break C.continue D.return
3.以下关于main函数定义的叙述中,错误的是(3)。
A. main函数是自定义函数,因此函数体中的声明和语句都是可选的
B. main函数定义时可以有形式参数也可以没有形式参数
C. main函数定义必须出现在一个源程序的起始位置
D.在一个源程序中只能有一个main函数定义
A. char s[2][10]; s[2][10]={“happy”, “good luck” };
B. char s[2][10]; s[0]= “happy”;s[1]=“good luck”;
C. char s[2][10]; strcpy(s[0][0],“happy”);strcpy(s[1][0],“good luck”);
2005-2006学年第二学期《C程序设计期末试卷》(闭卷)
一、单项选择题(20分)
1.在定义函数时,能用以下(1)标识符作函数名。
A.struct B._abc C. 8abc D. abc@sina.com
2在一个函数被调用执行过程中,当执行到函数体中(2)语句后立即无条件返回主调函数。
A.puts(strcpy(t,s)); B. puts(strcpy(t,s+6)); C. puts(strcat(t,s)); D. puts(strcat(t,s+6));
13.在以下结构类型定义中,正确的是(13)。
A. struct for
{ int x,y; };
C. struct For
5.若函数定义为void fun(int x,int y,int *p) { *p= x>y ? x : y; },且main函数中有声明“int a=1,b=2,c[2]={0};”,则以下语句中正确的是(5)。
A.printf(“%d”,fun(a,b,c)); B.fun(a,b,c+1);
C.fun(a,b,c[2]); D.fun(1,2);
D. float fun(double x,double y);
7.以下程序段中,有语法错误的是。
A. double f;
double f (double x)
{ return f=x*x; }
C. double f (double x)
{ double f;
return f=x*x;
}
B. double f (double f)
9.以下二维数组声明中,正确的是(9)。
A. char b[2][3]={“a”.”b”.”c”}; B. char b[][3]={0};
C. char b[2][]={0}; D. char b[][]={0};
10.已知有二维数组声明“int a[3][3]={1,2,3,4,5,6,7,8,9};”,不能正确输出数组a中第2行(行下标为1)第3列元素(列下标为2)的语句是(10)。
A.printf(“%d”,a[1][2]); B. printf(“%d”,*(*(a+1)+2));
C. printf(“%d”,*(a+1)[2]); D. printf(“%d”,*(a[1]+2));
11.若需要将字符串“happy”和“good luck”存储到数组中,则以下选项中正确的是(11)。
4.以下函数定义中正确的是(4)。
A. double fun(int x,y){ return x*y;}
B. double fun(int x,int x){ return x*x; }
C. double fun(register int x,int y){ return x*x;}
D. double fun(extern int x,int y){ return x*y;}
}s={1,”mark”},*ps=&s;
则以下Fra Baidu bibliotek项中能够输出“mark”的语句是(14)。
A.puts(name);B.puts(b.name)C.puts(s.b.name);D.puts(*p.b.name);
15.若已有数据类型定义为“struct { int x,y;}a={2,3},b={0};”,则以下语句中正确的是(15)。
D. char s[2][10]; strcpy(s[0],“happy”);strcpy(s[1],“good luck”);
12.已知有声明“char *s=”happy birthday”,t[10];”,要求将s指向的字符串中“birthday”子串复制到t数组中并输出t数组中的字符串,正确的操作的是(12)。
A.b=a; B.if(a!=b)b=a; C.b+=a; D.b++;
16.在基于以下全局对象标识符p的声明中,不能做p++运算的声明是。
A.int p; B.int a[10], *p=a; C. int a[2],*p[2]={a}; D. int a[2][2], (*p)[2]=a;
{ static int x, y; };
B. struct FOR
{ int x,y; };
D. struct FOR
{ int x; int x; };
A.B.C.D.
13.
A.B.C.D.
14.已知有数据类型定义及变量声明如下:
struct
{ int a;
struct { char name[10];}b;
6.若函数定义为double fun(double x,double y){ return x/y;},则以下fun引用声明(函数原型)中错误的是(6)。
A. double fun(double x,double y);
B. double fun(double a,double b);
C. double fun(double ,double );
{ return f*f;}
D. double f (double x)
{ if(x>0){ double f ; return f=x;}
else{ double f ; return f= -x;}
}
8.以下一维数组声明中,正确的是(8)。
A. int a[ ]; B.int b[10],a[b]; C. int a[4]={1,2,3,4,5}; D. int a[sizeof('a')]={'a'};
A.goto B.break C.continue D.return
3.以下关于main函数定义的叙述中,错误的是(3)。
A. main函数是自定义函数,因此函数体中的声明和语句都是可选的
B. main函数定义时可以有形式参数也可以没有形式参数
C. main函数定义必须出现在一个源程序的起始位置
D.在一个源程序中只能有一个main函数定义
A. char s[2][10]; s[2][10]={“happy”, “good luck” };
B. char s[2][10]; s[0]= “happy”;s[1]=“good luck”;
C. char s[2][10]; strcpy(s[0][0],“happy”);strcpy(s[1][0],“good luck”);