浙江科技学院c语言试卷2011-2012-1-C-2试卷(定) 下载本文

浙江科技学院考试试卷

???????????????????? ? ? ? ? ? ? ? ? ? ? ? ?名线姓订 装 ? ? ? ? ? ? ? ? ? 号?学? ? ? ? ? ? ? ? ? ? ? ?级?班?业?专? ?浙江科技学院

2011 - 2012 学年第 1 学期考试试卷 B卷

考试科目 C语言程序设计 考试方式 闭 完成时限 2小时 拟题人 题库 审核人 批准人 2012年1月11日 信息、建工、生化、经管、轻工、理学 学院 2011 年级 理工科专业 题序 一 二 三 四 五 总分 加分人 复核人 得分 签名

说明:

1. 应将全部答案写在答卷纸对应的题号处;否则作无效处理;

2. 编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸; 3. 考试完成后,必须将试卷与答卷同时交回。

得分 一、判断题(本大题共12小题,每题小1分,共12分) 1. C语言是一种面向对象的编程语言。

2. 从狭义角度讲,算法是解决一个问题采取的方法和步骤的描述。

3. 程序调试就是找出并改正C源程序中的语法错误

4. 循环结构中,for语句的功能比while语句强大,有些for语句能实现的功能,while

语句实现不了。

5. break在循环中的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语

句,接着再一次进行循环判断。

6. 假定一个字符在内存中占1个字节,字符串“china”在内存中占5个字节。 7. 二维数组元素在内存中的地址像一个矩阵,有多行多列,行与行之间的地址是不

连续的。

8. 定义语句: int a[10];则*(a++)代表元素a[1]。

9. 语句“char ch=?A?,*p=&ch;”中,定义了一个字符型变量ch和一个字符型指针变

第 1 页 共 12 页

浙江科技学院考试试卷

量p,p前的“*”是取内容运算符。

10. do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。 11. C程序的编译预处理命令以“#”开始,并以“;”结束。

12. 使用结构体的目的是将一组数据作为一个整体,而其中所有的成员共享同一存储

空间。

得分 二、单选题(本大题共20小题,每题1分,共20分) 1. 下列说法正确的是( )。

A. 在C语言程序中,main函数必须位于程序的最前面

B. 在对一个C程序的编译过程中,可发现注释中的拼写错误

C. C语言本身没有输入输出语句 D. C程序的每行中只能写一条语句

2. 设有程序段 int k=10; while (k==1) k=k-1; 则下面的描述中正确的是( )。 A. 循环将会执行1次 C. 循环将会执行9次

B. D.

循环一次都不会执行 循环将会执行无数次

3. C 语言程序中可以对程序进行注释,注释部分可用符号( )括起来。 A.?{? 和?}? B.?[?和?]? C.“/*”和”*/” D.“*/”和”/*” 4. 在C 语言程序中,在函数外部定义的变量称为( )。

A.全局变量 B.外部变量 C.局部变量 D.内部变量 5. 对于以下的变量定义,表达式( )是不正确的。 struct node { int j, k; } x, *p=&x;

A.p->k=2 B.(*p).k=2 C.x.k=2 D.x->k=2

6. 数组定义为 int a[11][11],则数组a 有( )个数组元素。

A.12 B.144 C. 100 D. 121 7. 表达式( )的值是0。

A.3%5 B.3/5.0 C.3/5 D.3<5

8. 设程序中不再定义和声明变量,写出在函数fun中可以使用的所有变量( )。 #include void fun(int x)

{ static int y; ?? return; } int z;

第 2 页 共 12 页

浙江科技学院考试试卷

void main( ) { int a,b; fun(a); ?? }

A.x, y

B.x, y, z C. a,b,y,z D.a,b,x,y,z

9. 若二维数组a每行有m列,则在元素a[i][j]前的元素个数为( )。 A. j*m+i

B.

i*m+j-1

C.

i*m+j+1

D.

i*m+j

10. 若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,则下列表达式正

确的是( )。 A. p2=p1; 11. 设有:

int a=1,b=2,c=3,d=4,m=2,n=2;

执行 (m=ad)后n的值是( )。 A. 1

B.

2

C.

3

D.

4

B.

p2=**p1;

C.

p2=&p1;

D.

p2=*p1;

12. 若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于( )。

A.p++ B.x++ C.*(p++) D.&x++

13. 若想在程序中判断输入给字符变量c的字符是否为数字字符,则要使用的表达式

是( )。 A. 0<=c<=9 C.

?0?<=c<=?9?

B. D.

0<=c && c<=9 ?0?<=c && c<=?9?

14. 下列程序的输出结果是( )。

int k=1, s=0; switch (k) {

case 1: s+=10;

case 2: s+=20; break; default: s+=3; }

printf(\A. k=1 s=10 C.

k=1 s=30

B. D.

k=1 s=20 k=1 s=33

15. 下列程序的输出结果是( )。

int k=1, j=2, *p, *q, *t; p=&k; q=&j; t=p; p=q; q=t;

第 3 页 共 12 页

浙江科技学院考试试卷

printf(\ A. 1,2 C.

2,1

B. D.

1,1 2,2

16. 已知链表结点定义语句为“struct node{int num; struct node *next;};”, 在下图所

示的链表中,head为头指针,p0指向一个新建结点,则将p0按num域升序的规律插入到链表中的语句是( )。 head

3 5 NULL p0

1 A. p0->next =head->next; head->next =p0; B. C.

head->next= p0->next; p0 = head->next; p0->next=head; head=p0;

D. head->next=1;p0->next=3;

17. 已知有如下的宏定义,则下列语句执行后的输出结果是( )。

#define A 10

#define B (A

B.

-2

C.

-1

D.

0

18. 下列宏定义命令中,哪一个格式是正确的( )。 A. #define NUM=10 C.

#defineNUM 10

B. D.

#define NUM 10; define NUM 10

19. 为在程序中能够调用库函数strcmp,需要包含头文件( )。 A. math.h

B.

string.h

C.

stdio.h

D.

stdlib.h

20. 函数f的原型说明为“void f(int x[], int x);”,有如下定义语句:“int a[10], m;”,

则下列函数调用正确的是( )。 A. m=f(a); C.

f(int a[10], int m);

得分 三、程序填空题(本大题共4小题,每空2分,共24分)

1. 下面程序运行后输入以0结束的一批整数,统计大于零的整数个数。

第 4 页 共 12 页

B. D.

f(a,m); m=f(a[10],m);