贵州大学2012-2013C语言考试A卷 附 重要考点复习资料

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

贵州大学2012-20103学年第一学期考试试卷 A

C语言程序设计

满分100分,考试时间为120分钟。

一、单项选择题(选出一个正确答案,每小题2分,共20分)

1.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( )

A.连接、编译

B. 连接、运行

C. 编译、运行

D. 编译、连接

2.下列说法正确的是()

A.一个c语言程序并非总是从主函数位置开始执行的

B.一个c语言程序有且只有一个主函数

C.函数可以嵌套定义,不可以嵌套调用

D.程序函数的位置不可以任意

3.下面是合法C语言标识符的是()

A. 2A_K;

B. _M+N;

C. –M3;

D. AC_2;

4.下列格式符中,可以用于控制字符输出的是( )

A. %d

B. %f

C. %o

D. %c

5.设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是( )

A. 4;

B. 16;

C. 30;

D. 50;

6.执行语句“for(i=1,s=0;i<=5;i++) s+=i;”后,变量s、i的当前值是( )

A. 10,5

B. 15,6

C. 15,5

D. 10,6

7.若有定义 int x,*p;,则以下正确的赋值表达式是( )

A. p=x;

B. p=&x;

C. *p=&x;

D. *p=*x;

8.以下对结构体类型变量的定义中,不正确的是( )

A. typedef struct aa

B. #define AA struct aa

{ int n;

AA { int n; float m; float m; }AA; }

stud; AA stud;

C. struct

D. struct { int n; { int n; float m; float m; }aa; }stud; struct aa stud;

9.有如下函数调用语句:

func(rec1,rec2+rec3,(rec4+rec5)); 函数调用语句中,含有的实参个数是( )

A. 3

B. 4

C. 5

D. 以上均不是

10.对于以下宏定义: #define SQ(x) x*x

#define QQ(x,y) SQ(x)- SQ(y) 宏调用QQ(2*3,2+3)执行后值为( )

A.25

B.11

C.43

D.以上均不是

二、填空题(每空2分,共20分)

1.设int a=5, c=32;float b=

2.5;,表达式b+c/a的值为___ ___

2.若x和a均是int型变量,则计算x=(a=4,6*2)后x的值是 __。

3.设a=3,b=4,c=5。则a+b>c&&b==c的值为 ___。

4.有如下程序段:

int k=10;

while(k=0) k=k-1;

则循环体语句执行___ 次。

5.int i=0,s=0; while (i

for(______;________;________);

6.将p说明为字符数组指针,数组大小为10,应写为______________;

7.对于 int *p,*q,i=5,j=6; ,执行:

p=&i;q=p;p=&j;

输出结果(*p)=_______,(*q)=________。

三、程序阅读题(请写出程序的输出结果。每题6分,共30分)

1. #include

main()

{

int i,j,m,n;

i=8; j=10; m=++i; n=j++;

printf(″%d, %d, %d, %d″,i,j,m,n);

}

输出结果:

2 . #include

main()

{ int i;

for(i=3;i<10;i++)

{ if(i*i/20>1) break;

printf("%d; ",i); }

printf("\n"); }

输出结果:

3. #include

int fac(int n)

{ static int f=1;

f=f*n;

return(f); }

main()

{ int i;

for(i=2;i<=5;i++)

printf(“%d!=%d\n”,i,fac(i)); }

输出结果:

4. #include

main()

{ char s[ ]=“ABCD”,*p;

for(p=s+1; *p!=’\0’; p++)

printf(“%s\n”,p);

}

输出结果:

5. #include

int f(char *s)

{ int k=0;

while(*s) k=k*10+*s++-‘0’;

return(k); }

main( )

{ int a;

a=f(“1234”);

printf(“a=%d\n”,a); }

输出结果:

四、根据下列各编程题题意填空(每空2分,共10分)

1、用for循环打印 1 4 7 10 13 16 19 22 25 , 其语句应为:

for (i=1; i<=9; i++) printf(“%3d”, ___);

2、程序A如下:

int f(int n)

{

if(n<=1) return n;

else return f(n-1)+f(n-2); }

等价于程序B:

int f(int n)

{ _____; t0=0;t1=1;t=n;

while(_____) {

t=______; t0=t1; t1=t;

n--; }

return ______;

}

五、编程题(第1题8分,第2题12分,共20分)

1.求分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…,的前20项之和。

2. 输入5个字符串,从中找出最大的字符串并输出。要求:用二维字符数组存放这5个字符串,用指针数组元素分别指向这5个字符串,用一个二级指针变量指向这个指针数组。

相关文档
最新文档