2009
试题一、单选题(每小题2分,共20分)
1. 2.
3.
4.
5.
6.
部
C.自动变量定义在函数内部 D.静态变量定义在函数外部 7. 假设sizeof(int)的值为4,对数组定义:int a[3][6];则sizeof( a[0] )的值为______。
A.12 B.4 C.24 D.18
8.
在C语言中,long int型数据在内存中的存储形式是 。 A.补码 B.反码 C.原码 D.ASCII码 假设有定义:int k;下面程序段编译运行的情况是_____。 for (k=1; k; k++) printf (\A.编译错误 B.能运行, 是死循环 C.能运行, 正常结束 D.以上说法都不对
循环语句while (!x&&!y)中的循环条件表达式等价于______。 A.x=0 && y=0 B.!(x || y) C.!( x==0 || y==0) D.!( x==0 && y==0)
对于 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;
语句 if (4/5 > 3/4) a=1; else a=0; 运行后,a的值是_____。 A.1 B.0 C.编译出错 D.与编译器相
关
下列描述不正确的是_______。
A.外部变量定义在函数外部 B.局部变量定义在函数内
有如下定义:int x[]={1,2,3},*p=x,y; 则y=*p++;相当于_____。 A.y=x[0],p++ B.y=1,x++
C.y=*(++p) y=2,p=x+1 C.*(a+1)=p D.
a[0]=2
根据声明int p[5], *a[5];下列表达式正确的是______。 A.p=a
B.p[0]=a
9.
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 1 / 8
10. 有如下定义,下列赋值正确的是________。
struct node {
char s[10]; int k;
struct node *next; } p[5],*q=p; A.q.k=2
试题二、填空题(每小题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(\
B.p[0]->k=2 C.(p->s)[0]D.q->s=“a”
=?a?
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 2 / 8
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;
while( (c=getchar()) != '\\n') if('0'<=c<='9') s=s*10+c-'0'; printf(\
9. 下列命令行参数程序生成的执行程序为command.exe,执行command abc 111 222<回车>,输出结果是_______。 # include
《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 3 / 8
main(int argc,char *argv[]) {
argc--;
while(--argc)
printf(\}
下列程序段的输出是_______。 #define DF(a,b) (a+2*b) int s=5;
int k= DF(s+1,s-3); printf(\
下列程序段输出_______。 int fun(int x) {
return (x<3?1:(fun(x-1)+2*fun(x-2))); } int main() {
printf(\}
, 2010年1月27日 4 / 8
10. 11. 《程序设计基础及实验》课程期末考试试卷