C语言试卷
- 格式:doc
- 大小:57.50 KB
- 文档页数:3
职业中专2012—2013(一)期中试卷
《C语言程序设计》(高职二)
一、选择题(在下列每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确的答案选项选出来,每小题2分,共30分)
1.在C语言中,引用数组元素时,其数组下标的数据类型允许的是()
A. 整型常量
B. 整型表达式
C.整型常量或整型表达式
D. 任何类型的表达式
2. 以下对一维整型数组a的正确说法是()
A. int a(10);
B. int n=10, a[n];
C. int n; scanf(〞%d〞,&n); int a[n];
D. #define SIZE 10 int a[SIZE];
3. 以下能对一维数组a进行正确初始化的是()
A. int a[10]=(0,0,0,0,0);
B. int a[10]={};
C. int a[]={0};
D. int a[10]={10*1};
4. 对以下说明语句理解正确的是() int a[10]={6,7,8,9,10};
A. 将5个初值依次赋给a[1]至a[5]
B. 将5个初值依次赋给a[0]至a[4]
C. 将5个初值依次赋给a[6]至a[10]
D. 因为数组长度与初值的个数不同,所以此语句不正确
5. 若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是()
A. a , point ,*&a
B. &*a , &a , *point
C. *&point , *point , &a
D. &a , & *point , point 6.若有以下定义,则p+5表示()
int a[10],*p=a;
A. 元素a[5]的地址
B. 元素a[5]的值
C. 元素a[6]的地址
D. 元素a[6]的值
7.变量的指针,其含义是指该变量的()
A. 值
B. 地址
C. 名
D. 一个标志
8.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是()
A. c=*p1+*p2;
B. p2=c
C. p1=p2
D. c=*p1*(*p2);
9. 下列关于结构的说法错误的是:()
A.结构是由用户自定义的一种数据类型
B.结构中可设定若干个不同数据类型的成员
C.结构中成员的数据类型可以是另一个已定义的结构
D.在定义结构时,可以对成员进行初始化
10.C语言结构体类型变量在程序执行期间( )
A. 所有成员一直驻留在内存中
B. 只有一个成员驻留在内存中
C. 部分成员驻留在内存中
D. 没有成员驻留在内存中
11. 在宏定义#define PI 3.14159中,用宏名PI代替一个()
A.常量 B. 单精度数 C. 双精度数 D. 字符串
12. 以下有关宏替换的叙述不正确的是()
A. 宏替换不占用运行时间
B. 宏名无类型
C. 宏替换只是字符替换
D. 宏名必须用大写字母表示
13. 设有下列两条宏定义命令,则表达式“B/B”的值为( )
# define A 3+2
# define B A * A
A. 1
B. 5
C.25
D. 17
14. 在“文件包含”预处理语句的使用形式中,当#inlcude后面的文件名用〝〞(双引号)括起时,寻找被包含文件的方式是()
A. 直接按系统设定的标准方式搜索目录
B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索。
C. 仅仅搜索源程序所在目录
D. 仅仅搜索当前目录
15. 以下程序中,printf语句执行的次数是()
#define N 2
#define M N+1
#define NUM 2*M+1
main( )
{ int i;
for(i=0;i<=NUM;i++)
printf(〝%d\n〞, i );
}
A. 5
B. 6
C. 7
D. 8
二、填空题(每空1分,共15分)
1. 在C语言中,数组名代表___________________________________;
2. 数组元素在未进行初始化时,数组元素的值均为_______________;
3. 已知p=&a[0],a+1为a[1]的地址,则a+i为____________的地址;
4. 在指针数组中,数组名是__________________________________;
5. 枚举是C语言的一种_________类型,是一个被命名的_____________的集合;
6. 编译预处理就是在C语言中可以使用的几种特殊命令,即_______________、____________、_______________;
7.编译预处理的命令是以_______开头的,且在该命令的__________________ ;
8.文件包含中,被包含的文件有_____________________和__________________;
9. 程序中遇到____________________________________标识符后,宏定义失效;
10. 宏替换不分配单元存储,并且无____________________________________;
三、判断题(每小题1分,共10分)
1. 数组a[7]中7个元素,即a[1]至a[7];()
2. 指针就是地址,这个地址就是它所指出的另一个变量在内存中的位置;()
3. 零指针是不指向任何变量的指针;()
4. 指针不可以进行算术运算;()
5. 同一结构类型的数据可以构成结构数组;()
6. 枚举的成员都是变量;()
7. 当枚举中的某个成员赋值时,其后的成员按依次加1的规则确定其值;()
8. 宏定义不是C 语句,不必在行末加分号;()
9. C语言预编译命令#include<mufile.h>和#include”myfile.h”的功能是完全一样的;() 10.在软件开发中,常用条件编译命令来形成程序的调试或正式版本。
()
四、程序分析题(期中第1题至第5题,每空3分,第6小题6分,共30分)
1. 已知指针p的指向如图所示,则执行语句*p++;后,*p的值是
______
2. 已知指针p的指向如1题中图所示,则表达式*++p的值是________
3. 已知指针p 的指向如1题中图所示,则表达式++*p 的值是________
4. 已知定义了两个整型变量和两个整型的指针,并做了如下赋值:i= ˊa ˊ; j=ˊb ˊ;p1=&i; p2=&j ;并建立如下图所示的联系:
(1)如果执行__________________表达式,则建立如下图所示的联系:
(2)如果执行_______________表达式,则建立如下图所示的联系:
5. 题目描述:求圆的面积和周长 #include "iostream.h" #define 3.14159 void main()
{
double area,p,r; cout<<"请输入半径:"; cin>>r;
area= ___________________; p=2*PAI*r;
____________________________________________________;
}
6. 下面程序的运行结果是_______________________________ main( )
{
int a[ ]={2,4,6,8,10},y=1,x,*p; p=&a[1];
for (x=0;x<3;x++) y+=*(p+x);
printf(“%d \n”,y); }
五、程序设计题(15分) 运用宏替换计算两个数的和。