南京晓庄学院—C语言期末考试复习提纲

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题一

1. 以下常量中正确的是。

A. ’abc’

B. ’\x123’

C. 3.145E-1.2

D.”a”

2. 设有“int a;”,以下不能正确表达数学关系10

A. 10

B. a==11||a==12||a==13||a==14

C. a>10&&a<15

D. !(a<=10)&&!(a>=15)

3. 以下程序段的输出结果是。

int a=0,b=4,k=2;

k=a+1>0||(++a<0)&&(!(b--<=0));

printf(”%d,%d,%d”,k,a,b);

A. 1,1,3

B. 1,1,4

C. 1,0,3

D. 1,0,4

4.若有“int a=5; a+=a-=-a*a;”,则a的值是。

5. 以下所列语句中,合法的语句是。

A. a=1,b=2

B. ++a;

C. a=a+1=5;

D. y=int(a);

6. 以下所列字符常量中,不合法的是。

A. ’\0xff’

B. ’\65’

C. ’$’

D.’\x1a’

7. 设有定义“float y=3.45678; int x;”,则以下表达式中能实现将y中数值保留小数点后2位,第

3位四舍五入的表达式是。

A. y=(y*100+0.5)/100.0

B. x=y*100+0.5,y=x/100.0

C. y=y*100+0.5/100.0

D. y=(y/100+0.5)*100.0

8. 以下程序段输出结果是。

int a=10,b=11,c=12,s;

s=a++<=10&&b--<=2&&c++;

printf(”%d,%d,%d,%d”,s,a,b,c);

A. 0,11,10,13

B. 1,11,10,13

C. 0,11,10,12

D. 1,11,10,12

9. 设有语句“int a=2,b=3,c=2; a+=b*=(++b-c++);”,变量b的值是。

习题二

1. 以下关于if语句的错误描述是。

A. 条件表达式可以是任意的表达式

B. 条件表达式只能是关系表达式或逻辑表达式

C. 条件表达式的括号不可以省略

D. 与else配对的if语句是其之前最近的未配对的if语句

2. 以下叙述中不正确的是。

A. 一个变量的作用域完全取决于变量说明语句的位置

B. 外部变量可以在函数以外的任何位置定义

C. 内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数的下一次调用

D. 用static说明一个外部变量是为了限制其他编译单位的引用

3. 以下程序的输出结果是。

main()

{ extern int x;

printf(”%d”,x+=2); fun1(2);

}

int x=1;

fun1(int x)

{ printf(”%d”,x++); fun2(2); }

fun2(void)

{ printf(”%d”,x);

int x=5; printf(”%d”,x);

}

4. 以下不致造成死循环的语句是。

A. for(y=0,x=1;x>++y;x=i++)i=x;

B. for(;;x+=i);

C. while(x=8)x--;

D. for(i=10,sum=0;sum<=i;)sum=--i;

5. 以下程序输出结果是。

main()

{ printf(”%d”,fun(5)); }

fun(int n)

{ if(n==1) return 1;

return n-fun(n-1);

}

6. [程序]

main()

{ int j,k,s,m;

for(k=1;k<10;k++)

{ s=1; m=k+2;

for(j=k;j

}

printf(”s=%d,k=%d”,s,k);

}

程序输出结果s= ,k= 。

7. 若有宏定义:

#define N 2

#define Y(n) ((N+1)*n)

则执行语句“z=2*(N+Y(N+2));”后,z的值是。

8. 以下程序输出结果是。

#define T(x,y,z) x*y*z/4

main()

{ int a=1,b=3,c=5;

printf(”%d”,T(b+a,a*++b,a+b+c));

}

习题三

1. 若有“int a[][4]={1,2,3,4,5,6,7,8,9,10},*p=*(a+1);”,则值为9的表达式是

A. p+=3,*p++

B. p+=4,*(p++)

C. p+=4,*++p

D. p+=4,++*p

2. 设有以下函数定义,则返回的函数值是。

main()

{int x,*y; y=fun(&x); …}

int *fun(int *a)

{int *t; *a=99; t=a; return t;}

A. 无确切的值

B. 形参a的地址

C. 主函数中变量x的地址

D. fun函数中变量t的地址

3.[程序]

main()

{ int s,p[9]={1,2,3,4,5,6,7,8,9};

printf(”\n%d”,add(p,5));

}

add(int *p,int n)

{ if(n==1) return *p;

else return *p+add(p+1,n-1);

}

程序输出结果是。

4. [程序]

int *swap(int *a, int *b)

{ int *p;

p=a; a=b; b=p;

return a;

}

main()

{ int x=3,y=4,z=5;

swap(swap(&x,&y),&z);

printf(”%d,%d,%d”,x,y,z);

}

程序输出结果是。

5. [程序]

fun(int n,int *s)

{ int f1,f2;

if(n==1||n==2) *s=1;

相关文档
最新文档