2009-2010-1C2试卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江科技学院考试试卷
浙江科技学院
2009 - 2010 学年第 1 学期考试试卷 B 卷
考试科目 C 语言程序设计 考试方式 闭 完成时限 2小时 拟题人 题库 审核人 批准人 2010年1月20日 机械、信息、电气、经管、中德、生化 学院 2009 年级 理工科专业
命题:
说明:
1. 应将全部答案写在答卷纸对应的题号处;否则作无效处理;
2. 编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸;
3. 考试完成后,必须将试卷与答卷同时交回。
一、判断题。(本大题共12小题,每题小1分,共12分)
1、switch 语句中的每一个case 分支必须包含break 语句,否则程序会出错。
2、结构体变量中的各个成员的数据类型必须相同。
3、在C 程序中,凡是以#开头的都是预处理命令行。
4、程序的执行总是从main 函数开始,在程序中所定义的最后一个函数中结束。
5、程序中的全局变量和局部变量可以同名。
6、设有定义:int a[][3]={{1},{2},{3}};,则数组元素a[1][2]的值为3。
7、用do …while 语句实现循环时,不管条件真假,都将首先无条件地执行一次循环。
8、printf 函数中格式符“%c ”既能用于输出字符型数据,也能用于输出整型数据。 9、int x=5,y=5,z=5,则表达式x==y==z 的值为1。
10、假设有语句int a[10]={0,1,2},*p;p=a;则p+1完全等价于a+1。 11、函数中不可以没有return 语句。
12、采用“r+”方式打开的文件既可以读也可以写。
专业班 学 姓 ………………………………………………………………………装订线……………………………………………………………………………………
二、单选题(本大题共20小题,每题1分,共20分)
1、若有数组定义int a[5][5],则下面()形式不表示数组第3行第
4列元素的地址。
A. &a[3][4]
B. *(a+3)+4
C. a[3]+4
D. *(a[3]+4)
2、若有变量定义int k=2; int *p1,*p2; 且p1和p2均已经指向变量k,下面不能正确执行的赋值语句是()。
A. *p2=k;
B. k=*p1*(*p2);
C. p2=p1;
D. p1=k;
3、若有以下说明和语句:
struct student
{ int num;
float score;
} std;
struct student *p=&std;
则以下对结构体变量std中成员num的引用方式不正确的是()。
A. std.num
B. p->num
C. *p.num
D. (*p).num
4、以下不正确的赋值或赋初值的方法是()。
A. char *p=”Hello C”;
B. char *p; p=”Hello C”;
C. char str[10]; str=”Hello C”;
D. char str[ ]=” Hello C”;
5、设变量定义为“int y[5]={1,2,3,4,5}, *p=&y[1]+2;”,则*p的值是()。
A. 4
B. 3
C. 5
D. &y[1]+2
6、设有程序段int k=8; while (k=0) k=k-1; 则下面的描述中正确的是()。
A. 循环体一次也不执行
B. 循环体执行一次
C. 程序进入死循环
D. 循环体执行8次
7、设int a=6,则计算表达式a+=a-=a*a后a的值为()。
A. -30
B. -60
C. -24
D. 0
8、假设有声明char x[20]="how\nare\0you!\n"; 则语句printf ("%d",strlen(x));的输出结果是()。
A. 16
B. 13
C. 7
D. 20
9、下列程序段的输出结果是()。
#define MA(x,y) ((x)*(y))
printf("%d",MA(5,4+2)-7);
A. 30
B. 1
C. 15
D. 23
10、下面程序段输出的结果是()。
void main()
{ int x=-3;
do
{ printf("%d\n",x+=2);
}while(!(++x));
}
A. -1
B. -1和2
C. 没有结果,是死循环
D. -3和0
11、下列程序段的输出结果是()。
int num = 0, a, b, c;
for(a = 1; a <= 4; a++)
for(b = 1; b <= 3; b++)
for(c = 1; c <= 2; c++)
num++;
printf("%d", num);
A. 10
B. 9
C. 24
D. 0
12、以下叙述中正确的是()。
A. 输入项可以是一个实型常量,如scanf("%f ",3.5);
B. 只有格式控制,没有输入项,也能正确输入数据到内存,如:scanf("a=%d,
b=%d");
C. 输入一个实型数据时,格式控制可以规定小数点后的位数,如:scanf("%4.2f",
&f);
D. 当输入数据时,必须指明变量地址,例如:scanf("%f",&f);
13、若用数组名作为函数调用的实参,传递给形参的是()。
A. 数组的首地址
B. 数组的第一个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
14、已有下面数组定义和f函数调用语句,则在f函数的说明中,对形参数组array
的定义方式正确的为()。