精选C语言试卷(带答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江科技学院
2006-2007学年第二学期考试试卷A 卷
考试科目 C 语言程序设计 考试方式 闭卷 完成时限 2小时 拟题人 审核人 批准人 2007年 7 月 5 日 机械、电气、信息、生化、轻工、经管、理学院 2006年级 各理工科专业
说明:
1. 应将全部答案写在答卷纸对应的题号处;否则作无效处理;
2. 编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸;
3. 考试完成后,必须将试卷与答卷同时交回。
一、判断题(10小题,每题1分,共10分;用√表示正确,用×表示错误)
1.在循环体内使用break 语句和continue 语句的作用相同。 2.函数返回值的类型最终取决于函数定义时形参的类型。
3.else 语句一定要与if 语句配对使用,程序中else 语句的个数一定小于或者等于if 语句的个数。
4.从狭义角度讲,算法是解决一个问题采取的方法和步骤的描述。 5.1/2的结果是0,所以1.0/2的结果也是0。 6.a=b=c=5可以理解为a=(b=(c=5))。
7.假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。 8.for(;;)等价于while(1)语句。
9.假定int 类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x 在内存中所占字节数是6。
10.char *sp ={"welcome"};可以写成char *sp="welcome"; 。
二、单选题(16小题,每题1分,共16分)
1.以下数组定义中错误的是:
专业班 学 姓 ……………………………………………………………………装订线……………………………………………………………………………………
(A) int x[][3] ={0};
(B) int x[2][3]={{1,2},{3,4},{5,6}};
(C) int x[][3]={{1,2,3},{4,5,6}};
(D) int x[2][3]={1,2,3,4,5,6};
2.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为:
(A)EOF (B)NULL (C) 0 (D)非0值
3.有以下程序:
main()
{int y=10;
while(y--) ;
printf(“y=%d\n”,y);
}
程序执行后的输出结果是:
(A) y=0; (B)y=-1;
(C) y=1 (D)while构成无限循环
4. 若有以下宏定义:
#define N 2
#define Y(n) (N+1)*n
则执行语句int z; z=2*N+Y(5);后的值是
(A) 50 (B)34 (C)19 (D)无定值
5.以下叙述中错误的是:
(A)c程序必须由一个或者一个以上的函数组成。
(B)函数调用可以作为一个独立的语句存在。
(C)若函数有返回值,必须通过return 语句返回。
(D)函数形参的值也可以传回给对应的实参。
6.设有如下定义的变量
union data
{ int i;
char ch;
float f;
}b;
则变量b占用内存的字节数是(假设int类型占2个字节,char类型占1个字节,
float类型占4个字节):
(A) 4 (B)5 (C) 6 (D)7
7.以下叙述中错误的是:
(A)c程序中的#include 和#define 行均不是c语句
(B)除逗号运算符外,赋值运算符的优先级最低
(C)c程序中, “j++;”是赋值语句
(D)c程序经过编译、连接步骤之后,才能形成一个真正可执行的二进制机器指令文件。
8. 能正确表示a 和b 同时为正或同时为负的逻辑表达式是:
(A) (a>=0||b>=0)&&(a<0||b<0)
(B)(a>=0&&b>=0)&&(a<0&&b<0)
(C) (a+b>0)&&(a+b<=0)
(D) a*b>0
9.对于一个正常运行的c程序,以下叙述中正确的是:
(A)程序的执行总是从main函数开始,在main函数结束。
(B)程序的执行总是从程序的第一个函数开始,在main函数结束。
(C)程序的执行总是从main函数开始,在程序的最后一个函数中结束。
(D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束。10.设变量x和y均已经正确定义并赋值。以下if语句中,在编译时将产生错误信息的是:
(A)if(x++); (B)if(x>y &&y!=0)
(C) if(x>0) x-- (D)if(y<0){;}
else y++; else x++;
11.设已有定义:float x; 则以下对指针变量p进行定义且赋初值的语句中正确的是:
(A)float *p=1024; (B)int *p=(float)x;
(C)float p=&x; (D)float *p=&x;
12.有以下程序:
main()
{ int i,j;
for(i=1;i<4;i++)
{ for(j=i;j<4;j++) printf(" %d*%d=%d ",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是:
(A)1*1=1 1*2=2 1*3=3 (B)1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 2*2=4 2*3=6
3*1=3 3*3=9
(C)1*1=1 (D)1*1=1
1*2=2 2*2=4 2*1=2 2*2=4
1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9
13.按照c语言规定的用户标识符命名规则,不能出现在标识符中的是:
(A)大写字母(B)连接符
(C)数字字符(D)下划线
14.设有定义:int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是:
(A)k++ (B)k+=1 (C)++k (D)k+1
15.有以下程序
main()
{ char ch[]="uvwxyz",*pc;
pc=ch;printf(" %c\n",*(pc+5));
}
程序运行后的输出结果是:
(A)z (B)0
(C)元素ch[5]的地址(D)字符y的地址
16.有以下函数:
int fun(char *s)
{ char * t=s;
while(*t++);
return (t-s);
}
该函数的功能是:
(A)比较两个字符串的大小(B)计算s所指向字符串占用内存字节的个数