贵州大学2012-2013C语言考试A卷 附 重要考点复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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个字符串,用一个二级指针变量指向这个指针数组。